Record that the traveler accepted the total reported in pendingRepriceAcceptance.newTotal on GET /v1/checkout/sessions/current, which clears that field. The acceptance is stored on the session, so it holds on every device and in both auth modes (guest session token, or consumer HMAC + BearerToken after account creation).
newTotal must be the session's current pending total. If a later renewal changed it again, or nothing is pending and it is not the held total, the call returns 409 PRICE_ACCEPTANCE_STALE and the client re-reads the session and asks again. Accepting a total that is already accepted and still current succeeds, so a retry or a second device is harmless.
The Idempotency-Key header is required. Idempotency comes from that convergence: replaying a key after the acceptance was recorded returns 200 with the session again, as long as newTotal is still the session's total.
While an acceptance is pending, POST /v1/{vertical}/bookings/{booking_id}/confirm rejects with 409 PRICE_ACCEPTANCE_REQUIRED and captures no charge, for every checkout vertical (flights, stays, trains, cars).
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
401Missing or invalid authentication
404Checkout session not found
422Missing Idempotency-Key header or invalid body
503Database unavailable