Financial infrastructure for Nigerian businesses
Bank transfers, virtual accounts, airtime, data, electricity and cable — with a ledger that shows every naira, every fee and every state change.
curl -X POST https://payment.falconpay.ng/v1/api/transfer \
-H "x-api-key: sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"reference": "PAYROLL-2026-09-001",
"amount": 250000,
"bank_code": "058",
"account_number": "0123456789",
"account_name": "Adaeze Okonkwo",
"narration": "September salary"
}'Returns 202 Accepted with a reference; the final state arrives on your webhook.
Services
Each product is available in the dashboard and through the API, sharing one wallet and one ledger.
Accept payments via dedicated virtual accounts and bank transfer, with real-time webhooks and instant reconciliation.
Send money to any Nigerian bank account in seconds. Batch payouts, payroll and vendor payments through one endpoint.
Resell airtime and bundles on MTN, Airtel, Glo and 9mobile at wholesale rates with instant delivery.
Vend prepaid tokens and settle postpaid bills for every distribution company, with meter validation before purchase.
Renew DStv, GOtv and StarTimes subscriptions programmatically with smartcard validation.
Fund betting wallets for major platforms without your users leaving your product.
Why FalconPay
A single REST API and key pair covers transfers, bills, wallets and webhooks. No vendor juggling.
Licensed and CBN-compliant. KYC, AML screening and audit trails are part of the platform.
Transfers settle in under thirty seconds on average; bill tokens return in the same response.
Every transaction carries its fees, ledger effect and timeline. Exportable, filterable, auditable.
Redundant provider routing and automatic failover tuned for Nigerian rails.
Flat per-transfer fees and published bill discounts. No setup fees, no surprises.
Developers
Create an account
Register the business and complete verification.
Generate keys
Test keys never move real money. Switch to live when ready.
Integrate
Verify an account, send a transfer, listen for the webhook.
Webhook event
{
"event": "transfer.completed",
"data": {
"reference": "PAYROLL-2026-09-001",
"amount": 250000,
"fee": 50,
"status": "completed",
"completed_at": "2026-09-11T09:14:22Z"
}
}