Flutterwave Payments for Odoo
BYOK multi-rail payment gateway connector — card, mobile money and bank collections plus payouts, with verified reconciliation
One connector for collections and payouts
This module connects your Odoo back office directly to your own
Flutterwave merchant account using your own API keys
(Bring-Your-Own-Keys). Nothing is routed through a third party:
your secret key, encryption key and webhook secret hash stay in
your database and are sent only to the official Flutterwave v3
endpoint you configure. It is built on the Odoo Community
account base — no Enterprise apps required.
Multi-rail collections
Raise a collection request against a customer and an optional invoice, then collect through the rail that fits the payer: hosted checkout link, direct encrypted card charge, mobile money, pay-with-bank transfer, USSD or bank-account debit.
Bank & mobile-money payouts
Disburse to bank accounts or mobile wallets (M-Pesa, MTN MoMo, Vodafone Cash and more), quote the transfer fee before sending, and refresh each payout's status straight from the API.
Verified reconciliation
A collection is only ever marked successful after the connector re-queries the Flutterwave verification endpoint and confirms the amount and currency match — exactly as Flutterwave's best-practice guidance requires. Charge responses are never trusted on their own.
Authenticated webhooks
A public endpoint at /flutterwave/webhook validates
every incoming event against your secret hash (the
verif-hash header, with HMAC-SHA256 also supported)
before re-verifying the transaction through the API.
Features
| Capability | What it does |
|---|---|
| Hosted Checkout | Generate a Flutterwave Standard Checkout link from a collection request and open it in one click. |
| Direct card charge | Card data is 3DES-encrypted client-side and submitted as the encrypted client field; nothing card-related is stored in Odoo. |
| Mobile money | Charge and pay out via published operator codes (e.g. MPS for M-Pesa, MTN, Vodafone). |
| Bank transfer & USSD | Collect through pay-with-bank and USSD rails. |
| Payouts | Create transfers to banks or mobile wallets with fee quoting and status refresh. |
| Transaction verification | Re-query /transactions/{id}/verify and match amount + currency before giving value. |
| Webhook authentication | Constant-time verif-hash check, then API re-verification. |
| Vendor-bill payouts | Turn selected posted vendor bills into draft payouts in one action. |
| Multi-currency | ISO 4217 aware (EUR, USD, GBP, NGN, KES, GHS, ZAR, RWF, UGX, XAF and more), including zero-decimal currencies. |
| API call log | Every request is logged with operation, status, duration and an error flag. |
| Scheduled reconciliation | Optional crons re-verify pending collections and refresh pending payouts. |
How it works
- In Settings → Flutterwave, paste your Secret Key, Encryption Key and Webhook Secret Hash, then press Test Flutterwave.
- Create a Collection, choose a rail and initiate it. For cards, use the secure Charge Card wizard.
- When the payer completes, the webhook (or the Verify button, or the cron) re-queries Flutterwave and reconciles the state.
- Pay vendors from the Payouts screen or straight from selected vendor bills.
BYOK & disclosure
This is a connector to your own Flutterwave account. It builds and transmits requests using your credentials and does not act as a payment processor, aggregator or settlement provider. Flutterwave's own fees, settlement and regulatory terms apply to your account. Compatible with Odoo 18 and Odoo 19.
Screenshots
Api Log
Collections
Payouts
Settings
Update date: 2026-07-02