By Musskart Technology Editorial Team Published: Updated: Facts checked against official and press sources

What Does a Payment Integration Service Fix?

A payment integration service makes sure every successful Paystack, Flutterwave or Monnify payment reaches your database exactly once. Musskart traces and fixes webhooks, server-side verification, double credits, sandbox-to-live switches, split payments, virtual accounts and subscriptions. A health check or bug fix typically costs ₦200,000–₦500,000 and takes one to two weeks.

A common request reads like this one, posted publicly by a site owner on Freelancer in 2026: payments go through and Paystack marks them as “successful”, yet the buyer’s balance never updates on the platform and no error is returned. The gateway did its job. The fault is on your side of the line, usually in a few dozen lines of webhook and verification code.

It costs more than it looks. A Nigerian VTU founder told Zikoko in September 2025 about daily complaints of “wallets not reflecting, delayed subscriptions, and hanging payments”, adding: “Once customers experience friction two or three times, they move on.”

You probably don’t need a rebuild or a new gateway. When payments stop reflecting, owners often blame the app or the gateway and go shopping for a new developer and a second provider. Usually the gateway is working and the fault is one of the twelve issues in the checklist below. Fix that first: switching gateways just moves the bug to a new dashboard.

What Payment Integration Fixes Cost in Nigeria (2026)

Typical Musskart prices, in naira. You get a fixed quote after a free scoping call, once we have seen the code and the gateway dashboard.

ScopeWhat is includedTypical priceTypical timeline
Integration health check / bug fixTrace a payment end to end, fix webhook or callback bugs, add server-side verification and duplicate protection, written findings₦200,000–₦500,0001–2 weeks
Full integration with webhooks, reconciliation and go-liveNew or rebuilt Paystack, Flutterwave or Monnify integration, signed webhooks, verification, refunds, a daily reconciliation report, help with gateway activation and a live test₦500,000–₦1,200,0002–4 weeks
Multi-gateway / split payments / subscriptions + reconciliation dashboardTwo or more gateways with fallback, subaccounts and split settlement, subscription billing, virtual accounts and a reconciliation dashboard for your finance team₦1,200,000–₦3,000,0004–8 weeks
Ongoing monitoringWebhook failure alerts, gateway API changes, monthly checksSee our care plansMonthly

Gateway transaction fees and settlement charges are billed by Paystack, Flutterwave or Monnify directly to your account and are not part of our price. If the whole app has been abandoned, not just its payments, see our code takeover pricing.

Paystack Webhook Not Working? Why Payments Fail: A 12-Point Checklist

Work through this list before you pay anyone, including us. Every gateway behaviour below comes from the providers’ own developer documentation, checked in October 2026.

  1. Trusting the redirect. The page a customer lands on after paying is not proof of payment. Paystack says to send the reference to your server and verify it there; on redirects, the reference arrives as a query parameter on your callback URL.
  2. Reading the wrong status. In Paystack’s verify response, the top-level status only tells you the API call worked. The transaction’s own status is in data.status. Code that checks the first one can mark abandoned and failed payments as paid.
  3. Not checking amount, currency and reference. Flutterwave tells merchants to check the reference, the status, the currency and that the amount paid is at least what was expected before giving value.
  4. Wrong amount units. Paystack takes amounts in the currency’s subunit, which is kobo for naira, so ₦100 is sent as 10000. Its minimum naira transaction is ₦50. A missing ×100 turns a ₦5,000 order into a ₦50 charge.
  5. A broken signature check. Paystack signs events in an x-paystack-signature header (an HMAC SHA512 of the payload, keyed with your secret key). Flutterwave’s v3 API sends your secret hash in verif-hash; v4 sends flutterwave-signature, an HMAC-SHA256 of the raw body. Monnify sends monnify-signature, an HMAC-SHA512 keyed with your client secret. Hashing a re-encoded body, or checking the wrong version’s header, rejects genuine events.
  6. A check that only works in one environment. Monnify’s docs say monnify-signature is only included on production notifications, not sandbox ones. Code written against the sandbox often skips the check entirely, or rejects everything on launch day.
  7. Slow or non-200 responses. Paystack treats anything but a 200 OK as failed and, in live mode, retries every 3 minutes for the first 4 tries, then hourly for the next 72 hours (test mode: hourly for 10 hours, 30-second timeout). Flutterwave times out after 60 seconds, counts 3xx redirects as failures and retries 3 times, 30 minutes apart, only if retries are switched on. Acknowledge first; do the slow work in a queue.
  8. Framework security blocking the POST. Laravel applies CSRF protection to routes in routes/web.php and its docs say payment webhook routes must be excluded; Flutterwave’s docs say the same for Rails and Django. Without the exclusion, the gateway logs a failed delivery.
  9. Redirects and unreachable URLs. Paystack warns that localhost URLs can’t receive events and that .htaccess setups need the trailing slash on the URL. HTTPS redirects, firewalls and bot protection cause the same silence; Paystack publishes three webhook IP addresses and Monnify one, for allow-listing.
  10. Test settings left in production. Test and live environments have separate API keys, and Paystack’s docs refer to a webhook URL configured for each environment. A live site still holding test keys, or a webhook URL saved only in test mode, quietly breaks after launch.
  11. Double credits. Gateways can deliver an event more than once: Flutterwave says so, Monnify resends after a timeout or a non-200 reply, and Paystack tells sellers of airtime, wallet top-ups and digital credit to confirm they haven’t already delivered value. If both your callback page and your webhook credit the wallet, customers get paid twice.
  12. Relying on webhooks alone. Paystack currently sends webhook events only for successful transactions, and Flutterwave recommends a background job that polls pending transactions, for example hourly, in case your endpoint was down. Without one, a payment made during an outage can sit at “pending” for good.

