Skip to main content
POST
/
business
/
single
Initiate a single transfer 🔒
curl --request POST \
  --url https://api-staging.usenumero.com/numeroaccount/api/v1/business/single \
  --header 'Content-Type: application/json' \
  --header 'X-Numero-Api-Key: <api-key>' \
  --header 'X-Numero-Signature: <api-key>' \
  --data '
{
  "validationCode": "<string>",
  "amount": 5000,
  "destinationAccountNumber": "<string>",
  "destinationBankCode": "000013",
  "transferSessionId": "<string>",
  "transactionPin": "<string>",
  "narration": "<string>",
  "destinationAccountName": "<string>",
  "phoneNumber": "<string>"
}
'
{ "status": true, "message": "Successful", "code": "200", "version": "v1", "reference": "abc123", "data": { "transferReference": [ "TRF-20240115-abc123" ] }, "error": null }

Authorizations

X-Numero-Api-Key
string
header
required

Your business API key (live_key_...). Issued on approval; managed in Dashboard → Settings → Developer.

X-Numero-Signature
string
header
required

Base64(HMAC-SHA256(secretApiKey, 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 🔒).

Body

application/json
validationCode
string
required

The 6-digit transfer OTP (from GET /business/transfer/sendtransferotp).

amount
number
required

Amount in naira (major units, up to 2 dp). 1000 = ₦1,000.00.

Example:

5000

destinationAccountNumber
string
required

Recipient 10-digit NUBAN — or, for an internal transfer, the recipient's Numero account number.

destinationBankCode
string
required

Recipient bank CBN code. Use the literal "NUMERO" to send an instant internal book transfer to another Numero merchant (see 'Internal transfers').

Example:

"000013"

transferSessionId
string | null

Optional session id from a prior validate

transactionPin
string | null

The sender's transaction PIN. Required when the business has PIN confirmation enabled.

narration
string | null

Optional free-text reference shown on the transfer (≤90 chars).

destinationAccountName
string | null

Resolved recipient name from /business/transfer/validate. Required for external transfers; optional (resolved by Numero) when destinationBankCode is "NUMERO".

phoneNumber
string | null

Response

Successful response

Canonical response envelope for the public surface. data on success, error on failure.

data
any
required

Endpoint payload on success (object or array); null on failure.

error
object
required
meta
object
required