Create a booking

Books one room for one stay and returns the reservation.

Idempotency-Key is required. Send a unique value per booking
attempt and reuse it on retries: a network timeout is not proof the
booking failed, and replaying the same key returns the original
reservation instead of creating a second one. See the Idempotency
guide.

Guest: send either a guest object or a guest_id for an existing
guest — one of the two is required. A guest object always creates a
new guest record; it is not merged with an existing one by email.

One room per call. quantity is capped at 1. Group reservations
are a different contract and are not exposed here.

The booking is created as pending and unpaid — balance_due equals
the total. Payment is not handled by this API.

Scope: bookings:write · Property-bound

The whole journey: Flujo completo de una reserva. Retrying safely: Idempotencia. Holding a room: Holds.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params

Either guest or guest_id must be present — the request is rejected
with neither.

uuid
required
uuid
required
date
required
date
required

Must be after start_date.

integer
required
≥ 1
integer
≥ 0
Defaults to 0
integer
≥ 0
Defaults to 0
integer
1 to 1
Defaults to 1

One room per booking. Groups are not exposed on this API.

uuid

An existing guest. Mutually exclusive with guest.

guest
object

A new guest. Always creates a new record — it is never merged with
an existing guest by email.

string | null

Where to reach the booker, when that is not the guest.

string | null
string | null
integer
1 to 30

Optional. Request a temporary hold on this booking that expires
after this many minutes. Without this field, the booking is created
normally and immediately bookable by the hotel. A held booking blocks
the room from sale but does not appear in the hotel's booking list.
A hold that is not confirmed before it expires is automatically
released — the room goes back on sale — by a sweep that runs every
five minutes.

See Holds.

Headers
uuid

Which property this call acts on.

Required when your key covers more than one property; omitting it
is 422 PROPERTY_NOT_IDENTIFIED.

Omit it when your key covers exactly one — it is inferred, and
sending a different id is 404.

When to send it and what each scope unlocks: Alcances y el header X-Property.

string
required

A unique string per booking attempt, chosen by you. Reuse it to
retry safely. Reusing it with a different body is 409.

See Idempotencia.

Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json