Authorization, capture, void, and refund are different state changes
A developer lifecycle for choosing the right operation and waiting for asynchronous outcomes.
Build a clearer model of the payment, the event and the ledger. These guides focus on failure handling and responsibilities—not copy-and-paste production guarantees.
Name the operation and its stable identifier.
Verify, deduplicate and check authoritative status.
Separate fulfillment, refunds and the eventual payout.
Original conceptual diagram. Not a provider protocol or implementation specification. Read the provider-specific sources in the guides below.
A developer lifecycle for choosing the right operation and waiting for asynchronous outcomes.
A developer pattern for stable operation identities, bounded retries, ambiguous outcomes, and reconciliation.
A receiver design for raw-body signature verification, durable intake, deduplication, ordering, and replay-safe effects.
A boundary map for redirects, embedded forms, scripts, merchant systems, providers, and SAQ eligibility.
A customer-safe dunning design that separates retryable failures, account updates, notices, grace, and cancellation.
An accounts-receivable workflow for identifiers, structured remittance, allocation rules, exceptions, and audit trails.
Separate payment states, repeat requests safely, and handle delayed or duplicated events without charging twice.
01 / OPEN READING PATH →Curious readers & product teams / 5 READSDistinguish a push from a pull, an instant request from a payment, and useful data from settled money.
02 / OPEN READING PATH →