The verdict in three sentences
Flutterwave Standard is a hosted redirect checkout: your server initializes a transaction, redirects the customer to Flutterwave, then receives a callback to reconcile. Local fees sit near 1.4 %, international transactions near 3.8 %, and GHS settlement is typically T+2. Always re-verify the transaction server-side before fulfilling, because roughly 6 % of redirects come back without a reliable status.
The 4 steps of Flutterwave Standard
| Step | Call / action | Expected result |
|---|---|---|
| 1. Initialize | POST /payments with tx_ref | payment link (hosted page) |
| 2. Redirect | Send customer to link | Customer pays on Flutterwave |
| 3. Callback | redirect_url + webhook | status + transaction_id |
| 4. Verify | GET /transactions/{id}/verify | successful / failed |
The tx_ref is your unique reference; store it with the order. The redirect URL brings the customer back, but the source of truth is the server-side verify call, not the browser return.
Flutterwave (Ghana) vs Orange Money (Benin): 2026 figures
| Criterion | Flutterwave Ghana | Orange Money Benin |
|---|---|---|
| Local fee | ~1.4 % | ~1.5 % |
| International transaction | ~3.8 % | n/a (local) |
| Settlement | T+2 (GHS) | T+1 |
| Model | Hosted redirect (Standard) | Redirect + callback |
| Redirect failure rate | ~6 % | ~8 % |
| VAT on fees | Applicable | Applicable |
| Currency | GHS (cedi) | XOF (FCFA) |
In both cases VAT applies to service fees, so build it into your margin calculation, not just the headline rate.
Reconciliation: never trust the browser return
A ~6 % redirect failure rate means roughly one in seventeen customers returns without a reliable status. Your logic should:
- Mark the order
pendingwhen you create the payment link. - Listen to the webhook for the status update.
- Run a reconciliation job that verifies
pendingorders older than 5 minutes. - Only set
paidafter a server-verified successful status.
Mini case study
Ibrahim, who runs an electronics store in Kumasi, processes 240 Flutterwave payments a month averaging ₵260, or ₵62,400. At 1.4 % local fees he pays about ₵874 monthly. With a 6 % redirect failure rate, roughly 14 transactions a month need automated reconciliation; without a dedicated job he could lose track of about ₵3,744 in ambiguous orders each month.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
FAQ
Can I verify a Flutterwave payment from the browser?
No. Verification uses your secret key server-side. The redirect only carries a status hint; your backend must call the verify endpoint.
How much does Flutterwave cost in 2026?
Around 1.4 % locally and roughly 3.8 % for international transactions, plus applicable VAT on the service fees.
How long until I get settled?
GHS settlement is typically T+2, so plan your cash flow around a two-business-day delay.
What if the customer abandons the redirect?
Keep the order pending and let the reconciliation job decide via the server verify call. The browser return is not proof of payment.
Do I still need webhooks with Standard checkout?
Yes. Verify the webhook signature and treat it as a redundant source of truth alongside your verify call.
Let's talk about your project. We set up Flutterwave Standard checkout with webhooks and automated reconciliation for your Kumasi store. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.

