Mobile-money payments
The African payment reality is mobile money, not cards — over 1.1 billion registered accounts. Gomani makes mobile money first-class and cards secondary, behind a single provider-agnostic PaymentProvider interface.
import { createPaymentEngine, createMockProvider } from '@gomani/pay';
const engine = createPaymentEngine({
provider: createMockProvider(), // a deterministic USSD/STK simulator, offline by default
store: paymentStore,
});
The engine owns idempotency: the intent is persisted before the provider is called, so a dropped connection mid-payment never double-charges — a repeat key reconciles instead. Terminal states are frozen and fulfilment fires exactly once. Gomani holds no funds (a pass-through posture).