Overview

Accept payments

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?

Compare methods

MethodCustomer pays byBest forYou build
CheckoutCard, bank transfer, USSD or Paga Wallet on a Paga-hosted pageOnline stores and apps, invoices and social salesVery 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 numberA single payment or invoiceAPI call, plus a webhook handler
Bank USSDDialling a one-time USSD code from their bankCustomers without cards or internet bankingAPI call, plus a webhook handler
Direct Debit (Open Banking)A mandate on their bank account that you charge laterSubscriptions and loan repaymentsMandate set-up, scheduled charges, webhooks
Paga WalletApproving a request in the Paga appCustomers who already use PagaAPI call, plus a webhook handler
Bank Transfer (ACH, Wire and Swift)ACH, US domestic wire or international (SWIFT) wire to a single-use USD accountInvoices paid from abroad. Settles in naira to your Paga balance at the prevailing exchange rateAPI call to create the account, show the payment instructions, plus a webhook handler
Become a billerAny Paga channel: the Paga app, agents, POS, or other businesses’ appsUtilities, schools, subscriptions, insurers and anyone with customers who pay billsOne 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.


What’s Next