Initiate a single transfer π
Send NGN to a bank account. Optionally pass the transferSessionId from /business/validate to keep provider routing consistent. (signed)
This server-to-server channel is authorised by the request signature, not by a transfer OTP or transaction PIN β there is no session to send a code to. Do not send validationCode or transactionPin; they are ignored here. (Both remain in force on the merchant dashboardβs own transfer flow, which is a different channel.)
Authorizations
Your business API key (live_key_...). Issued on approval; managed in Dashboard β Settings β Developer.
Base64(HMAC-SHA256(publicApiKey, input)) over the raw request body (POST) or canonicalized
query string (signed GET). Also send X-Numero-Signature-Version: v2. Required on
money-movement / state-changing endpoints (marked π).
The HMAC key is your Public Key as raw UTF-8 bytes β a SECRET despite the name, and a
different value from the X-Numero-Api-Key authentication header. Signing with the API key
will never produce a valid signature.
Body
Amount in naira (major units, up to 2 dp). 1000 = β¦1,000.00.
5000
Recipient 10-digit NUBAN β or, for an internal transfer, the recipient's Numero account number.
Recipient bank CBN code. Use the literal "NUMERO" to send an instant internal book transfer to another Numero merchant (see 'Internal transfers').
"000013"
Optional session id from a prior validate, to keep provider routing consistent.
Optional free-text reference shown on the transfer (β€90 chars).
Resolved recipient name from /business/transfer/validate. Required for external transfers; optional (resolved by Numero) when destinationBankCode is "NUMERO".