How to Add Paystack or Flutterwave to WordPress and Shopify in Nigeria
To add Paystack to WordPress: install the "Paystack WooCommerce Payment Gateway" plugin, enter your API keys from the Paystack dashboard, enable test mode, run a test transaction, then switch to live keys. For Shopify: search for "Paystack" or "Flutterwave" in the Shopify App Store, install the app, connect your account, and activate it as a payment provider. The process takes 10 to 30 minutes for either platform. Flutterwave follows the same pattern with its own plugins and apps. Both support cards, bank transfers, and USSD for Nigerian customers.
Adding Paystack to WordPress (WooCommerce)
WooCommerce is the most popular e-commerce plugin for WordPress, and Paystack has an official WooCommerce payment gateway plugin. Here is the step-by-step process.
Prerequisites: A WordPress site with WooCommerce installed and activated. A Paystack account with your API keys (found in Settings, then API Keys & Webhooks on your Paystack dashboard). Your WooCommerce store currency set to NGN (WooCommerce, then Settings, then General, then Currency).
Step 1: Install the plugin. In your WordPress admin, go to Plugins, then Add New. Search for "Paystack WooCommerce Payment Gateway" by Tunbosun Ayinla. Install and activate the plugin.
Step 2: Configure the plugin. Go to WooCommerce, then Settings, then Payments. You will see "Paystack" listed as a payment method. Click "Set up" or "Manage." Enter your test API keys first: paste your test public key (pk_test_...) and test secret key (sk_test_...) into the respective fields. Check "Enable Test Mode." Enable the payment channels you want: card, bank transfer, USSD. Set a title like "Pay with Card, Bank Transfer, or USSD" so customers know their options.
Step 3: Set the webhook URL. In your Paystack dashboard, go to Settings, then API Keys & Webhooks. Set the webhook URL to: https://yoursite.com/?wc-api=tbz_wc_paystack_gateway (replace yoursite.com with your actual domain). This is how Paystack notifies your store when a payment succeeds or fails.
Step 4: Test. Place a test order on your store. The Paystack checkout should appear with options for card, bank transfer, or USSD. In test mode, use Paystack's test card numbers (available in their docs) to simulate successful and failed payments. Verify that your WooCommerce order status updates correctly.
Step 5: Go live. Once testing is complete, replace the test keys with your live API keys (pk_live_... and sk_live_...) and uncheck "Enable Test Mode." Place one real order with a small amount to confirm everything works with live transactions.
Adding Flutterwave to WordPress (WooCommerce)
The process for Flutterwave follows the same pattern as Paystack, with a different plugin.
Step 1: Install the plugin. Search for "Flutterwave WooCommerce" or "Rave WooCommerce Payment Gateway" in the WordPress plugin directory. Flutterwave has rebranded their gateway name over the years, so look for the one officially maintained by the Flutterwave team. Install and activate it.
Step 2: Configure. Go to WooCommerce, then Settings, then Payments. Find the Flutterwave option and click "Manage." Enter your test public key (FLWPUBK_TEST-...) and test secret key (FLWSECK_TEST-...). Enable test mode. Select the payment methods you want to offer: cards, bank transfer, USSD, and others.
Step 3: Set the webhook URL. In your Flutterwave dashboard, navigate to Settings, then Webhooks. Enter the webhook URL that the plugin documentation specifies. This varies by plugin version, so check the plugin's readme or settings page for the exact URL format.
Step 4: Test and go live. Run test transactions using Flutterwave's test card numbers and sandbox environment. Once confirmed, switch to live keys and disable test mode.
Choosing between Paystack and Flutterwave for WooCommerce: Both plugins work well. Paystack's WooCommerce plugin is generally considered slightly more polished and better maintained. Flutterwave's plugin has broader payment method support, including mobile money options that matter if you sell across West Africa. For a Nigeria-only store, either works. You can even install both and let the customer choose at checkout, though this adds some complexity to your payment management.
Adding Paystack or Flutterwave to Shopify
Shopify handles payment gateway integration differently from WooCommerce. Instead of plugins, you install apps from the Shopify App Store.
Paystack on Shopify:
- In your Shopify admin, go to Settings, then Payments.
- Under "Third-party providers" or "Alternative payment methods," search for Paystack.
- Click "Activate" and you will be prompted to connect your Paystack account.
- Log into your Paystack account and authorize the connection.
- Paystack will appear as a payment option on your checkout page.
Flutterwave on Shopify:
- Go to the Shopify App Store (apps.shopify.com) and search for "Flutterwave."
- Install the Flutterwave Payments app.
- Connect your Flutterwave account by entering your API credentials.
- Activate Flutterwave as a payment provider in your Shopify Payments settings.
Important Shopify note: Shopify charges an additional transaction fee (0.5% to 2% depending on your plan) on top of the payment gateway's own fees when you use a third-party provider like Paystack or Flutterwave. This is on top of the 1.5% + NGN 100 that Paystack charges or the 1.4% that Flutterwave charges. Factor this into your product pricing.
Testing on Shopify: Shopify has its own test payment mode (Bogus Gateway) for simulating orders, but to test Paystack or Flutterwave specifically, use the payment gateway's test mode. Set up with test keys first, place a test order, verify it processes correctly, then switch to live keys.
Common Setup Mistakes and How to Fix Them
These are the issues that trip up most Nigerian store owners setting up Paystack or Flutterwave for the first time.
1. Wrong currency setting. Your store currency must be set to NGN (Nigerian Naira). If your WooCommerce store is set to USD or any other currency, the payment gateway will reject transactions or convert amounts incorrectly. In WooCommerce: Settings, then General, then Currency. In Shopify: Settings, then General, then Store currency.
2. Test keys in production (or live keys in test). Test keys start with pk_test_ or sk_test_ (Paystack) and FLWPUBK_TEST or FLWSECK_TEST (Flutterwave). Live keys start with pk_live_ or sk_live_ (Paystack) and FLWPUBK or FLWSECK (Flutterwave). If you see "This transaction was done in test mode" when trying to take real payments, you still have test keys in your settings.
3. Webhook URL not set or incorrect. Without a webhook URL, your store will not receive payment confirmations for bank transfers and USSD payments. Card payments may appear to work because of the redirect callback, but bank transfers will stay "pending" forever. Check the webhook URL in both the plugin settings and your payment gateway dashboard.
4. SSL certificate missing. Both Paystack and Flutterwave require your site to use HTTPS. If your site is still on HTTP, the payment gateway will refuse to process. Most hosting providers offer free SSL certificates through Let's Encrypt. Activate it before setting up payments.
5. Only enabling card payments. The default configuration on some plugin versions only enables cards. Go into the plugin settings and explicitly enable bank_transfer and ussd. As covered in our guide on bank transfers and USSD payments, these are how most Nigerians prefer to pay online.
6. Not testing before going live. Run at least 3 to 5 test transactions covering cards, bank transfers, and (if possible) USSD before switching to live mode. Test a successful payment, a failed payment, and a cancelled payment. Verify that your order status updates correctly in each case.
When You Outgrow Plugins
Plugins and apps handle the basics well. They are the right choice for most small to medium Nigerian online stores. But there are legitimate reasons to move to a custom integration:
- Custom checkout experience: Plugins use the payment gateway's standard checkout interface. If you need a fully branded checkout with custom styling, split payment flows, or marketplace-style payouts to multiple sellers, you will need a custom backend integration.
- Subscription and recurring billing: While Paystack's plugin supports basic recurring payments through WooCommerce Subscriptions, complex billing logic (tiered pricing, usage-based billing, trial periods with conditional conversion) requires custom API work.
- Multi-vendor marketplaces: If you are building a platform where multiple sellers receive payouts (like a Nigerian version of Jumia), you need Paystack's Split Payments or Flutterwave's Sub-accounts. These features are API-level and not available through standard plugins.
Moving from plugins to custom integration means learning server-side programming, API integration, and webhook handling. If you are at that point, McTaba Academy's Full-Stack Software & AI Engineering course (NGN 140,000 to 220,000; exchange rates fluctuate, check current price at checkout) covers building payment integrations from scratch using Paystack and Flutterwave APIs.
For a gentler starting point, Tech Foundations (NGN 3,500 to 6,000; exchange rates fluctuate, check current price at checkout) builds the foundational knowledge you need before writing backend code. Or create a free McTaba Academy account and see what suits your current level.
Key Takeaways
- ✓Paystack and Flutterwave both have official plugins for WooCommerce (WordPress) and apps for Shopify. Installation takes minutes. No custom code is required for basic setup.
- ✓Always start in test mode. Both gateways provide test API keys that simulate payments without moving real money. Run at least 3 to 5 test transactions before switching to live keys.
- ✓Enable bank transfers as a payment method in the plugin settings. Many Nigerian store owners only enable card payments and miss the majority of customers who prefer transfers.
- ✓The most common setup mistake is using live keys in test mode or test keys in production. Double-check which keys you are using before going live.
Frequently Asked Questions
- Can I use both Paystack and Flutterwave on the same store?
- Yes, technically. You can install both plugins on WooCommerce and both apps on Shopify. The customer will see both as payment options at checkout. However, this adds complexity to your payment reconciliation (you are managing two dashboards, two sets of reports, two webhook configurations). For most stores, one gateway is sufficient. Choose Paystack for a Nigeria-focused store or Flutterwave if you plan to sell across multiple African countries.
- Do I need a registered business to use Paystack or Flutterwave on my store?
- For test mode, no. You can sign up and start testing immediately. For live mode (accepting real payments), both Paystack and Flutterwave require KYC verification. This typically means providing your BVN, a valid ID, and business registration documents (CAC registration for registered businesses). Sole proprietors and freelancers can also complete KYC with personal identification. The verification process usually takes 1 to 3 business days.
- How much do Paystack and Flutterwave charge per transaction?
- Paystack charges 1.5% + NGN 100 per transaction, capped at NGN 2,000. So for any transaction above NGN 126,667, the fee is always NGN 2,000 regardless of the amount. Flutterwave charges 1.4% per transaction (the exact structure may vary by payment method and volume). Both charge additional fees for international transactions. If you are using Shopify, add Shopify's own third-party payment processing fee (0.5% to 2%) on top.
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