Checkout lifecycle

A checkout session progresses through several states during its lifetime. Understanding these states helps agents determine when a checkout is ready for payment and how to handle transitions.

Status flow

Status definitions

StatusDescriptionNext States
not_ready_for_paymentSession created but missing required information (e.g., no fulfillment option selected). Messages array will indicate what's needed.ready_for_payment, canceled
ready_for_paymentAll required information provided. Session can be completed with payment.in_progress, canceled
in_progressPayment processing has started. Session is locked during payment processing.completed, ready_for_payment (if payment fails), canceled
completedPayment successful and order created. This is a terminal state.None
canceledSession explicitly canceled or expired. This is a terminal state.None

State transitions

Creating a session

  • New sessions start in not_ready_for_payment if required information is missing
  • Sessions with all required information start in ready_for_payment

Updating a session

  • Sessions remain in their current state unless the update resolves blocking issues
  • Providing a fulfillment option when one was required transitions from not_ready_for_payment to ready_for_payment

Completing a session

  • Transitions from ready_for_payment to in_progress when payment processing begins
  • Transitions from in_progress to completed when payment succeeds and order is created
  • May transition back to ready_for_payment if payment processing fails

Canceling a session

  • Any non-terminal state can transition to canceled
  • Sessions in completed or canceled status cannot be canceled
Documentation | Agentic Commerce Protocol