Gateways
Flutterwave
Pan-African cards, mobile money, bank transfer, USSD and Barter via Flutterwave hosted checkout.
On this page
Pan-African cards, mobile money, bank transfer, USSD and Barter via Flutterwave hosted checkout.
At a glance#
| Type | flutterwave |
| Countries | Nigeria, Ghana, Kenya, Uganda, Tanzania, Rwanda, South Africa, Zambia, Cameroon, Côte d'Ivoire, Senegal, Egypt, Malawi |
| Currencies | NGN, GHS, KES, UGX, TZS, RWF, ZAR, ZMW, XAF, XOF, EGP, MWK, USD, EUR, GBP |
| Capabilities | Hosted checkoutOn-demand status verification |
| Gateway docs | developer.flutterwave.com/v3.0/docs |
Checkout experience#
Redirect to Flutterwave Standard hosted checkout (data.link from POST /v3/payments).
Configuration fields#
Enter these in the dashboard under Settings → Payment providers → Flutterwave. Secret fields are encrypted at rest and masked after saving; leave a secret blank when editing to keep the stored value.
| Field | Type | Notes |
|---|---|---|
| Live secret key liveSecretKey | Secret | Settings > API Keys. Used when Sandbox is off. |
| Test secret key testSecretKey | Secret | Used when Sandbox is on. |
| Webhook secret hashrequired secretHash | Secret | Settings > Webhooks: set the URL to this provider's webhook URL and enter the same secret hash here. Sent back in the verif-hash header. |
Every provider also has Enabled, Sandbox / test mode and Default checkout method switches.
Notification URL#
https://app.centrapoint.co.za/api/webhooks/flutterwave?provider={providerId}Copy the exact URL, with your provider ID filled in, from Settings → Payment providers.
- In Flutterwave → Settings → Webhooks, set the URL to this provider's notification URL and choose a secret hash.
- Enter the same value in the provider's "Webhook secret hash" field.
How notifications are verified#
- The verif-hash header must equal your configured secret hash (constant-time comparison).
- Every event is re-verified with GET /v3/transactions/:id/verify (or verify_by_reference). Only a matching amount and currency is reported as complete.
- The amount and currency must match the transaction before it can be marked complete.
Going live#
- Test with sandbox credentials and Sandbox / test mode on, and confirm the notification appears as processed in the Webhook log.
- Replace the credentials with live ones and switch off Sandbox / test mode.
- Update any URL or secret configured in the gateway's portal for the live environment.
- Make a small live payment and confirm it with the Transactions API.