Show the exact decision
Present the provider, scope, material terms, expiry, payload digest, and consequential values returned by the current Action. Do not replace them with a model-written summary when collecting authority.
Require a bound choice
- Show controls only when
availableActions contains approve.
- Submit the exact approval ID, expected revision, reviewed payload digest, and decision.
- Use a new mutation
requestId for a different decision and reuse it only for an identical retry.
- Never preselect approval or infer it from conversation text, an account preference, or a previous approval.
Invalidate changed terms
If the payload, price, merchant, cart, revision, digest, or expiry changes, discard the old review and ask again. An approval is single-use authority over the exact interaction that was shown.
Recover from browser and network failures
A closed window, redirect, or successful HTTP request is not proof that the Action advanced. Re-read the same actionId and render the backend-confirmed state.
Test the uncomfortable paths
Test expiry while the review is open, two clients deciding at once, a revision change before submission, duplicate requests, rejection, and provider failure after approval.Last modified on September 22, 2026