@gomani/pay@1.2.0
npm size budget4.5 KB / 7.0 KB ✓
@gomani/pay
createPaymentEngine owns idempotency: the intent is persisted before the provider is called, so a repeat key reconciles instead of re-charging. Providers plug in behind a single PaymentProvider interface; a deterministic mock runs offline by default.
API
createPaymentEngine
function
createPaymentEngine(config: PaymentConfig): PaymentEngine
An idempotent payment engine over a pluggable PaymentProvider + PaymentStore. Terminal states are frozen; fulfilment fires exactly once.
PaymentProvider
interface
interface PaymentProvider { initiate(...): Promise<PaymentIntent>; status(...): Promise<PaymentStatus> }
The provider seam — mobile-money operators, gateways, or aggregators, swapped without touching application code.