Payment Checkout & Ledger Service · View 09 of 24 · Structure
Decisions
- Only the merchant server API can create a payment or a refund. The checkout SDK can confirm an existing intent and nothing more (ADR-15).
- Provider callbacks are verified and persisted raw before interpretation, so a parser bug never destroys evidence (ADR-05).
- The nightly finance extract reads projections, never the ledger, so a reporting workload cannot contend with posting (ADR-16).
Interface contracts
- Settlement files arrive over SFTP with a per-provider arrival SLA and a late-file alarm; ingest is idempotent and re-runnable.
- Merchant webhooks are at-least-once with a per-object sequence number and 72 hours of retry, then a pull-based catch-up API.
- Egress to every money network leaves through an allowlisted proxy on static IPs.
Accepted clutter
- The route checker reports one warning on this page: the 'payout' and 'webhooks' labels sit close to adjacent lines. It is inherent to a hub fan and is the only warning in the 24-view set.