Workflow evaluation
When a payment times out, can checkout safely retry?
Follow one payment through a missing response, a retry, and reconciliation. See the evidence a release owner needs before the change reaches more stores.
6 minute read By Zof Updated October 26, 2026
This guide presents an evaluation method, not a report of a completed customer engagement.
- Workflow
- Capture and order reconciliation
- Trigger
- A change to the payment handler
- Environment
- Staging with synthetic transactions
- Boundary
- One logical payment and one intended capture
The payment provider accepts a capture. Its response arrives too late for checkout, which offers a retry. The customer sees an unfinished sale. The provider may already hold a completed payment. Will another attempt recover the order or charge for it again?
Use this evaluation method to follow that disagreement through one checkout release. Identify the failure condition, reproduce it within an approved environment, and establish what safe recovery means for the payment integration.
A timeout does not reverse a payment
Assume the order already has the authorization needed for capture. The evaluation covers one logical payment with one intended capture for the agreed amount. Split tender, partial captures, refunds, and settlement reconciliation sit outside its scope. They need their own rules and checks.
A normal test confirms that a response marks the order paid. The harder case starts when the response is missing. Creating a new payment operation can duplicate the charge. Suppressing every retry can leave the customer charged while the order remains unresolved. The recovery rule must address both states.
Agree the recovery contract first
The payments owner supplies the API version, operation identity, allowed amount, retry window, and reconciliation method. The team selects a payment test account or a simulator whose behavior is documented. No live payment credentials belong in the fixture.
Stripe documents that API v1 retries with the same key return the saved result after execution begins. Parameters must match, and retained keys can be removed after at least 24 hours. That is one provider contract, not a universal payment rule. The actual integration determines which recovery cases are valid.
Follow the workflow
One payment, two views of its state
- 01
Checkout
Create the intended payment
Record the synthetic order, authorized amount, and stable identity for this capture operation.
- 02
Provider fixture
Accept capture, delay confirmation
Accept the request while withholding its response beyond the configured checkout timeout.
- 03
Checkout
Enter an uncertain state
Record the timeout without treating it as proof that capture failed. Preserve the original operation identity.
- 04
Recovery path
Resolve the original attempt
Run the permitted retry or reconciliation action. Connect its evidence to the existing logical payment.
- 05
Release reviewer
Compare both final states
Inspect capture count and amount alongside the completed or explicitly unresolved order state.
Connect the changed handler to the checks that matter
In the proposed Zof workflow, the engineering owner provides the candidate change, relevant service interfaces, existing checks, and fixture assumptions. System Graph supplies the connection between the handler and its dependencies. The resulting scope should include order reconciliation as well as the immediate payment response.
The Verification Engine selects and runs verification using approved tools, customer validators, and existing CI evidence. Here, the useful output is a finding tied to the candidate, failure condition, and affected order. Engineers still define correct financial behavior, approve access, and decide whether the evidence supports rollout.
Inspect the second attempt, not just its response code
The timeline deliberately separates provider state from checkout state. An HTTP success on the recovery request is insufficient. The reviewer needs the final capture count and amount, the order state, and the connection between both attempts and the original logical payment.
A delayed confirmation, repeated recovery request, and reconnect after interruption exercise different paths. Stripe’s network error guidance explains why restored connectivity alone cannot establish whether an earlier request succeeded. Unresolved outcomes need reconciliation under the provider’s rules, rather than a fresh operation created merely to clear an error.
An evaluation you can inspect
Recovery conditions worth testing
Acceptance criteria for the single capture workflow. The agreed provider policy defines retry timing and the permitted final order state.
| Condition | Expected behavior | Evidence to inspect |
|---|---|---|
| Ordinary confirmation | One intended capture; order paid | Provider record and matching order transition |
| Confirmation after timeout | Recover the existing payment | Both attempts linked to one operation |
| Repeated recovery request | No additional capture or amount | Capture records and unchanged financial total |
| Connection restored | Reconcile before resolving the order | Recovery action and final state comparison |
| Retry window exhausted | Follow the agreed escalation policy | Unresolved state, owner, and reconciliation record |
On a small screen, scroll the matrix to compare all columns.
Failure condition to test
Failure condition: recovery creates a second capture
- Condition to exercise
- Check whether a recovery action creates another payment operation when the original capture has already succeeded.
- Required behavior
- One intended capture for the agreed amount, connected to a defined order resolution.
- Evidence to collect
- Candidate and fixture identifiers
- Original and recovery request relationships
- Final capture count, amount, and order state
- Release decision
- Block wider rollout until the duplicate operation is explained, corrected, and the relevant recovery cases are checked again.
Make the environment part of the evidence
A simulator can establish that checkout reacts correctly to a defined response sequence. It cannot establish that a real provider produces that sequence under every condition. Record what the fixture represents, which store configurations are covered, and which behavior still needs a provider test environment.
If local connectivity changes the result, assess execution inside the store network during scoping. The owner approves the accounts, paths, and evidence location. Any proposed fix returns through engineering review and the same recovery checks before a wider rollout is considered.
A release decision needs a financial answer
The release owner should stop the rollout for an unintended additional capture, a wrong amount, or an order that remains unresolved beyond the agreed recovery policy. Missing evidence is an open question, not a pass. Each exception needs an owner and a disposition.
Measure review effort separately if efficiency is an evaluation goal. Use comparable releases and a consistent definition of review time. Keep that measurement separate from the payment correctness checks, and retain the fixture’s provider and tender limits in the release record.
Before you scope the work
What should we bring?
One checkout change, its owner, the provider contract, and access to a representative test environment. Identify the recovery behavior you are least certain about.
Can we use existing payment tests?
Yes. Include relevant tests and CI results in scoping. The investigation should expose a missing recovery condition and connect its evidence, rather than replace useful existing coverage.
Does this require live transactions?
The proposed evaluation uses synthetic orders and approved test facilities. Any behavior those facilities cannot reproduce remains an explicit limit of the conclusion.
What would we receive?
A Reliability Sprint provides scoped findings, supporting evidence, reproduction steps, a baseline, and prioritized recommendations. Scope, price, environment, and timing are agreed before work begins.
Resolve the payment and the order together
A safe retry preserves financial intent and gives the order a defined outcome. The release evidence must demonstrate both under the failure conditions that matter.
Sources and scope
These primary references explain the mechanisms and review practices used in this evaluation.
- Idempotent requests · Stripe
API v1 key reuse, parameter matching, and retention. Other API versions and providers require their own contract.
- Network errors and recovery · Stripe
Why a missing response leaves an uncertain outcome and recovery must preserve the original operation.
Your workflow. Your evidence.
Put one checkout workflow under scrutiny
Bring the payments engineer who owns recovery and the release question you need answered. Scope a paid Reliability Sprint around that workflow and the evidence needed for the next decision.
A paid engagement for one critical system. Scope and price are agreed first. Seven days is typical; access and deployment requirements can extend the timeline.
Continue the investigation
Manufacturing and plant software
After the plant connection returns, is the order still in the right state?
Follow another recovery problem where interrupted connectivity changes an order’s state.
Cybersecurity software
A detection update should not change who can see the event.
Inspect how a shared processing change can preserve one result while breaking another boundary.
- Retail validation
Place the checkout investigation in the wider store and payments environment.
- Verification Engine
See how Zof selects checks and collects evidence for a change.
