Skip to main content
POST
/
api
/
v1
/
wallets
/
fiat
/
transfers
/
wallet-to-wallet
Wallet to Wallet Transfer
curl --request POST \
  --url https://api.example.com/api/v1/wallets/fiat/transfers/wallet-to-wallet \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <x-api-key>' \
  --data '
{
  "fromAccount": "<string>",
  "toAccount": "<string>",
  "amount": 123,
  "reference": "<string>",
  "narration": "<string>"
}
'
{
  "success": true,
  "message": "Wallet transfer successfull"
}

Request

x-api-key
string
required
API Key for authentication
fromAccount
string
required
Source wallet account number
toAccount
string
required
Destination wallet account number
amount
number
required
Transfer amount
reference
string
required
Transfer reference
narration
string
Transfer narration/description

Request Example

curl -X POST https://api-staging.fossapay.com/api/v1/wallets/fiat/transfers/wallet-to-wallet \
  -H "x-api-key: fp_live_sk_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "fromAccount": "1234567890",
    "toAccount": "0987654321",
    "amount": 5000,
    "reference": "transfer_ref_001",
    "narration": "Payment for services"
  }'
const transfer = await client.wallets.walletToWalletTransfer({
  fromAccount: '1234567890',
  toAccount: '0987654321',
  amount: 5000,
  reference: 'transfer_ref_001',
  narration: 'Payment for services'
});
transfer = client.wallets.wallet_to_wallet_transfer(
    fromAccount='1234567890',
    toAccount='0987654321',
    amount=5000,
    reference='transfer_ref_001',
    narration='Payment for services'
)

Response

success
boolean
Indicates if the transfer was successful
message
string
Human-readable response message

Response Example

{
  "success": true,
  "message": "Wallet transfer successfull"
}

Error Codes

CodeDescription
INSUFFICIENT_FUNDSInsufficient funds for transfer
INVALID_ACCOUNTInvalid source or destination account
UNAUTHORIZEDInvalid API key or insufficient permissions
TRANSFER_LIMIT_EXCEEDEDTransfer amount exceeds limit
Rate Limit: 50 requests per minute
Always verify the destination account number before initiating transfers.