Skip to main content
Creates an OPEN order for the authenticated customer, or returns the existing open cart for the same scope. Owned channels typically POST an empty order with scope, then update as the cart changes.
Requires a Storefront API access token from Token exchange.

Request body

Payments are not part of create. Save them later with Save payment intent. payment_status starts at IDLE.

Request

Response

The body is always { data: Order }. Use the status to tell create from reuse: One customer can have only one OPEN cart per scope. Concurrent POSTs do not create a second cart.
Generate the external id on your server before calling POST so you can retry if the network fails. A retry with a new id still returns 202 and the existing cart when the scope already has an OPEN order. Duplicate ids on a different (non-open) order still return 422. @fire-spark/core Order.create builds the customer snapshot from name/email/phone.

Error responses