CentraPoint

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#

Flutterwave summary
Typeflutterwave
CountriesNigeria, Ghana, Kenya, Uganda, Tanzania, Rwanda, South Africa, Zambia, Cameroon, Côte d'Ivoire, Senegal, Egypt, Malawi
CurrenciesNGN, GHS, KES, UGX, TZS, RWF, ZAR, ZMW, XAF, XOF, EGP, MWK, USD, EUR, GBP
CapabilitiesHosted checkoutOn-demand status verification
Gateway docsdeveloper.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.

Flutterwave configuration fields
FieldTypeNotes
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#

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#

  1. Test with sandbox credentials and Sandbox / test mode on, and confirm the notification appears as processed in the Webhook log.
  2. Replace the credentials with live ones and switch off Sandbox / test mode.
  3. Update any URL or secret configured in the gateway's portal for the live environment.
  4. Make a small live payment and confirm it with the Transactions API.