Skip to main content
Flutterwave Gateway for ERPNext — A build-to-order Flutterwave payment integration for ERPNext that accepts cards, mobile mon — 1/1Illustrative preview

A build-to-order Flutterwave payment integration for ERPNext that accepts cards,

mobile money, USSD, and bank transfer across 30+ African currencies, with tokenized recurring charges and webhook-driven reconciliation.

ECOSIRE builds, installs, and supports it after a scoping call.

What is Flutterwave Gateway for ERPNext?

A build-to-order Flutterwave payment integration for ERPNext that accepts cards, mobile money, USSD, and bank transfer across 30+ African currencies, with tokenized recurring charges and webhook-driven reconciliation. ECOSIRE builds, installs, and supports it after a scoping call. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Registers as a native ERPNext Payment Gateway so `Payment Request` and web checkout route through Flutterwave with no core patches
`Flutterwave Settings` single DocType holds public/secret/encryption keys via Frappe `Password` fields — no plaintext credentials in code or fixtures
Accepts cards, mobile money (M-Pesa, MoMo, Airtel), USSD, and bank transfer through Flutterwave Standard checkout
Supports 30+ pan-African settlement currencies (NGN, GHS, KES, ZAR, XOF, UGX, TZS, RWF and more) with per-currency routing
Whitelisted webhook endpoint verifies the `verif-hash` signature and re-verifies server-side against `/transactions/:id/verify` before crediting
`on_payment_authorized` doc-event hook auto-creates the `Payment Entry` and reconciles it against the source Sales Invoice
`Flutterwave Transaction` DocType logs `tx_ref`, `flw_ref`, amount, currency, and status for a full audit trail
Tokenized recurring charges: stores card tokens in a `Flutterwave Customer Token` DocType for card-not-present renewals
Payment Plans and subscriptions driven by a `scheduler_events` cron that charges due tokens and writes results back to ERPNext
Idempotency keys plus a reconciliation scheduler eliminate duplicate `Payment Entry` rows from retried or duplicate webhooks
Role-based permissions: gateway config limited to Accounts Manager, read-only transaction visibility for finance roles
Client Script adds a live status badge and 'Re-verify with Flutterwave' action on the Payment Request form
Sandbox/live toggle with environment-scoped keys for safe UAT before go-live
REST-API and whitelisted-method surface so external storefronts or headless frontends can initiate and query payments

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Pan-African ERPNext merchants routinely hit a wall at checkout. ERPNext ships integrations for a handful of global processors, but none of them cover the payment methods your customers in Nigeria, Ghana, Kenya, or Cote d'Ivoire actually use — M-Pesa and other mobile money wallets, USSD, and local bank transfers settled in naira, cedi, shilling, or franc. Without Flutterwave, you are stuck routing African customers through card-only rails that decline constantly, reconciling settlements by hand, and manually marking Sales Invoices as paid. The Payment Gateway and Payment Request DocTypes are present, but the connector that ties them to Flutterwave's collections and settlement flows is not.

