APICheckout
Existing customers at checkout
Storefront API keys are public, so an email orcustomerId in a checkout
request is a claim, not proof of who is booking. A customer named in the
request is now only treated as the caller when the request is signed in as
that customer (customer Authorization token), or when this cart’s checkout
created them.When a guest enters the email of an existing customer and isn’t signed in:- The booking is still attached to that customer, so it shows in their account after they sign in (for example with a login code).
- Nothing on their profile is overwritten: name, phone, billing address and marketing consent stay as they were.
checkout/submitreturns noauthorcustomer, andcheckout/save-customerreturns{}without acustomerId.- Cart and appointment responses show
customerandcustomerIdasnull. ThecustomerFirstName,customerEmailand other snapshot fields echo what was entered.
Addresses
checkout/save-customer and checkout/start don’t write to the customer.
Until the order is placed, billing and delivery addresses entered for such a
booking belong to the cart only, and their customerId is null (for example
cart.billingAddress.customerId). When checkout/submit places the order,
they’re added to the customer’s saved addresses. The order and invoice use
them as entered. Treat an address’s customerId as nullable.Billing at submit
Required billing fields are checked against thebillingAddress in the
request, or, when the request has none, against the billing address already
saved on the cart. You no longer need to send the billing address again at
checkout/start or checkout/submit. A billing address sent for the first
time with checkout/submit is linked to the order. A submit rejected for missing customer
details leaves the cart’s reservation in place until the cart expires as
usual.What to change in your integration: always treat auth on the submit
response as optional, and don’t rely on save-customer returning a
customerId. When it doesn’t, either send the same customer details again in
the next steps or leave customer out: the cart already holds the customer.