Skip to content
<UK/>

Payment flow simulator

Docking Sequence

Follow one card payment through a 3-D Secure challenge and back, then break the handoffs that lose real money.

Fictional merchant · illustrative model · no real payments

Pre-flight

Fault to inject
Defences

Changing the fault or a defence restarts the sequence. The address bar keeps your setup, so you can share it.

Docking track

Kestrel Supply (fictional) · ORD-2048 · ₺18,400.00
  • Buyer’s browser
  • Merchant API · replica A
  • Payment provider
  • Issuer ACS
  1. 01OrderThe buyer commits to a fictional B2B order.not reached yet
  2. 02Payment intentThe merchant opens a payment and remembers what it started.not reached yet
  3. 03Issuer challengeThe issuer’s ACS asks the buyer to prove the card is theirs.not reached yet
  4. 04CallbackThe buyer’s browser brings the result back to the merchant.not reached yet
  5. 05CaptureThe merchant turns the hold into a charge.not reached yet
  6. 06ConfirmedOne payment, one confirmed order, one fulfilment.not reached yet

Standing by. Pick a fault and your defences, then press Next step.

Step 0 of 10

Ledger

On hold
0
Captured
0
Refunded
0
Orders confirmed
0
Fulfilments
0
Net charged vs confirmed0 net charged, 0 confirmedIn flight: the result is not final yet.
Merchant’s order
Not created
Buyer sees
Checkout page

Flight log

No messages yet. Press Next step to send the first one.

Debrief

Run the sequence to the end to see what the merchant and the buyer are left with.

Model boundaries

Kestrel Supply, the order, the payment provider and every incident here are fictional. Nothing contacts a bank or payment service, and there is no card form. The flow is simplified to one provider, one card and one challenge, and each fault has a fixed, authored outcome. In this model the merchant keeps the token → order mapping only in replica A’s memory. Real providers let you attach your own reference to the payment (iyzico returns your conversationId to the callback) or look the payment up by its ID (Stripe adds it to the return URL), which also prevents the “Callback on another replica” fault. Providers also differ in other ways: some complete the payment only when the merchant calls them after the callback, others notify by webhook, and authorisation windows vary by card network. No outcome here describes a real merchant’s incident.

Why this room

Umut’s B2B marketplace work in the projects section includes 3-D Secure and bank-transfer payment flows. Payments are where a lost handoff costs real money, so this room is about designing for the handoffs. The merchant, order and incidents here are fictional.

Sources