CHECKOUT LIFECYCLE
One request. Eight exact statuses.
Status tells the application what the checkout needs now. A checkout can move to a help or approval state before it reaches a final result.
- WAIT
queuedThe checkout waits to start.
- RUN
startedThe merchant checkout is in progress.
- ASK
help_requiredThe checkout needs information from the user or application.
- APPROVE
approval_requiredThe final payment waits for separate approval.
- SEND
submittingThe approved order is being sent to the merchant.
FINAL RESULTS
completeThe merchant checkout completed.
failedThe checkout stopped because it could not continue.
cancelledThe checkout was cancelled.
HUMAN CONTROL
Help is not payment approval.
The two pauses have different purposes. Keep them separate in the user interface and in the checkout logic.
help_required
A message can provide missing checkout information. It can answer a question so the checkout can continue.
Messages cannot authorize payment.approval_required
Final payment approval uses a dedicated, trusted boundary. The checkout must wait for this approval before it submits the payment.
Only payment approval gives payment authority.PROGRESS SIGNALS
Read each signal for its stated purpose.
Shopstack can show more detail between status changes. This detail helps the user understand progress. It does not change who can approve a payment.
- STATUS
- The current state in the checkout contract. Use it to decide what the application must do next.
- ACTIVITY
- A bounded progress update. It can describe current work, but it is not payment authority.
- INTENT
- A mechanical action name and phase. It is not model reasoning, action data, proof of merchant progress, or payment authority.
RESPONSIBILITY
Give each part one clear job.
A controlled checkout is easier to review when each system and person has a clear responsibility.
Define the purchase.
Send the product URL and purchase constraints.
Run the checkout.
Work through the merchant flow and return the current status.
Keep final control.
Provide help when needed and authorize final payment.
LIMITS AND EXCEPTIONS
A request is not a completed purchase.
Checkout execution has typed limits. Your application must keep them visible and must handle each state directly.
- 01
A maximum amount is a spending ceiling. It is not approval of the final charge.
- 02
A checkout can pause for information or for a protected action. The application must handle that boundary.
- 03
Only
completemeans that the checkout was successful. - 04
The final result contains the checkout information that the merchant makes available.
PRIMARY SOURCES
Read the source material.
- Shopstack checkout skillProduct contract and operating guidance
- W3C Payment Request API ↗Web payment request standard
- OWASP Transaction Authorization ↗Transaction authorization controls
BUILD WITH THE CONTRACT