Transfers may return a
pending status if the payment network does not respond within the timeout window. The transaction is retried automatically and a webhook is dispatched when the final status is known.List supported banks
GET /transfer/banks
Returns all banks currently supported for outward transfers, sorted alphabetically by name.
Request
Bearer token.
Response
true on success.Array of bank objects.
Examples
Response
Resolve account details
GET /transfer/account/details
Performs a name enquiry (account lookup) to verify a beneficiary account before sending a transfer. You must call this endpoint and confirm the returned accountName before initiating a bank transfer via NIP — the NIP route requires the session ID from this lookup.
Request
Bearer token.
The beneficiary’s bank account number.
The beneficiary’s bank sort code. Obtain valid sort codes from
GET /transfer/banks.Response
true on success.Examples
Response
Send a bank transfer
POST /transfer/bank
Sends funds from your merchant settlement wallet to any Nigerian bank account. Charges, VAT, and optional stamp duty are deducted from your wallet on top of the transfer amount.
The transfer goes through immediately when called via API key. Requests made through the web dashboard enter a maker-checker approval queue and do not transfer funds until approved.
Request
Bearer token. Requires
MANAGE_TRANSFER permission.Transfer amount in kobo. Must be greater than 0.
Destination bank sort code. Obtain valid codes from
GET /transfer/banks.Destination account number.
Beneficiary name as resolved by
GET /transfer/account/details. Required for NIP transfers.Transfer narration/description visible to the beneficiary.
Arbitrary key-value data attached to the transaction. Returned in webhook payloads.
Response
true when the request was accepted. Note: status: true with transfer.status: "pending" means the transfer is being retried in the background.Status message.
Transfer result object.
Examples
Response (success)
Response (pending)
Customer-initiated bank transfer
POST /transfer/bank/customer
Sends a bank transfer where the funds are debited from a specific customer’s wallet rather than from your merchant settlement wallet. The customer’s tier limits, daily limits, and minimum balance rules apply.
Request
Bearer token. Requires
MANAGE_TRANSFER permission.UUID of the customer whose wallet will be debited.
Transfer amount in kobo. Must be greater than 0.
Destination bank sort code.
Destination account number.
Beneficiary name as returned by account lookup.
Transfer narration.
Your unique reference for this transaction. If omitted, one is auto-generated.
Arbitrary metadata attached to the transaction.
Response
Same structure asPOST /transfer/bank. The transfer object is returned with the same fields.
Examples
Response
Error responses
| HTTP Status | Description |
|---|---|
400 | Insufficient available balance |
400 | Beneficiary account details could not be resolved — call GET /transfer/account/details first |
400 | Invalid or unsupported sort code |
400 | Daily transaction limit exceeded |
400 | Merchant wallet is inactive |
400 | Transaction failed — funds reversed to source wallet |
401 | Missing or invalid authentication token |
403 | NIP transfers not enabled on this account |
400 Failed (funds reversed)
400 Account Lookup Required
