Skip to main content

Internal Transfer

POST/wallet/transferOpen in the API playground →
Info

Internal transfers move funds between subscriber accounts using account IDs. For transfers by card serial, use P2P Transfer.

Request

Authorizationstringheaderrequired

Bearer olive_live_xxx or Bearer eyJ... (JWT)

Body Parameters

from_account_idstringbodyrequired

Source account UUID

to_account_idstringbodyrequired

Destination account UUID

amountstringbodyrequired

Amount to transfer

pinstringbodyrequired

Source account PIN

descriptionstringbody

Transfer description


Response

successboolean

Whether transfer succeeded

transaction_idstring

Unique transaction ID

messagestring

Result message


Examples

Request
cURL
curl -X POST "https://demo.api.vultlocal.com/api/v1/wallet/transfer" \
-H "Authorization: Bearer olive_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"from_account_id": "acc_abc123",
"to_account_id": "acc_xyz789",
"amount": "1000.00",
"pin": "1234",
"description": "Settlement payment"
}'
Response
200 Success
{
"success": true,
"message": "Transfer completed successfully",
"transaction_id": "txn_abc123",
"amount": "1,000.00 SLE",
"from_balance": "49,000.00 SLE",
"to_balance": "11,000.00 SLE"
}
400 Insufficient Balance
{
"success": false,
"error": "Insufficient balance",
"code": "INSUFFICIENT_FUNDS"
}

Use Cases

ScenarioDescription
Agent SettlementTransfer from agent to SmartPay
Corporate PayrollBulk employee payments
RefundsReturn funds to subscriber
Account AdjustmentAdministrative corrections

Errors

StatusCodeDescription
400INVALID_AMOUNTAmount format invalid
400INSUFFICIENT_FUNDSBalance too low
400INVALID_PINPIN verification failed
401UNAUTHORIZEDInvalid API key
404ACCOUNT_NOT_FOUNDAccount not found
500INTERNAL_ERRORServer error