Transfers

Idempotent bank payouts and account-name lookups.

Send payouts to any bank account. Always confirm the recipient with a name lookup first.

Idempotent on merchantTxRef

Re-submitting a transfer with the same merchantTxRef returns the existing transfer instead of paying twice. Generate one stable ref per payout and retry safely.

Daily payout cap

Payouts are subject to a per-tenant daily cap. Transfers over the remaining limit are rejected — batch or schedule large payouts accordingly.
get/api/v1/transfers

List the account's payouts, most recent first.

Requires Bearer token

Query parameters

takeintegeroptional

Responses

200OK
GET /api/v1/transfers
curl -X GET "https://api.xental.online/api/v1/transfers" \
  -H "Authorization: Bearer <API_TOKEN>"
get/api/v1/transfers/banks

List selectable banks (name + code) for payout/settlement UIs. Pulls the provider's live list (cached), falling back to a built-in Nigerian bank list if the provider is unavailable.

Requires Bearer token

Responses

200OK
GET /api/v1/transfers/banks
curl -X GET "https://api.xental.online/api/v1/transfers/banks" \
  -H "Authorization: Bearer <API_TOKEN>"
post/api/v1/transfers/bank/lookup

Resolve the recipient account name before sending (name check).

Resolves an account number + bank code to the account holder name. Call this before initiating a transfer to avoid sending to the wrong account.

Requires Bearer token

Body parameters

accountNumberstringoptional
bankCodestringoptional

Responses

200OK
POST /api/v1/transfers/bank/lookup
curl -X POST "https://api.xental.online/api/v1/transfers/bank/lookup" \
  -H "Authorization: Bearer <API_TOKEN>"
post/api/v1/transfers/bank

Initiate a bank transfer (idempotent on merchantTxRef). Callable from an API key or a dashboard Owner/Admin.

Initiates a payout. Idempotent on your merchantTxRef.

Requires Bearer token

Body parameters

merchantTxRefstringoptional
amountKobointegeroptional
accountNumberstringoptional
bankCodestringoptional
narrationstringoptional

Responses

201Transfer created/initiated.
POST /api/v1/transfers/bank
curl -X POST "https://api.xental.online/api/v1/transfers/bank" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "amountKobo": 500000
  }'
Example request body
{
  "amountKobo": 500000
}
get/api/v1/transfers/{merchantTxRef}

Get a transfer by its merchantTxRef.

Requires Bearer token

Path parameters

merchantTxRefstringrequired

Responses

200OK404Not Found
GET /api/v1/transfers/{merchantTxRef}
curl -X GET "https://api.xental.online/api/v1/transfers/:merchantTxRef" \
  -H "Authorization: Bearer <API_TOKEN>"