Overview
Collect payments from your customers by card, bank transfer, USSD, direct debit, Paga Wallet or in US dollars. Pick the method that fits how your customers pay, or combine several.
Not sure where to start?
You sell on your website or app and want a ready-made payment page.
You send invoices or share links on chat and social media.
Your customers pay by bank transfer for a single order or invoice.
You charge customers on a schedule, such as subscriptions or loan repayments.
Each customer needs a permanent account number, or you hold money for them.
Your customers don’t have cards or internet banking.
Your customers already use the Paga app.
You’re paid in dollars by customers or partners abroad.
Compare methods
| Method | Customer pays by | Best for | You build |
|---|---|---|---|
| Checkout | Card, bank transfer, USSD or Paga Wallet on a Paga-hosted page | Online stores and apps, invoices and social sales | Very little. Start it with Checkout JS, Checkout Inline or a payment link |
| Dynamic virtual account Also called Dynamic Payment Identifier | Bank transfer to a one-time account number | A single payment or invoice | API call, plus a webhook handler |
| Bank USSD | Dialling a one-time USSD code from their bank | Customers without cards or internet banking | API call, plus a webhook handler |
| Direct Debit (Open Banking) | A mandate on their bank account that you charge later | Subscriptions and loan repayments | Mandate set-up, scheduled charges, webhooks |
| Paga Wallet | Approving a request in the Paga app | Customers who already use Paga | API call, plus a webhook handler |
| Bank Transfer (ACH, Wire and Swift) | ACH, US domestic wire or international (SWIFT) wire to a single-use USD account | Invoices paid from abroad. Settles in naira to your Paga balance at the prevailing exchange rate | API call to create the account, show the payment instructions, plus a webhook handler |
| Become a biller | Any Paga channel: the Paga app, agents, POS, or other businesses’ apps | Utilities, schools, subscriptions, insurers and anyone with customers who pay bills | One or two endpoints on your server that Paga calls |
Need a permanent account number for each customer? Subsidiary Accounts give every customer their own account number that you can hold funds in or settle from. They’re in Manage accounts, alongside your business account.
Using Persistent Payment Identifiers? They’re supported for existing integrations, but new integrations should use Subsidiary Accounts for permanent, per-customer account numbers.
How a collection works
Every method follows the same four steps. Learn them once and each product page reads faster.
Create the payment
Call the API to create a payment request, account number, USSD code or mandate. Give it a unique referenceNumber and your callback URL.
Your customer pays
They pay on the Checkout page, by transfer, by USSD or in the Paga app, depending on the method.
Paga notifies you
Paga sends a payment notification to your callback URL as soon as the payment arrives.
Verify, then fulfil
Check the notification’s hash, confirm the amount and status, then deliver the order or credit the customer. See Error handling.
What every method shares
Callback URL
Where Paga sends payment notifications. It must be public, use HTTPS, and respond with HTTP 200 within 5 seconds, or Paga retries.
Verifying notifications
Recreate the hash with your hash key and compare it before you trust a notification. See Authentication.
Payment statuses
A payment can be pending, partially paid, complete or expired. Only fulfil complete payments.
Refunds
Cancel an unpaid request, or refund a payment in full or in parts. See Refunds.
Collection fees
Decide whether you or your customer pays the collection fee, or split it, when you create the payment.
Testing
Use test cards and the bank transfer simulator in Sandbox before going live.
Don’t need an integration?
If you just want to get paid without building anything, use these from your Paga business account:
JustPaga.me
A shareable link built from your Paga username or account number, for example justpaga.me/radius. Customers enter an amount and pay.
Bank deposit
Share your Paga account’s dedicated account number. Customers can pay into it from any Nigerian bank, branch or agent.
PayMe page
A hosted page for your business. Customers fill in their details and pay, and you get an email.
Need help? We’re here 24/7
Talk to our support team any time, or ask questions in the developer community.
Updated 8 days ago

