Create a flight booking, optionally attaching a stored travel document and selecting protection-plan quotes.
Failure contract after the provider accepts the create: every validation that can produce a 4xx runs before the single provider create call. Once the provider has accepted the create, a failure in a later step (for example correlating the new booking to a trip) never surfaces as another definitive 4xx — it maps to a 5xx, or to 409 when it is a genuine conflict. A client that receives a definitive 4xx (anything other than 401, 408, 409, or 429) can safely assume no provider booking was created. What the provider itself guarantees when it persists a booking and then answers 4xx is not independently verified by Mercury.
Replacement booking after a selection-hold renewal: for a guest checkout session whose hold was renewed (POST /v1/checkout/sessions/current/selection-hold), create the replacement with fareId set to the renewal's renewedFareId. It is accepted even though the session already has a bookingId: when that earlier booking was superseded by the renewal, the new booking becomes the session's bookingId. The superseded booking is abandoned, not voided, and POST /v1/{vertical}/bookings/{booking_id}/confirm rejects it with 409 BOOKING_FARE_SUPERSEDED. A booking created on any other fare does not replace the session's bookingId.
Guest checkout traveler details: for a booking created in a guest checkout session, a companion passenger's birthday and nationality and the booking phone that the request omits are filled from the details the guest captured in that session. Values sent in the request always take precedence, and a signed-in traveler's booking is never altered.
No per-session concurrency guard: Mercury applies no per-checkout-session single-flight lock on create. Two concurrent creates for the same guest checkout session (for example two browser tabs) can both reach the provider; only the provider's own idempotency/state-machine behaviour — not yet verified from Mercury — can prevent two bookings from being created.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
401Missing or invalid authentication, or the provider rejected the forwarded travel-document credential
403User lacks booking capability for this vertical, or the provider denied the travel-document lookup (resolved deny)
404Fare not found or expired, or tripId inaccessible
409Booking already exists (conflict), or a colleague document selection token is no longer eligible (reload the options)
410Fare has expired (refresh search)
422Validation error, invalid documentId, missing passenger document, missing header, APPROVAL_MESSAGE_REQUIRED, or SEAT_REQUIRED
503Booking or travel document service not configured