PumpFuel connects drivers, fuel stations, and enterprise fleets through a single payment platform — with NFC cards, QR codes, and real-time wallet settlements.
Designed for any fuel operator
From wallet top-up to pump confirmation in under two seconds.
The driver loads funds into their PumpFuel wallet via Mobile Money, bank transfer, or cash. Balance is updated in real time once the payment is confirmed.
The driver opens the app or taps their NFC card at the pump. Before confirming, they can add products from the station catalog — lubricants, accessories, services — to their order.
The terminal sends a signed request to the backend. The balance is verified and the funds are locked in real time. The pump receives its go-ahead.
The pump opens and fuel flows. The attendant confirms the actual volume delivered on the terminal. The transaction is finalized.
Station revenues are consolidated automatically and payouts are triggered to each station's configured account — with no manual intervention.
A single backbone for wallets, terminals, settlement, and audit — designed for the realities of African fuel retail.
Every client gets a General wallet, per-card Dedicated wallets, and Enterprise wallets from partner companies. Each isolated, each audited.
Physical NFC card tap, 30-second TTL QR codes, or 6-character app codes. The TPE handles all three. No internet required on client side.
Idempotency keys in Redis + SELECT FOR UPDATE locking + PostgreSQL CHECK constraints. Clients are debited exactly once, even with network retries.
Companies fund a central wallet and distribute to employees. Suspend a member's access instantly. Full transaction reporting per employee.
Every TPE gets a unique XXXX-XXXX-XXXX registration secret at onboarding. SHA-256 stored. Shown once, never recoverable. Legacy fallback supported.
Station revenues are consolidated nightly and payouts triggered automatically to the configured bank account. Full double-entry audit trail — every unit accounted for.
Each station freely defines its own products and services — lubricants, car accessories, maintenance — with station-specific prices. Clients browse and add items directly in the app before paying.
Fuel and catalog items are bundled into a single atomic transaction. The client sees a clear receipt — fuel amount, services, total. The station receives one net payout.
Each component speaks to the others through secured APIs and event webhooks — idempotent, observable, and built to fail safely.
Every franc tracked. Every transaction logged. Every retry safe.
// Atomic debit with pessimistic lock
await sequelize.transaction(async (t) => {
const wallet = await PumpWallet.findOne({
where: { id: walletId, clientId },
lock: t.LOCK.UPDATE,
transaction: t,
});
if (parseFloat(wallet.balance) < amount)
throw new Error('INSUFFICIENT_FUNDS');
await wallet.decrement('balance', { by: amount, transaction: t });
await tx.update({ state: 'AUTHORIZED' }, { transaction: t });
});// Double-entry audit trail
await Operation.bulkCreate([
{ type: 'PUMP_DEBIT', side: 'DEBIT', amount },
{ type: 'PUMP_CREDIT', side: 'CREDIT', amount: netStation },
{ type: 'COMMISSION_DEBIT', side: 'DEBIT', amount: commission },
{ type: 'COMMISSION_CREDIT', side: 'CREDIT', amount: commission },
], { transaction: t });
// Every franc traced — by side, by counterparty,
// by transaction. Reconciliation by SQL.PumpFuel is built and battle-tested. Contact us to discuss a deployment for your market.