Payment Checkout & Ledger Service  ·  View 14 of 24  ·  Runtime

The Unknown Outcome

The flow that is not an error path: the provider does not answer, and nobody may guess.

Editable source SVG draw.io All views
Buyer Intent service Provider adapter Acquirer Outcome poller Settlement matcher Ledger Merchant 1. confirm 2. authorize 3. auth request 4. no answer in 8 s 5. result=unknown 6. state := processing 7. processing, do not retry 8. re-taps: same key 9. same intent, no 2nd attempt 10. inquiry (if supported) 11. still unknown 12. T+1 file: ref present 13. resolve → authorized 14. post, event_id key 15. webhook: succeeded Critical Flow — The Unknown Outcome No second provider attempt is ever made after an unknown. The resolution ladder is inquiry, then the settlement file, and the file is the evidence. v 1.0 · owner Payments Platform Architecture · date 2026-10

The rule

  • No second provider attempt is ever made after an unknown result. A retry is the one action that can produce a double charge, and the double-charge budget is ≤ 1 per 1,000,000 attempts (ADR-04).
  • The resolution ladder is inquiry (where the provider supports it), then the settlement file. The file is the evidence.

Decisions

  • `processing` is a terminal-pending state that only an inbound signal or a reconciliation job may leave — never a client retry (ADR-04).
  • The buyer re-tapping is served by the edge idempotency key and produces no second attempt (ADR-03).
  • The settlement matcher is allowed to resolve payment state, which makes a batch job a writer to the payment path — accepted deliberately, with constraints, in ADR-12.

Risks

  • Resolution can take up to 24 hours. A merchant who ships on `processing` has taken a risk the platform has told them not to take, and some will.
  • Void-and-retry would resolve in seconds and depends on a provider honouring a void for a transaction it may not admit exists. The trade is Question 2 and the decision is ADR-04.