Update checkout session before confirmation

Update an existing checkout session's contract, customer details, expiration, currency, redirect URLs, attribution, or custom data.

Common use cases:

  • Plan changes: Switch between subscription plans or products
  • Quantity adjustments: Change seat counts or usage tiers
  • Billing date changes: Adjust contract start date
  • Customer information correction: Fix details for guest checkout
  • Configuration updates: Change URLs, expiry, or add tracking data

Rules and validations:

  • Only sessions in 'open' status and with payment_status 'not_started' can be updated
  • Contract updates support both plan-based and product-based formats
  • Currency must match between checkout session and contract if both provided
  • URL fields must be valid, fully-qualified URLs with https scheme
  • Customer details can only be updated for guest checkout sessions
  • Customer identity (customer_id) cannot be changed after creation

System behavior:

  • Contract changes automatically trigger recalculation of pricing estimates
  • All updates are recorded in an audit trail under custom_data
  • Last activity timestamp is updated to track checkout progression
  • Validation errors will prevent any changes and return specific error codes

Related endpoints:

  • POST /checkout_session: Creates the initial session that can be updated
  • GET /checkout_session/{id}: Check current session state before updating
  • POST /checkout_session/{id}/confirm: Process payment after updates are complete
  • POST /checkout_session/summary: Preview pricing changes without creating a session
Language
Credentials
Header
Click Try It! to start a request and see the response here!