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"
}'
{
"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"
}
{
"success": false,
"error": "Insufficient balance",
"code": "INSUFFICIENT_FUNDS"
}
Wallet
Internal Transfer
Transfer funds between accounts internally
POST
/
wallet
/
transfer
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"
}'
{
"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"
}
{
"success": false,
"error": "Insufficient balance",
"code": "INSUFFICIENT_FUNDS"
}
Internal transfers move funds between subscriber accounts using account IDs. For transfers by card serial, use P2P Transfer.
Request
string
required
Bearer olive_live_xxx or Bearer eyJ... (JWT)Body Parameters
string
required
Source account UUID
string
required
Destination account UUID
string
required
Amount to transfer
string
required
Source account PIN
string
Transfer description
Response
boolean
Whether transfer succeeded
string
Unique transaction ID
string
Result message
Examples
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"
}'
{
"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"
}
{
"success": false,
"error": "Insufficient balance",
"code": "INSUFFICIENT_FUNDS"
}
Use Cases
| Scenario | Description |
|---|---|
| Agent Settlement | Transfer from agent to OLIVE |
| Corporate Payroll | Bulk employee payments |
| Refunds | Return funds to subscriber |
| Account Adjustment | Administrative corrections |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_AMOUNT | Amount format invalid |
| 400 | INSUFFICIENT_FUNDS | Balance too low |
| 400 | INVALID_PIN | PIN verification failed |
| 401 | UNAUTHORIZED | Invalid API key |
| 404 | ACCOUNT_NOT_FOUND | Account not found |
| 500 | INTERNAL_ERROR | Server error |
Authorizations
JWT token from admin login for administrative operations. Format: 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
Headers
Body
application/json
Response
200 - application/json
Success
The response is of type object.
⌘I