On WooCommerce, check the basics first. Paystack’s official plugin page recommends saving the webhook URL shown on the plugin’s settings page in your Paystack dashboard, because poor network connections can stop order statuses updating after a payment.

What We Fix, Finish and Build

Webhooks and callbacks

Signature checks on the raw body, a fast 200 with queued processing, an event log and replay. Paystack’s Webhook Events API can resend past events, which helps recover payments missed during an outage.

Verification and double-credit protection

Every credit confirmed with the gateway’s verify endpoint, amounts compared in the right units, and a unique key per transaction reference, so a duplicate event, a refreshed callback page or a retry can never credit twice.

Sandbox to live, and gateway activation

Live keys in environment variables, live webhook URLs, one real low-value test payment and refund, and help preparing your business activation. See the go-live section below.

Split payments and subaccounts

On Paystack a split is a percentage by default, can be a flat fee to the main account instead, and charges fall on the main account unless the subaccount is set as bearer. Those settings decide who receives what.

Virtual accounts and transfers

Paystack’s Dedicated Virtual Accounts are only for registered businesses in Nigeria and Ghana that have completed go-live, and betting, financial services and general services businesses must validate customer identity first. Monnify offers reserved accounts.

Subscriptions and recurring charges

Paystack subscriptions support card and direct debit (Nigeria) only, and monthly plans started on the 29th to 31st bill on the 28th of later months. We handle renewals, failed charges, cancellations and the events that drive them.

Refunds, disputes and reconciliation

Refunds that reverse both the order and the wallet, dispute alerts, and a daily match of gateway transactions and settlements against your own ledger, so finance can account for every naira.

Mobile apps and frameworks

Flutter, React Native, native Android and iOS, Laravel, PHP, Node.js and WooCommerce. Paystack publishes Android, iOS and Flutter SDKs; Flutterwave publishes iOS and React Native SDKs and an official WooCommerce plugin. Secret keys stay on the server, never inside the app.

Sandbox to Live Without Rejected Submissions

One 2026 Freelancer brief summed up the worry: getting activation and KYC right, with “no rejected submissions, no surprise holds”. Going live is part code, part paperwork, and the paperwork is the gateway’s decision.

  • Paystack starts every account in test mode and switches it to live when your compliance details are submitted and approved. Requirements depend on your business type and country. Starter businesses give a personal bank account; registered businesses must give a corporate account in the same name as the registration document. If something is wrong, Paystack says its Business Reviews team will email you to fix it within 24 hours.
  • Flutterwave enables live transactions after you complete KYC verification, which includes submitting business documents. After approval you can transfer settings from the test environment to your live account.
  • Monnify only signs webhooks in production, so the signature check has to be retested after the switch.

We handle the technical side (live keys, webhook URLs, HTTPS, one real low-value payment and its refund) and walk you through the dashboard forms so names, bank accounts and documents match. Approval and timelines belong to the gateway. Nobody can promise them, so be wary of anyone who does.

