Skip to main content

Create a booking

POST 

/api/v1/bookings

Books one or more quotes as a single atomic order.

The call is synchronous: a 201 means every item is confirmed at the supplier and the redemption artifact (coupon, boarding code, entitlement) exists. On any item failure the engine compensates the items already booked and the whole order comes to rest FAILED — a partially-confirmed order is impossible.

You never send a price. Net and sell both come from the frozen quote.

Which details to send

The variant is decided by the offering behind your quoteId, not by anything in this request. Send the bag matching the vertical you searched:

You searchedSend
POST /api/v1/airport-transfer/searchAirportTransferDetails
POST /api/v1/express-bus/searchExpressBusDetails
GET /api/v1/entertainment/catalogEntertainmentDetails

Details are validated before any money moves and before any supplier is called, so a missing field costs nothing — you get a 400 naming every field you left out.

Reading the outcome

StatusMeaningWhat to do
201CONFIRMED — bookedDeliver the artifact in items[].detail
422FAILED — supplier declinedNothing was charged. Re-quote and try again
409Quote expired, or order RECONCILINGSee below — the two cases differ

A 409 is either an expired quote (get a new quote) or an order the engine has not yet resolved with the supplier (RECONCILING — re-send this exact request with the same idempotency key until you get 201 or 422). Never respond to a RECONCILING order by booking again with a fresh key: that risks a second real booking that cannot be cancelled.

Request

Responses

Booked. Every item is CONFIRMED at the supplier. The Location header points at the order.

Response Headers
    Location

    URL of the created order