We build a proper Frappe app — erpnext_flutterwave — that installs cleanly onto your bench and registers as a first-class ERPNext payment gateway. It introduces a Flutterwave Settings single DocType for your public key, secret key, and encryption/webhook secret (stored via Frappe's Password fieldtype, never in plaintext), plus a Flutterwave Transaction DocType that logs every charge along with its tx_ref, flw_ref, currency, and lifecycle status. When a customer pays a Payment Request, the app initializes a Flutterwave Standard checkout, presents cards, mobile money, USSD, and bank-transfer options in the customer's local currency, and returns them to your site.

Technically, the flow is closed by a whitelisted webhook endpoint (@frappe.whitelist(allow_guest=True)) that verifies the verif-hash signature against your stored secret, re-verifies the transaction server-side against Flutterwave's /transactions/:id/verify endpoint, and only then triggers the standard on_payment_authorized path — creating the Payment Entry and reconciling it against the originating Sales Invoice via Frappe doc events in hooks.py. For recurring revenue we store Flutterwave card tokens against a Flutterwave Customer Token DocType and drive Payment Plans and subscription renewals from a scheduler event (scheduler_events in hooks.py), charging tokenized cards on their due date and writing the result back to ERPNext. Idempotency keys and a status-reconciliation scheduler protect against duplicate or missed webhooks, and role-scoped permissions keep gateway configuration to Accounts Manager while exposing read-only transaction views to your finance team.

Because this is a build-to-order product, nothing ships until we agree on scope. We start with a short scoping call to confirm your currencies, payment methods, ERPNext/Frappe version (v15 or v16), and whether you need subscriptions or one-off collections only. We then build against your requirements, deliver on a staging bench for UAT, and go live with your keys. Typical delivery is one working week from confirmed scope, and you receive the full app source code and git repository so you are never locked to us.

What you get

  • Installable Frappe app source code (`erpnext_flutterwave`) built for your ERPNext/Frappe v15 or v16
  • Installation and configuration on your bench, including key setup, webhook registration, and sandbox-to-live cutover
  • Technical documentation: DocType reference, hooks/scheduler map, webhook contract, and reconciliation logic
  • End-user guide plus a live training session for your finance and operations team
  • UAT on a staging bench with test transactions, sign-off checklist, and a documented rollback plan
  • Post-go-live support window for defect fixes and configuration adjustments
  • Full git repository handover so you own and can extend the code
  • Version-tagged release with upgrade notes for future Frappe/ERPNext point releases

Who this is for

Pan-African online retailer

Sells across multiple African markets and needs a single ERPNext checkout that accepts local cards, mobile money, and bank transfer in each country's currency, with invoices auto-reconciled instead of matched by hand.

Subscription / SaaS business on ERPNext

Bills recurring plans and needs tokenized card renewals driven by ERPNext scheduler events, so Payment Plans charge automatically on their due date and post back to the ledger without manual intervention.

Finance controller / Accounts Manager

Owns settlement accuracy and wants signed, server-verified webhooks, an auditable `Flutterwave Transaction` log, and role-scoped access so only authorized staff can touch gateway keys.

ERP implementation partner or in-house ERPNext admin

Manages the bench and needs a clean, documented Frappe app with a git repo, upgrade notes, and no core patches — installable and maintainable across v15/v16 upgrades.

How Flutterwave Gateway for ERPNext Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
Flutterwave methods (cards, MoMo, USSD, bank)All four, scoped per marketWhatever you build and testOften cards-only or partialNot available
30+ pan-African currenciesEnabled per your marketsYou implement each oneLimited currency setGlobal processors only
Tokenized recurring chargesScheduler-driven card tokensBuild subscription logic yourselfRarely supportedNo Flutterwave subscriptions
Signed webhook + server re-verifyverif-hash + /verify, idempotentDepends on your rigorVaries, often weakN/A
Invoice auto-reconciliationPayment Entry via doc eventsWire the hooks yourselfBasic or manualManual matching
ERPNext v15/v16 supportBuilt and tagged for bothYou maintain compatibilityMay lag core releasesCore only
Source code + git handoverFull ownership deliveredYou own it (you built it)Usually closed/licensedN/A
Support and defect windowPost-go-live window includedYour team onlyTicket queue, tieredCommunity forums

Frequently Asked Questions about Flutterwave Gateway

Is this a ready-made app I can download and install today?

No. This is a build-to-order product. ECOSIRE builds the `erpnext_flutterwave` app against your confirmed scope — your currencies, payment methods, ERPNext version, and whether you need subscriptions — then installs and supports it. There is no instant download.

How long does delivery take?

Typical delivery is one working week from confirmed scope. Timing depends on complexity: a one-off collections gateway is faster than a full subscriptions build with tokenized recurring charges. We confirm a firm timeline on the scoping call once requirements are locked.

Which ERPNext and Frappe versions are supported?

We build for Frappe/ERPNext v15 and v16. The app installs as a standard Frappe app on your bench with no core patches, so it survives standard `bench update` cycles. We tag releases and provide upgrade notes for future point releases.

How do you handle support and updates after go-live?

Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the full source and git repository, your own team can also extend it. Longer-term maintenance and Flutterwave API-change updates are available as an ongoing support arrangement.

Which payment methods and currencies are covered?

Cards, mobile money (M-Pesa, MoMo, Airtel Money and others), USSD, and bank transfer, across 30+ pan-African settlement currencies including NGN, GHS, KES, ZAR, XOF, UGX, TZS, and RWF. We enable the exact subset you need per market during scoping.

How are payments reconciled in ERPNext?

A whitelisted webhook verifies Flutterwave's signature, re-verifies the transaction server-side, and only then triggers ERPNext's `on_payment_authorized` path to create a `Payment Entry` and reconcile it against the source Sales Invoice. Idempotency keys and a reconciliation scheduler prevent duplicate or missed entries.

Do we keep the source code?

Yes. You get the complete Frappe app source and a git repository handover, so you own the code outright and are never locked to ECOSIRE for future changes.

Request a quote

Flutterwave Gateway

A build-to-order Flutterwave payment integration for ERPNext that accepts cards, mobile money, USSD, and bank transfer across 30+ African currencies, with tokenized recurring charges and webhook-driven reconciliation. ECOSIRE builds, installs, and supports it after a scoping call.

  • Registers as a native ERPNext Payment Gateway so `Payment Request` and web checkout route through Flutterwave with no core patches
  • `Flutterwave Settings` single DocType holds public/secret/encryption keys via Frappe `Password` fields — no plaintext credentials in code or fixtures
  • Accepts cards, mobile money (M-Pesa, MoMo, Airtel), USSD, and bank transfer through Flutterwave Standard checkout
  • Supports 30+ pan-African settlement currencies (NGN, GHS, KES, ZAR, XOF, UGX, TZS, RWF and more) with per-currency routing

Request a Quotation

Tell us about your Flutterwave Gateway requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.