Based abroad? Because Paystack’s requirements follow your business type and the country you register in, a company registered outside Nigeria may not qualify for a Nigerian account. Talk to your lawyer about structure, and see our payment gateway guide for the options.

How a Payment Fix Works, Step by Step

1. Free scoping call

Tell us the gateway, the stack and the symptom. Send a screenshot of one payment that succeeded on the gateway but not on your side.

2. Safe access

Read access to the code, a limited team login on the gateway dashboard, and server logs. We never need your card or bank login.

3. Trace one payment end to end

Initialisation, checkout, callback, the gateway’s webhook delivery log, the verification call and the database write. The break usually shows up in this trace.

4. Fix and harden

Correct the fault, then add signature checks, verification, idempotency, logging and a pending-payment sweeper, so the next fault is caught early.

5. Test in sandbox, then live

Gateway test cards and test accounts first, then one real low-value payment and refund in production.

6. Handover

Written notes on what changed, a short runbook for your support and finance staff, and an optional care plan for monitoring.

Who This Is For, and What We Have Shipped

  • VTU, bills and wallet apps where a missed or doubled credit is a direct loss. See VTU app development.
  • Online stores on WooCommerce or custom carts with orders stuck at “pending”. See online store setup.
  • Schools collecting fees: Paystack’s own split examples include separating tuition, accommodation and excursion fees.
  • Marketplaces, lenders, subscription businesses and event organisers (see Paystack payments and QR tickets).

For ETK Mall, a live Nigerian multi-vendor marketplace, we built Paystack checkout with webhook-based order confirmation and a split-payout layer that separates the platform fee from each vendor’s share. On Elite Creed’s lending platform, Paystack and Flutterwave handle repayment collection with scheduled debits, receipts and reconciliation of every transaction against the loan ledger.

Musskart Technology Limited is a Nigerian software company with its head office in Asaba and an office in Abuja, working with clients across Nigeria and abroad.

Payment Integration FAQs

Usually your webhook is failing, or your code is not crediting the customer after verification. Paystack records every webhook it tries to deliver and the response your server returned, so start there. Then confirm the live webhook URL is saved and that your code reads data.status, not the top-level status, from the verify response. The checklist above covers the twelve common causes.

Compute an HMAC SHA512 of the raw request body using your secret key and compare it with the x-paystack-signature header before you process the event. Paystack also publishes three IP addresses its webhooks come from, which you can allow-list.

On Flutterwave’s v3 API it is verif-hash, which carries the secret hash you set on your dashboard. On v4 it is flutterwave-signature, an HMAC-SHA256 of the raw body made with your secret hash. Use the one that matches the API version your code calls.

With Musskart, a health check or bug fix on an existing integration typically costs ₦200,000–₦500,000 (1–2 weeks); a full integration with webhooks, reconciliation and go-live ₦500,000–₦1,200,000 (2–4 weeks); and multi-gateway, split payments and subscriptions with a reconciliation dashboard ₦1,200,000–₦3,000,000 (4–8 weeks). Gateway fees are separate and billed by the gateway.

Make processing idempotent. Store each transaction reference in a table with a unique constraint, credit inside a single database transaction, and ignore events you have already processed. Gateways can deliver the same event more than once, and customers refresh callback pages.

Yes. We set live keys and webhook URLs, run one real low-value payment and refund, and help you prepare the gateway’s activation forms. Approval itself is the gateway’s decision.

Yes, plus PHP, React Native and native Android and iOS. Paystack and Flutterwave both publish official WooCommerce plugins and mobile SDKs, and we also fix hand-written integrations.

Yes. Multi-gateway setups sit in our ₦1,200,000–₦3,000,000 tier. A second gateway helps with outages and payment-method coverage, but it does not fix a broken webhook handler, so we fix that first.

We need enough access to test and deploy, but secret keys belong in environment variables on your server, not in code, chat messages or the mobile app. After handover, rotate them so former contractors, including us, no longer hold working keys.

Related Guides

Sources

Gateway rules change. We checked each against the provider's own documentation in October 2026. General information, not legal or financial advice.

Payments Not Reflecting? Let’s Trace One Together

Send us the gateway, your stack and a screenshot of one stuck payment. We will tell you what is likely wrong before you pay anything, then quote a fixed price.

WhatsApp Us Call: +234 813 168 6721 Email Us
WhatsApp Musskart