Package-level declarations

Types

Link copied to clipboard
class HttpWalletLedgerPort(httpClient: HttpClient, apiConfig: PaymentApiConfig) : WalletLedgerPort

WalletLedgerPort over the same /wallet/{accountId}/debit + /refund routes WalletGateway uses for its own debit — this is the orchestrator's seam for the split-payment compensating credit, kept off WalletGateway itself (see that class's doc comment on why refund isn't there).

Link copied to clipboard
data class WalletConfig(val gatewayId: GatewayId, val displayName: String, val walletAccountId: String, val region: String = "Global", val docsPath: String, val blurb: String, val capabilities: Set<Capability> = setOf(Capability.ONE_TIME_PAYMENT, Capability.WALLET, Capability.REFUND), val status: GatewayStatus = GatewayStatus.SANDBOX_READY)

Archetype-E (internal rail): a backend double-entry ledger, no external SDK at all. Unlike every other provider archetype, there is no sandbox to be "ready" for — the ledger IS the whole implementation, so this is always GatewayStatus.SANDBOX_READY.

Link copied to clipboard
class WalletGateway(config: WalletConfig, httpClient: HttpClient, apiConfig: PaymentApiConfig) : PaymentGateway

Archetype-E ("internal rail"): a PaymentGateway backed by the consumer's own double-entry ledger server — no external SDK, no WebView, no 3DS/webhook. prepare pre-flight-checks the wallet balance (server round-trip, per the interface contract); pay posts the debit idempotently and reports the ledger txn as the payment id.