Skip to main content

Gate execution

Execute only when the latest Authorization has all three values:
Start and finish before execute_before, and ensure any external credential cannot act after that deadline.

Commit after acceptance

Commit means the external executor accepted the action. It does not mean a card was created, a payment settled, or a service was fulfilled.
A successful commit atomically changes the Authorization to COMMITTED and its Mandate to CONSUMED. For the full pattern of taking an ALLOW and executing it on your own payment provider, see bind an authorization to your PSP.

Cancel only when execution is impossible

Disable every external card, token, job, or provider capability before calling the cancellation endpoint.
Use NEVER_BECAME_POSSIBLE only when no external capability was ever usable.

Resolve an uncertain response

1

Stop new execution

A timeout or 503 never grants permission. Do not start another action.
2

Read current state

Retrieve GET /v1/authorizations/{authorization_id}.
3

Replay the same operation

If still appropriate, retry with the same idempotency key and identical body.
4

Escalate terminal conflicts

A committed, cancelled, or expired Authorization cannot transition again.
When the outcome is ambiguous, follow the reconciliation decision table before committing or canceling — a timeout is not proof the provider did nothing.