Package-level declarations

Types

Link copied to clipboard
data class MobileMoneyConfig(val gatewayId: GatewayId, val displayName: String, val region: String, val docsPath: String, val blurb: String, val capabilities: Set<Capability> = setOf(Capability.ONE_TIME_PAYMENT, Capability.WALLET), val status: GatewayStatus = GatewayStatus.MOCK_MODE)

One archetype-D (async mobile-money) gateway. Unlike archetype C (hosted-webview), there is no synchronous UI at all — the user confirms on their phone (SMS/USSD/STK push) outside the app, so MobileMoneyGateway.pay() never launches anything; it just returns Pending and lets the orchestrator's existing poll-with-backoff (already built for UPI intent's SUBMITTED limbo) find out what happened.

Link copied to clipboard
class MobileMoneyGateway(config: MobileMoneyConfig, httpClient: HttpClient, apiConfig: PaymentApiConfig) : PaymentGateway

Archetype-D: no SDK, no WebView, no UI at all in pay() — mobile-money confirmation happens on the payer's phone outside this app (an STK push / SMS / USSD prompt), so all this gateway does is kick off the mock delayed-flip (POST /mock/momo/{id}) and return Pending immediately. A poll- with-backoff on the consumer side picks up the result once its backend flips it.