How to Accept Payments on a Website in Nigeria: Every Method Explained
To accept payments on a Nigerian website, integrate a payment gateway like Paystack or Flutterwave. Both support the methods Nigerians actually use: debit cards (Visa, Mastercard, Verve), bank transfers (the most popular method for many transactions), USSD banking (*737#, *901#, etc.), and increasingly mobile wallets like OPay and PalmPay. Do not use Stripe alone for Nigerian customers because it does not support many Nigerian payment methods. Paystack and Flutterwave are built for Nigeria and handle the complexity of local payment rails.
How Nigerians Actually Pay Online
If you have only used international payment tutorials, you might assume everyone pays with credit cards or PayPal. Nigeria works differently.
Bank transfers: Increasingly the most popular online payment method in Nigeria. Customers open their banking app (GTBank, Access, First Bank, Kuda, OPay), enter the transfer details or scan a QR code, and confirm the payment. Paystack and Flutterwave generate temporary account numbers for each transaction, making bank transfers work for online checkout without manual reconciliation.
Debit cards: Visa, Mastercard, and Verve. Verve is Nigeria's local card network and powers many Nigerian bank cards. Any payment solution for Nigeria must support Verve. International gateways like Stripe often do not. PIN + OTP authentication is standard for Nigerian card transactions, which adds a step compared to Western card payments.
USSD: Customers dial a code like *737# (GTBank) or *901# (Access Bank) to authorize payments from their phone. No internet required on the customer's end. This is critical for reaching customers without smartphones or stable data connections.
Mobile wallets (OPay, PalmPay): A growing segment. OPay and PalmPay have millions of users in Nigeria. Some payment gateways support collecting from these wallets. Adoption is increasing, especially among younger and less formally banked users.
What about mobile money like M-Pesa? Unlike East Africa, mobile money (in the M-Pesa/MoMo sense) never became the dominant payment method in Nigeria. Nigeria's strong banking infrastructure and agent banking networks took a different path. If you are building for Nigeria, focus on bank transfers, cards, and USSD. Mobile money skills are useful across Africa, but they are not the primary channel in Nigeria.
Choosing a Payment Gateway
Paystack: The most popular choice for Nigerian-focused products. Clean API, excellent documentation, support for all Nigerian payment methods, and a trusted brand (acquired by Stripe). Transaction fees are typically 1.5% + NGN 100, capped at NGN 2,000 for local transactions. Best for products serving primarily Nigerian customers.
Flutterwave: Strong alternative with broader multi-country coverage. If your product accepts payments from Nigeria and other African countries, Flutterwave's Pan-African reach is an advantage. Transaction fees are similar to Paystack. API quality is good, though historically developers have found Paystack's documentation slightly more polished.
Using both: Some Nigerian businesses integrate both gateways and use one as a fallback if the other experiences downtime. This adds development complexity but improves reliability. For most products, starting with one gateway is sufficient.
Why not Stripe alone? Stripe processes international card payments but does not support Nigerian bank transfers, USSD, Verve cards, or other local payment methods. If your only customers are international, Stripe works. If Nigerians will pay, you need Paystack or Flutterwave.
What about PayPal? PayPal's functionality in Nigeria has been limited. While Nigerians can send payments via PayPal, receiving and withdrawing PayPal funds has been inconsistent. It is not a reliable primary payment method for a Nigerian product.
Implementation Overview for Developers
Regardless of which gateway you choose, the implementation follows the same pattern.
1. Backend: Initialize the transaction. Your server sends a request to the gateway API with the amount, customer email, and your transaction reference. The gateway returns a checkout URL or session information.
2. Frontend: Display the checkout. Either redirect the customer to the gateway's hosted checkout page, or use the inline JavaScript popup to keep them on your site. The inline popup is generally better for user experience.
3. Customer: Completes payment. The customer selects their preferred payment method (card, bank transfer, USSD) and completes the transaction. The gateway handles the complexity of each payment channel.
4. Backend: Verify the payment. After the customer is redirected back to your site, your backend verifies the payment with the gateway API. Check the status, amount, and currency. Only fulfill the order if verification passes.
5. Backend: Handle webhooks. Configure a webhook endpoint to receive real-time notifications from the gateway. This catches successful payments even if the customer's browser redirect fails.
For detailed implementation guides, read our Paystack integration guide and Flutterwave integration guide.
Checkout Best Practices for Nigeria
Offer multiple payment methods. A checkout that only accepts cards will lose customers who prefer bank transfers. A checkout that only supports one bank will lose customers at other banks. Let the payment gateway handle method selection. Both Paystack and Flutterwave present all available options to the customer.
Show prices in NGN. Nigerian customers want to see prices in naira. If your product also serves international customers, use currency detection or let users select their currency. But for Nigerian users, always display NGN.
Handle slow networks gracefully. Nigerian internet can be intermittent. Show clear loading states during payment processing. Prevent double-clicks on the pay button (disable it after the first click). Display a clear message if the connection drops mid-payment, telling the customer to check their bank before retrying.
Send confirmation immediately. After successful payment, send an email and/or SMS confirmation immediately. Nigerian customers are (understandably) cautious about online payments and want proof that their transaction was received.
Display transaction references. Show the customer their payment reference number. This helps them verify the transaction in their bank statement and provides a reference for support inquiries.
Building This Skill Into Your Career
Payment integration is one of the highest-value skills in the Nigerian tech market. Every e-commerce site, every fintech product, every SaaS tool serving Nigerians needs payment processing. Developers who can build reliable payment flows are in constant demand.
Start by building a simple checkout project with either Paystack or Flutterwave. Then build one with the other gateway. Having both in your portfolio covers the majority of Nigerian payment processing needs.
For a structured learning path, McTaba's Full-Stack Software and AI Engineering course (KES 120,000, roughly NGN 140,000 to 220,000; exchange rates fluctuate, check current price at checkout) teaches the architecture patterns behind payment integration. McTaba accepts NGN and card payments via Paystack.
For more on specific payment channels, read our guides on bank transfers and USSD payments and OPay and PalmPay mobile wallets.
Key Takeaways
- ✓Nigerian customers pay differently than Western customers. Bank transfers and USSD are as important as card payments. A checkout that only accepts cards will lose a significant portion of customers.
- ✓Paystack and Flutterwave are the two primary payment gateways for Nigeria. Both handle cards, bank transfers, and USSD. Choose one (or both) and integrate their APIs into your website.
- ✓Do not use Stripe as your only payment processor for Nigerian customers. Stripe does not support many Nigerian payment methods. Use Paystack or Flutterwave for local transactions.
- ✓The best checkout experience in Nigeria offers multiple payment options and lets the customer choose. Some prefer card, some prefer bank transfer, some prefer USSD. Support all three at minimum.
Frequently Asked Questions
- What is the cheapest way to accept payments in Nigeria?
- Both Paystack and Flutterwave charge similar fees (approximately 1.4% to 1.5% per local transaction). Bank transfer fees are sometimes lower than card fees. There are no monthly subscriptions for basic usage. For very small businesses, Paystack and Flutterwave are cost-effective because you only pay when you process a transaction.
- Can I accept payments on my website without a registered business?
- Paystack and Flutterwave allow individual accounts for testing and small-scale use. For live production use with higher transaction limits, you will typically need business registration (CAC certificate) and BVN verification. The specific requirements may change, so check the current registration process on each platform.
- Do I need SSL for accepting payments in Nigeria?
- Yes. An SSL certificate (HTTPS) is required for any website that handles payment data. Both Paystack and Flutterwave require your callback and webhook URLs to be HTTPS. Free SSL is available through Let's Encrypt or through hosting platforms like Vercel and Netlify that include SSL by default.
Ready to build real-world apps?
Join the McTaba Labs full-stack marathon (4 months full-time · 6 months part-time). Learn M-Pesa, USSD, and WhatsApp engineering while shipping 8 production apps.
Apply to the McTaba Marathon