Initiate Transfer

Send money from your virtual account to any bank account.

POST /v1/virtual-account/transfer

Headers

Header Required Description
X-Api-Key Yes Your API key
X-Idempotency-Key Yes Unique key to prevent duplicate transfers
Content-Type Yes application/json

Request Body

Field Type Required Description
currency string Yes Currency: NGN or GHS
accountId integer Yes Source virtual account ID
amount number Yes Amount to transfer
destinationBankCode string Yes Destination bank code (retrieve from Banks endpoint)
destinationAccountNumber string Yes Destination account number
destinationAccountName string Yes Destination account name
description string No Transfer description/narration

Example Request

curl -X POST "https://api.esca.finance/v1/virtual-account/transfer" \
  -H "X-Api-Key: your_api_key_here" \
  -H "X-Idempotency-Key: transfer-550e8400-e29b-41d4-a716-446655440000" \
  -H "Content-Type: application/json" \
  -d '{
    "currency": "NGN",
    "accountId": 12345,
    "amount": 10000,
    "destinationBankCode": "000007",
    "destinationAccountNumber": "0123456789",
    "destinationAccountName": "JOHN DOE",
    "description": "Payment for services"
  }'

Example Response

{
  "status": true,
  "data": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000"
  }
}

Transfer Status Flow

PENDING → SUCCESS
        → FAILED
        → REVERSED