Skip to main content
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

string
required
Bearer token.

Response

boolean
true on success.
array
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.
Always display the resolved accountName to the user and request confirmation before submitting the transfer. Transfers sent to an incorrect account cannot be recalled automatically.

Request

string
required
Bearer token.
string
required
The beneficiary’s bank account number.
string
required
The beneficiary’s bank sort code. Obtain valid sort codes from GET /transfer/banks.

Response

boolean
true on success.
object

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

string
required
Bearer token. Requires MANAGE_TRANSFER permission.
number
required
Transfer amount in kobo. Must be greater than 0.
string
required
Destination bank sort code. Obtain valid codes from GET /transfer/banks.
string
required
Destination account number.
string
required
Beneficiary name as resolved by GET /transfer/account/details. Required for NIP transfers.
string
Transfer narration/description visible to the beneficiary.
object
Arbitrary key-value data attached to the transaction. Returned in webhook payloads.

Response

boolean
true when the request was accepted. Note: status: true with transfer.status: "pending" means the transfer is being retried in the background.
string
Status message.
object
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

string
required
Bearer token. Requires MANAGE_TRANSFER permission.
string
required
UUID of the customer whose wallet will be debited.
number
required
Transfer amount in kobo. Must be greater than 0.
string
required
Destination bank sort code.
string
required
Destination account number.
string
required
Beneficiary name as returned by account lookup.
string
Transfer narration.
string
Your unique reference for this transaction. If omitted, one is auto-generated.
object
Arbitrary metadata attached to the transaction.

Response

Same structure as POST /transfer/bank. The transfer object is returned with the same fields.

Examples

Response

Error responses

400 Failed (funds reversed)
400 Account Lookup Required