Skip to Content
NigeriaNigeria — Permanent NGN virtual account

Nigeria — Permanent NGN virtual account

Base URL

https://api.transacty.ai

Summary

Accept permanent NGN virtual-account deposits and send NGN bank payouts. Settled proceeds credit your merchant NGN wallet.

After the virtual account is ready, payers transfer any amount to those bank details. There is no create-per-payment call — no POST …/collections and no payment-intent for NGN collect.

Exact-amount temporary collections, amount/expiry pay instructions, MoMo, and swaps are not in this product.

Live only

This rail has no sandbox. Use a live API key. A test key returns 503 { "code": "payment_unavailable" }.

Settlement wallet & market

CollectPayer transfers NGN to your permanent virtual account
SettleTransacty creates a pay-in and credits your NGN wallet (fees applied)
PayoutDebit merchant NGN → Nigerian bank account
SpendEUR / USDC / PYUSD-USDC / other pockets cannot fund NGN payouts
Live onlyUse a live API key. test503 payment_unavailable
Marketnigeria must be approved and KYC verified

NGN is a separate wallet pocket. Never sum unlike currencies into one headline number. Read it on GET /v1/balance items[].

Enable the nigeria market first. Until Nigeria is KYB-approved (and KYC verified), /v1/ngn/* returns 403 (market_not_enabled).

Limits (major units)

Pay-in limits apply when a credit settles, not when the virtual account is created.

FlowMinMax
Pay-in (per inbound credit)1005,000,000
Payout5005,000,000

Required headers

Every request uses HMAC authentication (same scheme as all /v1/* endpoints):

  • X-Transacty-Key
  • X-Transacty-Timestamp (Unix seconds)
  • X-Transacty-Signature = HMAC-SHA256(secret, "{timestamp}.{rawBody}")
  • Content-Type: application/json on POST
  • Idempotency-Key (required on virtual-account provision and payout create)

Required scopes

  • payin:create — virtual account GET/POST
  • payout:create — verify account and payouts
  • Banks list: payin:create or payout:create

Collect flow (no create-per-payment)

StepMerchant serverTransacty API
1Get or provision the virtual accountGET / POST /v1/ngn/virtual-account
2When ready: true, share accountNumber / bankName / accountName
3Payer transfers any amount to those details
4Wait for webhookpayin.completed
5Credit your order on payin.completed (currency: "NGN")

Transacty creates the pay-in when the inbound credit settles. List history with GET /v1/transactions?type=payin, then filter rail === "nigeria" in your app (no rail= query).

Payout flow

StepAPI
1GET /v1/ngn/banks?search=
2POST /v1/ngn/verify-account (name enquiry)
3POST /v1/ngn/payouts with Idempotency-Key
4GET /v1/ngn/payouts/:transactionId or wait for webhook

Webhook events

When a webhook URL is configured, Transacty sends:

  • payin.completed — VA credit settled to NGN (currency: "NGN")
  • payin.failed — rare on the VA path
  • payout.completed / payout.failed — bank withdraw finalized

See Webhooks for signature verification.

Next steps

Last updated on