Prebook sits between room selection and booking:
search, rooms, prebook,
create booking, then manage the booking.
It asks the supplier, right now, whether the room the guest picked is still
available and what it costs. The answer is a complete refreshed offer, a
prebooking_id, and a verdict on whether anything changed.
It is the only way to get a prebooking_id. Create Booking accepts nothing
else. You cannot book straight from a rooms response.
Room-stage prices can change before the guest pays. Prebook is the live
recheck with the supplier, so the guest never pays a price you did not show.
It returns the final terms. The refreshed offer has the confirmed price,
cancellation terms, payment terms, notices and the exact guest information
the supplier needs (booking_requirements). Build your checkout form from
this response, not from the rooms response.
What a successful prebook guarantees: at the moment of the call the supplier
confirmed the room and price (offer.lifecycle.price_guaranteed is true) and
the offer stays bookable until offer.lifecycle.expires_at. It is not a
reservation. The room is only yours once Create Booking succeeds.
Prebook the room when the guest starts checkout, not earlier. The
prebooking_id is valid for a short time (see
How long a prebook lasts).
Send the same hotel_id you used to request the rooms. A hotel that does not match the token returns BOOKING_TOKEN_HOTEL_MISMATCH.
booking_token
Opaque token of the one offer the guest picked.
Take it from the offer in Get Room Options or the room stream. Send it unchanged. Do not parse or store it for later; it expires.
language
Optional response language, such as en.
Omit it. If you send it, it must equal the language of the room search, otherwise you get VALIDATION_ERROR.
Optional header X-Unifystays-Currency (an ISO 4217 code such as EUR) sets
the display currency of the refreshed offer and of difference_display. Without
it your organization’s display currency is used (USD unless configured).Unknown fields in the body are rejected.
The example is trimmed for reading. A real offer also carries
room_combination, rate_plan, payment, commercial, nightly_prices,
promotions, benefits, full provider_room details on each room, the
usd_ledger and conversion blocks, and more. Every offer field is described
on the room stream page; the prebook
offer has the same shape.
Nothing changed, or only changes that do not matter to the guest.
Continue to checkout. Book with data.prebooking_id and data.offer.offer_id.
RECONFIRMATION_REQUIRED
The offer changed in a way the guest must accept (usually a higher price).
Show the refreshed offer and the changes. Book only if the guest accepts. If they decline, go back to the rooms.
NOT_BOOKABLE
Sold out, or the supplier would book a different room.
prebooking_id is null. Send the guest back to room selection. HTTP status is still 200 and success is false.
data.offer is always the complete, authoritative offer. Replace the
room-stage offer with it. Never merge individual values into the old offer.
Prebook always issues a new offer_id, increments revision, and sets
supersedes_offer_id to the offer you started from.
Amounts are integers in minor units: divide by 10 to the power of
currency_exponent (46800 with exponent 2 is 468.00). previous is what
the guest saw in the room stage and current is what the supplier now
confirms. difference is current minus previous, so positive means dearer.
There are two separate totals: collection_locationSUPPLIER is the part
settled with the supplier for this booking, PROPERTY is the part the guest
pays at the hotel (resort fees, city tax and similar).How each kind of price change is classified:
difference_display is difference converted to pricing.display_currency
(your organization’s display currency, or the one sent in the
X-Unifystays-Currency request header). It is null when no exchange rate is
available.If the USD rate is missing, difference_usd is null. It is never a made-up
zero. When revalidation.result is NOT_COMPARABLE, the prices could not be
compared in one currency; treat that like a change and show the new price.The refreshed pricing also carries display_currency and display_ledger,
the supplier ledger converted to your display currency, plus commercial_display
and the display_amount fields on cancellation penalties, deposits and nightly
prices. They work exactly as described in
Get Room Options: null means no
rate, and they are for showing only.Your own selling price is your decision. pricing.native_ledger is what the
supplier charges and is authoritative. The commercial fields are
informational; do not add them to the ledger.
What to show the guest when changes[] is not empty
1
Look at the highest impact
If any change has impact: "BLOCKING", the decision is NOT_BOOKABLE. If
any has RECONFIRMATION_REQUIRED, the decision is
RECONFIRMATION_REQUIRED. Otherwise it is READY_TO_BOOK.
2
Show the new terms, not a diff of everything
For RECONFIRMATION_REQUIRED, show the refreshed offer’s price, cancellation
terms, meal plan and notices, and call out what changed. Use category to
pick the message (PRICING, CANCELLATION, MEAL, BEDDING, PAYMENT,
BOOKING_REQUIREMENT…) and money_change for the amounts. description is a
short English sentence that is fine for logs and support screens.
3
Let the guest accept or reject
Accept: continue with the same prebooking_id and offer_id.
Reject: go back to room selection; the unused prebooking_id simply
expires.
4
Treat INFORMATIONAL changes as optional to show
Price drops, added inclusions and relaxed requirements need no approval. You
can tell the guest or book straight away.
Change categories you may see: AVAILABILITY, PRICING, TAX, PAYMENT,
ROOM, ROOM_COMBINATION, BEDDING, MEAL, INCLUSION, RATE_PLAN,
CANCELLATION, BOOKING_REQUIREMENT, NOTICE, BENEFIT, PROMOTION and
COMMERCIAL. The full list of codes is in the code description of the
reference below. Branch on impact and decision, not on the code, because new
codes can be added.
ROOM_IDENTITY_CHANGED (category ROOM, impact BLOCKING) means the supplier
would book a different room than the one the guest chose. Typical reasons:
the supplier names a different room, a different room order or a different
number of rooms than the quote, or the beds or guest count shown on the room
card contradict what the supplier states for the room it will book. No
prebooking_id is returned. Send the guest back to room selection.
For the curious, the room-ID comparison applies only to suppliers that report
room IDs at prebook (TripJack): RezLive’s prebook repeats the room names from
search, so its room ID cannot be verified (and never blocks). The beds and
guest-count comparison runs for every supplier, because it uses only the
offer’s own data.Each room of the prebook offer carries unifystays_room_id and
unifystays_family_id, and unifystays_room is null. unifystays_family_id
is null for a tmp_ room.
The offer is valid until data.offer.lifecycle.expires_at. That is the
supplier’s own deadline when the supplier gives one; otherwise it is 15
minutes after the prebook call.
The prebooking_id expires at that same moment. After that Create Booking
returns PREBOOKING_ID_EXPIRED. Run rooms again and prebook the new offer.
The prebooking_id can be used for one booking. A successful Create
Booking consumes it. If Create Booking fails validation, the prebooking_id is
not consumed and you can fix the body and resend.
Show the guest a countdown or re-prebook if checkout takes long.
Prebook is idempotent per organization and booking_token. You do not send a key.
Calling again with the same booking_token after a success returns the
stored result, with the same prebooking_id and offer_id. It does not
contact the supplier again, so it will not show a newer price. For a fresh
check, get a new booking_token from the rooms API.
If a call for the same token is still running, you get 409PREBOOK_IN_PROGRESS and a Retry-After header (3 seconds). Wait and repeat
the identical request. Do not start parallel prebooks for one token.
After a temporary supplier failure (HTTP 429 or 5xx), the same token can be
tried again about 30 seconds later. Before that you get PREBOOK_IN_PROGRESS.
A definite refusal, such as OFFER_UNAVAILABLE, is returned again for the same token.
offer.booking_requirements is a server-driven form. Display label, choose
a control from value_type, apply allowed_values and constraints, and ask
only the guests selected by scope and room_allocation_ids. At booking, echo
the exact requirement_id with each answer. New requirement codes can appear
without any change to the booking request format. Identity and tax-document
requirements, such as passport or PAN, are part of this list too.
offer.notices holds legal and supplier messages. Show every notice with
must_display: true to the guest before they pay. There is no separate
compliance object.
offer.cancellation is the final cancellation policy. Show it and store a copy.
See the Create Booking page for how it
decides whether a booking needs approval.
offer.rooms[].room_allocation_id is the key for assigning guests at booking.
offer.lifecycle.available_booking_modes contains HOLD only when the offer can be held; see
Confirm Hold. hold_deadline says until when.
offer.pricing.native_ledger is the authoritative supplier/property price.
usd_ledger has the same lines in USD, or is null when a required rate is
unavailable. Price and the structured provider-room fallback are replaced
together as one atomic snapshot.
supplier_hotel is the supplier’s own hotel that the booking goes to: its
provider_hotel_id, and the name, address and country_code as the
supplier lists them (each null when the supplier sent none). Show it next to
your hotel, the same way provider_room shows the supplier’s room, so agents
can match it against the supplier’s voucher. Wording can differ from
offer.quote_context.hotel.name; the hotel is the same. mapping_status is
always VERIFIED, because prebook only succeeds for a supplier hotel that
passed the UnifyStays mapping check (otherwise it fails with
HOTEL_MAPPING_UNVERIFIED or HOTEL_MAPPING_CHECK_PENDING). verified_at is
when that check last passed.
The supplier rejected the call for your connection (credentials or account setup at the supplier). Create Booking returns the same codes as 403/422 when the problem is your Unifystays setup instead.
Do not skip a RECONFIRMATION_REQUIRED verdict. If the guest never saw the
higher price, they did not agree to it.
Do not reuse an old prebooking_id for a second booking, and do not build a
booking from the rooms-stage offer’s IDs. Always send accepted_offer_id equal
to the prebook data.offer.offer_id, together with the returned prebooking_id.
ISO 4217 currency for display amounts (display_ledger, display_amount, commercial_display). Optional: defaults to your organization's display currency, USD unless configured. Read pricing.display_currency in the response.
Unifystays hotel ID the guest is looking at, as returned by search (hotel_id). It must be the hotel the booking_token was issued for; a different hotel is rejected with BOOKING_TOKEN_HOTEL_MISMATCH.
Opaque booking_token of the offer the guest picked, from Get Room Options or the room stream. Send it unchanged and do not parse it. It expires (see the offer's lifecycle.expires_at); an expired token returns BOOKING_TOKEN_EXPIRED and you must fetch fresh rooms.
Optional response language (2-10 letters, for example en). If you send it, it must equal the language of the room search that produced the booking_token; a different value is rejected with VALIDATION_ERROR. Omit it to use the quoted language.
Example:
"en"
Response
Returns one authoritative refreshed offer, its revalidation decision, and a prebooking_id when the offer remains bookable. A sold-out or changed-room offer is also HTTP 200, with success false, decision NOT_BOOKABLE and prebooking_id null.
false when the offer is not bookable (revalidation.decision is NOT_BOOKABLE, for example sold out); true otherwise, including when reconfirmation is required. A sold-out or changed-room result is a normal HTTP 200 response with success false, not an error.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Unifystays API","colors":{"primary":"#0F766E","light":"#14B8A6","dark":"#134E4A"},"navbar":{"links":[{"href":"https://unifystays.com","label":"Portal"},{"href":"mailto:support@unifystays.com","label":"Support"}]},"contextual":{"options":["copy","download-spec","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"unifystays","hasAudioNarration":false,"actualSubdomain":"unifystays","customDomains":["docs.unifystays.com"],"gitSource":{"type":"github","owner":"ronakonline","repo":"unifystay","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae836724729f9837cf0d8e4","collectionId":"17105c7f-831f-4751-8445-71739bb329ae","liveDeploymentHistoryId":"6ae836724729f9837cf0d8e4","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae836724729f9837cf0d8e4","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":29},{"language":"default","tag":"Guides","count":10},{"language":"default","tag":"Bookings","count":8},{"language":"default","tag":"Search \u0026 hotels","count":7},{"language":"default","tag":"Webhook endpoints","count":7},{"language":"default","tag":"Build your integration","count":5},{"language":"default","tag":"Webhook logs","count":4},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Destination \u0026 master data","count":2},{"language":"default","tag":"Operate","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/prebook","slug":"/api-reference/prebook","pageMetadata":{"title":"Prebook a Room","description":"Recheck the selected offer with the supplier and get the prebooking_id you need to book.","openapi":"reference/openapi.json POST /hotels/prebook","href":"/api-reference/prebook"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,Step,Steps,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Prebook sits between room selection and booking:\nsearch, `,_jsx(_components.a,{href:`/api-reference/hotel-rooms`,children:`rooms`}),`, `,_jsx(_components.strong,{children:`prebook`}),`,\n`,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`create booking`}),`, then manage the booking.\nIt asks the supplier, right now, whether the room the guest picked is still\navailable and what it costs. The answer is a complete refreshed offer, a\n`,_jsx(_components.code,{children:`prebooking_id`}),`, and a verdict on whether anything changed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-prebook-is-mandatory`,children:`Why prebook is mandatory`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`It is the only way to get a `,_jsx(_components.code,{children:`prebooking_id`}),`.`]}),` Create Booking accepts nothing\nelse. You cannot book straight from a rooms response.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Room-stage prices can change before the guest pays.`}),` Prebook is the live\nrecheck with the supplier, so the guest never pays a price you did not show.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`It returns the final terms.`}),` The refreshed offer has the confirmed price,\ncancellation terms, payment terms, notices and the exact guest information\nthe supplier needs (`,_jsx(_components.code,{children:`booking_requirements`}),`). Build your checkout form from\nthis response, not from the rooms response.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`What a successful prebook guarantees: at the moment of the call the supplier\nconfirmed the room and price (`,_jsx(_components.code,{children:`offer.lifecycle.price_guaranteed`}),` is `,_jsx(_components.code,{children:`true`}),`) and\nthe offer stays bookable until `,_jsx(_components.code,{children:`offer.lifecycle.expires_at`}),`. It is `,_jsx(_components.strong,{children:`not`}),` a\nreservation. The room is only yours once Create Booking succeeds.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Prebook the room when the guest starts checkout, not earlier. The\n`,_jsx(_components.code,{children:`prebooking_id`}),` is valid for a short time (see\n`,_jsx(_components.a,{href:`#how-long-a-prebook-lasts`,children:`How long a prebook lasts`}),`).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`How to use it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`hotel_id`})}),_jsx(_components.td,{children:`The Unifystays hotel ID the guest is looking at.`}),_jsxs(_components.td,{children:[`Send the same `,_jsx(_components.code,{children:`hotel_id`}),` you used to request the rooms. A hotel that does not match the token returns `,_jsx(_components.code,{children:`BOOKING_TOKEN_HOTEL_MISMATCH`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`booking_token`})}),_jsx(_components.td,{children:`Opaque token of the one offer the guest picked.`}),_jsxs(_components.td,{children:[`Take it from the offer in `,_jsx(_components.a,{href:`/api-reference/hotel-rooms`,children:`Get Room Options`}),` or the `,_jsx(_components.a,{href:`/api-reference/hotel-room-stream`,children:`room stream`}),`. Send it unchanged. Do not parse or store it for later; it expires.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`language`})}),_jsxs(_components.td,{children:[`Optional response language, such as `,_jsx(_components.code,{children:`en`}),`.`]}),_jsxs(_components.td,{children:[`Omit it. If you send it, it must equal the language of the room search, otherwise you get `,_jsx(_components.code,{children:`VALIDATION_ERROR`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Optional header `,_jsx(_components.code,{children:`X-Unifystays-Currency`}),` (an ISO 4217 code such as `,_jsx(_components.code,{children:`EUR`}),`) sets\nthe display currency of the refreshed offer and of `,_jsx(_components.code,{children:`difference_display`}),`. Without\nit your organization’s display currency is used (USD unless configured).`]}),`\n`,_jsx(_components.p,{children:`Unknown fields in the body are rejected.`}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The example is trimmed for reading. A real offer also carries\n`,_jsx(_components.code,{children:`room_combination`}),`, `,_jsx(_components.code,{children:`rate_plan`}),`, `,_jsx(_components.code,{children:`payment`}),`, `,_jsx(_components.code,{children:`commercial`}),`, `,_jsx(_components.code,{children:`nightly_prices`}),`,\n`,_jsx(_components.code,{children:`promotions`}),`, `,_jsx(_components.code,{children:`benefits`}),`, full `,_jsx(_components.code,{children:`provider_room`}),` details on each room, the\n`,_jsx(_components.code,{children:`usd_ledger`}),` and `,_jsx(_components.code,{children:`conversion`}),` blocks, and more. Every offer field is described\non the `,_jsx(_components.a,{href:`/api-reference/hotel-room-stream`,children:`room stream page`}),`; the prebook\noffer has the same shape.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-do-with-the-response`,children:`What to do with the response`}),`\n`,_jsxs(_components.p,{children:[`Branch on `,_jsx(_components.strong,{children:`one field`}),`: `,_jsx(_components.code,{children:`data.revalidation.decision`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`decision`})}),_jsx(_components.th,{children:`What happened`}),_jsx(_components.th,{children:`What you do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`READY_TO_BOOK`})}),_jsx(_components.td,{children:`Nothing changed, or only changes that do not matter to the guest.`}),_jsxs(_components.td,{children:[`Continue to checkout. Book with `,_jsx(_components.code,{children:`data.prebooking_id`}),` and `,_jsx(_components.code,{children:`data.offer.offer_id`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})}),_jsx(_components.td,{children:`The offer changed in a way the guest must accept (usually a higher price).`}),_jsx(_components.td,{children:`Show the refreshed offer and the changes. Book only if the guest accepts. If they decline, go back to the rooms.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`NOT_BOOKABLE`})}),_jsx(_components.td,{children:`Sold out, or the supplier would book a different room.`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`prebooking_id`}),` is `,_jsx(_components.code,{children:`null`}),`. Send the guest back to room selection. HTTP status is still 200 and `,_jsx(_components.code,{children:`success`}),` is `,_jsx(_components.code,{children:`false`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.offer`}),` is always the complete, authoritative offer. Replace the\nroom-stage offer with it. Never merge individual values into the old offer.\nPrebook always issues a new `,_jsx(_components.code,{children:`offer_id`}),`, increments `,_jsx(_components.code,{children:`revision`}),`, and sets\n`,_jsx(_components.code,{children:`supersedes_offer_id`}),` to the offer you started from.`]}),`\n`,_jsx(Heading,{level:`3`,id:`comparing-the-prebook-price-with-the-quoted-price`,children:`Comparing the prebook price with the quoted price`}),`\n`,_jsxs(_components.p,{children:[`You do not need to compute the difference yourself. Each price change appears\nin `,_jsx(_components.code,{children:`revalidation.changes[]`}),` with a `,_jsx(_components.code,{children:`money_change`}),` block:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PRICING\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SUPPLIER_TOTAL_INCREASED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"impact\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RECONFIRMATION_REQUIRED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"room_allocation_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [], `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"collection_location\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SUPPLIER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Supplier-payable total increased in USD.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"money_change\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"previous\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"difference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"difference_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Amounts are integers in minor units: divide by 10 to the power of\n`,_jsx(_components.code,{children:`currency_exponent`}),` (`,_jsx(_components.code,{children:`46800`}),` with exponent `,_jsx(_components.code,{children:`2`}),` is 468.00). `,_jsx(_components.code,{children:`previous`}),` is what\nthe guest saw in the room stage and `,_jsx(_components.code,{children:`current`}),` is what the supplier now\nconfirms. `,_jsx(_components.code,{children:`difference`}),` is current minus previous, so positive means dearer.\nThere are two separate totals: `,_jsx(_components.code,{children:`collection_location`}),` `,_jsx(_components.code,{children:`SUPPLIER`}),` is the part\nsettled with the supplier for this booking, `,_jsx(_components.code,{children:`PROPERTY`}),` is the part the guest\npays at the hotel (resort fees, city tax and similar).`]}),`\n`,_jsx(_components.p,{children:`How each kind of price change is classified:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Case`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`code`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`impact`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went down`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_DECREASED`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_DECREASED`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INFORMATIONAL`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went up by a rounding amount (at most 1 minor unit or 0.05% of the quoted total, whichever is larger)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_ROUNDING`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_ROUNDING`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INFORMATIONAL`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went up by more than that`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_INCREASED`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_INCREASED`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Currency set changed, or no USD rate available for the change`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`CURRENCY_SET_CHANGED`}),`, `,_jsx(_components.code,{children:`*_TOTAL_CHANGED_FX_UNAVAILABLE`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`difference_display`}),` is `,_jsx(_components.code,{children:`difference`}),` converted to `,_jsx(_components.code,{children:`pricing.display_currency`}),`\n(your organization’s display currency, or the one sent in the\n`,_jsx(_components.code,{children:`X-Unifystays-Currency`}),` request header). It is `,_jsx(_components.code,{children:`null`}),` when no exchange rate is\navailable.`]}),`\n`,_jsxs(_components.p,{children:[`If the USD rate is missing, `,_jsx(_components.code,{children:`difference_usd`}),` is `,_jsx(_components.code,{children:`null`}),`. It is never a made-up\nzero. When `,_jsx(_components.code,{children:`revalidation.result`}),` is `,_jsx(_components.code,{children:`NOT_COMPARABLE`}),`, the prices could not be\ncompared in one currency; treat that like a change and show the new price.`]}),`\n`,_jsxs(_components.p,{children:[`The refreshed `,_jsx(_components.code,{children:`pricing`}),` also carries `,_jsx(_components.code,{children:`display_currency`}),` and `,_jsx(_components.code,{children:`display_ledger`}),`,\nthe supplier ledger converted to your display currency, plus `,_jsx(_components.code,{children:`commercial_display`}),`\nand the `,_jsx(_components.code,{children:`display_amount`}),` fields on cancellation penalties, deposits and nightly\nprices. They work exactly as described in\n`,_jsx(_components.a,{href:`/api-reference/hotel-rooms#display-currency`,children:`Get Room Options`}),`: `,_jsx(_components.code,{children:`null`}),` means no\nrate, and they are for showing only.`]}),`\n`,_jsxs(_components.p,{children:[`Your own selling price is your decision. `,_jsx(_components.code,{children:`pricing.native_ledger`}),` is what the\nsupplier charges and is authoritative. The `,_jsx(_components.code,{children:`commercial`}),` fields are\ninformational; do not add them to the ledger.`]}),`\n`,_jsxs(Heading,{level:`3`,id:`what-to-show-the-guest-when-changes-is-not-empty`,children:[`What to show the guest when `,_jsx(_components.code,{children:`changes[]`}),` is not empty`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Look at the highest impact`,children:_jsxs(_components.p,{children:[`If any change has `,_jsx(_components.code,{children:`impact: \"BLOCKING\"`}),`, the decision is `,_jsx(_components.code,{children:`NOT_BOOKABLE`}),`. If\nany has `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`, the decision is\n`,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`. Otherwise it is `,_jsx(_components.code,{children:`READY_TO_BOOK`}),`.`]})}),_jsx(Step,{title:`Show the new terms, not a diff of everything`,children:_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`, show the refreshed offer’s price, cancellation\nterms, meal plan and notices, and call out what changed. Use `,_jsx(_components.code,{children:`category`}),` to\npick the message (`,_jsx(_components.code,{children:`PRICING`}),`, `,_jsx(_components.code,{children:`CANCELLATION`}),`, `,_jsx(_components.code,{children:`MEAL`}),`, `,_jsx(_components.code,{children:`BEDDING`}),`, `,_jsx(_components.code,{children:`PAYMENT`}),`,\n`,_jsx(_components.code,{children:`BOOKING_REQUIREMENT`}),`…) and `,_jsx(_components.code,{children:`money_change`}),` for the amounts. `,_jsx(_components.code,{children:`description`}),` is a\nshort English sentence that is fine for logs and support screens.`]})}),_jsx(Step,{title:`Let the guest accept or reject`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Accept`}),`: continue with the same `,_jsx(_components.code,{children:`prebooking_id`}),` and `,_jsx(_components.code,{children:`offer_id`}),`.\n`,_jsx(_components.strong,{children:`Reject`}),`: go back to room selection; the unused `,_jsx(_components.code,{children:`prebooking_id`}),` simply\nexpires.`]})}),_jsx(Step,{title:`Treat INFORMATIONAL changes as optional to show`,children:_jsx(_components.p,{children:`Price drops, added inclusions and relaxed requirements need no approval. You\ncan tell the guest or book straight away.`})})]}),`\n`,_jsxs(_components.p,{children:[`Change categories you may see: `,_jsx(_components.code,{children:`AVAILABILITY`}),`, `,_jsx(_components.code,{children:`PRICING`}),`, `,_jsx(_components.code,{children:`TAX`}),`, `,_jsx(_components.code,{children:`PAYMENT`}),`,\n`,_jsx(_components.code,{children:`ROOM`}),`, `,_jsx(_components.code,{children:`ROOM_COMBINATION`}),`, `,_jsx(_components.code,{children:`BEDDING`}),`, `,_jsx(_components.code,{children:`MEAL`}),`, `,_jsx(_components.code,{children:`INCLUSION`}),`, `,_jsx(_components.code,{children:`RATE_PLAN`}),`,\n`,_jsx(_components.code,{children:`CANCELLATION`}),`, `,_jsx(_components.code,{children:`BOOKING_REQUIREMENT`}),`, `,_jsx(_components.code,{children:`NOTICE`}),`, `,_jsx(_components.code,{children:`BENEFIT`}),`, `,_jsx(_components.code,{children:`PROMOTION`}),` and\n`,_jsx(_components.code,{children:`COMMERCIAL`}),`. The full list of codes is in the `,_jsx(_components.code,{children:`code`}),` description of the\nreference below. Branch on `,_jsx(_components.code,{children:`impact`}),` and `,_jsx(_components.code,{children:`decision`}),`, not on the code, because new\ncodes can be added.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ROOM_IDENTITY_CHANGED`}),` (category `,_jsx(_components.code,{children:`ROOM`}),`, impact `,_jsx(_components.code,{children:`BLOCKING`}),`) means the supplier\nwould book a different room than the one the guest chose. Typical reasons:\nthe supplier names a different room, a different room order or a different\nnumber of rooms than the quote, or the beds or guest count shown on the room\ncard contradict what the supplier states for the room it will book. No\n`,_jsx(_components.code,{children:`prebooking_id`}),` is returned. Send the guest back to room selection.`]})}),`\n`,_jsx(_components.p,{children:`For the curious, the room-ID comparison applies only to suppliers that report\nroom IDs at prebook (TripJack): RezLive’s prebook repeats the room names from\nsearch, so its room ID cannot be verified (and never blocks). The beds and\nguest-count comparison runs for every supplier, because it uses only the\noffer’s own data.`}),`\n`,_jsxs(_components.p,{children:[`Each room of the prebook offer carries `,_jsx(_components.code,{children:`unifystays_room_id`}),` and\n`,_jsx(_components.code,{children:`unifystays_family_id`}),`, and `,_jsx(_components.code,{children:`unifystays_room`}),` is `,_jsx(_components.code,{children:`null`}),`. `,_jsx(_components.code,{children:`unifystays_family_id`}),`\nis `,_jsx(_components.code,{children:`null`}),` for a `,_jsx(_components.code,{children:`tmp_`}),` room.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-long-a-prebook-lasts`,children:`How long a prebook lasts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The offer is valid until `,_jsx(_components.code,{children:`data.offer.lifecycle.expires_at`}),`. That is the\nsupplier’s own deadline when the supplier gives one; otherwise it is 15\nminutes after the prebook call.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`prebooking_id`}),` expires at that same moment. After that Create Booking\nreturns `,_jsx(_components.code,{children:`PREBOOKING_ID_EXPIRED`}),`. Run rooms again and prebook the new offer.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`prebooking_id`}),` can be used for `,_jsx(_components.strong,{children:`one booking`}),`. A successful Create\nBooking consumes it. If Create Booking fails validation, the `,_jsx(_components.code,{children:`prebooking_id`}),` is\nnot consumed and you can fix the body and resend.`]}),`\n`,_jsx(_components.li,{children:`Show the guest a countdown or re-prebook if checkout takes long.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`repeating-a-prebook-idempotency`,children:`Repeating a prebook (idempotency)`}),`\n`,_jsxs(_components.p,{children:[`Prebook is idempotent per organization and `,_jsx(_components.code,{children:`booking_token`}),`. You do not send a key.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Calling again with the same `,_jsx(_components.code,{children:`booking_token`}),` after a success returns the\nstored result, with the same `,_jsx(_components.code,{children:`prebooking_id`}),` and `,_jsx(_components.code,{children:`offer_id`}),`. It does `,_jsx(_components.strong,{children:`not`}),`\ncontact the supplier again, so it will not show a newer price. For a fresh\ncheck, get a new `,_jsx(_components.code,{children:`booking_token`}),` from the rooms API.`]}),`\n`,_jsxs(_components.li,{children:[`If a call for the same token is still running, you get `,_jsx(_components.code,{children:`409`}),`\n`,_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),` and a `,_jsx(_components.code,{children:`Retry-After`}),` header (3 seconds). Wait and repeat\nthe identical request. Do not start parallel prebooks for one token.`]}),`\n`,_jsxs(_components.li,{children:[`After a temporary supplier failure (HTTP 429 or 5xx), the same token can be\ntried again about 30 seconds later. Before that you get `,_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),`.\nA definite refusal, such as `,_jsx(_components.code,{children:`OFFER_UNAVAILABLE`}),`, is returned again for the same token.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-build-checkout-from`,children:`What to build checkout from`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.booking_requirements`}),` is a server-driven form. Display `,_jsx(_components.code,{children:`label`}),`, choose\na control from `,_jsx(_components.code,{children:`value_type`}),`, apply `,_jsx(_components.code,{children:`allowed_values`}),` and `,_jsx(_components.code,{children:`constraints`}),`, and ask\nonly the guests selected by `,_jsx(_components.code,{children:`scope`}),` and `,_jsx(_components.code,{children:`room_allocation_ids`}),`. At booking, echo\nthe exact `,_jsx(_components.code,{children:`requirement_id`}),` with each answer. New requirement codes can appear\nwithout any change to the booking request format. Identity and tax-document\nrequirements, such as passport or PAN, are part of this list too.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.notices`}),` holds legal and supplier messages. Show every notice with\n`,_jsx(_components.code,{children:`must_display: true`}),` to the guest before they pay. There is no separate\ncompliance object.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.cancellation`}),` is the final cancellation policy. Show it and store a copy.\nSee the `,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`Create Booking`}),` page for how it\ndecides whether a booking needs approval.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.rooms[].room_allocation_id`}),` is the key for assigning guests at booking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.lifecycle.available_booking_modes`}),` contains `,_jsx(_components.code,{children:`HOLD`}),` only when the offer can be held; see\n`,_jsx(_components.a,{href:`/api-reference/confirm-hold`,children:`Confirm Hold`}),`. `,_jsx(_components.code,{children:`hold_deadline`}),` says until when.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.pricing.native_ledger`}),` is the authoritative supplier/property price.\n`,_jsx(_components.code,{children:`usd_ledger`}),` has the same lines in USD, or is `,_jsx(_components.code,{children:`null`}),` when a required rate is\nunavailable. Price and the structured provider-room fallback are replaced\ntogether as one atomic snapshot.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`supplier_hotel`}),` is the supplier’s own hotel that the booking goes to: its\n`,_jsx(_components.code,{children:`provider_hotel_id`}),`, and the `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`address`}),` and `,_jsx(_components.code,{children:`country_code`}),` as the\nsupplier lists them (each `,_jsx(_components.code,{children:`null`}),` when the supplier sent none). Show it next to\nyour hotel, the same way `,_jsx(_components.code,{children:`provider_room`}),` shows the supplier’s room, so agents\ncan match it against the supplier’s voucher. Wording can differ from\n`,_jsx(_components.code,{children:`offer.quote_context.hotel.name`}),`; the hotel is the same. `,_jsx(_components.code,{children:`mapping_status`}),` is\nalways `,_jsx(_components.code,{children:`VERIFIED`}),`, because prebook only succeeds for a supplier hotel that\npassed the UnifyStays mapping check (otherwise it fails with\n`,_jsx(_components.code,{children:`HOTEL_MAPPING_UNVERIFIED`}),` or `,_jsx(_components.code,{children:`HOTEL_MAPPING_CHECK_PENDING`}),`). `,_jsx(_components.code,{children:`verified_at`}),` is\nwhen that check last passed.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors-to-handle`,children:`Errors to handle`}),`\n`,_jsxs(_components.p,{children:[`Errors use the standard envelope with `,_jsx(_components.code,{children:`error.code`}),`; see `,_jsx(_components.a,{href:`/errors`,children:`Errors \u0026\nRetries`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code (HTTP)`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`BOOKING_TOKEN_INVALID`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_EXPIRED`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_CONTEXT_NOT_FOUND`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_OPTION_NOT_FOUND`}),` (400)`]}),_jsx(_components.td,{children:`The token is malformed, expired or unknown.`}),_jsx(_components.td,{children:`Fetch fresh rooms and let the guest pick again.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`BOOKING_TOKEN_HOTEL_MISMATCH`}),` (400)`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`hotel_id`}),` is not the hotel of this token.`]}),_jsx(_components.td,{children:`Fix the pair; do not retry as is.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),` (400)`]}),_jsxs(_components.td,{children:[`Bad body, unknown field, or `,_jsx(_components.code,{children:`language`}),` differs from the quote.`]}),_jsx(_components.td,{children:`Fix the request.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`OFFER_UNAVAILABLE`}),` (409)`]}),_jsx(_components.td,{children:`The supplier says the offer is gone.`}),_jsx(_components.td,{children:`Fetch fresh rooms.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`HOTEL_MAPPING_UNVERIFIED`}),` (409)`]}),_jsx(_components.td,{children:`This supplier’s listing could not be verified for the hotel.`}),_jsx(_components.td,{children:`Offer another room option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`HOTEL_MAPPING_CHECK_PENDING`}),` (409)`]}),_jsxs(_components.td,{children:[`Verification still running (`,_jsx(_components.code,{children:`details.retryable`}),` is `,_jsx(_components.code,{children:`true`}),`).`]}),_jsx(_components.td,{children:`Retry after a few seconds.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),` (409)`]}),_jsx(_components.td,{children:`Same token is being prebooked.`}),_jsxs(_components.td,{children:[`Wait `,_jsx(_components.code,{children:`Retry-After`}),` seconds and repeat the identical request.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PREBOOKING_ID_EXPIRED`}),` (409)`]}),_jsx(_components.td,{children:`The supplier session already ended.`}),_jsx(_components.td,{children:`Fetch fresh rooms.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_OPERATION_NOT_SUPPORTED`}),` (409)`]}),_jsx(_components.td,{children:`The refreshed offer needs a payment method that is not supported.`}),_jsx(_components.td,{children:`Offer another room option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_RATE_LIMITED`}),` (429), `,_jsx(_components.code,{children:`PROVIDER_REQUEST_FAILED`}),` (502 / 503)`]}),_jsxs(_components.td,{children:[`Supplier problem. `,_jsx(_components.code,{children:`details.retryable`}),` tells if a retry makes sense.`]}),_jsx(_components.td,{children:`Retry with backoff when retryable, otherwise offer another option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_NOT_AUTHORIZED`}),`, `,_jsx(_components.code,{children:`PROVIDER_CONFIGURATION_ERROR`}),` (424)`]}),_jsx(_components.td,{children:`The supplier rejected the call for your connection (credentials or account setup at the supplier). Create Booking returns the same codes as 403/422 when the problem is your Unifystays setup instead.`}),_jsxs(_components.td,{children:[`Contact support with the `,_jsx(_components.code,{children:`request_id`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`common-mistakes`,children:`Common mistakes`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not skip a `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),` verdict. If the guest never saw the\nhigher price, they did not agree to it.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not reuse an old `,_jsx(_components.code,{children:`prebooking_id`}),` for a second booking, and do not build a\nbooking from the rooms-stage offer’s IDs. Always send `,_jsx(_components.code,{children:`accepted_offer_id`}),` equal\nto the prebook `,_jsx(_components.code,{children:`data.offer.offer_id`}),`, together with the returned `,_jsx(_components.code,{children:`prebooking_id`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`next-step`,children:`Next step`}),`\n`,_jsxs(_components.p,{children:[`Collect guest details from `,_jsx(_components.code,{children:`booking_requirements`}),`, then call\n`,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`Create Booking`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Prebook a Room","description":"Recheck the selected offer with the supplier and get the prebooking_id you need to book.","openapi":"reference/openapi.json POST /hotels/prebook","href":"/api-reference/prebook"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,RequestExample,ResponseExample,Step,Steps,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Prebook sits between room selection and booking:\nsearch, `,_jsx(_components.a,{href:`/api-reference/hotel-rooms`,children:`rooms`}),`, `,_jsx(_components.strong,{children:`prebook`}),`,\n`,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`create booking`}),`, then manage the booking.\nIt asks the supplier, right now, whether the room the guest picked is still\navailable and what it costs. The answer is a complete refreshed offer, a\n`,_jsx(_components.code,{children:`prebooking_id`}),`, and a verdict on whether anything changed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-prebook-is-mandatory`,children:`Why prebook is mandatory`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`It is the only way to get a `,_jsx(_components.code,{children:`prebooking_id`}),`.`]}),` Create Booking accepts nothing\nelse. You cannot book straight from a rooms response.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Room-stage prices can change before the guest pays.`}),` Prebook is the live\nrecheck with the supplier, so the guest never pays a price you did not show.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`It returns the final terms.`}),` The refreshed offer has the confirmed price,\ncancellation terms, payment terms, notices and the exact guest information\nthe supplier needs (`,_jsx(_components.code,{children:`booking_requirements`}),`). Build your checkout form from\nthis response, not from the rooms response.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`What a successful prebook guarantees: at the moment of the call the supplier\nconfirmed the room and price (`,_jsx(_components.code,{children:`offer.lifecycle.price_guaranteed`}),` is `,_jsx(_components.code,{children:`true`}),`) and\nthe offer stays bookable until `,_jsx(_components.code,{children:`offer.lifecycle.expires_at`}),`. It is `,_jsx(_components.strong,{children:`not`}),` a\nreservation. The room is only yours once Create Booking succeeds.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Prebook the room when the guest starts checkout, not earlier. The\n`,_jsx(_components.code,{children:`prebooking_id`}),` is valid for a short time (see\n`,_jsx(_components.a,{href:`#how-long-a-prebook-lasts`,children:`How long a prebook lasts`}),`).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`8`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$UNIFYSTAYS_BASE_URL`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/hotels/prebook\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"content-type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"x-api-key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$UNIFYSTAYS_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -d`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"hotel_id\": \"13553916\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"booking_token\": \"bq7.Y0QxTmtKc21Wbmk.7.6zI4D6fUEw2jVv7KQdM4Kw\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`What it means`}),_jsx(_components.th,{children:`How to use it`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`hotel_id`})}),_jsx(_components.td,{children:`The Unifystays hotel ID the guest is looking at.`}),_jsxs(_components.td,{children:[`Send the same `,_jsx(_components.code,{children:`hotel_id`}),` you used to request the rooms. A hotel that does not match the token returns `,_jsx(_components.code,{children:`BOOKING_TOKEN_HOTEL_MISMATCH`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`booking_token`})}),_jsx(_components.td,{children:`Opaque token of the one offer the guest picked.`}),_jsxs(_components.td,{children:[`Take it from the offer in `,_jsx(_components.a,{href:`/api-reference/hotel-rooms`,children:`Get Room Options`}),` or the `,_jsx(_components.a,{href:`/api-reference/hotel-room-stream`,children:`room stream`}),`. Send it unchanged. Do not parse or store it for later; it expires.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`language`})}),_jsxs(_components.td,{children:[`Optional response language, such as `,_jsx(_components.code,{children:`en`}),`.`]}),_jsxs(_components.td,{children:[`Omit it. If you send it, it must equal the language of the room search, otherwise you get `,_jsx(_components.code,{children:`VALIDATION_ERROR`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Optional header `,_jsx(_components.code,{children:`X-Unifystays-Currency`}),` (an ISO 4217 code such as `,_jsx(_components.code,{children:`EUR`}),`) sets\nthe display currency of the refreshed offer and of `,_jsx(_components.code,{children:`difference_display`}),`. Without\nit your organization’s display currency is used (USD unless configured).`]}),`\n`,_jsx(_components.p,{children:`Unknown fields in the body are rejected.`}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:``,numberOfLines:`146`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`146`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"contract_version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"success\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pre-booking completed. Option is available and ready for booking.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prebooking_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"offer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"offer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"off_65db5f20d91b47d3a73d834dfa44c50e\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"revision\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"offer_family_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supersedes_offer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"off_92b941fda86b4ad698044ab35152eaa5\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"provider_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RATEHAWK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"quote_context\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hotel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"13553916\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Example Hotel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Example Road\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"city\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"state\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"country\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"postal_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"latitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"longitude\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timezone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"check_in\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-12\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"check_out\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-15\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"nights\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rooms\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"adults\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"child_ages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [] }],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"residency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"IN\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"nationality\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"IN\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"language\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"en\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"lifecycle\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"stage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PREBOOK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"quoted_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-02T10:05:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expires_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-02T10:15:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prebook_required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"price_guaranteed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"availability\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AVAILABLE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rooms_remaining\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"on_request\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"available_booking_modes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"INSTANT\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hold_allowed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"hold_deadline\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"post_booking_actions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"STATUS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CANCEL\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rooms\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"room_allocation_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ra_2c1fb39ed54742f28d95bd8bc5f4375d\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"unifystays_room_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4120553\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"unifystays_family_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"4120552\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"unifystays_room\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mapping_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MAPPED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"occupancy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"adults\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"child_ages\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [] },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"meal_plan\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"BB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplier_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"breakfast\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplier_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Breakfast included\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bed and breakfast\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_breakfast_included\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"is_child_meal_included\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inclusions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"pricing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"native_ledger\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"primary_currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"totals\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"payable_to_supplier\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"payable_at_property\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cancellation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"refundability\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"REFUNDABLE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"policy_stage\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RECHECKED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"free_cancellation_until\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"local_datetime\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-08T23:59:00\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"timezone\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Asia/Kolkata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"utc_datetime\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-08T18:29:00.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"policy_text\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Free cancellation until 8 Oct 2026 23:59 local time.\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"booking_requirements\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"requirement_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"br_title_all_guests_1\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TITLE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ENUM\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ALL_GUESTS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"room_allocation_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"allowed_values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MR\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MRS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MISS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"MASTER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"OTHER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"constraints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"requirement_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"br_first_name_all_guests_2\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"FIRST_NAME\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"First name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TEXT\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ALL_GUESTS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"room_allocation_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"allowed_values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"constraints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"requirement_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"br_last_name_all_guests_3\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"LAST_NAME\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"label\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Last name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"value_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TEXT\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ALL_GUESTS\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"room_allocation_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"allowed_values\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"constraints\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"notices\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"revalidation\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"result\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"UNCHANGED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"decision\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"READY_TO_BOOK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"changes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"supplier_hotel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"provider_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TRIPJACK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"provider_hotel_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"100000012345\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026 Residence\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"address\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Cluster T, Jumeirah Lakes Towers, Dubai\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"country_code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mapping_status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"VERIFIED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"verified_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-28T09:14:02.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The example is trimmed for reading. A real offer also carries\n`,_jsx(_components.code,{children:`room_combination`}),`, `,_jsx(_components.code,{children:`rate_plan`}),`, `,_jsx(_components.code,{children:`payment`}),`, `,_jsx(_components.code,{children:`commercial`}),`, `,_jsx(_components.code,{children:`nightly_prices`}),`,\n`,_jsx(_components.code,{children:`promotions`}),`, `,_jsx(_components.code,{children:`benefits`}),`, full `,_jsx(_components.code,{children:`provider_room`}),` details on each room, the\n`,_jsx(_components.code,{children:`usd_ledger`}),` and `,_jsx(_components.code,{children:`conversion`}),` blocks, and more. Every offer field is described\non the `,_jsx(_components.a,{href:`/api-reference/hotel-room-stream`,children:`room stream page`}),`; the prebook\noffer has the same shape.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-do-with-the-response`,children:`What to do with the response`}),`\n`,_jsxs(_components.p,{children:[`Branch on `,_jsx(_components.strong,{children:`one field`}),`: `,_jsx(_components.code,{children:`data.revalidation.decision`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:_jsx(_components.code,{children:`decision`})}),_jsx(_components.th,{children:`What happened`}),_jsx(_components.th,{children:`What you do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`READY_TO_BOOK`})}),_jsx(_components.td,{children:`Nothing changed, or only changes that do not matter to the guest.`}),_jsxs(_components.td,{children:[`Continue to checkout. Book with `,_jsx(_components.code,{children:`data.prebooking_id`}),` and `,_jsx(_components.code,{children:`data.offer.offer_id`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})}),_jsx(_components.td,{children:`The offer changed in a way the guest must accept (usually a higher price).`}),_jsx(_components.td,{children:`Show the refreshed offer and the changes. Book only if the guest accepts. If they decline, go back to the rooms.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`NOT_BOOKABLE`})}),_jsx(_components.td,{children:`Sold out, or the supplier would book a different room.`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`prebooking_id`}),` is `,_jsx(_components.code,{children:`null`}),`. Send the guest back to room selection. HTTP status is still 200 and `,_jsx(_components.code,{children:`success`}),` is `,_jsx(_components.code,{children:`false`}),`.`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`data.offer`}),` is always the complete, authoritative offer. Replace the\nroom-stage offer with it. Never merge individual values into the old offer.\nPrebook always issues a new `,_jsx(_components.code,{children:`offer_id`}),`, increments `,_jsx(_components.code,{children:`revision`}),`, and sets\n`,_jsx(_components.code,{children:`supersedes_offer_id`}),` to the offer you started from.`]}),`\n`,_jsx(Heading,{level:`3`,id:`comparing-the-prebook-price-with-the-quoted-price`,children:`Comparing the prebook price with the quoted price`}),`\n`,_jsxs(_components.p,{children:[`You do not need to compute the difference yourself. Each price change appears\nin `,_jsx(_components.code,{children:`revalidation.changes[]`}),` with a `,_jsx(_components.code,{children:`money_change`}),` block:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PRICING\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SUPPLIER_TOTAL_INCREASED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"impact\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"RECONFIRMATION_REQUIRED\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"scope\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"room_allocation_ids\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [], `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"collection_location\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"SUPPLIER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Supplier-payable total increased in USD.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"money_change\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"previous\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`45000`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`46800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"difference\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"difference_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"amount_minor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1800`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USD\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"currency_exponent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Amounts are integers in minor units: divide by 10 to the power of\n`,_jsx(_components.code,{children:`currency_exponent`}),` (`,_jsx(_components.code,{children:`46800`}),` with exponent `,_jsx(_components.code,{children:`2`}),` is 468.00). `,_jsx(_components.code,{children:`previous`}),` is what\nthe guest saw in the room stage and `,_jsx(_components.code,{children:`current`}),` is what the supplier now\nconfirms. `,_jsx(_components.code,{children:`difference`}),` is current minus previous, so positive means dearer.\nThere are two separate totals: `,_jsx(_components.code,{children:`collection_location`}),` `,_jsx(_components.code,{children:`SUPPLIER`}),` is the part\nsettled with the supplier for this booking, `,_jsx(_components.code,{children:`PROPERTY`}),` is the part the guest\npays at the hotel (resort fees, city tax and similar).`]}),`\n`,_jsx(_components.p,{children:`How each kind of price change is classified:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Case`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`code`})}),_jsx(_components.th,{children:_jsx(_components.code,{children:`impact`})})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went down`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_DECREASED`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_DECREASED`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INFORMATIONAL`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went up by a rounding amount (at most 1 minor unit or 0.05% of the quoted total, whichever is larger)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_ROUNDING`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_ROUNDING`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INFORMATIONAL`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Total went up by more than that`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`SUPPLIER_TOTAL_INCREASED`}),` / `,_jsx(_components.code,{children:`PROPERTY_TOTAL_INCREASED`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Currency set changed, or no USD rate available for the change`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`CURRENCY_SET_CHANGED`}),`, `,_jsx(_components.code,{children:`*_TOTAL_CHANGED_FX_UNAVAILABLE`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`difference_display`}),` is `,_jsx(_components.code,{children:`difference`}),` converted to `,_jsx(_components.code,{children:`pricing.display_currency`}),`\n(your organization’s display currency, or the one sent in the\n`,_jsx(_components.code,{children:`X-Unifystays-Currency`}),` request header). It is `,_jsx(_components.code,{children:`null`}),` when no exchange rate is\navailable.`]}),`\n`,_jsxs(_components.p,{children:[`If the USD rate is missing, `,_jsx(_components.code,{children:`difference_usd`}),` is `,_jsx(_components.code,{children:`null`}),`. It is never a made-up\nzero. When `,_jsx(_components.code,{children:`revalidation.result`}),` is `,_jsx(_components.code,{children:`NOT_COMPARABLE`}),`, the prices could not be\ncompared in one currency; treat that like a change and show the new price.`]}),`\n`,_jsxs(_components.p,{children:[`The refreshed `,_jsx(_components.code,{children:`pricing`}),` also carries `,_jsx(_components.code,{children:`display_currency`}),` and `,_jsx(_components.code,{children:`display_ledger`}),`,\nthe supplier ledger converted to your display currency, plus `,_jsx(_components.code,{children:`commercial_display`}),`\nand the `,_jsx(_components.code,{children:`display_amount`}),` fields on cancellation penalties, deposits and nightly\nprices. They work exactly as described in\n`,_jsx(_components.a,{href:`/api-reference/hotel-rooms#display-currency`,children:`Get Room Options`}),`: `,_jsx(_components.code,{children:`null`}),` means no\nrate, and they are for showing only.`]}),`\n`,_jsxs(_components.p,{children:[`Your own selling price is your decision. `,_jsx(_components.code,{children:`pricing.native_ledger`}),` is what the\nsupplier charges and is authoritative. The `,_jsx(_components.code,{children:`commercial`}),` fields are\ninformational; do not add them to the ledger.`]}),`\n`,_jsxs(Heading,{level:`3`,id:`what-to-show-the-guest-when-changes-is-not-empty`,children:[`What to show the guest when `,_jsx(_components.code,{children:`changes[]`}),` is not empty`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Look at the highest impact`,children:_jsxs(_components.p,{children:[`If any change has `,_jsx(_components.code,{children:`impact: \"BLOCKING\"`}),`, the decision is `,_jsx(_components.code,{children:`NOT_BOOKABLE`}),`. If\nany has `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`, the decision is\n`,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`. Otherwise it is `,_jsx(_components.code,{children:`READY_TO_BOOK`}),`.`]})}),_jsx(Step,{title:`Show the new terms, not a diff of everything`,children:_jsxs(_components.p,{children:[`For `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),`, show the refreshed offer’s price, cancellation\nterms, meal plan and notices, and call out what changed. Use `,_jsx(_components.code,{children:`category`}),` to\npick the message (`,_jsx(_components.code,{children:`PRICING`}),`, `,_jsx(_components.code,{children:`CANCELLATION`}),`, `,_jsx(_components.code,{children:`MEAL`}),`, `,_jsx(_components.code,{children:`BEDDING`}),`, `,_jsx(_components.code,{children:`PAYMENT`}),`,\n`,_jsx(_components.code,{children:`BOOKING_REQUIREMENT`}),`…) and `,_jsx(_components.code,{children:`money_change`}),` for the amounts. `,_jsx(_components.code,{children:`description`}),` is a\nshort English sentence that is fine for logs and support screens.`]})}),_jsx(Step,{title:`Let the guest accept or reject`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Accept`}),`: continue with the same `,_jsx(_components.code,{children:`prebooking_id`}),` and `,_jsx(_components.code,{children:`offer_id`}),`.\n`,_jsx(_components.strong,{children:`Reject`}),`: go back to room selection; the unused `,_jsx(_components.code,{children:`prebooking_id`}),` simply\nexpires.`]})}),_jsx(Step,{title:`Treat INFORMATIONAL changes as optional to show`,children:_jsx(_components.p,{children:`Price drops, added inclusions and relaxed requirements need no approval. You\ncan tell the guest or book straight away.`})})]}),`\n`,_jsxs(_components.p,{children:[`Change categories you may see: `,_jsx(_components.code,{children:`AVAILABILITY`}),`, `,_jsx(_components.code,{children:`PRICING`}),`, `,_jsx(_components.code,{children:`TAX`}),`, `,_jsx(_components.code,{children:`PAYMENT`}),`,\n`,_jsx(_components.code,{children:`ROOM`}),`, `,_jsx(_components.code,{children:`ROOM_COMBINATION`}),`, `,_jsx(_components.code,{children:`BEDDING`}),`, `,_jsx(_components.code,{children:`MEAL`}),`, `,_jsx(_components.code,{children:`INCLUSION`}),`, `,_jsx(_components.code,{children:`RATE_PLAN`}),`,\n`,_jsx(_components.code,{children:`CANCELLATION`}),`, `,_jsx(_components.code,{children:`BOOKING_REQUIREMENT`}),`, `,_jsx(_components.code,{children:`NOTICE`}),`, `,_jsx(_components.code,{children:`BENEFIT`}),`, `,_jsx(_components.code,{children:`PROMOTION`}),` and\n`,_jsx(_components.code,{children:`COMMERCIAL`}),`. The full list of codes is in the `,_jsx(_components.code,{children:`code`}),` description of the\nreference below. Branch on `,_jsx(_components.code,{children:`impact`}),` and `,_jsx(_components.code,{children:`decision`}),`, not on the code, because new\ncodes can be added.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ROOM_IDENTITY_CHANGED`}),` (category `,_jsx(_components.code,{children:`ROOM`}),`, impact `,_jsx(_components.code,{children:`BLOCKING`}),`) means the supplier\nwould book a different room than the one the guest chose. Typical reasons:\nthe supplier names a different room, a different room order or a different\nnumber of rooms than the quote, or the beds or guest count shown on the room\ncard contradict what the supplier states for the room it will book. No\n`,_jsx(_components.code,{children:`prebooking_id`}),` is returned. Send the guest back to room selection.`]})}),`\n`,_jsx(_components.p,{children:`For the curious, the room-ID comparison applies only to suppliers that report\nroom IDs at prebook (TripJack): RezLive’s prebook repeats the room names from\nsearch, so its room ID cannot be verified (and never blocks). The beds and\nguest-count comparison runs for every supplier, because it uses only the\noffer’s own data.`}),`\n`,_jsxs(_components.p,{children:[`Each room of the prebook offer carries `,_jsx(_components.code,{children:`unifystays_room_id`}),` and\n`,_jsx(_components.code,{children:`unifystays_family_id`}),`, and `,_jsx(_components.code,{children:`unifystays_room`}),` is `,_jsx(_components.code,{children:`null`}),`. `,_jsx(_components.code,{children:`unifystays_family_id`}),`\nis `,_jsx(_components.code,{children:`null`}),` for a `,_jsx(_components.code,{children:`tmp_`}),` room.`]}),`\n`,_jsx(Heading,{level:`2`,id:`how-long-a-prebook-lasts`,children:`How long a prebook lasts`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`The offer is valid until `,_jsx(_components.code,{children:`data.offer.lifecycle.expires_at`}),`. That is the\nsupplier’s own deadline when the supplier gives one; otherwise it is 15\nminutes after the prebook call.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`prebooking_id`}),` expires at that same moment. After that Create Booking\nreturns `,_jsx(_components.code,{children:`PREBOOKING_ID_EXPIRED`}),`. Run rooms again and prebook the new offer.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.code,{children:`prebooking_id`}),` can be used for `,_jsx(_components.strong,{children:`one booking`}),`. A successful Create\nBooking consumes it. If Create Booking fails validation, the `,_jsx(_components.code,{children:`prebooking_id`}),` is\nnot consumed and you can fix the body and resend.`]}),`\n`,_jsx(_components.li,{children:`Show the guest a countdown or re-prebook if checkout takes long.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`repeating-a-prebook-idempotency`,children:`Repeating a prebook (idempotency)`}),`\n`,_jsxs(_components.p,{children:[`Prebook is idempotent per organization and `,_jsx(_components.code,{children:`booking_token`}),`. You do not send a key.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Calling again with the same `,_jsx(_components.code,{children:`booking_token`}),` after a success returns the\nstored result, with the same `,_jsx(_components.code,{children:`prebooking_id`}),` and `,_jsx(_components.code,{children:`offer_id`}),`. It does `,_jsx(_components.strong,{children:`not`}),`\ncontact the supplier again, so it will not show a newer price. For a fresh\ncheck, get a new `,_jsx(_components.code,{children:`booking_token`}),` from the rooms API.`]}),`\n`,_jsxs(_components.li,{children:[`If a call for the same token is still running, you get `,_jsx(_components.code,{children:`409`}),`\n`,_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),` and a `,_jsx(_components.code,{children:`Retry-After`}),` header (3 seconds). Wait and repeat\nthe identical request. Do not start parallel prebooks for one token.`]}),`\n`,_jsxs(_components.li,{children:[`After a temporary supplier failure (HTTP 429 or 5xx), the same token can be\ntried again about 30 seconds later. Before that you get `,_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),`.\nA definite refusal, such as `,_jsx(_components.code,{children:`OFFER_UNAVAILABLE`}),`, is returned again for the same token.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-to-build-checkout-from`,children:`What to build checkout from`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.booking_requirements`}),` is a server-driven form. Display `,_jsx(_components.code,{children:`label`}),`, choose\na control from `,_jsx(_components.code,{children:`value_type`}),`, apply `,_jsx(_components.code,{children:`allowed_values`}),` and `,_jsx(_components.code,{children:`constraints`}),`, and ask\nonly the guests selected by `,_jsx(_components.code,{children:`scope`}),` and `,_jsx(_components.code,{children:`room_allocation_ids`}),`. At booking, echo\nthe exact `,_jsx(_components.code,{children:`requirement_id`}),` with each answer. New requirement codes can appear\nwithout any change to the booking request format. Identity and tax-document\nrequirements, such as passport or PAN, are part of this list too.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.notices`}),` holds legal and supplier messages. Show every notice with\n`,_jsx(_components.code,{children:`must_display: true`}),` to the guest before they pay. There is no separate\ncompliance object.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.cancellation`}),` is the final cancellation policy. Show it and store a copy.\nSee the `,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`Create Booking`}),` page for how it\ndecides whether a booking needs approval.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.rooms[].room_allocation_id`}),` is the key for assigning guests at booking.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.lifecycle.available_booking_modes`}),` contains `,_jsx(_components.code,{children:`HOLD`}),` only when the offer can be held; see\n`,_jsx(_components.a,{href:`/api-reference/confirm-hold`,children:`Confirm Hold`}),`. `,_jsx(_components.code,{children:`hold_deadline`}),` says until when.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`offer.pricing.native_ledger`}),` is the authoritative supplier/property price.\n`,_jsx(_components.code,{children:`usd_ledger`}),` has the same lines in USD, or is `,_jsx(_components.code,{children:`null`}),` when a required rate is\nunavailable. Price and the structured provider-room fallback are replaced\ntogether as one atomic snapshot.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`supplier_hotel`}),` is the supplier’s own hotel that the booking goes to: its\n`,_jsx(_components.code,{children:`provider_hotel_id`}),`, and the `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`address`}),` and `,_jsx(_components.code,{children:`country_code`}),` as the\nsupplier lists them (each `,_jsx(_components.code,{children:`null`}),` when the supplier sent none). Show it next to\nyour hotel, the same way `,_jsx(_components.code,{children:`provider_room`}),` shows the supplier’s room, so agents\ncan match it against the supplier’s voucher. Wording can differ from\n`,_jsx(_components.code,{children:`offer.quote_context.hotel.name`}),`; the hotel is the same. `,_jsx(_components.code,{children:`mapping_status`}),` is\nalways `,_jsx(_components.code,{children:`VERIFIED`}),`, because prebook only succeeds for a supplier hotel that\npassed the UnifyStays mapping check (otherwise it fails with\n`,_jsx(_components.code,{children:`HOTEL_MAPPING_UNVERIFIED`}),` or `,_jsx(_components.code,{children:`HOTEL_MAPPING_CHECK_PENDING`}),`). `,_jsx(_components.code,{children:`verified_at`}),` is\nwhen that check last passed.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors-to-handle`,children:`Errors to handle`}),`\n`,_jsxs(_components.p,{children:[`Errors use the standard envelope with `,_jsx(_components.code,{children:`error.code`}),`; see `,_jsx(_components.a,{href:`/errors`,children:`Errors \u0026\nRetries`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code (HTTP)`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`BOOKING_TOKEN_INVALID`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_EXPIRED`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_CONTEXT_NOT_FOUND`}),`, `,_jsx(_components.code,{children:`BOOKING_TOKEN_OPTION_NOT_FOUND`}),` (400)`]}),_jsx(_components.td,{children:`The token is malformed, expired or unknown.`}),_jsx(_components.td,{children:`Fetch fresh rooms and let the guest pick again.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`BOOKING_TOKEN_HOTEL_MISMATCH`}),` (400)`]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`hotel_id`}),` is not the hotel of this token.`]}),_jsx(_components.td,{children:`Fix the pair; do not retry as is.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`VALIDATION_ERROR`}),` (400)`]}),_jsxs(_components.td,{children:[`Bad body, unknown field, or `,_jsx(_components.code,{children:`language`}),` differs from the quote.`]}),_jsx(_components.td,{children:`Fix the request.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`OFFER_UNAVAILABLE`}),` (409)`]}),_jsx(_components.td,{children:`The supplier says the offer is gone.`}),_jsx(_components.td,{children:`Fetch fresh rooms.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`HOTEL_MAPPING_UNVERIFIED`}),` (409)`]}),_jsx(_components.td,{children:`This supplier’s listing could not be verified for the hotel.`}),_jsx(_components.td,{children:`Offer another room option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`HOTEL_MAPPING_CHECK_PENDING`}),` (409)`]}),_jsxs(_components.td,{children:[`Verification still running (`,_jsx(_components.code,{children:`details.retryable`}),` is `,_jsx(_components.code,{children:`true`}),`).`]}),_jsx(_components.td,{children:`Retry after a few seconds.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PREBOOK_IN_PROGRESS`}),` (409)`]}),_jsx(_components.td,{children:`Same token is being prebooked.`}),_jsxs(_components.td,{children:[`Wait `,_jsx(_components.code,{children:`Retry-After`}),` seconds and repeat the identical request.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PREBOOKING_ID_EXPIRED`}),` (409)`]}),_jsx(_components.td,{children:`The supplier session already ended.`}),_jsx(_components.td,{children:`Fetch fresh rooms.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_OPERATION_NOT_SUPPORTED`}),` (409)`]}),_jsx(_components.td,{children:`The refreshed offer needs a payment method that is not supported.`}),_jsx(_components.td,{children:`Offer another room option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_RATE_LIMITED`}),` (429), `,_jsx(_components.code,{children:`PROVIDER_REQUEST_FAILED`}),` (502 / 503)`]}),_jsxs(_components.td,{children:[`Supplier problem. `,_jsx(_components.code,{children:`details.retryable`}),` tells if a retry makes sense.`]}),_jsx(_components.td,{children:`Retry with backoff when retryable, otherwise offer another option.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`PROVIDER_NOT_AUTHORIZED`}),`, `,_jsx(_components.code,{children:`PROVIDER_CONFIGURATION_ERROR`}),` (424)`]}),_jsx(_components.td,{children:`The supplier rejected the call for your connection (credentials or account setup at the supplier). Create Booking returns the same codes as 403/422 when the problem is your Unifystays setup instead.`}),_jsxs(_components.td,{children:[`Contact support with the `,_jsx(_components.code,{children:`request_id`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`common-mistakes`,children:`Common mistakes`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not skip a `,_jsx(_components.code,{children:`RECONFIRMATION_REQUIRED`}),` verdict. If the guest never saw the\nhigher price, they did not agree to it.`]})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not reuse an old `,_jsx(_components.code,{children:`prebooking_id`}),` for a second booking, and do not build a\nbooking from the rooms-stage offer’s IDs. Always send `,_jsx(_components.code,{children:`accepted_offer_id`}),` equal\nto the prebook `,_jsx(_components.code,{children:`data.offer.offer_id`}),`, together with the returned `,_jsx(_components.code,{children:`prebooking_id`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`next-step`,children:`Next step`}),`\n`,_jsxs(_components.p,{children:[`Collect guest details from `,_jsx(_components.code,{children:`booking_requirements`}),`, then call\n`,_jsx(_components.a,{href:`/api-reference/create-booking`,children:`Create Booking`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Prebook a Room","description":"Recheck the selected offer with the supplier and get the prebooking_id you need to book.","openapi":"reference/openapi.json POST /hotels/prebook","href":"/api-reference/prebook"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Why prebook is mandatory","slug":"why-prebook-is-mandatory","depth":2,"children":[]},{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"What to do with the response","slug":"what-to-do-with-the-response","depth":2,"children":[{"title":"Comparing the prebook price with the quoted price","slug":"comparing-the-prebook-price-with-the-quoted-price","depth":3,"children":[]},{"title":"What to show the guest when changes[] is not empty","slug":"what-to-show-the-guest-when-changes-is-not-empty","depth":3,"children":[]}]},{"title":"How long a prebook lasts","slug":"how-long-a-prebook-lasts","depth":2,"children":[]},{"title":"Repeating a prebook (idempotency)","slug":"repeating-a-prebook-idempotency","depth":2,"children":[]},{"title":"What to build checkout from","slug":"what-to-build-checkout-from","depth":2,"children":[]},{"title":"Errors to handle","slug":"errors-to-handle","depth":2,"children":[]},{"title":"Common mistakes","slug":"common-mistakes","depth":2,"children":[]},{"title":"Next step","slug":"next-step","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"8\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$UNIFYSTAYS_BASE_URL\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">/hotels/prebook\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"content-type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"x-api-key: \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$UNIFYSTAYS_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -d\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> '{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"hotel_id\": \"13553916\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"booking_token\": \"bq7.Y0QxTmtKc21Wbmk.7.6zI4D6fUEw2jVv7KQdM4Kw\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"146\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"contract_version\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"success\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"message\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Pre-booking completed. Option is available and ready for booking.\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"data\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"prebooking_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"offer\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"offer_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"off_65db5f20d91b47d3a73d834dfa44c50e\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"revision\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"offer_family_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"supersedes_offer_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"off_92b941fda86b4ad698044ab35152eaa5\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"provider_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"RATEHAWK\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"quote_context\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hotel\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"13553916\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Example Hotel\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"address\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Example Road\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"city\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"state\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"country\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"postal_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"latitude\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"longitude\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"timezone\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"check_in\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-12\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"check_out\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-15\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"nights\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">3\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"rooms\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [{ \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"adults\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"child_ages\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [] }],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"residency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"IN\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"nationality\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"IN\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"language\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"en\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"lifecycle\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"stage\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"PREBOOK\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"quoted_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-09-02T10:05:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"expires_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-09-02T10:15:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"prebook_required\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"price_guaranteed\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"availability\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"AVAILABLE\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"rooms_remaining\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"on_request\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"available_booking_modes\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"INSTANT\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hold_allowed\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"hold_deadline\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"post_booking_actions\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"STATUS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"CANCEL\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"rooms\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"room_allocation_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ra_2c1fb39ed54742f28d95bd8bc5f4375d\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"unifystays_room_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"4120553\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"unifystays_family_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"4120552\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"unifystays_room\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mapping_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MAPPED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"occupancy\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"adults\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"child_ages\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [] },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"meal_plan\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"BB\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"supplier_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"breakfast\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"supplier_name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Breakfast included\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"label\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bed and breakfast\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"is_breakfast_included\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"is_child_meal_included\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"inclusions\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: []\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"pricing\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"native_ledger\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"primary_currency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"USD\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"totals\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"currency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"USD\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"currency_exponent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"payable_to_supplier\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"amount_minor\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">46800\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"USD\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency_exponent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"payable_at_property\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"amount_minor\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">0\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"USD\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency_exponent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"total\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"amount_minor\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">46800\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"USD\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"currency_exponent\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">2\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"cancellation\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"refundability\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"REFUNDABLE\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"policy_stage\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"RECHECKED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"free_cancellation_until\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"local_datetime\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-08T23:59:00\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"timezone\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Asia/Kolkata\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"utc_datetime\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-08T18:29:00.000Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"policy_text\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Free cancellation until 8 Oct 2026 23:59 local time.\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"booking_requirements\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"requirement_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"br_title_all_guests_1\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"TITLE\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"label\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Title\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"value_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ENUM\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"scope\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ALL_GUESTS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"room_allocation_ids\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"required\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"allowed_values\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MR\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MRS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MISS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"MASTER\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"OTHER\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"constraints\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"requirement_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"br_first_name_all_guests_2\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"FIRST_NAME\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"label\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"First name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"value_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"TEXT\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"scope\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ALL_GUESTS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"room_allocation_ids\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"required\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"allowed_values\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"constraints\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"requirement_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"br_last_name_all_guests_3\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"LAST_NAME\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"label\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Last name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"value_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"TEXT\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"scope\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ALL_GUESTS\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"room_allocation_ids\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"required\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"allowed_values\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"constraints\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"notices\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: []\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"revalidation\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"result\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"UNCHANGED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"decision\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"READY_TO_BOOK\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"changes\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: []\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"supplier_hotel\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"provider_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"TRIPJACK\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"provider_hotel_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"100000012345\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026#x26; Residence\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"address\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Cluster T, Jumeirah Lakes Towers, Dubai\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"country_code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"AE\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mapping_status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"VERIFIED\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"verified_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-28T09:14:02.000Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Recheck the selected offer with the supplier and get the prebooking_id you need to book.","operationId":"HotelPreBookController_preBook","parameters":["0bf011f7-afb4-4dac-95b6-c40caec629f5","12a77db4-d9c3-4e00-8c35-d8b171c964d1","962cfb0c-0c57-4f01-afcb-0fe905f37901"],"requestBody":"226f5d36-bfe3-43a8-a610-4099a46f1a61","responses":{"200":"3df9d4b5-8640-4044-94a7-215f06daf497","400":"05858cf9-259a-41f0-b19b-26c25c43c25c","404":"4f77259a-85b9-4081-900e-becfadb94cc1","406":"33d7f727-c66d-4909-8030-0146926bd0de","409":"bf8f0c0b-7f68-4968-8af8-65202e07f238"},"summary":"Pre-book: verify price \u0026 availability before booking","tags":["Hotels"],"method":"post","type":"path","servers":["58b3027e-a79b-4d2c-898a-ec7cc8ae6eae","32e511f6-5caf-4d51-acd6-ad4d164fb151"],"security":["71ce26d4-cf7b-4d3b-ab99-f95701a1c420"],"path":"/hotels/prebook","baseUrlOptions":["https://api-sandbox.unifystays.com","https://api.unifystays.com"],"title":"Pre-book: verify price \u0026 availability before booking","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"dropdown":false,"language":"shellscript","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"shellscript","children":{"type":"code","key":null,"ref":null,"props":{"language":"shellscript","numberOfLines":"8","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#953800","--shiki-dark":"#DCDCAA"},"children":"curl"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \""}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":"$UNIFYSTAYS_BASE_URL"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"/hotels/prebook\""}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" -X"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" POST"}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" -H"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"content-type: application/json\""}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" -H"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"x-api-key: "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#9CDCFE"},"children":"$UNIFYSTAYS_API_KEY"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\""}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#CF222E","--shiki-dark":"#D7BA7D"},"children":" \\"}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":" -d"}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" '{"}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"hotel_id\": \"13553916\","}}}},"\n",{"type":"span","key":"12","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" \"booking_token\": \"bq7.Y0QxTmtKc21Wbmk.7.6zI4D6fUEw2jVv7KQdM4Kw\""}}}},"\n",{"type":"span","key":"14","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":" }'"}}}},"\n"]}}}},"filename":""}],"requestExampleType":"mdx","responseExamples":[{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"146","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"contract_version\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"success\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"message\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Pre-booking completed. Option is available and ready for booking.\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"data\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"prebooking_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"12","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"offer\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"14","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"offer_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"off_65db5f20d91b47d3a73d834dfa44c50e\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"16","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"revision\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"18","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"offer_family_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"20","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"supersedes_offer_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"off_92b941fda86b4ad698044ab35152eaa5\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"22","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"provider_code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"RATEHAWK\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"24","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"quote_context\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"26","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"hotel\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"28","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"13553916\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"30","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"name\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Example Hotel\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"32","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"address\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Example Road\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"34","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"city\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"36","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"state\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"38","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"country\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"40","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"postal_code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"42","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"latitude\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"44","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"longitude\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"46","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"timezone\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"48","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"50","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"check_in\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-10-12\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"52","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"check_out\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-10-15\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"54","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"nights\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"3"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"56","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"rooms\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [{ "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"adults\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"child_ages\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [] }],"}}]}},"\n",{"type":"span","key":"58","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"residency\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"IN\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"60","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"nationality\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"IN\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"62","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"language\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"en\""}}]}},"\n",{"type":"span","key":"64","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"66","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"lifecycle\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"68","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"stage\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"PREBOOK\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"70","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"quoted_at\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-09-02T10:05:00.000Z\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"72","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"expires_at\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-09-02T10:15:00.000Z\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"74","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"prebook_required\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"false"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"76","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"price_guaranteed\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"78","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"availability\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"AVAILABLE\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"80","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"rooms_remaining\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"82","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"on_request\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"false"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"84","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"available_booking_modes\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"INSTANT\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"],"}}]}},"\n",{"type":"span","key":"86","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"hold_allowed\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"false"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"88","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"hold_deadline\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"90","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"post_booking_actions\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"STATUS\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"CANCEL\""}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"]"}}]}},"\n",{"type":"span","key":"92","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"94","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"rooms\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}}]}},"\n",{"type":"span","key":"96","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"98","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"room_allocation_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ra_2c1fb39ed54742f28d95bd8bc5f4375d\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"100","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"unifystays_room_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"4120553\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"102","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"unifystays_family_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"4120552\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"104","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"unifystays_room\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"106","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"mapping_status\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MAPPED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"108","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"occupancy\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": { "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"adults\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"child_ages\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [] },"}}]}},"\n",{"type":"span","key":"110","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"meal_plan\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"112","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"BB\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"114","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"supplier_code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"breakfast\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"116","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"supplier_name\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Breakfast included\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"118","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"label\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Bed and breakfast\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"120","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"is_breakfast_included\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"122","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"is_child_meal_included\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"124","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"126","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"inclusions\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": []"}}]}},"\n",{"type":"span","key":"128","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"130","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" ],"}}}},"\n",{"type":"span","key":"132","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"pricing\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"134","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"native_ledger\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"136","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"primary_currency\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"USD\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"138","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"totals\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}}]}},"\n",{"type":"span","key":"140","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"142","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"currency\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"USD\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"144","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"currency_exponent\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"146","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"payable_to_supplier\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": { "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"amount_minor\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"46800"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"8","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"USD\""}},{"type":"span","key":"9","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"10","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency_exponent\""}},{"type":"span","key":"11","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"12","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"13","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}]}},"\n",{"type":"span","key":"148","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"payable_at_property\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": { "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"amount_minor\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"0"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"8","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"USD\""}},{"type":"span","key":"9","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"10","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency_exponent\""}},{"type":"span","key":"11","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"12","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"13","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}]}},"\n",{"type":"span","key":"150","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"total\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": { "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"amount_minor\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"46800"}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"8","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"USD\""}},{"type":"span","key":"9","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"10","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":"\"currency_exponent\""}},{"type":"span","key":"11","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"12","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"2"}},{"type":"span","key":"13","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}]}},"\n",{"type":"span","key":"152","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"154","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" ]"}}}},"\n",{"type":"span","key":"156","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"158","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"160","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"cancellation\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"162","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"refundability\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"REFUNDABLE\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"164","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"policy_stage\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"RECHECKED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"166","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"free_cancellation_until\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"168","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"local_datetime\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-10-08T23:59:00\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"170","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"timezone\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Asia/Kolkata\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"172","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"utc_datetime\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-10-08T18:29:00.000Z\""}}]}},"\n",{"type":"span","key":"174","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"176","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"policy_text\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Free cancellation until 8 Oct 2026 23:59 local time.\""}}]}},"\n",{"type":"span","key":"178","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"180","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"booking_requirements\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}}]}},"\n",{"type":"span","key":"182","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"184","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"requirement_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"br_title_all_guests_1\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"186","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"TITLE\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"188","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"label\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Title\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"190","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"value_type\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ENUM\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"192","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"scope\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ALL_GUESTS\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"194","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"room_allocation_ids\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [],"}}]}},"\n",{"type":"span","key":"196","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"required\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"198","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"allowed_values\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MR\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"4","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MRS\""}},{"type":"span","key":"5","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"6","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MS\""}},{"type":"span","key":"7","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"8","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MISS\""}},{"type":"span","key":"9","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"10","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"MASTER\""}},{"type":"span","key":"11","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":", "}},{"type":"span","key":"12","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"OTHER\""}},{"type":"span","key":"13","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"],"}}]}},"\n",{"type":"span","key":"200","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"description\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"202","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"constraints\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"204","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"206","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"208","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"requirement_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"br_first_name_all_guests_2\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"210","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"FIRST_NAME\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"212","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"label\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"First name\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"214","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"value_type\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"TEXT\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"216","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"scope\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ALL_GUESTS\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"218","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"room_allocation_ids\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [],"}}]}},"\n",{"type":"span","key":"220","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"required\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"222","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"allowed_values\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [],"}}]}},"\n",{"type":"span","key":"224","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"description\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"226","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"constraints\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"228","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"230","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"232","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"requirement_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"br_last_name_all_guests_3\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"234","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"LAST_NAME\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"236","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"label\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Last name\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"238","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"value_type\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"TEXT\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"240","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"scope\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ALL_GUESTS\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"242","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"room_allocation_ids\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [],"}}]}},"\n",{"type":"span","key":"244","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"required\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"true"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"246","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"allowed_values\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": [],"}}]}},"\n",{"type":"span","key":"248","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"description\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"250","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"constraints\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"252","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"254","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" ],"}}}},"\n",{"type":"span","key":"256","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"notices\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": []"}}]}},"\n",{"type":"span","key":"258","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"260","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"revalidation\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"262","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"result\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"UNCHANGED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"264","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"decision\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"READY_TO_BOOK\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"266","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"changes\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": []"}}]}},"\n",{"type":"span","key":"268","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" },"}}}},"\n",{"type":"span","key":"270","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"supplier_hotel\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": {"}}]}},"\n",{"type":"span","key":"272","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"provider_code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"TRIPJACK\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"274","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"provider_hotel_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"100000012345\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"276","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"name\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026 Residence\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"278","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"address\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"Cluster T, Jumeirah Lakes Towers, Dubai\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"280","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"country_code\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"AE\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"282","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"mapping_status\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"VERIFIED\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"284","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"verified_at\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"2026-10-28T09:14:02.000Z\""}}]}},"\n",{"type":"span","key":"286","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"288","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"290","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"}"}}}},"\n"]}}}},"filename":""}],"responseExampleType":"mdx"},"dependencies":{"parameters":{"0bf011f7-afb4-4dac-95b6-c40caec629f5":{"name":"language","description":"Enter language code(ex. en)","in":"header","schema":{}},"12a77db4-d9c3-4e00-8c35-d8b171c964d1":{"name":"X-Unifystays-Contract-Version","in":"header","required":false,"description":"Hotel API contract version. Optional: 2 is the current version and the default.","schema":{"type":"string","enum":["2"],"default":"2","isRequired":false,"description":"Hotel API contract version. Optional: 2 is the current version and the default.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"962cfb0c-0c57-4f01-afcb-0fe905f37901":{"name":"X-Unifystays-Currency","in":"header","required":false,"description":"ISO 4217 currency for display amounts (display_ledger, display_amount, commercial_display). Optional: defaults to your organization's display currency, USD unless configured. Read pricing.display_currency in the response.","schema":{"type":"string","minLength":3,"maxLength":3,"example":"EUR","isRequired":false,"description":"ISO 4217 currency for display amounts (display_ledger, display_amount, commercial_display). Optional: defaults to your organization's display currency, USD unless configured. Read pricing.display_currency in the response.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hotel_id":{"type":"string","description":"Unifystays hotel ID the guest is looking at, as returned by search (`hotel_id`). It must be the hotel the `booking_token` was issued for; a different hotel is rejected with BOOKING_TOKEN_HOTEL_MISMATCH.","example":"13553916","isRequired":true,"uniqueKey":"hotel_id","typeLabel":"string"},"booking_token":{"type":"string","description":"Opaque `booking_token` of the offer the guest picked, from Get Room Options or the room stream. Send it unchanged and do not parse it. It expires (see the offer's `lifecycle.expires_at`); an expired token returns BOOKING_TOKEN_EXPIRED and you must fetch fresh rooms.","example":"bq7.Y0QxTmtKc21Wbmk.7.6zI4D6fUEw2jVv7KQdM4Kw","isRequired":true,"uniqueKey":"booking_token","typeLabel":"string"},"language":{"type":"string","description":"Optional response language (2-10 letters, for example `en`). If you send it, it must equal the language of the room search that produced the `booking_token`; a different value is rejected with VALIDATION_ERROR. Omit it to use the quoted language.","example":"en","uniqueKey":"language","typeLabel":"string"}},"required":["hotel_id","booking_token"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"hotel_id":"13553916","booking_token":"bq7.Y0QxTmtKc21Wbmk.7.6zI4D6fUEw2jVv7KQdM4Kw","language":"en"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"3df9d4b5-8640-4044-94a7-215f06daf497":{"description":"Returns one authoritative refreshed offer, its revalidation decision, and a prebooking_id when the offer remains bookable. A sold-out or changed-room offer is also HTTP 200, with success false, decision NOT_BOOKABLE and prebooking_id null.","content":{"application/json":{"schema":{"type":"object","properties":{"contract_version":{"type":"string","example":"2","description":"Response contract version. Always \"2\".","isRequired":true,"uniqueKey":"contract_version","typeLabel":"string"},"success":{"type":"boolean","example":true,"description":"false when the offer is not bookable (`revalidation.decision` is NOT_BOOKABLE, for example sold out); true otherwise, including when reconfirmation is required. A sold-out or changed-room result is a normal HTTP 200 response with success false, not an error.","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"message":{"type":"string","example":"Pre-booking completed. Option is available and ready for booking.","description":"Human-readable summary for logs. Do not parse it; use `data.revalidation.decision`.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"data":{"type":"object","description":"The prebook result.","required":["prebooking_id","offer","revalidation","supplier_hotel"],"properties":{"prebooking_id":{"oneOf":[{"type":"string","example":"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q","description":"Single-use token you send to Create Booking. It is valid until `offer.lifecycle.expires_at` and is consumed by a successful booking. Null when `revalidation.decision` is NOT_BOOKABLE.","isRequired":true,"uniqueKey":"data.prebooking_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q","description":"Single-use token you send to Create Booking. It is valid until `offer.lifecycle.expires_at` and is consumed by a successful booking. Null when `revalidation.decision` is NOT_BOOKABLE.","isRequired":true,"uniqueKey":"data.prebooking_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.prebooking_id","typeLabel":"string | null"},"offer":{"type":"object","description":"The complete refreshed offer with a new `offer_id`. It is authoritative: replace the room-stage offer with it and never merge the two. Send its `offer_id` as `accepted_offer_id` to Create Booking.","required":["offer_id","revision","offer_family_id","supersedes_offer_id","quote_context","provider_code","room_combination","rate_plan","rooms","lifecycle","pricing","payment","commercial","commercial_display","booking_requirements","cancellation","nightly_prices","promotions","benefits","notices","supplier_terms_and_conditions"],"properties":{"offer_id":{"type":"string","example":"off_01J...","description":"Unifystays ID of this offer (off_...). Use it as the list key and to match a prebook result with the offer it replaces. Not a booking key; book with booking_token.","isRequired":true,"uniqueKey":"data.offer.offer_id","typeLabel":"string"},"revision":{"type":"number","example":1,"description":"Version of the offer. 1 for a room-search offer; the offer returned by Prebook has the next revision.","isRequired":true,"uniqueKey":"data.offer.revision","typeLabel":"number"},"offer_family_id":{"oneOf":[{"type":"string","description":"Offers whose slots are the same room families in the same order share this id. Use it as the card key for multi-room searches. Null when any slot is a tmp_ room. Never use it for booking.","isRequired":true,"uniqueKey":"data.offer.offer_family_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Offers whose slots are the same room families in the same order share this id. Use it as the card key for multi-room searches. Null when any slot is a tmp_ room. Never use it for booking.","isRequired":true,"uniqueKey":"data.offer.offer_family_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.offer_family_id","typeLabel":"string | null"},"supersedes_offer_id":{"oneOf":[{"type":"string","description":"Immediate prior offer replaced by this one. Null for the initial rooms quote; prebook points to the rooms offer. Replace the old offer atomically.","isRequired":true,"uniqueKey":"data.offer.supersedes_offer_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Immediate prior offer replaced by this one. Null for the initial rooms quote; prebook points to the rooms offer. Replace the old offer atomically.","isRequired":true,"uniqueKey":"data.offer.supersedes_offer_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.supersedes_offer_id","typeLabel":"string | null"},"quote_context":{"type":"object","description":"The search this offer answers: hotel, dates, occupancy, residency, nationality and language. Echoed so you can verify the offer matches what the guest asked for.","required":["hotel","check_in","check_out","nights","rooms","residency","nationality","language"],"properties":{"hotel":{"type":"object","description":"The hotel this offer is for.","required":["id","name","address","address_local","city","state","country","postal_code","latitude","longitude","timezone"],"properties":{"id":{"type":"string","description":"Unifystays hotel ID.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.id","typeLabel":"string"},"name":{"type":"string","description":"Hotel name.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.name","typeLabel":"string"},"address":{"oneOf":[{"type":"string","description":"Hotel address, in English (Latin script) when a verified supplier address is available.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address.oneOf.0","typeLabel":"string"},{"type":"null","description":"Hotel address, in English (Latin script) when a verified supplier address is available.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address","typeLabel":"string | null"},"address_local":{"oneOf":[{"type":"string","description":"Catalogue address in the local script (e.g. Thai) when it is not Latin script; null otherwise.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address_local.oneOf.0","typeLabel":"string"},{"type":"null","description":"Catalogue address in the local script (e.g. Thai) when it is not Latin script; null otherwise.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address_local.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.address_local","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","description":"City. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.city.oneOf.0","typeLabel":"string"},{"type":"null","description":"City. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.city.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.city","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","description":"State or region. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.state.oneOf.0","typeLabel":"string"},{"type":"null","description":"State or region. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.state","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","description":"Country code (ISO 3166-1 alpha-2). Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.country.oneOf.0","typeLabel":"string"},{"type":"null","description":"Country code (ISO 3166-1 alpha-2). Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.country.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.country","typeLabel":"string | null"},"postal_code":{"oneOf":[{"type":"string","description":"Postal code. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.postal_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Postal code. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.postal_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.postal_code","typeLabel":"string | null"},"latitude":{"oneOf":[{"type":"number","description":"Latitude. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.latitude.oneOf.0","typeLabel":"number"},{"type":"null","description":"Latitude. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.latitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.latitude","typeLabel":"number | null"},"longitude":{"oneOf":[{"type":"number","description":"Longitude. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.longitude.oneOf.0","typeLabel":"number"},{"type":"null","description":"Longitude. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.longitude.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.longitude","typeLabel":"number | null"},"timezone":{"oneOf":[{"type":"string","description":"IANA time zone of the hotel when known. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.timezone.oneOf.0","typeLabel":"string"},{"type":"null","description":"IANA time zone of the hotel when known. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel.timezone","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.quote_context.hotel","typeLabel":"object"},"check_in":{"type":"string","description":"Check-in date (YYYY-MM-DD).","isRequired":true,"uniqueKey":"data.offer.quote_context.check_in","typeLabel":"string"},"check_out":{"type":"string","description":"Check-out date (YYYY-MM-DD).","isRequired":true,"uniqueKey":"data.offer.quote_context.check_out","typeLabel":"string"},"nights":{"type":"number","description":"Number of nights.","isRequired":true,"uniqueKey":"data.offer.quote_context.nights","typeLabel":"number"},"rooms":{"description":"Occupancy of each room, in request order.","type":"array","items":{"type":"object","properties":{"adults":{"type":"number","description":"Adults in the room.","isRequired":true,"uniqueKey":"data.offer.quote_context.rooms.items.[INDEX].adults","typeLabel":"number"},"child_ages":{"description":"Ages of the children in the room.","type":"array","items":{"type":"number","uniqueKey":"data.offer.quote_context.rooms.items.[INDEX].child_ages.items.[INDEX]","typeLabel":"number"},"isRequired":true,"uniqueKey":"data.offer.quote_context.rooms.items.[INDEX].child_ages","typeLabel":"number[]"}},"required":["adults","child_ages"],"uniqueKey":"data.offer.quote_context.rooms.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.quote_context.rooms","typeLabel":"object[]"},"residency":{"oneOf":[{"type":"string","description":"Residency country used for the quote (ISO 3166-1 alpha-2).","isRequired":true,"uniqueKey":"data.offer.quote_context.residency.oneOf.0","typeLabel":"string"},{"type":"null","description":"Residency country used for the quote (ISO 3166-1 alpha-2).","isRequired":true,"uniqueKey":"data.offer.quote_context.residency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.residency","typeLabel":"string | null"},"nationality":{"oneOf":[{"type":"string","description":"Nationality used for the quote (ISO 3166-1 alpha-2).","isRequired":true,"uniqueKey":"data.offer.quote_context.nationality.oneOf.0","typeLabel":"string"},{"type":"null","description":"Nationality used for the quote (ISO 3166-1 alpha-2).","isRequired":true,"uniqueKey":"data.offer.quote_context.nationality.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.nationality","typeLabel":"string | null"},"language":{"oneOf":[{"type":"string","description":"Language code from the request. Null when none was sent.","isRequired":true,"uniqueKey":"data.offer.quote_context.language.oneOf.0","typeLabel":"string"},{"type":"null","description":"Language code from the request. Null when none was sent.","isRequired":true,"uniqueKey":"data.offer.quote_context.language.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.quote_context.language","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.quote_context","typeLabel":"object"},"provider_code":{"type":"string","example":"TBO","description":"Supplier that sells the offer, for example TRIPJACK.","isRequired":true,"uniqueKey":"data.offer.provider_code","typeLabel":"string"},"room_combination":{"type":"object","description":"How the rooms array is composed. The complete rooms array is always one atomic offer.","required":["normalized_type","supplier_code","supplier_name"],"properties":{"normalized_type":{"type":"string","enum":["SINGLE_ROOM","SAME_ROOM_TYPE","MIXED_ROOM_TYPES","FIXED_COMBINATION","OTHER","UNKNOWN"],"description":"Normalized description of the room composition. The complete rooms array is always one atomic offer.","isRequired":true,"uniqueKey":"data.offer.room_combination.normalized_type","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Opaque supplier-native combination code retained for diagnostics and future mappings. Prefer normalized_type for application logic.","isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque supplier-native combination code retained for diagnostics and future mappings. Prefer normalized_type for application logic.","isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier-native display label, when supplied.","isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier-native display label, when supplied.","isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.room_combination.supplier_name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.room_combination","typeLabel":"object"},"rate_plan":{"oneOf":[{"type":"object","description":"Rate eligibility and selling classification. Supplier fields are opaque and nullable; use normalized_type and restriction flags for logic.","required":["normalized_type","supplier_code","supplier_name","qualification","is_package","is_fenced"],"properties":{"normalized_type":{"type":"string","enum":["PUBLIC","NEGOTIATED","CORPORATE","MEMBER","MOBILE","PACKAGE","PROMOTIONAL","GOVERNMENT","GROUP","OTHER","UNKNOWN"],"description":"Rate class: PUBLIC, NEGOTIATED, CORPORATE, MEMBER, MOBILE, PACKAGE, PROMOTIONAL, GOVERNMENT, GROUP, OTHER, or UNKNOWN. UNKNOWN means the supplier did not say; do not assume PUBLIC.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.normalized_type","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Opaque supplier-native rate-plan identifier. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Opaque supplier-native rate-plan identifier. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier-native display name. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier-native display name. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.supplier_name","typeLabel":"string | null"},"qualification":{"oneOf":[{"type":"string","description":"Supplier-defined eligibility condition. Display it when present; do not infer eligibility from null.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.qualification.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier-defined eligibility condition. Display it when present; do not infer eligibility from null.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.qualification.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.qualification","typeLabel":"string | null"},"is_package":{"type":"boolean","description":"True when the rate is sold as part of a package.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.is_package","typeLabel":"boolean"},"is_fenced":{"type":"boolean","description":"True when the supplier restricts how the rate may be sold. Show qualification when it is present.","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0.is_fenced","typeLabel":"boolean"}},"isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rate_plan.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rate_plan","typeLabel":"object | null"},"rooms":{"description":"One entry per requested room, in request order. Book all of them together; they cannot be split across offers.","type":"array","items":{"type":"object","properties":{"room_allocation_id":{"type":"string","example":"ra_2c1fb39ed54742f28d95bd8bc5f4375d","description":"Opaque identity for this exact quoted room slot. Preserved through prebook and booking.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].room_allocation_id","typeLabel":"string"},"provider_room":{"type":"object","description":"The seller's own room: name, beds, capacity and the attributes the seller sent. Always show its beds and maximum guests on the offer row.","required":["provider_code","provider_hotel_id","id","name","supplier_name","description","description_format","detail_status","room_type","room_category","size","amenities","images","bed_configurations","bed_summary","occupancy","bathroom","views","features","extra_bed","child_bed"],"properties":{"provider_code":{"type":"string","example":"TRIPJACK","description":"Supplier that sells this room, for example TRIPJACK. Display as the seller name if you wish.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.provider_code","typeLabel":"string"},"provider_hotel_id":{"oneOf":[{"type":"string","example":"100000249368","description":"The supplier's ID for the hotel. Null when not supplied. Informational.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.provider_hotel_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"100000249368","description":"The supplier's ID for the hotel. Null when not supplied. Informational.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.provider_hotel_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.provider_hotel_id","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","example":"10024615989","description":"The supplier's ID for this room type. Null when the supplier sends none. Informational; do not use it as a booking key.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.id.oneOf.0","typeLabel":"string"},{"type":"null","example":"10024615989","description":"The supplier's ID for this room type. Null when the supplier sends none. Informational; do not use it as a booking key.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.id","typeLabel":"string | null"},"name":{"type":"string","example":"Aloft Studio, King","description":"Room name to display on the offer row, in the seller's words. For a catalogue room it can change as names are normalised; do not use it as an identity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.name","typeLabel":"string"},"supplier_name":{"oneOf":[{"type":"string","description":"Room name exactly as the supplier sent it. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room name exactly as the supplier sent it. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.supplier_name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Room description. Null when none. Render according to description_format.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room description. Null when none. Render according to description_format.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description","typeLabel":"string | null"},"description_format":{"oneOf":[{"type":"string","enum":["HTML","TEXT"],"description":"HTML = sanitized HTML to render; TEXT = plain text to escape. Null when description is null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["HTML","TEXT"],"description":"HTML = sanitized HTML to render; TEXT = plain text to escape. Null when description is null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description_format.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.description_format","typeLabel":"enum\u003cstring> | null"},"detail_status":{"type":"string","enum":["NONE","PARTIAL","COMPLETE"],"description":"NONE: only id and name are known. PARTIAL: some structured detail is present; any field may still be null. COMPLETE: reserved; not emitted today.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.detail_status","typeLabel":"enum\u003cstring>"},"room_type":{"oneOf":[{"type":"object","description":"Room type classification (for example SUITE). Null when unknown.","required":["normalized_code","supplier_code","supplier_name"],"properties":{"normalized_code":{"type":"string","enum":["ROOM","SUITE","STUDIO","APARTMENT","VILLA","DORM","STANDARD","SUPERIOR","DELUXE","EXECUTIVE","PREMIUM","FAMILY","OTHER","UNKNOWN"],"example":"SUPERIOR","description":"Unifystays classification. New values may be added; treat an unknown value as OTHER.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.normalized_code","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0.supplier_name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_type","typeLabel":"object | null"},"room_category":{"oneOf":[{"type":"object","description":"Room category classification (for example DELUXE). Null when unknown.","required":["normalized_code","supplier_code","supplier_name"],"properties":{"normalized_code":{"type":"string","enum":["ROOM","SUITE","STUDIO","APARTMENT","VILLA","DORM","STANDARD","SUPERIOR","DELUXE","EXECUTIVE","PREMIUM","FAMILY","OTHER","UNKNOWN"],"example":"SUPERIOR","description":"Unifystays classification. New values may be added; treat an unknown value as OTHER.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.normalized_code","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0.supplier_name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.room_category","typeLabel":"object | null"},"size":{"oneOf":[{"type":"object","description":"Room size. Null when unknown.","required":["value","unit"],"properties":{"value":{"oneOf":[{"type":"number","description":"Room size number. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Room size number. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.value","typeLabel":"number | null"},"unit":{"oneOf":[{"type":"string","example":"sqm","description":"Unit of value, for example sqm. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.unit.oneOf.0","typeLabel":"string"},{"type":"null","example":"sqm","description":"Unit of value, for example sqm. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0.unit","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.size","typeLabel":"object | null"},"amenities":{"description":"Amenities the seller lists for the room. Empty array when none were supplied.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"2403","description":"Supplier amenity id. For UNIFYSTAYS rooms this is the amenity code (same as normalized_code).","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].id","typeLabel":"string"},"normalized_code":{"oneOf":[{"type":"string","example":"WHEELCHAIR_ACCESSIBLE","description":"Stable upper-case amenity code. New codes may be added; treat an unrecognised code as a plain labelled amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].normalized_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"WHEELCHAIR_ACCESSIBLE","description":"Stable upper-case amenity code. New codes may be added; treat an unrecognised code as a plain labelled amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].normalized_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].normalized_code","typeLabel":"string | null"},"supplier_code":{"oneOf":[{"type":"string","example":"2403","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"2403","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].supplier_code","typeLabel":"string | null"},"name":{"type":"string","example":"Free WiFi","description":"Amenity name to display.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].name","typeLabel":"string"},"category":{"oneOf":[{"type":"string","enum":["GENERAL","ACCESSIBILITY","OUTDOOR","KITCHEN","BATHROOM","CONNECTIVITY","SAFETY"],"description":"Grouping for display. Null when the source does not categorise the amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].category.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["GENERAL","ACCESSIBILITY","OUTDOOR","KITCHEN","BATHROOM","CONNECTIVITY","SAFETY"],"description":"Grouping for display. Null when the source does not categorise the amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX].category","typeLabel":"enum\u003cstring> | null"}},"required":["id","normalized_code","supplier_code","name","category"],"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.amenities","typeLabel":"object[]"},"images":{"description":"Room images from the seller. Empty array when none.","type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Image URL. Treat it as opaque; do not rewrite or strip it.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].url","typeLabel":"string"},"caption":{"oneOf":[{"type":"string","description":"Caption when supplied. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].caption.oneOf.0","typeLabel":"string"},{"type":"null","description":"Caption when supplied. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].caption.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].caption","typeLabel":"string | null"},"is_primary":{"oneOf":[{"type":"boolean","description":"True for the lead image of the room. Null when the source does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].is_primary.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for the lead image of the room. Null when the source does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].is_primary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX].is_primary","typeLabel":"boolean | null"}},"required":["url","caption","is_primary"],"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.images","typeLabel":"object[]"},"bed_configurations":{"description":"Supplier-provided bedding choices. An empty array means dependable bedding data was not supplied; it does not mean the room has no bed.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"bed_1","description":"Identifies this layout within the room.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].id","typeLabel":"string"},"bed_count":{"oneOf":[{"type":"number","example":1,"description":"Total number of beds in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_count.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Total number of beds in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_count","typeLabel":"number | null"},"bedroom_count":{"oneOf":[{"type":"number","example":1,"description":"Number of bedrooms in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bedroom_count.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Number of bedrooms in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bedroom_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bedroom_count","typeLabel":"number | null"},"beds":{"description":"The beds in this layout, one entry per bed type.","type":"array","items":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","example":"King","description":"Bed type as the supplier named it, for display. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","example":"King","description":"Bed type as the supplier named it, for display. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].type","typeLabel":"string | null"},"normalized_type":{"oneOf":[{"type":"string","enum":["SINGLE","DOUBLE","QUEEN","KING","TWIN","SOFA_BED","BUNK","OTHER"],"description":"Null when the bed type is not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["SINGLE","DOUBLE","QUEEN","KING","TWIN","SOFA_BED","BUNK","OTHER"],"description":"Null when the bed type is not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type","typeLabel":"enum\u003cstring> | null"},"supplier_type":{"oneOf":[{"type":"string","description":"The supplier's raw bed-type value. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"The supplier's raw bed-type value. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type","typeLabel":"string | null"},"quantity":{"oneOf":[{"type":"number","example":1,"description":"Number of beds of this type. Null means unknown, not zero.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Number of beds of this type. Null means unknown, not zero.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity","typeLabel":"number | null"},"width_min_cm":{"oneOf":[{"type":"number","example":151,"description":"Minimum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm.oneOf.0","typeLabel":"number"},{"type":"null","example":151,"description":"Minimum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm","typeLabel":"number | null"},"width_max_cm":{"oneOf":[{"type":"number","example":180,"description":"Maximum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm.oneOf.0","typeLabel":"number"},{"type":"null","example":180,"description":"Maximum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm","typeLabel":"number | null"}},"required":["type","normalized_type","supplier_type","quantity","width_min_cm","width_max_cm"],"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].beds","typeLabel":"object[]"},"bed_type_guaranteed":{"oneOf":[{"type":"boolean","description":"True only when the supplier explicitly guarantees this bedding. False means described but not guaranteed; null means unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_type_guaranteed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True only when the supplier explicitly guarantees this bedding. False means described but not guaranteed; null means unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_type_guaranteed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].bed_type_guaranteed","typeLabel":"boolean | null"},"selected":{"oneOf":[{"type":"boolean","description":"True for the layout this offer is sold with. Null when not known, and always null on catalogue (UNIFYSTAYS) rooms, where layouts are alternatives.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].selected.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for the layout this offer is sold with. Null when not known, and always null on catalogue (UNIFYSTAYS) rooms, where layouts are alternatives.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].selected.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX].selected","typeLabel":"boolean | null"}},"required":["id","bed_count","bedroom_count","beds","bed_type_guaranteed","selected"],"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_configurations","typeLabel":"object[]"},"bed_summary":{"oneOf":[{"type":"string","example":"1 king bed or 2 single beds","description":"English display text for the bedding. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_summary.oneOf.0","typeLabel":"string"},{"type":"null","example":"1 king bed or 2 single beds","description":"English display text for the bedding. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_summary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bed_summary","typeLabel":"string | null"},"occupancy":{"oneOf":[{"type":"object","description":"Room capacity as the seller states it. Null when unknown.","required":["max_allowed"],"properties":{"max_allowed":{"type":"object","description":"The room's capacity as the seller states it. This is capacity, not the occupancy you searched for (that is in the slot's occupancy).","required":["total","adults","children","infants"],"properties":{"total":{"oneOf":[{"type":"number","example":3,"description":"Maximum guests in the room, all ages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.total.oneOf.0","typeLabel":"number"},{"type":"null","example":3,"description":"Maximum guests in the room, all ages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.total","typeLabel":"number | null"},"adults":{"oneOf":[{"type":"number","example":3,"description":"Maximum adults. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.adults.oneOf.0","typeLabel":"number"},{"type":"null","example":3,"description":"Maximum adults. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.adults.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.adults","typeLabel":"number | null"},"children":{"oneOf":[{"type":"number","example":2,"description":"Maximum children. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.children.oneOf.0","typeLabel":"number"},{"type":"null","example":2,"description":"Maximum children. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.children.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.children","typeLabel":"number | null"},"infants":{"oneOf":[{"type":"number","description":"Maximum infants. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.infants.oneOf.0","typeLabel":"number"},{"type":"null","description":"Maximum infants. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.infants.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed.infants","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0.max_allowed","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.occupancy","typeLabel":"object | null"},"bathroom":{"oneOf":[{"type":"object","description":"Bathroom details. Null when unknown.","required":["type","count"],"properties":{"type":{"oneOf":[{"type":"string","enum":["PRIVATE","SHARED","ENSUITE"],"description":"Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["PRIVATE","SHARED","ENSUITE"],"description":"Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.type","typeLabel":"enum\u003cstring> | null"},"count":{"oneOf":[{"type":"number","description":"Number of bathrooms. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.count.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of bathrooms. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0.count","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.bathroom","typeLabel":"object | null"},"views":{"description":"Views from the room. Empty array when none were supplied.","type":"array","items":{"type":"object","properties":{"normalized_code":{"type":"string","example":"CITY","description":"Unifystays view code, for example CITY. New codes may be added; fall back to name.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].normalized_code","typeLabel":"string"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].supplier_code","typeLabel":"string | null"},"name":{"type":"string","description":"View name to display.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].name","typeLabel":"string"},"partial":{"oneOf":[{"type":"boolean","description":"True when the view is known to be partial; null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].partial.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the view is known to be partial; null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].partial.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX].partial","typeLabel":"boolean | null"}},"required":["normalized_code","supplier_code","name","partial"],"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.views","typeLabel":"object[]"},"features":{"oneOf":[{"type":"object","description":"Boolean features (balcony, smoking, accessible...). Null when none were supplied.","required":["balcony","smoking","accessible","club_access","connecting_room"],"properties":{"balcony":{"oneOf":[{"type":"boolean","description":"True when the room has a balcony. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.balcony.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the room has a balcony. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.balcony.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.balcony","typeLabel":"boolean | null"},"smoking":{"oneOf":[{"type":"string","enum":["SMOKING","NON_SMOKING","MIXED"],"description":"MIXED means smoking status depends on the room allocated. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.smoking.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["SMOKING","NON_SMOKING","MIXED"],"description":"MIXED means smoking status depends on the room allocated. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.smoking.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.smoking","typeLabel":"enum\u003cstring> | null"},"accessible":{"oneOf":[{"type":"boolean","description":"True for an accessible (wheelchair-friendly) room. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.accessible.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for an accessible (wheelchair-friendly) room. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.accessible.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.accessible","typeLabel":"boolean | null"},"club_access":{"oneOf":[{"type":"boolean","description":"True when the rate includes club or lounge access. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.club_access.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the rate includes club or lounge access. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.club_access.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.club_access","typeLabel":"boolean | null"},"connecting_room":{"oneOf":[{"type":"boolean","description":"True when the room connects to another. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.connecting_room.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the room connects to another. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.connecting_room.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0.connecting_room","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.features","typeLabel":"object | null"},"extra_bed":{"oneOf":[{"type":"object","description":"Extra-bed rules. Null when unknown.","required":["available","included","charge_applicable"],"properties":{"available":{"oneOf":[{"type":"boolean","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.available.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.available.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.available","typeLabel":"boolean | null"},"included":{"oneOf":[{"type":"boolean","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.included","typeLabel":"boolean | null"},"charge_applicable":{"oneOf":[{"type":"boolean","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.charge_applicable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.charge_applicable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0.charge_applicable","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.extra_bed","typeLabel":"object | null"},"child_bed":{"oneOf":[{"type":"object","description":"Child-bed or cot rules. Null when unknown.","required":["available","included","charge_applicable"],"properties":{"available":{"oneOf":[{"type":"boolean","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.available.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.available.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.available","typeLabel":"boolean | null"},"included":{"oneOf":[{"type":"boolean","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.included","typeLabel":"boolean | null"},"charge_applicable":{"oneOf":[{"type":"boolean","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.charge_applicable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.charge_applicable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0.charge_applicable","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room.child_bed","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].provider_room","typeLabel":"object"},"mapping_status":{"type":"string","enum":["MAPPED","AMBIGUOUS","UNMAPPED","CONFLICT"],"example":"MAPPED","description":"MAPPED when the slot is placed in a built room family; UNMAPPED for a tmp_ room that is valid for this search only. AMBIGUOUS and CONFLICT are reserved. Diagnostics only: every offer stays bookable through its booking_token.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_status","typeLabel":"enum\u003cstring>"},"mapping_details":{"type":"object","description":"How the slot was placed in a room family. Diagnostics only.","required":["source","confidence","algorithm_version","reason_codes"],"properties":{"source":{"oneOf":[{"type":"string","enum":["MANUAL","AUTO"],"description":"MANUAL when a person confirmed the placement, AUTO when it was matched automatically. Null for a tmp_ room.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.source.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["MANUAL","AUTO"],"description":"MANUAL when a person confirmed the placement, AUTO when it was matched automatically. Null for a tmp_ room.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.source.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.source","typeLabel":"enum\u003cstring> | null"},"confidence":{"oneOf":[{"type":"number","example":0.93,"description":"Reserved; currently null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.confidence.oneOf.0","typeLabel":"number"},{"type":"null","example":0.93,"description":"Reserved; currently null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.confidence.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.confidence","typeLabel":"number | null"},"algorithm_version":{"oneOf":[{"type":"string","example":"ROOM_RULES_V5","description":"Version label of the matching rules. Null for a tmp_ room. Diagnostics only.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.algorithm_version.oneOf.0","typeLabel":"string"},{"type":"null","example":"ROOM_RULES_V5","description":"Version label of the matching rules. Null for a tmp_ room. Diagnostics only.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.algorithm_version.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.algorithm_version","typeLabel":"string | null"},"reason_codes":{"example":["GLOBAL_CATALOGUE_ASSIGNMENT","ASSIGNMENT_STABLE","BED_EXACT"],"description":"Why the slot was placed here. Diagnostics only; the list of codes can change, do not branch on it.","type":"array","items":{"type":"string","uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.reason_codes.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details.reason_codes","typeLabel":"string[]"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].mapping_details","typeLabel":"object"},"unifystays_room":{"oneOf":[{"type":"object","description":"Always null. Use unifystays_room_id and unifystays_family_id.","required":["provider_code","provider_hotel_id","id","name","supplier_name","description","description_format","detail_status","room_type","room_category","size","amenities","images","bed_configurations","bed_summary","occupancy","bathroom","views","features","extra_bed","child_bed"],"properties":{"provider_code":{"type":"string","example":"TRIPJACK","description":"Supplier that sells this room, for example TRIPJACK. Display as the seller name if you wish.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.provider_code","typeLabel":"string"},"provider_hotel_id":{"oneOf":[{"type":"string","example":"100000249368","description":"The supplier's ID for the hotel. Null when not supplied. Informational.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.provider_hotel_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"100000249368","description":"The supplier's ID for the hotel. Null when not supplied. Informational.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.provider_hotel_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.provider_hotel_id","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","example":"10024615989","description":"The supplier's ID for this room type. Null when the supplier sends none. Informational; do not use it as a booking key.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.id.oneOf.0","typeLabel":"string"},{"type":"null","example":"10024615989","description":"The supplier's ID for this room type. Null when the supplier sends none. Informational; do not use it as a booking key.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.id","typeLabel":"string | null"},"name":{"type":"string","example":"Aloft Studio, King","description":"Room name to display on the offer row, in the seller's words. For a catalogue room it can change as names are normalised; do not use it as an identity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.name","typeLabel":"string"},"supplier_name":{"oneOf":[{"type":"string","description":"Room name exactly as the supplier sent it. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room name exactly as the supplier sent it. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.supplier_name","typeLabel":"string | null"},"description":{"oneOf":[{"type":"string","description":"Room description. Null when none. Render according to description_format.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room description. Null when none. Render according to description_format.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description","typeLabel":"string | null"},"description_format":{"oneOf":[{"type":"string","enum":["HTML","TEXT"],"description":"HTML = sanitized HTML to render; TEXT = plain text to escape. Null when description is null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description_format.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["HTML","TEXT"],"description":"HTML = sanitized HTML to render; TEXT = plain text to escape. Null when description is null.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description_format.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.description_format","typeLabel":"enum\u003cstring> | null"},"detail_status":{"type":"string","enum":["NONE","PARTIAL","COMPLETE"],"description":"NONE: only id and name are known. PARTIAL: some structured detail is present; any field may still be null. COMPLETE: reserved; not emitted today.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.detail_status","typeLabel":"enum\u003cstring>"},"room_type":{"oneOf":[{"type":"object","description":"Room type classification (for example SUITE). Null when unknown.","required":["normalized_code","supplier_code","supplier_name"],"properties":{"normalized_code":{"type":"string","enum":["ROOM","SUITE","STUDIO","APARTMENT","VILLA","DORM","STANDARD","SUPERIOR","DELUXE","EXECUTIVE","PREMIUM","FAMILY","OTHER","UNKNOWN"],"example":"SUPERIOR","description":"Unifystays classification. New values may be added; treat an unknown value as OTHER.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.normalized_code","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0.supplier_name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_type","typeLabel":"object | null"},"room_category":{"oneOf":[{"type":"object","description":"Room category classification (for example DELUXE). Null when unknown.","required":["normalized_code","supplier_code","supplier_name"],"properties":{"normalized_code":{"type":"string","enum":["ROOM","SUITE","STUDIO","APARTMENT","VILLA","DORM","STANDARD","SUPERIOR","DELUXE","EXECUTIVE","PREMIUM","FAMILY","OTHER","UNKNOWN"],"example":"SUPERIOR","description":"Unifystays classification. New values may be added; treat an unknown value as OTHER.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.normalized_code","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier's own label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0.supplier_name","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.room_category","typeLabel":"object | null"},"size":{"oneOf":[{"type":"object","description":"Room size. Null when unknown.","required":["value","unit"],"properties":{"value":{"oneOf":[{"type":"number","description":"Room size number. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Room size number. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.value.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.value","typeLabel":"number | null"},"unit":{"oneOf":[{"type":"string","example":"sqm","description":"Unit of value, for example sqm. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.unit.oneOf.0","typeLabel":"string"},{"type":"null","example":"sqm","description":"Unit of value, for example sqm. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.unit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0.unit","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.size","typeLabel":"object | null"},"amenities":{"description":"Amenities the seller lists for the room. Empty array when none were supplied.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"2403","description":"Supplier amenity id. For UNIFYSTAYS rooms this is the amenity code (same as normalized_code).","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].id","typeLabel":"string"},"normalized_code":{"oneOf":[{"type":"string","example":"WHEELCHAIR_ACCESSIBLE","description":"Stable upper-case amenity code. New codes may be added; treat an unrecognised code as a plain labelled amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].normalized_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"WHEELCHAIR_ACCESSIBLE","description":"Stable upper-case amenity code. New codes may be added; treat an unrecognised code as a plain labelled amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].normalized_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].normalized_code","typeLabel":"string | null"},"supplier_code":{"oneOf":[{"type":"string","example":"2403","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"2403","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].supplier_code","typeLabel":"string | null"},"name":{"type":"string","example":"Free WiFi","description":"Amenity name to display.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].name","typeLabel":"string"},"category":{"oneOf":[{"type":"string","enum":["GENERAL","ACCESSIBILITY","OUTDOOR","KITCHEN","BATHROOM","CONNECTIVITY","SAFETY"],"description":"Grouping for display. Null when the source does not categorise the amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].category.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["GENERAL","ACCESSIBILITY","OUTDOOR","KITCHEN","BATHROOM","CONNECTIVITY","SAFETY"],"description":"Grouping for display. Null when the source does not categorise the amenity.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX].category","typeLabel":"enum\u003cstring> | null"}},"required":["id","normalized_code","supplier_code","name","category"],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.amenities","typeLabel":"object[]"},"images":{"description":"Room images from the seller. Empty array when none.","type":"array","items":{"type":"object","properties":{"url":{"type":"string","description":"Image URL. Treat it as opaque; do not rewrite or strip it.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].url","typeLabel":"string"},"caption":{"oneOf":[{"type":"string","description":"Caption when supplied. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].caption.oneOf.0","typeLabel":"string"},{"type":"null","description":"Caption when supplied. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].caption.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].caption","typeLabel":"string | null"},"is_primary":{"oneOf":[{"type":"boolean","description":"True for the lead image of the room. Null when the source does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].is_primary.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for the lead image of the room. Null when the source does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].is_primary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX].is_primary","typeLabel":"boolean | null"}},"required":["url","caption","is_primary"],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.images","typeLabel":"object[]"},"bed_configurations":{"description":"Supplier-provided bedding choices. An empty array means dependable bedding data was not supplied; it does not mean the room has no bed.","type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"bed_1","description":"Identifies this layout within the room.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].id","typeLabel":"string"},"bed_count":{"oneOf":[{"type":"number","example":1,"description":"Total number of beds in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_count.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Total number of beds in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_count","typeLabel":"number | null"},"bedroom_count":{"oneOf":[{"type":"number","example":1,"description":"Number of bedrooms in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bedroom_count.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Number of bedrooms in this layout. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bedroom_count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bedroom_count","typeLabel":"number | null"},"beds":{"description":"The beds in this layout, one entry per bed type.","type":"array","items":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","example":"King","description":"Bed type as the supplier named it, for display. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].type.oneOf.0","typeLabel":"string"},{"type":"null","example":"King","description":"Bed type as the supplier named it, for display. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].type","typeLabel":"string | null"},"normalized_type":{"oneOf":[{"type":"string","enum":["SINGLE","DOUBLE","QUEEN","KING","TWIN","SOFA_BED","BUNK","OTHER"],"description":"Null when the bed type is not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["SINGLE","DOUBLE","QUEEN","KING","TWIN","SOFA_BED","BUNK","OTHER"],"description":"Null when the bed type is not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].normalized_type","typeLabel":"enum\u003cstring> | null"},"supplier_type":{"oneOf":[{"type":"string","description":"The supplier's raw bed-type value. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type.oneOf.0","typeLabel":"string"},{"type":"null","description":"The supplier's raw bed-type value. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].supplier_type","typeLabel":"string | null"},"quantity":{"oneOf":[{"type":"number","example":1,"description":"Number of beds of this type. Null means unknown, not zero.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity.oneOf.0","typeLabel":"number"},{"type":"null","example":1,"description":"Number of beds of this type. Null means unknown, not zero.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].quantity","typeLabel":"number | null"},"width_min_cm":{"oneOf":[{"type":"number","example":151,"description":"Minimum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm.oneOf.0","typeLabel":"number"},{"type":"null","example":151,"description":"Minimum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_min_cm","typeLabel":"number | null"},"width_max_cm":{"oneOf":[{"type":"number","example":180,"description":"Maximum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm.oneOf.0","typeLabel":"number"},{"type":"null","example":180,"description":"Maximum bed width in centimetres when stated. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX].width_max_cm","typeLabel":"number | null"}},"required":["type","normalized_type","supplier_type","quantity","width_min_cm","width_max_cm"],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].beds","typeLabel":"object[]"},"bed_type_guaranteed":{"oneOf":[{"type":"boolean","description":"True only when the supplier explicitly guarantees this bedding. False means described but not guaranteed; null means unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_type_guaranteed.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True only when the supplier explicitly guarantees this bedding. False means described but not guaranteed; null means unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_type_guaranteed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].bed_type_guaranteed","typeLabel":"boolean | null"},"selected":{"oneOf":[{"type":"boolean","description":"True for the layout this offer is sold with. Null when not known, and always null on catalogue (UNIFYSTAYS) rooms, where layouts are alternatives.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].selected.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for the layout this offer is sold with. Null when not known, and always null on catalogue (UNIFYSTAYS) rooms, where layouts are alternatives.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].selected.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX].selected","typeLabel":"boolean | null"}},"required":["id","bed_count","bedroom_count","beds","bed_type_guaranteed","selected"],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_configurations","typeLabel":"object[]"},"bed_summary":{"oneOf":[{"type":"string","example":"1 king bed or 2 single beds","description":"English display text for the bedding. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_summary.oneOf.0","typeLabel":"string"},{"type":"null","example":"1 king bed or 2 single beds","description":"English display text for the bedding. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_summary.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bed_summary","typeLabel":"string | null"},"occupancy":{"oneOf":[{"type":"object","description":"Room capacity as the seller states it. Null when unknown.","required":["max_allowed"],"properties":{"max_allowed":{"type":"object","description":"The room's capacity as the seller states it. This is capacity, not the occupancy you searched for (that is in the slot's occupancy).","required":["total","adults","children","infants"],"properties":{"total":{"oneOf":[{"type":"number","example":3,"description":"Maximum guests in the room, all ages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.total.oneOf.0","typeLabel":"number"},{"type":"null","example":3,"description":"Maximum guests in the room, all ages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.total","typeLabel":"number | null"},"adults":{"oneOf":[{"type":"number","example":3,"description":"Maximum adults. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.adults.oneOf.0","typeLabel":"number"},{"type":"null","example":3,"description":"Maximum adults. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.adults.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.adults","typeLabel":"number | null"},"children":{"oneOf":[{"type":"number","example":2,"description":"Maximum children. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.children.oneOf.0","typeLabel":"number"},{"type":"null","example":2,"description":"Maximum children. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.children.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.children","typeLabel":"number | null"},"infants":{"oneOf":[{"type":"number","description":"Maximum infants. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.infants.oneOf.0","typeLabel":"number"},{"type":"null","description":"Maximum infants. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.infants.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed.infants","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0.max_allowed","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.occupancy","typeLabel":"object | null"},"bathroom":{"oneOf":[{"type":"object","description":"Bathroom details. Null when unknown.","required":["type","count"],"properties":{"type":{"oneOf":[{"type":"string","enum":["PRIVATE","SHARED","ENSUITE"],"description":"Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["PRIVATE","SHARED","ENSUITE"],"description":"Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.type","typeLabel":"enum\u003cstring> | null"},"count":{"oneOf":[{"type":"number","description":"Number of bathrooms. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.count.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of bathrooms. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.count.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0.count","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.bathroom","typeLabel":"object | null"},"views":{"description":"Views from the room. Empty array when none were supplied.","type":"array","items":{"type":"object","properties":{"normalized_code":{"type":"string","example":"CITY","description":"Unifystays view code, for example CITY. New codes may be added; fall back to name.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].normalized_code","typeLabel":"string"},"supplier_code":{"oneOf":[{"type":"string","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","description":"Supplier-native code. Null for UNIFYSTAYS rooms.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].supplier_code","typeLabel":"string | null"},"name":{"type":"string","description":"View name to display.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].name","typeLabel":"string"},"partial":{"oneOf":[{"type":"boolean","description":"True when the view is known to be partial; null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].partial.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the view is known to be partial; null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].partial.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX].partial","typeLabel":"boolean | null"}},"required":["normalized_code","supplier_code","name","partial"],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.views","typeLabel":"object[]"},"features":{"oneOf":[{"type":"object","description":"Boolean features (balcony, smoking, accessible...). Null when none were supplied.","required":["balcony","smoking","accessible","club_access","connecting_room"],"properties":{"balcony":{"oneOf":[{"type":"boolean","description":"True when the room has a balcony. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.balcony.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the room has a balcony. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.balcony.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.balcony","typeLabel":"boolean | null"},"smoking":{"oneOf":[{"type":"string","enum":["SMOKING","NON_SMOKING","MIXED"],"description":"MIXED means smoking status depends on the room allocated. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.smoking.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["SMOKING","NON_SMOKING","MIXED"],"description":"MIXED means smoking status depends on the room allocated. Null when not known.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.smoking.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.smoking","typeLabel":"enum\u003cstring> | null"},"accessible":{"oneOf":[{"type":"boolean","description":"True for an accessible (wheelchair-friendly) room. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.accessible.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True for an accessible (wheelchair-friendly) room. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.accessible.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.accessible","typeLabel":"boolean | null"},"club_access":{"oneOf":[{"type":"boolean","description":"True when the rate includes club or lounge access. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.club_access.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the rate includes club or lounge access. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.club_access.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.club_access","typeLabel":"boolean | null"},"connecting_room":{"oneOf":[{"type":"boolean","description":"True when the room connects to another. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.connecting_room.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the room connects to another. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.connecting_room.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0.connecting_room","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.features","typeLabel":"object | null"},"extra_bed":{"oneOf":[{"type":"object","description":"Extra-bed rules. Null when unknown.","required":["available","included","charge_applicable"],"properties":{"available":{"oneOf":[{"type":"boolean","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.available.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.available.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.available","typeLabel":"boolean | null"},"included":{"oneOf":[{"type":"boolean","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.included","typeLabel":"boolean | null"},"charge_applicable":{"oneOf":[{"type":"boolean","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.charge_applicable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.charge_applicable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0.charge_applicable","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.extra_bed","typeLabel":"object | null"},"child_bed":{"oneOf":[{"type":"object","description":"Child-bed or cot rules. Null when unknown.","required":["available","included","charge_applicable"],"properties":{"available":{"oneOf":[{"type":"boolean","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.available.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when this bed can be added. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.available.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.available","typeLabel":"boolean | null"},"included":{"oneOf":[{"type":"boolean","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the bed is included in the price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.included","typeLabel":"boolean | null"},"charge_applicable":{"oneOf":[{"type":"boolean","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.charge_applicable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the hotel charges for the bed. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.charge_applicable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0.charge_applicable","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0.child_bed","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room","typeLabel":"object | null"},"occupancy":{"type":"object","description":"Adults and child ages quoted for this slot, copied from your request in the same order.","required":["adults","child_ages"],"example":{"adults":2,"child_ages":[7]},"properties":{"adults":{"type":"number","example":2,"minimum":1,"description":"Number of adults in the room.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].occupancy.adults","typeLabel":"number"},"child_ages":{"example":[7],"description":"Age of each child in the room. Empty array when no children.","type":"array","items":{"type":"number","uniqueKey":"data.offer.rooms.items.[INDEX].occupancy.child_ages.items.[INDEX]","typeLabel":"number"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].occupancy.child_ages","typeLabel":"number[]"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].occupancy","typeLabel":"object"},"meal_plan":{"type":"object","description":"Meal plan of this room slot.","required":["code","supplier_code","supplier_name","label","is_breakfast_included","is_child_meal_included"],"properties":{"code":{"type":"string","enum":["RO","BB","HB","FB","AI","OTHER","UNKNOWN"],"example":"BB","description":"Normalized meal plan. RO room only, BB breakfast, HB half board, FB full board, AI all inclusive, OTHER another plan (read label), UNKNOWN not stated.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.code","typeLabel":"enum\u003cstring>"},"supplier_code":{"oneOf":[{"type":"string","example":"breakfast","description":"The supplier's raw meal code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"breakfast","description":"The supplier's raw meal code. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_code","typeLabel":"string | null"},"supplier_name":{"oneOf":[{"type":"string","example":"Breakfast","description":"The supplier's own meal label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Breakfast","description":"The supplier's own meal label. Null when not supplied.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.supplier_name","typeLabel":"string | null"},"label":{"type":"string","example":"Bed \u0026 Breakfast","description":"English label to display, for example Bed \u0026 Breakfast.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.label","typeLabel":"string"},"is_breakfast_included":{"type":"boolean","example":true,"description":"True when breakfast is included in the price.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.is_breakfast_included","typeLabel":"boolean"},"is_child_meal_included":{"oneOf":[{"type":"boolean","description":"True when meals for children are included. Null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.is_child_meal_included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when meals for children are included. Null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.is_child_meal_included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan.is_child_meal_included","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].meal_plan","typeLabel":"object"},"inclusions":{"description":"Inclusions of this room slot (for example free WiFi). Empty array when none.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"free_wifi","description":"Machine code of the inclusion (for example free_wifi). New codes can appear; treat unknown codes as plain labels.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].inclusions.items.[INDEX].code","typeLabel":"string"},"label":{"type":"string","example":"Free WiFi","description":"Inclusion text to show to the guest.","isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].inclusions.items.[INDEX].label","typeLabel":"string"}},"required":["code","label"],"uniqueKey":"data.offer.rooms.items.[INDEX].inclusions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms.items.[INDEX].inclusions","typeLabel":"object[]"},"unifystays_family_id":{"oneOf":[{"type":"string","example":"4120552","description":"The family this slot's room belongs to (equals unifystays_room_id for a family-level seller). A tmp_ id is valid for this search only.","uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_family_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"4120552","description":"The family this slot's room belongs to (equals unifystays_room_id for a family-level seller). A tmp_ id is valid for this search only.","uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_family_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_family_id","typeLabel":"string | null"},"unifystays_room_id":{"oneOf":[{"type":"string","example":"4120552","description":"Id of the room object this slot belongs to (data.unifystays_rooms, or rooms[] on the provider_options event). A tmp_ id is valid for this search only. Display identity only; book with booking_token and room_allocation_id.","uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room_id.oneOf.0","typeLabel":"string"},{"type":"null","example":"4120552","description":"Id of the room object this slot belongs to (data.unifystays_rooms, or rooms[] on the provider_options event). A tmp_ id is valid for this search only. Display identity only; book with booking_token and room_allocation_id.","uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.rooms.items.[INDEX].unifystays_room_id","typeLabel":"string | null"}},"required":["room_allocation_id","provider_room","mapping_status","mapping_details","unifystays_room","occupancy","meal_plan","inclusions"],"uniqueKey":"data.offer.rooms.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.rooms","typeLabel":"object[]"},"lifecycle":{"type":"object","description":"Validity, availability and booking modes of the offer.","required":["stage","quoted_at","expires_at","prebook_required","price_guaranteed","availability","rooms_remaining","on_request","available_booking_modes","hold_allowed","hold_deadline","post_booking_actions"],"properties":{"stage":{"type":"string","enum":["ROOMS","PREBOOK"],"description":"Where the offer is in the flow: ROOMS (from room search) or PREBOOK (rechecked at prebook).","isRequired":true,"uniqueKey":"data.offer.lifecycle.stage","typeLabel":"enum\u003cstring>"},"quoted_at":{"type":"string","description":"When Unifystays obtained this offer from the supplier (ISO 8601, UTC).","isRequired":true,"uniqueKey":"data.offer.lifecycle.quoted_at","typeLabel":"string"},"expires_at":{"type":"string","description":"When the offer stops being valid (ISO 8601, UTC): 15 minutes after quoted_at, or earlier when the supplier sets an earlier expiry. Do not send a booking_token after this time; search again.","isRequired":true,"uniqueKey":"data.offer.lifecycle.expires_at","typeLabel":"string"},"prebook_required":{"type":"boolean","description":"True when you must call Prebook before booking. Always true for a rooms-stage offer.","isRequired":true,"uniqueKey":"data.offer.lifecycle.prebook_required","typeLabel":"boolean"},"price_guaranteed":{"type":"boolean","description":"True only when the supplier guarantees this price. False at room search: the price and availability are confirmed by prebook.","isRequired":true,"uniqueKey":"data.offer.lifecycle.price_guaranteed","typeLabel":"boolean"},"availability":{"type":"string","enum":["AVAILABLE","SOLD_OUT","ON_REQUEST","UNKNOWN"],"description":"AVAILABLE, SOLD_OUT, ON_REQUEST (the supplier confirms after booking), or UNKNOWN.","isRequired":true,"uniqueKey":"data.offer.lifecycle.availability","typeLabel":"enum\u003cstring>"},"rooms_remaining":{"oneOf":[{"type":"object","description":"Rooms left at this rate when the supplier says so, for urgency messages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.lifecycle.rooms_remaining.oneOf.0","typeLabel":"object"},{"type":"null","description":"Rooms left at this rate when the supplier says so, for urgency messages. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.lifecycle.rooms_remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.lifecycle.rooms_remaining","typeLabel":"object | null"},"on_request":{"type":"boolean","description":"True when the booking is not instantly confirmed and the supplier confirms later.","isRequired":true,"uniqueKey":"data.offer.lifecycle.on_request","typeLabel":"boolean"},"available_booking_modes":{"type":"array","description":"Booking modes certified for this exact offer. Rooms-stage offers normally expose INSTANT only; prebook may add HOLD.","items":{"type":"string","enum":["INSTANT","HOLD"],"uniqueKey":"data.offer.lifecycle.available_booking_modes.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.offer.lifecycle.available_booking_modes","typeLabel":"enum\u003cstring>[]"},"hold_allowed":{"type":"boolean","description":"True when the offer can be held without payment. Always false at room search; prebook can report true.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_allowed","typeLabel":"boolean"},"hold_deadline":{"oneOf":[{"type":"object","description":"Time by which a held booking must be confirmed. Null when no hold is possible.","required":["local_datetime","timezone","utc_datetime"],"properties":{"local_datetime":{"type":"string","example":"2026-05-18T23:59:59","description":"Date and time exactly as the supplier stated it, without an offset (ISO 8601, for example 2026-05-18T23:59:59). It is wall-clock time in the zone named by timezone. Show this to the guest.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.local_datetime","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.timezone.oneOf.0","typeLabel":"string"},{"type":"null","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.timezone","typeLabel":"string | null"},"utc_datetime":{"oneOf":[{"type":"string","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.utc_datetime.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.utc_datetime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0.utc_datetime","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.lifecycle.hold_deadline","typeLabel":"object | null"},"post_booking_actions":{"type":"array","description":"Post-booking actions supported by this provider for the offer. An empty array means no provider API is certified for those actions.","items":{"type":"string","enum":["STATUS","CANCEL","CONFIRM_HOLD"],"uniqueKey":"data.offer.lifecycle.post_booking_actions.items.[INDEX]","typeLabel":"enum\u003cstring>"},"isRequired":true,"uniqueKey":"data.offer.lifecycle.post_booking_actions","typeLabel":"enum\u003cstring>[]"}},"isRequired":true,"uniqueKey":"data.offer.lifecycle","typeLabel":"object"},"pricing":{"type":"object","description":"The price of the whole offer. native_ledger is authoritative (supplier currency, integer minor units). usd_ledger is the same lines converted to USD, or null when a rate is missing.","required":["price_basis","breakdown_status","native_ledger","usd_ledger","display_currency","display_ledger","conversion"],"properties":{"price_basis":{"type":"string","enum":["NET","GROSS","COMMISSIONABLE","UNKNOWN"],"description":"Commercial nature of the supplier's price as the supplier declares it: NET, GROSS, COMMISSIONABLE or UNKNOWN. It does not change how you read the ledger; use commercial for the supplier's own reference values.","isRequired":true,"uniqueKey":"data.offer.pricing.price_basis","typeLabel":"enum\u003cstring>"},"breakdown_status":{"type":"string","enum":["COMPLETE","PARTIAL","NOT_PROVIDED","ESTIMATED"],"description":"How complete the itemisation is. COMPLETE: all charges are itemised. PARTIAL: some charges may not be itemised. NOT_PROVIDED: the supplier gave no breakdown. ESTIMATED: part of the breakdown is estimated. The totals are reliable in every case.","isRequired":true,"uniqueKey":"data.offer.pricing.breakdown_status","typeLabel":"enum\u003cstring>"},"native_ledger":{"type":"object","description":"Authoritative supplier/property obligations in their native currencies. Its lines already reconcile to its totals and must not be added to commercial fields.","required":["primary_currency","totals","lines"],"properties":{"primary_currency":{"type":"string","example":"USD","description":"Main currency of the ledger (ISO 4217). Offers priced in several currencies have one totals entry per currency.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.primary_currency","typeLabel":"string"},"totals":{"description":"One total per currency present in the lines. Usually exactly one.","type":"array","items":{"type":"object","properties":{"currency":{"type":"string","example":"USD","description":"ISO 4217 currency of this total.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Decimal places of the currency.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].currency_exponent","typeLabel":"number"},"payable_to_supplier":{"type":"object","description":"Sum of the lines with collection_location SUPPLIER: the amount settled through the supplier for this booking.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_to_supplier.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_to_supplier.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_to_supplier.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_to_supplier","typeLabel":"object"},"payable_at_property":{"type":"object","description":"Sum of the lines with collection_location PROPERTY: charges the guest pays at the hotel. Show them to the guest as 'pay at hotel'.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_at_property.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_at_property.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_at_property.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].payable_at_property","typeLabel":"object"},"total":{"type":"object","description":"payable_to_supplier plus payable_at_property: everything the guest ends up paying for the stay, split by who collects it.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].total.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].total.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].total.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX].total","typeLabel":"object"}},"required":["currency","currency_exponent","payable_to_supplier","payable_at_property","total"],"uniqueKey":"data.offer.pricing.native_ledger.totals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.totals","typeLabel":"object[]"},"lines":{"description":"Complete payable ledger. Accommodation is represented by room_rate lines; no separate base price exists.","type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["room_rate","tax","fee","adjustment","other"],"description":"Type of charge: room_rate (the accommodation; exactly one per ledger), tax, fee, adjustment, other.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"code":{"type":"string","example":"city_tax","description":"Supplier's code for the charge, lower case (for example city_tax). Informational.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].code","typeLabel":"string"},"normalized_code":{"type":"string","example":"CITY_TAX","description":"Unifystays code for the charge (for example CITY_TAX, RESORT_FEE, SERVICE_FEE, VAT, ROOM_RATE, OTHER_TAX). New codes can appear; fall back to description for unknown ones.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].normalized_code","typeLabel":"string"},"description":{"type":"string","example":"City tax","description":"Charge name to show to the guest, in English.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].description","typeLabel":"string"},"amount":{"type":"object","description":"Amount of the line in minor units, in the ledger's currency. Lines already reconcile to the ledger totals: do not add them to anything else.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].amount.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].amount","typeLabel":"object"},"collection_location":{"type":"string","enum":["SUPPLIER","PROPERTY"],"description":"Who collects the line. SUPPLIER: paid through the supplier (counts in payable_to_supplier). PROPERTY: the guest pays the hotel on arrival or departure (counts in payable_at_property).","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].collection_location","typeLabel":"enum\u003cstring>"},"included_in_quoted_total":{"type":"boolean","example":false,"description":"True when the supplier's quoted rate already contains this line, so it is not an extra charge. False when it is charged on top of the quoted rate (typically taxes and fees collected at the property).","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].included_in_quoted_total","typeLabel":"boolean"},"scope":{"type":"object","description":"What the amount covers (whole stay, per room, per person...).","required":["basis","room_allocation_id","guest_type","quantity"],"properties":{"basis":{"type":"string","enum":["PER_STAY","PER_ROOM","PER_ROOM_PER_NIGHT","PER_PERSON","PER_PERSON_PER_NIGHT"],"description":"What the amount covers. PER_STAY: the whole stay. PER_ROOM / PER_ROOM_PER_NIGHT: each room (per night). PER_PERSON / PER_PERSON_PER_NIGHT: each guest (per night). The amount is already the total for that scope.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.basis","typeLabel":"enum\u003cstring>"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.room_allocation_id","typeLabel":"string | null"},"guest_type":{"oneOf":[{"type":"string","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.guest_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.guest_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.guest_type","typeLabel":"enum\u003cstring> | null"},"quantity":{"oneOf":[{"type":"number","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.quantity.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope.quantity","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].scope","typeLabel":"object"},"mandatory":{"oneOf":[{"type":"boolean","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].mandatory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].mandatory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].mandatory","typeLabel":"boolean | null"},"source_amount":{"type":"object","description":"USD ledger only: the original amount in the supplier currency before conversion.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].source_amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].source_amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].source_amount.currency_exponent","typeLabel":"number"}},"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].source_amount","typeLabel":"object"},"is_estimated":{"type":"boolean","description":"USD ledger only: true when the line was converted from another currency with an exchange rate (so the USD value is an estimate), false when the source was already USD.","uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX].is_estimated","typeLabel":"boolean"}},"required":["category","code","normalized_code","description","amount","collection_location","included_in_quoted_total","scope","mandatory"],"uniqueKey":"data.offer.pricing.native_ledger.lines.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger.lines","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.offer.pricing.native_ledger","typeLabel":"object"},"usd_ledger":{"oneOf":[{"type":"object","description":"The same logical native-ledger lines converted completely to USD. Null when any required FX rate is unavailable.","required":["primary_currency","totals","lines"],"properties":{"primary_currency":{"type":"string","example":"USD","description":"Main currency of the ledger (ISO 4217). Offers priced in several currencies have one totals entry per currency.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.primary_currency","typeLabel":"string"},"totals":{"description":"One total per currency present in the lines. Usually exactly one.","type":"array","items":{"type":"object","properties":{"currency":{"type":"string","example":"USD","description":"ISO 4217 currency of this total.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Decimal places of the currency.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].currency_exponent","typeLabel":"number"},"payable_to_supplier":{"type":"object","description":"Sum of the lines with collection_location SUPPLIER: the amount settled through the supplier for this booking.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier","typeLabel":"object"},"payable_at_property":{"type":"object","description":"Sum of the lines with collection_location PROPERTY: charges the guest pays at the hotel. Show them to the guest as 'pay at hotel'.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].payable_at_property","typeLabel":"object"},"total":{"type":"object","description":"payable_to_supplier plus payable_at_property: everything the guest ends up paying for the stay, split by who collects it.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].total.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].total.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].total.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX].total","typeLabel":"object"}},"required":["currency","currency_exponent","payable_to_supplier","payable_at_property","total"],"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.totals","typeLabel":"object[]"},"lines":{"description":"Complete payable ledger. Accommodation is represented by room_rate lines; no separate base price exists.","type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["room_rate","tax","fee","adjustment","other"],"description":"Type of charge: room_rate (the accommodation; exactly one per ledger), tax, fee, adjustment, other.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"code":{"type":"string","example":"city_tax","description":"Supplier's code for the charge, lower case (for example city_tax). Informational.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].code","typeLabel":"string"},"normalized_code":{"type":"string","example":"CITY_TAX","description":"Unifystays code for the charge (for example CITY_TAX, RESORT_FEE, SERVICE_FEE, VAT, ROOM_RATE, OTHER_TAX). New codes can appear; fall back to description for unknown ones.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].normalized_code","typeLabel":"string"},"description":{"type":"string","example":"City tax","description":"Charge name to show to the guest, in English.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].description","typeLabel":"string"},"amount":{"type":"object","description":"Amount of the line in minor units, in the ledger's currency. Lines already reconcile to the ledger totals: do not add them to anything else.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].amount.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].amount","typeLabel":"object"},"collection_location":{"type":"string","enum":["SUPPLIER","PROPERTY"],"description":"Who collects the line. SUPPLIER: paid through the supplier (counts in payable_to_supplier). PROPERTY: the guest pays the hotel on arrival or departure (counts in payable_at_property).","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].collection_location","typeLabel":"enum\u003cstring>"},"included_in_quoted_total":{"type":"boolean","example":false,"description":"True when the supplier's quoted rate already contains this line, so it is not an extra charge. False when it is charged on top of the quoted rate (typically taxes and fees collected at the property).","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].included_in_quoted_total","typeLabel":"boolean"},"scope":{"type":"object","description":"What the amount covers (whole stay, per room, per person...).","required":["basis","room_allocation_id","guest_type","quantity"],"properties":{"basis":{"type":"string","enum":["PER_STAY","PER_ROOM","PER_ROOM_PER_NIGHT","PER_PERSON","PER_PERSON_PER_NIGHT"],"description":"What the amount covers. PER_STAY: the whole stay. PER_ROOM / PER_ROOM_PER_NIGHT: each room (per night). PER_PERSON / PER_PERSON_PER_NIGHT: each guest (per night). The amount is already the total for that scope.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.basis","typeLabel":"enum\u003cstring>"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id","typeLabel":"string | null"},"guest_type":{"oneOf":[{"type":"string","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type","typeLabel":"enum\u003cstring> | null"},"quantity":{"oneOf":[{"type":"number","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.quantity.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope.quantity","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].scope","typeLabel":"object"},"mandatory":{"oneOf":[{"type":"boolean","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].mandatory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].mandatory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].mandatory","typeLabel":"boolean | null"},"source_amount":{"type":"object","description":"USD ledger only: the original amount in the supplier currency before conversion.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].source_amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].source_amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].source_amount.currency_exponent","typeLabel":"number"}},"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].source_amount","typeLabel":"object"},"is_estimated":{"type":"boolean","description":"USD ledger only: true when the line was converted from another currency with an exchange rate (so the USD value is an estimate), false when the source was already USD.","uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX].is_estimated","typeLabel":"boolean"}},"required":["category","code","normalized_code","description","amount","collection_location","included_in_quoted_total","scope","mandatory"],"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0.lines","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.usd_ledger","typeLabel":"object | null"},"display_currency":{"type":"string","example":"EUR","description":"Currency of display_ledger: the organization's display currency (USD unless the organization chose another, or sent the X-Unifystays-Currency header).","isRequired":true,"uniqueKey":"data.offer.pricing.display_currency","typeLabel":"string"},"display_ledger":{"oneOf":[{"type":"object","description":"The same logical native-ledger lines converted completely to display_currency. Identical to usd_ledger when display_currency is USD. Null when any required FX rate is unavailable.","required":["primary_currency","totals","lines"],"properties":{"primary_currency":{"type":"string","example":"USD","description":"Main currency of the ledger (ISO 4217). Offers priced in several currencies have one totals entry per currency.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.primary_currency","typeLabel":"string"},"totals":{"description":"One total per currency present in the lines. Usually exactly one.","type":"array","items":{"type":"object","properties":{"currency":{"type":"string","example":"USD","description":"ISO 4217 currency of this total.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Decimal places of the currency.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].currency_exponent","typeLabel":"number"},"payable_to_supplier":{"type":"object","description":"Sum of the lines with collection_location SUPPLIER: the amount settled through the supplier for this booking.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_to_supplier","typeLabel":"object"},"payable_at_property":{"type":"object","description":"Sum of the lines with collection_location PROPERTY: charges the guest pays at the hotel. Show them to the guest as 'pay at hotel'.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_at_property.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].payable_at_property","typeLabel":"object"},"total":{"type":"object","description":"payable_to_supplier plus payable_at_property: everything the guest ends up paying for the stay, split by who collects it.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].total.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].total.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].total.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX].total","typeLabel":"object"}},"required":["currency","currency_exponent","payable_to_supplier","payable_at_property","total"],"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.totals","typeLabel":"object[]"},"lines":{"description":"Complete payable ledger. Accommodation is represented by room_rate lines; no separate base price exists.","type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["room_rate","tax","fee","adjustment","other"],"description":"Type of charge: room_rate (the accommodation; exactly one per ledger), tax, fee, adjustment, other.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"code":{"type":"string","example":"city_tax","description":"Supplier's code for the charge, lower case (for example city_tax). Informational.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].code","typeLabel":"string"},"normalized_code":{"type":"string","example":"CITY_TAX","description":"Unifystays code for the charge (for example CITY_TAX, RESORT_FEE, SERVICE_FEE, VAT, ROOM_RATE, OTHER_TAX). New codes can appear; fall back to description for unknown ones.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].normalized_code","typeLabel":"string"},"description":{"type":"string","example":"City tax","description":"Charge name to show to the guest, in English.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].description","typeLabel":"string"},"amount":{"type":"object","description":"Amount of the line in minor units, in the ledger's currency. Lines already reconcile to the ledger totals: do not add them to anything else.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].amount.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].amount","typeLabel":"object"},"collection_location":{"type":"string","enum":["SUPPLIER","PROPERTY"],"description":"Who collects the line. SUPPLIER: paid through the supplier (counts in payable_to_supplier). PROPERTY: the guest pays the hotel on arrival or departure (counts in payable_at_property).","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].collection_location","typeLabel":"enum\u003cstring>"},"included_in_quoted_total":{"type":"boolean","example":false,"description":"True when the supplier's quoted rate already contains this line, so it is not an extra charge. False when it is charged on top of the quoted rate (typically taxes and fees collected at the property).","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].included_in_quoted_total","typeLabel":"boolean"},"scope":{"type":"object","description":"What the amount covers (whole stay, per room, per person...).","required":["basis","room_allocation_id","guest_type","quantity"],"properties":{"basis":{"type":"string","enum":["PER_STAY","PER_ROOM","PER_ROOM_PER_NIGHT","PER_PERSON","PER_PERSON_PER_NIGHT"],"description":"What the amount covers. PER_STAY: the whole stay. PER_ROOM / PER_ROOM_PER_NIGHT: each room (per night). PER_PERSON / PER_PERSON_PER_NIGHT: each guest (per night). The amount is already the total for that scope.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.basis","typeLabel":"enum\u003cstring>"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.room_allocation_id","typeLabel":"string | null"},"guest_type":{"oneOf":[{"type":"string","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.guest_type","typeLabel":"enum\u003cstring> | null"},"quantity":{"oneOf":[{"type":"number","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.quantity.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope.quantity","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].scope","typeLabel":"object"},"mandatory":{"oneOf":[{"type":"boolean","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].mandatory.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the charge is compulsory, false when optional, null when the supplier does not say.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].mandatory.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].mandatory","typeLabel":"boolean | null"},"source_amount":{"type":"object","description":"USD ledger only: the original amount in the supplier currency before conversion.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].source_amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].source_amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].source_amount.currency_exponent","typeLabel":"number"}},"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].source_amount","typeLabel":"object"},"is_estimated":{"type":"boolean","description":"USD ledger only: true when the line was converted from another currency with an exchange rate (so the USD value is an estimate), false when the source was already USD.","uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX].is_estimated","typeLabel":"boolean"}},"required":["category","code","normalized_code","description","amount","collection_location","included_in_quoted_total","scope","mandatory"],"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0.lines","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.display_ledger","typeLabel":"object | null"},"conversion":{"type":"object","description":"FX rates used for usd_ledger and display_ledger.","required":["status","missing_currencies","rates"],"properties":{"status":{"type":"string","enum":["AVAILABLE","UNAVAILABLE"],"description":"AVAILABLE when every currency could be converted and usd_ledger and display_ledger are present. UNAVAILABLE when a rate is missing and both are null.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.status","typeLabel":"enum\u003cstring>"},"missing_currencies":{"description":"Currencies without a rate, including the display currency when its rate is the one missing. Empty when status is AVAILABLE.","type":"array","items":{"type":"string","uniqueKey":"data.offer.pricing.conversion.missing_currencies.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.offer.pricing.conversion.missing_currencies","typeLabel":"string[]"},"rates":{"description":"Rates used for both usd_ledger and display_ledger: for each native currency, the pair to USD and, when different, the pair to the display currency. Empty when status is UNAVAILABLE.","type":"array","items":{"type":"object","properties":{"base_currency":{"type":"string","example":"AED","description":"Currency that was converted.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].base_currency","typeLabel":"string"},"quote_currency":{"type":"string","example":"USD","description":"Currency the base currency was converted into: USD, or the organization's display currency; see PricingDto.display_currency.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].quote_currency","typeLabel":"string"},"rate":{"type":"number","example":0.272294,"description":"Units of quote_currency for one unit of base_currency, used to build usd_ledger or display_ledger.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].rate","typeLabel":"number"},"rate_updated_at":{"oneOf":[{"type":"string","description":"When the rate was last refreshed (ISO 8601). Null for USD or when unknown.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].rate_updated_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When the rate was last refreshed (ISO 8601). Null for USD or when unknown.","isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].rate_updated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX].rate_updated_at","typeLabel":"string | null"}},"required":["base_currency","quote_currency","rate","rate_updated_at"],"uniqueKey":"data.offer.pricing.conversion.rates.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.pricing.conversion.rates","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.offer.pricing.conversion","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.offer.pricing","typeLabel":"object"},"payment":{"type":"object","description":"Who pays, where and when.","required":["settlement_channel","payer","supplier_payment_type","payable_at","collection_timing","requires_card_data","requires_cvc","requires_vcc","security_deposit"],"properties":{"settlement_channel":{"type":"string","enum":["SUPPLIER_ACCOUNT","PROPERTY"],"description":"How the supplier is paid. SUPPLIER_ACCOUNT: through your account with the supplier. PROPERTY: the guest pays the hotel.","isRequired":true,"uniqueKey":"data.offer.payment.settlement_channel","typeLabel":"enum\u003cstring>"},"payer":{"type":"string","enum":["AGENCY","GUEST","UNKNOWN"],"description":"Who pays. AGENCY: you (the agency). GUEST: the guest pays directly. UNKNOWN.","isRequired":true,"uniqueKey":"data.offer.payment.payer","typeLabel":"enum\u003cstring>"},"supplier_payment_type":{"type":"string","description":"The supplier's own payment label (for example deposit or agency_credit). Informational; do not branch on it.","isRequired":true,"uniqueKey":"data.offer.payment.supplier_payment_type","typeLabel":"string"},"payable_at":{"type":"string","enum":["SUPPLIER","PROPERTY"],"description":"Where the main amount is collected: SUPPLIER or PROPERTY. Charges collected at the property are marked in the pricing ledger.","isRequired":true,"uniqueKey":"data.offer.payment.payable_at","typeLabel":"enum\u003cstring>"},"collection_timing":{"type":"string","enum":["AT_BOOKING","BEFORE_CHECK_IN","AT_CHECK_IN","AT_CHECK_OUT","ON_INVOICE","UNKNOWN"],"description":"When the money is collected: AT_BOOKING, BEFORE_CHECK_IN, AT_CHECK_IN, AT_CHECK_OUT, ON_INVOICE, or UNKNOWN.","isRequired":true,"uniqueKey":"data.offer.payment.collection_timing","typeLabel":"enum\u003cstring>"},"requires_card_data":{"type":"boolean","description":"True when the guest's card details are needed. Offers that require a card are not returned, so this is false on offers you receive.","isRequired":true,"uniqueKey":"data.offer.payment.requires_card_data","typeLabel":"boolean"},"requires_cvc":{"type":"boolean","description":"True when a card security code is needed. False on offers you receive.","isRequired":true,"uniqueKey":"data.offer.payment.requires_cvc","typeLabel":"boolean"},"requires_vcc":{"type":"boolean","description":"True when a virtual card must be issued to the supplier. False on offers you receive.","isRequired":true,"uniqueKey":"data.offer.payment.requires_vcc","typeLabel":"boolean"},"security_deposit":{"oneOf":[{"type":"object","description":"Refundable or non-refundable security/guarantee deposit when explicitly supplied. This is distinct from an opaque supplier payment type named deposit.","required":["amount","display_amount","refundable"],"properties":{"amount":{"type":"object","description":"Deposit amount.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.amount.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.amount","typeLabel":"object"},"display_amount":{"oneOf":[{"type":"object","description":"The deposit converted to the display currency (pricing.display_currency). Null when no exchange rate is available; never a made-up zero.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.display_amount","typeLabel":"object | null"},"refundable":{"oneOf":[{"type":"boolean","description":"True when the deposit is refunded; null when unknown.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.refundable.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when the deposit is refunded; null when unknown.","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.refundable.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0.refundable","typeLabel":"boolean | null"}},"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.payment.security_deposit.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.payment.security_deposit","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.payment","typeLabel":"object"},"commercial":{"type":"object","description":"Supplier reference values (net, gross, commission...). Never add these to the ledger.","required":["supplier_charge_total","display_total","gross_total","net_total","commission_total","agent_reward","recommended_selling_total","minimum_selling_total","original_total","discount_total","vat"],"properties":{"supplier_charge_total":{"oneOf":[{"type":"object","description":"Amount the supplier expects to debit or invoice to the agency. Informational settlement evidence; never add it to a pricing ledger.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.supplier_charge_total","typeLabel":"object | null"},"display_total":{"oneOf":[{"type":"object","description":"Supplier-provided amount intended for display; not an additional charge.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.display_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.display_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.display_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.display_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.display_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.display_total","typeLabel":"object | null"},"gross_total":{"oneOf":[{"type":"object","description":"Supplier-stated gross amount before commission deduction.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.gross_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.gross_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.gross_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.gross_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.gross_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.gross_total","typeLabel":"object | null"},"net_total":{"oneOf":[{"type":"object","description":"Supplier-stated net agency cost.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.net_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.net_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.net_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.net_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.net_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.net_total","typeLabel":"object | null"},"commission_total":{"oneOf":[{"type":"object","description":"Supplier-stated agency commission; not derived by Unifystays.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.commission_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.commission_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.commission_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.commission_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.commission_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.commission_total","typeLabel":"object | null"},"agent_reward":{"oneOf":[{"type":"object","description":"Separate supplier reward, cashback, or incentive.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.agent_reward","typeLabel":"object | null"},"recommended_selling_total":{"oneOf":[{"type":"object","description":"Supplier-recommended customer selling price.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.recommended_selling_total","typeLabel":"object | null"},"minimum_selling_total":{"oneOf":[{"type":"object","description":"Supplier-enforced minimum customer selling price.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.minimum_selling_total","typeLabel":"object | null"},"original_total":{"oneOf":[{"type":"object","description":"Supplier price before discount or promotion.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.original_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.original_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.original_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.original_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.original_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.original_total","typeLabel":"object | null"},"discount_total":{"oneOf":[{"type":"object","description":"Supplier-stated discount amount.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.discount_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.discount_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.discount_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.discount_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.discount_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.discount_total","typeLabel":"object | null"},"vat":{"oneOf":[{"type":"object","description":"VAT details as the supplier states them. Null when not supplied.","required":["included","applied","amount","rate"],"properties":{"included":{"oneOf":[{"type":"boolean","description":"True when VAT is included in the quoted price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when VAT is included in the quoted price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.included","typeLabel":"boolean | null"},"applied":{"oneOf":[{"type":"boolean","description":"True when VAT applies. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.applied.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when VAT applies. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.applied.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.applied","typeLabel":"boolean | null"},"amount":{"oneOf":[{"type":"object","description":"VAT amount when the supplier states it. Null otherwise.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.amount","typeLabel":"object | null"},"rate":{"oneOf":[{"type":"number","description":"VAT rate in percent when stated. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.rate.oneOf.0","typeLabel":"number"},{"type":"null","description":"VAT rate in percent when stated. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.rate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0.rate","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial.vat.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial.vat","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.commercial","typeLabel":"object"},"commercial_display":{"oneOf":[{"type":"object","description":"The same supplier reference values as `commercial`, with every amount converted to the display currency (pricing.display_currency). An amount with no exchange rate is null. Null when `commercial` is hidden. Never add these to the ledger.","required":["supplier_charge_total","display_total","gross_total","net_total","commission_total","agent_reward","recommended_selling_total","minimum_selling_total","original_total","discount_total","vat"],"properties":{"supplier_charge_total":{"oneOf":[{"type":"object","description":"Amount the supplier expects to debit or invoice to the agency. Informational settlement evidence; never add it to a pricing ledger.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.supplier_charge_total","typeLabel":"object | null"},"display_total":{"oneOf":[{"type":"object","description":"Supplier-provided amount intended for display; not an additional charge.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.display_total","typeLabel":"object | null"},"gross_total":{"oneOf":[{"type":"object","description":"Supplier-stated gross amount before commission deduction.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.gross_total","typeLabel":"object | null"},"net_total":{"oneOf":[{"type":"object","description":"Supplier-stated net agency cost.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.net_total","typeLabel":"object | null"},"commission_total":{"oneOf":[{"type":"object","description":"Supplier-stated agency commission; not derived by Unifystays.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.commission_total","typeLabel":"object | null"},"agent_reward":{"oneOf":[{"type":"object","description":"Separate supplier reward, cashback, or incentive.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.agent_reward","typeLabel":"object | null"},"recommended_selling_total":{"oneOf":[{"type":"object","description":"Supplier-recommended customer selling price.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.recommended_selling_total","typeLabel":"object | null"},"minimum_selling_total":{"oneOf":[{"type":"object","description":"Supplier-enforced minimum customer selling price.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.minimum_selling_total","typeLabel":"object | null"},"original_total":{"oneOf":[{"type":"object","description":"Supplier price before discount or promotion.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.original_total","typeLabel":"object | null"},"discount_total":{"oneOf":[{"type":"object","description":"Supplier-stated discount amount.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.discount_total","typeLabel":"object | null"},"vat":{"oneOf":[{"type":"object","description":"VAT details as the supplier states them. Null when not supplied.","required":["included","applied","amount","rate"],"properties":{"included":{"oneOf":[{"type":"boolean","description":"True when VAT is included in the quoted price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.included.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when VAT is included in the quoted price. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.included.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.included","typeLabel":"boolean | null"},"applied":{"oneOf":[{"type":"boolean","description":"True when VAT applies. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.applied.oneOf.0","typeLabel":"boolean"},{"type":"null","description":"True when VAT applies. Null when unknown.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.applied.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.applied","typeLabel":"boolean | null"},"amount":{"oneOf":[{"type":"object","description":"VAT amount when the supplier states it. Null otherwise.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.amount","typeLabel":"object | null"},"rate":{"oneOf":[{"type":"number","description":"VAT rate in percent when stated. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.rate.oneOf.0","typeLabel":"number"},{"type":"null","description":"VAT rate in percent when stated. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.rate.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0.rate","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0.vat","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.commercial_display.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.commercial_display","typeLabel":"object | null"},"booking_requirements":{"description":"Guest and booking fields that will be needed at booking. Plan your checkout form from this list.","type":"array","items":{"type":"object","properties":{"requirement_id":{"type":"string","example":"br_first_name_all_guests_2","description":"Opaque offer-bound id that must be echoed in a booking guest answer.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].requirement_id","typeLabel":"string"},"code":{"type":"string","example":"FIRST_NAME","description":"Stable normalized field code. New certified codes may be added without changing the booking request schema.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].code","typeLabel":"string"},"label":{"type":"string","example":"First name","description":"English label for the field.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].label","typeLabel":"string"},"value_type":{"type":"string","enum":["TEXT","EMAIL","PHONE","DATE","ENUM","COUNTRY_CODE","IDENTIFIER"],"description":"Kind of value to collect: TEXT, EMAIL, PHONE, DATE (YYYY-MM-DD), ENUM (pick from allowed_values), COUNTRY_CODE (ISO 3166-1 alpha-2) or IDENTIFIER (document number).","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].value_type","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["LEAD_GUEST","ALL_GUESTS","ADULT","CHILD","INFANT"],"description":"Guests to whom this requirement applies. LEAD_GUEST: the first guest only. ALL_GUESTS: every guest. ADULT, CHILD, INFANT: guests of that type. room_allocation_ids can narrow it to specific rooms.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"room_allocation_ids":{"description":"Rooms the requirement applies to. Empty means all rooms in the offer.","type":"array","items":{"type":"string","uniqueKey":"data.offer.booking_requirements.items.[INDEX].room_allocation_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].room_allocation_ids","typeLabel":"string[]"},"required":{"type":"boolean","description":"True when the value must be provided at booking.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].required","typeLabel":"boolean"},"allowed_values":{"description":"The values to offer when value_type is ENUM. Empty for free input.","type":"array","items":{"type":"string","uniqueKey":"data.offer.booking_requirements.items.[INDEX].allowed_values.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].allowed_values","typeLabel":"string[]"},"description":{"oneOf":[{"type":"string","description":"Extra explanation to show next to the field. Null when none.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Extra explanation to show next to the field. Null when none.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].description","typeLabel":"string | null"},"constraints":{"oneOf":[{"type":"object","additionalProperties":false,"properties":{"min_length":{"oneOf":[{"type":"number","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_length.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_length","typeLabel":"number | null"},"max_length":{"oneOf":[{"type":"number","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_length.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_length.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_length","typeLabel":"number | null"},"pattern":{"oneOf":[{"type":"string","description":"ECMAScript regular expression the whole value must match. Compile with `pattern_flags`.","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern.oneOf.0","typeLabel":"string"},{"type":"null","description":"ECMAScript regular expression the whole value must match. Compile with `pattern_flags`.","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern","typeLabel":"string | null"},"pattern_flags":{"oneOf":[{"type":"string","example":"u","description":"RegExp flags for `pattern` (e.g. \"u\" for Unicode property classes such as \\p{L}).","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern_flags.oneOf.0","typeLabel":"string"},{"type":"null","example":"u","description":"RegExp flags for `pattern` (e.g. \"u\" for Unicode property classes such as \\p{L}).","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern_flags.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.pattern_flags","typeLabel":"string | null"},"min_age":{"oneOf":[{"type":"number","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_age.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_age.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.min_age","typeLabel":"number | null"},"max_age":{"oneOf":[{"type":"number","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_age.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_age.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0.max_age","typeLabel":"number | null"}},"description":"Validation hints for the value: length range, a regular expression (pattern with pattern_flags), and an age range for guests. Null when there are no hints. Validate in your form; the booking API checks them again.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"properties":{"min_length":{"oneOf":[{"type":"number"},{"type":"null"}]},"max_length":{"oneOf":[{"type":"number"},{"type":"null"}]},"pattern":{"oneOf":[{"type":"string","description":"ECMAScript regular expression the whole value must match. Compile with `pattern_flags`."},{"type":"null","description":"ECMAScript regular expression the whole value must match. Compile with `pattern_flags`."}]},"pattern_flags":{"oneOf":[{"type":"string","example":"u","description":"RegExp flags for `pattern` (e.g. \"u\" for Unicode property classes such as \\p{L})."},{"type":"null","example":"u","description":"RegExp flags for `pattern` (e.g. \"u\" for Unicode property classes such as \\p{L})."}]},"min_age":{"oneOf":[{"type":"number"},{"type":"null"}]},"max_age":{"oneOf":[{"type":"number"},{"type":"null"}]}},"description":"Validation hints for the value: length range, a regular expression (pattern with pattern_flags), and an age range for guests. Null when there are no hints. Validate in your form; the booking API checks them again.","isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.booking_requirements.items.[INDEX].constraints","typeLabel":"object | null"}},"required":["requirement_id","code","label","value_type","scope","room_allocation_ids","required","allowed_values","description","constraints"],"uniqueKey":"data.offer.booking_requirements.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.booking_requirements","typeLabel":"object[]"},"cancellation":{"type":"object","description":"Cancellation policy to show to the guest.","required":["refundability","policy_stage","free_cancellation_until","policy_text","penalties","no_show"],"properties":{"refundability":{"type":"string","enum":["REFUNDABLE","PARTIALLY_REFUNDABLE","NON_REFUNDABLE","UNKNOWN"],"description":"REFUNDABLE: cancellable with no charge at some point. PARTIALLY_REFUNDABLE: cancellable but some penalty windows charge money. NON_REFUNDABLE: no refund. UNKNOWN: reserved for when the supplier gives no policy.","isRequired":true,"uniqueKey":"data.offer.cancellation.refundability","typeLabel":"enum\u003cstring>"},"policy_stage":{"type":"string","enum":["INDICATIVE","RECHECKED","FINAL"],"description":"How firm the policy is. INDICATIVE: from the room search, can still change. RECHECKED: confirmed by the supplier at prebook. FINAL: the supplier's final terms. Show the policy from prebook before the guest pays.","isRequired":true,"uniqueKey":"data.offer.cancellation.policy_stage","typeLabel":"enum\u003cstring>"},"free_cancellation_until":{"oneOf":[{"type":"object","description":"Last moment the guest can cancel without a charge. Null when there is no free-cancellation period (or the supplier did not state one). Display it with the time zone.","required":["local_datetime","timezone","utc_datetime"],"properties":{"local_datetime":{"type":"string","example":"2026-05-18T23:59:59","description":"Date and time exactly as the supplier stated it, without an offset (ISO 8601, for example 2026-05-18T23:59:59). It is wall-clock time in the zone named by timezone. Show this to the guest.","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.local_datetime","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.timezone.oneOf.0","typeLabel":"string"},{"type":"null","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.timezone","typeLabel":"string | null"},"utc_datetime":{"oneOf":[{"type":"string","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.utc_datetime.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.utc_datetime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0.utc_datetime","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.free_cancellation_until","typeLabel":"object | null"},"policy_text":{"type":"string","description":"Ready-to-show English summary generated from the fields (for example Non-refundable; cancellation penalties apply.). The penalties list is the precise rule.","isRequired":true,"uniqueKey":"data.offer.cancellation.policy_text","typeLabel":"string"},"penalties":{"description":"Penalty windows in the order the supplier sent them. Render them as a timeline: from, to and the charge. Empty when the supplier sent no windows.","type":"array","items":{"type":"object","properties":{"from":{"type":"object","description":"Start of this penalty window (inclusive).","required":["local_datetime","timezone","utc_datetime"],"properties":{"local_datetime":{"type":"string","example":"2026-05-18T23:59:59","description":"Date and time exactly as the supplier stated it, without an offset (ISO 8601, for example 2026-05-18T23:59:59). It is wall-clock time in the zone named by timezone. Show this to the guest.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.local_datetime","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.timezone.oneOf.0","typeLabel":"string"},{"type":"null","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.timezone","typeLabel":"string | null"},"utc_datetime":{"oneOf":[{"type":"string","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.utc_datetime.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.utc_datetime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from.utc_datetime","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].from","typeLabel":"object"},"to":{"oneOf":[{"type":"object","description":"Exclusive end of this penalty window when supplied. Null means the rule runs until check-in or beyond, not that the policy is incomplete.","required":["local_datetime","timezone","utc_datetime"],"properties":{"local_datetime":{"type":"string","example":"2026-05-18T23:59:59","description":"Date and time exactly as the supplier stated it, without an offset (ISO 8601, for example 2026-05-18T23:59:59). It is wall-clock time in the zone named by timezone. Show this to the guest.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.local_datetime","typeLabel":"string"},"timezone":{"oneOf":[{"type":"string","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.timezone.oneOf.0","typeLabel":"string"},{"type":"null","example":"UTC","description":"IANA time zone of local_datetime (for example Asia/Kolkata) when known. Null when the supplier gave no zone; then utc_datetime is also null and you should show local_datetime as is.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.timezone.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.timezone","typeLabel":"string | null"},"utc_datetime":{"oneOf":[{"type":"string","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.utc_datetime.oneOf.0","typeLabel":"string"},{"type":"null","example":"2026-05-18T23:59:59.000Z","description":"The same moment in UTC (ISO 8601 with Z). Null when the time zone is unknown. Use it for deadline logic and countdowns, never for display without a zone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.utc_datetime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0.utc_datetime","typeLabel":"string | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].to","typeLabel":"object | null"},"charge_basis":{"type":"string","enum":["FIXED_AMOUNT","PERCENTAGE","NIGHTS","FULL_STAY","UNKNOWN"],"description":"How the penalty is calculated. FIXED_AMOUNT: a fixed sum (native_amount). PERCENTAGE: percentage of the basis in calculation_basis. NIGHTS: number_of_nights nights. FULL_STAY: the whole stay. UNKNOWN: the supplier gave no usable rule; show description.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].charge_basis","typeLabel":"enum\u003cstring>"},"percentage":{"oneOf":[{"type":"number","description":"Percentage charged when charge_basis is PERCENTAGE (for example 50 means 50%). Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].percentage.oneOf.0","typeLabel":"number"},{"type":"null","description":"Percentage charged when charge_basis is PERCENTAGE (for example 50 means 50%). Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].percentage.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].percentage","typeLabel":"number | null"},"number_of_nights":{"oneOf":[{"type":"number","description":"Number of nights charged when charge_basis is NIGHTS. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].number_of_nights.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of nights charged when charge_basis is NIGHTS. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].number_of_nights.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].number_of_nights","typeLabel":"number | null"},"native_amount":{"oneOf":[{"type":"object","description":"Penalty amount in the supplier currency when it can be computed. 0 means a free-cancellation window. Null when the amount cannot be computed (for example a percentage of a basis other than the total); then show percentage / number_of_nights and description.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].native_amount","typeLabel":"object | null"},"usd_amount":{"oneOf":[{"type":"object","description":"native_amount converted to USD. Null when native_amount is null or no exchange rate is available.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].usd_amount","typeLabel":"object | null"},"display_amount":{"oneOf":[{"type":"object","description":"native_amount converted to the display currency. Null when native_amount is null or no exchange rate is available. Same as usd_amount when the display currency is USD.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].display_amount","typeLabel":"object | null"},"conversion_status":{"type":"string","enum":["AVAILABLE","UNAVAILABLE"],"description":"AVAILABLE when usd_amount is filled; UNAVAILABLE when it is null.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].conversion_status","typeLabel":"enum\u003cstring>"},"description":{"type":"string","description":"Short label for the window: Free cancellation window (amount 0) or Cancellation penalty. Do not parse.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].description","typeLabel":"string"},"calculation_basis":{"type":"string","enum":["TOTAL","ROOM_RATE","FIRST_NIGHT","NIGHTLY_RATE","SUPPLIER_DEFINED","UNKNOWN"],"description":"What a percentage or nights charge is applied to. TOTAL: the total payable to the supplier. ROOM_RATE, FIRST_NIGHT, NIGHTLY_RATE: that part of the rate. SUPPLIER_DEFINED or UNKNOWN: the supplier did not say exactly.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].calculation_basis","typeLabel":"enum\u003cstring>"},"scope":{"type":"object","description":"What the penalty covers. Usually PER_STAY with all other fields null.","required":["basis","room_allocation_id","guest_type","quantity"],"properties":{"basis":{"type":"string","enum":["PER_STAY","PER_ROOM","PER_ROOM_PER_NIGHT","PER_PERSON","PER_PERSON_PER_NIGHT"],"description":"What the amount covers. PER_STAY: the whole stay. PER_ROOM / PER_ROOM_PER_NIGHT: each room (per night). PER_PERSON / PER_PERSON_PER_NIGHT: each guest (per night). The amount is already the total for that scope.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.basis","typeLabel":"enum\u003cstring>"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.room_allocation_id","typeLabel":"string | null"},"guest_type":{"oneOf":[{"type":"string","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.guest_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.guest_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.guest_type","typeLabel":"enum\u003cstring> | null"},"quantity":{"oneOf":[{"type":"number","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.quantity.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope.quantity","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX].scope","typeLabel":"object"}},"required":["from","to","charge_basis","percentage","number_of_nights","native_amount","usd_amount","display_amount","conversion_status","description","calculation_basis","scope"],"uniqueKey":"data.offer.cancellation.penalties.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.cancellation.penalties","typeLabel":"object[]"},"no_show":{"oneOf":[{"type":"object","description":"No-show terms when the supplier states them. Null when none were supplied; that does not mean a no-show is free.","required":["trigger","applies_from_local_time","penalty"],"properties":{"trigger":{"type":"string","enum":["NO_SHOW"],"description":"Always NO_SHOW.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.trigger","typeLabel":"enum\u003cstring>"},"applies_from_local_time":{"oneOf":[{"type":"string","example":"18:00:00","description":"Supplier-local no-show cutoff time when supplied. No date or timezone is inferred.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.applies_from_local_time.oneOf.0","typeLabel":"string"},{"type":"null","example":"18:00:00","description":"Supplier-local no-show cutoff time when supplied. No date or timezone is inferred.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.applies_from_local_time.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.applies_from_local_time","typeLabel":"string | null"},"penalty":{"oneOf":[{"type":"object","description":"Charge triggered by a no-show. Null means no monetary no-show charge was supplied; it never means a zero charge was inferred.","required":["charge_basis","native_amount","usd_amount","display_amount","conversion_status","calculation_basis","scope"],"properties":{"charge_basis":{"type":"string","enum":["FIXED_AMOUNT","UNKNOWN"],"description":"FIXED_AMOUNT when native_amount is filled; UNKNOWN otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.charge_basis","typeLabel":"enum\u003cstring>"},"native_amount":{"oneOf":[{"type":"object","description":"No-show charge in the supplier currency.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.native_amount","typeLabel":"object | null"},"usd_amount":{"oneOf":[{"type":"object","description":"No-show charge converted to USD. Null when no exchange rate is available.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.usd_amount","typeLabel":"object | null"},"display_amount":{"oneOf":[{"type":"object","description":"native_amount converted to the display currency. Null when native_amount is null or no exchange rate is available. Same as usd_amount when the display currency is USD.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.display_amount","typeLabel":"object | null"},"conversion_status":{"type":"string","enum":["AVAILABLE","UNAVAILABLE","NOT_REQUIRED"],"description":"AVAILABLE when usd_amount is filled, UNAVAILABLE when no rate was available, NOT_REQUIRED when there is nothing to convert.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.conversion_status","typeLabel":"enum\u003cstring>"},"calculation_basis":{"type":"string","enum":["SUPPLIER_DEFINED"],"description":"Always SUPPLIER_DEFINED: the amount is whatever the supplier states.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.calculation_basis","typeLabel":"enum\u003cstring>"},"scope":{"type":"object","description":"What the no-show charge covers; always the whole stay.","required":["basis","room_allocation_id","guest_type","quantity"],"properties":{"basis":{"type":"string","enum":["PER_STAY","PER_ROOM","PER_ROOM_PER_NIGHT","PER_PERSON","PER_PERSON_PER_NIGHT"],"description":"What the amount covers. PER_STAY: the whole stay. PER_ROOM / PER_ROOM_PER_NIGHT: each room (per night). PER_PERSON / PER_PERSON_PER_NIGHT: each guest (per night). The amount is already the total for that scope.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.basis","typeLabel":"enum\u003cstring>"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the charge belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.room_allocation_id","typeLabel":"string | null"},"guest_type":{"oneOf":[{"type":"string","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.guest_type.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["ADULT","CHILD","INFANT"],"description":"Guest type the charge applies to. Null when it applies to everyone.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.guest_type.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.guest_type","typeLabel":"enum\u003cstring> | null"},"quantity":{"oneOf":[{"type":"number","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.quantity.oneOf.0","typeLabel":"number"},{"type":"null","description":"Number of units the charge was calculated on (for example guests or nights) when the supplier states it. Null otherwise.","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope.quantity","typeLabel":"number | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0.scope","typeLabel":"object"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0.penalty","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.cancellation.no_show.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.cancellation.no_show","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer.cancellation","typeLabel":"object"},"nightly_prices":{"description":"Per-night price breakdown when the supplier gives one. Empty array when not supplied. Display only; the ledger is authoritative.","type":"array","items":{"type":"object","properties":{"date":{"oneOf":[{"type":"string","description":"Night date (YYYY-MM-DD). Null when the supplier does not date the night.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].date.oneOf.0","typeLabel":"string"},{"type":"null","description":"Night date (YYYY-MM-DD). Null when the supplier does not date the night.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].date","typeLabel":"string | null"},"room_allocation_id":{"oneOf":[{"type":"string","description":"Room slot the amount belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].room_allocation_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Room slot the amount belongs to. Null when it covers the whole offer.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].room_allocation_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].room_allocation_id","typeLabel":"string | null"},"amount":{"type":"object","description":"Amount for the night (integer minor units with currency_exponent). It is a display breakdown; the ledger is the authoritative price.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].amount.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].amount.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].amount.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].amount","typeLabel":"object"},"display_amount":{"oneOf":[{"type":"object","description":"The night's amount converted to the display currency (pricing.display_currency). Null when no exchange rate is available.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].display_amount","typeLabel":"object | null"},"scope":{"type":"string","enum":["OFFER","ROOM_ALLOCATION"],"description":"OFFER when the amount covers all rooms, ROOM_ALLOCATION when it covers one room slot.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"component":{"type":"string","enum":["ROOM_RATE","PAYABLE_TO_SUPPLIER","UNKNOWN"],"description":"Meaning of the nightly amount. PAYABLE_TO_SUPPLIER excludes separately collected property charges.","isRequired":true,"uniqueKey":"data.offer.nightly_prices.items.[INDEX].component","typeLabel":"enum\u003cstring>"}},"required":["date","room_allocation_id","amount","display_amount","scope","component"],"uniqueKey":"data.offer.nightly_prices.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.nightly_prices","typeLabel":"object[]"},"promotions":{"description":"Supplier promotions applied to the rate. Empty array when none.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Promotion code from the supplier.","isRequired":true,"uniqueKey":"data.offer.promotions.items.[INDEX].code","typeLabel":"string"},"title":{"type":"string","description":"Promotion title to show.","isRequired":true,"uniqueKey":"data.offer.promotions.items.[INDEX].title","typeLabel":"string"},"description":{"oneOf":[{"type":"string","description":"Promotion detail. Null when none.","isRequired":true,"uniqueKey":"data.offer.promotions.items.[INDEX].description.oneOf.0","typeLabel":"string"},{"type":"null","description":"Promotion detail. Null when none.","isRequired":true,"uniqueKey":"data.offer.promotions.items.[INDEX].description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.promotions.items.[INDEX].description","typeLabel":"string | null"}},"required":["code","title","description"],"uniqueKey":"data.offer.promotions.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.promotions","typeLabel":"object[]"},"benefits":{"description":"Extra benefits included in the rate (for example late check-out). Empty array when none.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"free_wifi","description":"Machine code of the inclusion (for example free_wifi). New codes can appear; treat unknown codes as plain labels.","isRequired":true,"uniqueKey":"data.offer.benefits.items.[INDEX].code","typeLabel":"string"},"label":{"type":"string","example":"Free WiFi","description":"Inclusion text to show to the guest.","isRequired":true,"uniqueKey":"data.offer.benefits.items.[INDEX].label","typeLabel":"string"}},"required":["code","label"],"uniqueKey":"data.offer.benefits.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.benefits","typeLabel":"object[]"},"notices":{"description":"Notices for the guest. Always show those with must_display true.","type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Notice code. Informational.","isRequired":true,"uniqueKey":"data.offer.notices.items.[INDEX].code","typeLabel":"string"},"severity":{"type":"string","enum":["INFO","WARNING","REQUIRED"],"description":"INFO: helpful. WARNING: may affect the guest's decision. REQUIRED: a condition the supplier requires the guest to be told.","isRequired":true,"uniqueKey":"data.offer.notices.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"scope":{"type":"string","enum":["OFFER","ROOM","PAYMENT","CANCELLATION","HOTEL"],"description":"What the notice is about: the whole OFFER, a ROOM, the PAYMENT, the CANCELLATION policy, or the HOTEL.","isRequired":true,"uniqueKey":"data.offer.notices.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"Notice text to show, in the supplier's wording.","isRequired":true,"uniqueKey":"data.offer.notices.items.[INDEX].text","typeLabel":"string"},"must_display":{"type":"boolean","description":"True when you must show the text to the guest before they book. Always honour it.","isRequired":true,"uniqueKey":"data.offer.notices.items.[INDEX].must_display","typeLabel":"boolean"}},"required":["code","severity","scope","text","must_display"],"uniqueKey":"data.offer.notices.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.offer.notices","typeLabel":"object[]"},"supplier_terms_and_conditions":{"oneOf":[{"type":"object","description":"Full supplier terms. Null when none. You decide where to show them (for example a link at checkout).","required":["type","format","text"],"properties":{"type":{"type":"string","enum":["SUPPLIER_TERMS_AND_CONDITIONS"],"description":"Always SUPPLIER_TERMS_AND_CONDITIONS.","isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions.oneOf.0.type","typeLabel":"enum\u003cstring>"},"format":{"type":"string","enum":["PLAIN_TEXT","HTML"],"description":"PLAIN_TEXT (escape it) or HTML (already sanitised; render it).","isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions.oneOf.0.format","typeLabel":"enum\u003cstring>"},"text":{"type":"string","description":"Complete supplier-authored terms. Consumers decide whether and where to display them.","isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions.oneOf.0.text","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.offer.supplier_terms_and_conditions","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.offer","typeLabel":"object"},"revalidation":{"type":"object","description":"How the refreshed offer compares with the one the guest picked, and what to do next.","required":["result","decision","changes"],"properties":{"result":{"type":"string","enum":["UNCHANGED","CHANGED","NOT_COMPARABLE"],"description":"UNCHANGED: nothing differs from the room-stage offer. CHANGED: at least one entry in `changes`. NOT_COMPARABLE: prices could not be compared (the currencies differ or no USD rate is available); treat it like a change and read `changes`. Use `decision` to decide what to do.","isRequired":true,"uniqueKey":"data.revalidation.result","typeLabel":"enum\u003cstring>"},"decision":{"type":"string","enum":["READY_TO_BOOK","RECONFIRMATION_REQUIRED","NOT_BOOKABLE"],"description":"The only field you need to branch on. READY_TO_BOOK: continue to Create Booking. RECONFIRMATION_REQUIRED: show the guest the refreshed `offer` and `changes`, and book only if they accept. NOT_BOOKABLE: no `prebooking_id` is issued; send the guest back to room selection.","isRequired":true,"uniqueKey":"data.revalidation.decision","typeLabel":"enum\u003cstring>"},"changes":{"description":"Every difference between the room-stage offer and the refreshed offer. Empty when `result` is UNCHANGED.","type":"array","items":{"type":"object","properties":{"category":{"type":"string","description":"What kind of thing changed. AVAILABILITY: the offer was sold out or its availability status changed. PRICING and TAX: totals or the price breakdown changed. PAYMENT: who pays or when. ROOM, ROOM_COMBINATION and BEDDING: the room, the multi-room rule or the beds. MEAL and INCLUSION: board or included items. RATE_PLAN: rate conditions. CANCELLATION: cancellation or no-show terms. BOOKING_REQUIREMENT: guest data the supplier asks for. NOTICE, BENEFIT and PROMOTION: disclosures. COMMERCIAL: commission and selling-price information.","enum":["AVAILABILITY","PRICING","TAX","PAYMENT","ROOM","ROOM_COMBINATION","BEDDING","MEAL","INCLUSION","RATE_PLAN","CANCELLATION","BOOKING_REQUIREMENT","NOTICE","BENEFIT","PROMOTION","COMMERCIAL"],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].category","typeLabel":"enum\u003cstring>"},"code":{"type":"string","example":"SUPPLIER_TOTAL_INCREASED","description":"Stable machine code for this change. Branch on `impact`, not on the code. Codes you may see: OFFER_SOLD_OUT, AVAILABILITY_STATUS_CHANGED, CURRENCY_SET_CHANGED, SUPPLIER_TOTAL_INCREASED, SUPPLIER_TOTAL_DECREASED, SUPPLIER_TOTAL_ROUNDING, SUPPLIER_TOTAL_CHANGED_FX_UNAVAILABLE, PROPERTY_TOTAL_INCREASED, PROPERTY_TOTAL_DECREASED, PROPERTY_TOTAL_ROUNDING, PROPERTY_TOTAL_CHANGED_FX_UNAVAILABLE, PRICE_BREAKDOWN_CHANGED, NIGHTLY_PRICE_DISTRIBUTION_CHANGED, PAYMENT_TERMS_CHANGED, UNSUPPORTED_PAYMENT_INSTRUMENT_REQUIRED, ROOM_ALLOCATIONS_CHANGED, ROOM_ASSIGNMENT_CHANGED, ROOM_IDENTITY_CHANGED, MEAL_PLAN_CHANGED, ROOM_INCLUSIONS_CHANGED, ROOM_INCLUSIONS_ADDED, BED_CONFIGURATION_CHANGED, ROOM_COMBINATION_CHANGED, RATE_PLAN_CHANGED, CANCELLATION_TERMS_CHANGED, CANCELLATION_DETAILS_UPDATED, BOOKING_REQUIREMENTS_CHANGED, BOOKING_REQUIREMENTS_RELAXED, SUPPLIER_NOTICES_CHANGED, BENEFITS_CHANGED, PROMOTIONS_CHANGED, MINIMUM_SELLING_PRICE_CHANGED, COMMERCIAL_TERMS_CHANGED. New codes may be added.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].code","typeLabel":"string"},"impact":{"type":"string","enum":["INFORMATIONAL","RECONFIRMATION_REQUIRED","BLOCKING"],"description":"INFORMATIONAL: tell the guest if you like; booking can go ahead. RECONFIRMATION_REQUIRED: the guest must see the change and accept it before you book. BLOCKING: this offer cannot be booked; send the guest back to room selection.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].impact","typeLabel":"enum\u003cstring>"},"scope":{"type":"object","description":"Which rooms, currency and payment location the change covers.","required":["room_allocation_ids","currency","collection_location"],"properties":{"room_allocation_ids":{"example":["ra_2c1fb39ed54742f28d95bd8bc5f4375d"],"description":"Room allocations this change applies to. An empty array means the change concerns the whole offer.","type":"array","items":{"type":"string","uniqueKey":"data.revalidation.changes.items.[INDEX].scope.room_allocation_ids.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.room_allocation_ids","typeLabel":"string[]"},"currency":{"oneOf":[{"type":"string","example":"USD","description":"ISO 4217 currency of the price this change is about. Null for changes that are not about money.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.currency.oneOf.0","typeLabel":"string"},{"type":"null","example":"USD","description":"ISO 4217 currency of the price this change is about. Null for changes that are not about money.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.currency.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.currency","typeLabel":"string | null"},"collection_location":{"oneOf":[{"type":"string","enum":["SUPPLIER","PROPERTY"],"description":"Who the changed amount is payable to: SUPPLIER (the supplier-payable part, settled with the supplier for this booking) or PROPERTY (the part the guest pays at the hotel). Null when the change is not about a price.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.collection_location.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["SUPPLIER","PROPERTY"],"description":"Who the changed amount is payable to: SUPPLIER (the supplier-payable part, settled with the supplier for this booking) or PROPERTY (the part the guest pays at the hotel). Null when the change is not about a price.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.collection_location.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope.collection_location","typeLabel":"enum\u003cstring> | null"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].scope","typeLabel":"object"},"description":{"type":"string","example":"Supplier-payable total increased in USD.","description":"Short English explanation of the change. Useful for logs and support; build your own guest-facing wording from `category`, `code` and `money_change`.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].description","typeLabel":"string"},"money_change":{"oneOf":[{"type":"object","description":"Before and after amounts. Present for changes to a price total (SUPPLIER_TOTAL_* and PROPERTY_TOTAL_* codes); null for every other change.","required":["previous","current","difference","difference_usd","difference_display"],"properties":{"previous":{"type":"object","description":"The amount at the room stage, in the supplier's currency. Which amount depends on `scope.collection_location`: the supplier-payable total or the property-payable total.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.previous.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.previous.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.previous.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.previous","typeLabel":"object"},"current":{"type":"object","description":"The same amount as confirmed by prebook. It matches the corresponding total in `data.offer.pricing.native_ledger.totals`.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.current.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.current.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.current.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.current","typeLabel":"object"},"difference":{"type":"object","description":"current minus previous, in the same currency. Positive means the price went up; negative means it went down.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference","typeLabel":"object"},"difference_usd":{"oneOf":[{"type":"object","description":"The difference converted to USD. Null when no USD exchange rate is available for the currency; it is never a made-up zero.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_usd","typeLabel":"object | null"},"difference_display":{"oneOf":[{"type":"object","description":"The difference converted to the display currency (pricing.display_currency). Null when no exchange rate is available for the currency; it is never a made-up zero.","required":["amount_minor","currency","currency_exponent"],"properties":{"amount_minor":{"type":"number","example":17700,"description":"Integer amount in minor units of the currency. Divide by 10 to the power of currency_exponent: 17700 with exponent 2 is 177.00; a zero-decimal currency such as JPY has exponent 0. Never treat it as a decimal amount.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display.oneOf.0.amount_minor","typeLabel":"number"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the amount (upper case). Native-ledger amounts are in the supplier's currency; usd_ledger amounts are USD.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display.oneOf.0.currency","typeLabel":"string"},"currency_exponent":{"type":"number","example":2,"description":"Number of decimal places of the currency (2 for USD, 0 for JPY, 3 for KWD). Use it to format amount_minor.","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display.oneOf.0.currency_exponent","typeLabel":"number"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0.difference_display","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.revalidation.changes.items.[INDEX].money_change","typeLabel":"object | null"}},"required":["category","code","impact","scope","description","money_change"],"uniqueKey":"data.revalidation.changes.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.revalidation.changes","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"data.revalidation","typeLabel":"object"},"supplier_hotel":{"oneOf":[{"type":"object","description":"The supplier's own hotel that this booking goes to, as verified by the UnifyStays mapping check. Show it next to your hotel so the agent can match it against the supplier's voucher. Null when no verified supplier hotel is on record.","required":["provider_code","provider_hotel_id","name","address","country_code","mapping_status","verified_at"],"properties":{"provider_code":{"type":"string","example":"RATEHAWK","description":"The supplier this booking goes to.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.provider_code","typeLabel":"string"},"provider_hotel_id":{"type":"string","example":"7468213","description":"The supplier's own ID for the hotel. Quote it to the supplier if you contact them about this booking.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.provider_hotel_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","example":"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026 Residence","description":"The hotel's name as the supplier lists it. Wording can differ from `offer.quote_context.hotel.name`; the hotel is the same. Null when the supplier sent no name.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026 Residence","description":"The hotel's name as the supplier lists it. Wording can differ from `offer.quote_context.hotel.name`; the hotel is the same. Null when the supplier sent no name.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.name","typeLabel":"string | null"},"address":{"oneOf":[{"type":"string","example":"Cluster T, Jumeirah Lakes Towers, Dubai","description":"The hotel's address as the supplier lists it. Null when the supplier sent none.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.address.oneOf.0","typeLabel":"string"},{"type":"null","example":"Cluster T, Jumeirah Lakes Towers, Dubai","description":"The hotel's address as the supplier lists it. Null when the supplier sent none.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.address.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.address","typeLabel":"string | null"},"country_code":{"oneOf":[{"type":"string","example":"AE","description":"ISO 3166-1 alpha-2 country code from the supplier. Null when the supplier sent none.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.country_code.oneOf.0","typeLabel":"string"},{"type":"null","example":"AE","description":"ISO 3166-1 alpha-2 country code from the supplier. Null when the supplier sent none.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.country_code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.country_code","typeLabel":"string | null"},"mapping_status":{"type":"string","enum":["VERIFIED"],"example":"VERIFIED","description":"Result of the UnifyStays mapping check for this supplier hotel. Prebook only succeeds for a verified hotel; otherwise it fails with HOTEL_MAPPING_UNVERIFIED or HOTEL_MAPPING_CHECK_PENDING.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.mapping_status","typeLabel":"enum\u003cstring>"},"verified_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-10-28T09:14:02.000Z","description":"When the mapping was last verified, in UTC. Null for older verifications that didn't record it.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.verified_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-10-28T09:14:02.000Z","description":"When the mapping was last verified, in UTC. Null for older verifications that didn't record it.","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.verified_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0.verified_at","typeLabel":"string\u003cdate-time> | null"}},"isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.0","typeLabel":"object"},{"type":"null","isRequired":true,"uniqueKey":"data.supplier_hotel.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"data.supplier_hotel","typeLabel":"object | null"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"required":["contract_version","success","message","data"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"contract_version":"2","success":true,"message":"Pre-booking completed. Option is available and ready for booking.","data":{"prebooking_id":"pbq7.bjNQb1Y5R2hRWEg.k6jQ3nW4cF1nL4MWvN7A9Q","offer":{"offer_id":"off_01J...","revision":1,"offer_family_id":"\u003cstring>","supersedes_offer_id":"\u003cstring>","quote_context":{"hotel":{"id":"\u003cstring>","name":"\u003cstring>","address":"\u003cstring>","address_local":"\u003cstring>","city":"\u003cstring>","state":"\u003cstring>","country":"\u003cstring>","postal_code":"\u003cstring>","latitude":123,"longitude":123,"timezone":"\u003cstring>"},"check_in":"\u003cstring>","check_out":"\u003cstring>","nights":123,"rooms":[{"adults":123,"child_ages":[123]}],"residency":"\u003cstring>","nationality":"\u003cstring>","language":"\u003cstring>"},"provider_code":"TBO","room_combination":{"normalized_type":"SINGLE_ROOM","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>"},"rate_plan":{"normalized_type":"PUBLIC","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>","qualification":"\u003cstring>","is_package":true,"is_fenced":true},"rooms":[{"room_allocation_id":"ra_2c1fb39ed54742f28d95bd8bc5f4375d","provider_room":{"provider_code":"TRIPJACK","provider_hotel_id":"100000249368","id":"10024615989","name":"Aloft Studio, King","supplier_name":"\u003cstring>","description":"\u003cstring>","description_format":"HTML","detail_status":"NONE","room_type":{"normalized_code":"SUPERIOR","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>"},"room_category":{"normalized_code":"SUPERIOR","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>"},"size":{"value":123,"unit":"sqm"},"amenities":[{"id":"2403","normalized_code":"WHEELCHAIR_ACCESSIBLE","supplier_code":"2403","name":"Free WiFi","category":"GENERAL"}],"images":[{"url":"\u003cstring>","caption":"\u003cstring>","is_primary":true}],"bed_configurations":[{"id":"bed_1","bed_count":1,"bedroom_count":1,"beds":[{"type":"King","normalized_type":"SINGLE","supplier_type":"\u003cstring>","quantity":1,"width_min_cm":151,"width_max_cm":180}],"bed_type_guaranteed":true,"selected":true}],"bed_summary":"1 king bed or 2 single beds","occupancy":{"max_allowed":{"total":3,"adults":3,"children":2,"infants":123}},"bathroom":{"type":"PRIVATE","count":123},"views":[{"normalized_code":"CITY","supplier_code":"\u003cstring>","name":"\u003cstring>","partial":true}],"features":{"balcony":true,"smoking":"SMOKING","accessible":true,"club_access":true,"connecting_room":true},"extra_bed":{"available":true,"included":true,"charge_applicable":true},"child_bed":{"available":true,"included":true,"charge_applicable":true}},"mapping_status":"MAPPED","mapping_details":{"source":"MANUAL","confidence":0.93,"algorithm_version":"ROOM_RULES_V5","reason_codes":["GLOBAL_CATALOGUE_ASSIGNMENT","ASSIGNMENT_STABLE","BED_EXACT"]},"unifystays_room":{"provider_code":"TRIPJACK","provider_hotel_id":"100000249368","id":"10024615989","name":"Aloft Studio, King","supplier_name":"\u003cstring>","description":"\u003cstring>","description_format":"HTML","detail_status":"NONE","room_type":{"normalized_code":"SUPERIOR","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>"},"room_category":{"normalized_code":"SUPERIOR","supplier_code":"\u003cstring>","supplier_name":"\u003cstring>"},"size":{"value":123,"unit":"sqm"},"amenities":[{"id":"2403","normalized_code":"WHEELCHAIR_ACCESSIBLE","supplier_code":"2403","name":"Free WiFi","category":"GENERAL"}],"images":[{"url":"\u003cstring>","caption":"\u003cstring>","is_primary":true}],"bed_configurations":[{"id":"bed_1","bed_count":1,"bedroom_count":1,"beds":[{"type":"King","normalized_type":"SINGLE","supplier_type":"\u003cstring>","quantity":1,"width_min_cm":151,"width_max_cm":180}],"bed_type_guaranteed":true,"selected":true}],"bed_summary":"1 king bed or 2 single beds","occupancy":{"max_allowed":{"total":3,"adults":3,"children":2,"infants":123}},"bathroom":{"type":"PRIVATE","count":123},"views":[{"normalized_code":"CITY","supplier_code":"\u003cstring>","name":"\u003cstring>","partial":true}],"features":{"balcony":true,"smoking":"SMOKING","accessible":true,"club_access":true,"connecting_room":true},"extra_bed":{"available":true,"included":true,"charge_applicable":true},"child_bed":{"available":true,"included":true,"charge_applicable":true}},"occupancy":{"adults":2,"child_ages":[7]},"meal_plan":{"code":"BB","supplier_code":"breakfast","supplier_name":"Breakfast","label":"Bed \u0026 Breakfast","is_breakfast_included":true,"is_child_meal_included":true},"inclusions":[{"code":"free_wifi","label":"Free WiFi"}],"unifystays_family_id":"4120552","unifystays_room_id":"4120552"}],"lifecycle":{"stage":"ROOMS","quoted_at":"\u003cstring>","expires_at":"\u003cstring>","prebook_required":true,"price_guaranteed":true,"availability":"AVAILABLE","rooms_remaining":{},"on_request":true,"available_booking_modes":["INSTANT"],"hold_allowed":true,"hold_deadline":{"local_datetime":"2026-05-18T23:59:59","timezone":"UTC","utc_datetime":"2026-05-18T23:59:59.000Z"},"post_booking_actions":["STATUS"]},"pricing":{"price_basis":"NET","breakdown_status":"COMPLETE","native_ledger":{"primary_currency":"USD","totals":[{"currency":"USD","currency_exponent":2,"payable_to_supplier":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"payable_at_property":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"total":{"amount_minor":17700,"currency":"USD","currency_exponent":2}}],"lines":[{"category":"room_rate","code":"city_tax","normalized_code":"CITY_TAX","description":"City tax","amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"collection_location":"SUPPLIER","included_in_quoted_total":false,"scope":{"basis":"PER_STAY","room_allocation_id":"\u003cstring>","guest_type":"ADULT","quantity":123},"mandatory":true,"source_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"is_estimated":true}]},"usd_ledger":{"primary_currency":"USD","totals":[{"currency":"USD","currency_exponent":2,"payable_to_supplier":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"payable_at_property":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"total":{"amount_minor":17700,"currency":"USD","currency_exponent":2}}],"lines":[{"category":"room_rate","code":"city_tax","normalized_code":"CITY_TAX","description":"City tax","amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"collection_location":"SUPPLIER","included_in_quoted_total":false,"scope":{"basis":"PER_STAY","room_allocation_id":"\u003cstring>","guest_type":"ADULT","quantity":123},"mandatory":true,"source_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"is_estimated":true}]},"display_currency":"EUR","display_ledger":{"primary_currency":"USD","totals":[{"currency":"USD","currency_exponent":2,"payable_to_supplier":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"payable_at_property":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"total":{"amount_minor":17700,"currency":"USD","currency_exponent":2}}],"lines":[{"category":"room_rate","code":"city_tax","normalized_code":"CITY_TAX","description":"City tax","amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"collection_location":"SUPPLIER","included_in_quoted_total":false,"scope":{"basis":"PER_STAY","room_allocation_id":"\u003cstring>","guest_type":"ADULT","quantity":123},"mandatory":true,"source_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"is_estimated":true}]},"conversion":{"status":"AVAILABLE","missing_currencies":["\u003cstring>"],"rates":[{"base_currency":"AED","quote_currency":"USD","rate":0.272294,"rate_updated_at":"\u003cstring>"}]}},"payment":{"settlement_channel":"SUPPLIER_ACCOUNT","payer":"AGENCY","supplier_payment_type":"\u003cstring>","payable_at":"SUPPLIER","collection_timing":"AT_BOOKING","requires_card_data":true,"requires_cvc":true,"requires_vcc":true,"security_deposit":{"amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"refundable":true}},"commercial":{"supplier_charge_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"gross_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"net_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"commission_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"agent_reward":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"recommended_selling_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"minimum_selling_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"original_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"discount_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"vat":{"included":true,"applied":true,"amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"rate":123}},"commercial_display":{"supplier_charge_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"gross_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"net_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"commission_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"agent_reward":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"recommended_selling_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"minimum_selling_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"original_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"discount_total":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"vat":{"included":true,"applied":true,"amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"rate":123}},"booking_requirements":[{"requirement_id":"br_first_name_all_guests_2","code":"FIRST_NAME","label":"First name","value_type":"TEXT","scope":"LEAD_GUEST","room_allocation_ids":["\u003cstring>"],"required":true,"allowed_values":["\u003cstring>"],"description":"\u003cstring>","constraints":{"min_length":123,"max_length":123,"pattern":"\u003cstring>","pattern_flags":"u","min_age":123,"max_age":123}}],"cancellation":{"refundability":"REFUNDABLE","policy_stage":"INDICATIVE","free_cancellation_until":{"local_datetime":"2026-05-18T23:59:59","timezone":"UTC","utc_datetime":"2026-05-18T23:59:59.000Z"},"policy_text":"\u003cstring>","penalties":[{"from":{"local_datetime":"2026-05-18T23:59:59","timezone":"UTC","utc_datetime":"2026-05-18T23:59:59.000Z"},"to":{"local_datetime":"2026-05-18T23:59:59","timezone":"UTC","utc_datetime":"2026-05-18T23:59:59.000Z"},"charge_basis":"FIXED_AMOUNT","percentage":123,"number_of_nights":123,"native_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"usd_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"conversion_status":"AVAILABLE","description":"\u003cstring>","calculation_basis":"TOTAL","scope":{"basis":"PER_STAY","room_allocation_id":"\u003cstring>","guest_type":"ADULT","quantity":123}}],"no_show":{"trigger":"NO_SHOW","applies_from_local_time":"18:00:00","penalty":{"charge_basis":"FIXED_AMOUNT","native_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"usd_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"conversion_status":"AVAILABLE","calculation_basis":"SUPPLIER_DEFINED","scope":{"basis":"PER_STAY","room_allocation_id":"\u003cstring>","guest_type":"ADULT","quantity":123}}}},"nightly_prices":[{"date":"\u003cstring>","room_allocation_id":"\u003cstring>","amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"display_amount":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"scope":"OFFER","component":"ROOM_RATE"}],"promotions":[{"code":"\u003cstring>","title":"\u003cstring>","description":"\u003cstring>"}],"benefits":[{"code":"free_wifi","label":"Free WiFi"}],"notices":[{"code":"\u003cstring>","severity":"INFO","scope":"OFFER","text":"\u003cstring>","must_display":true}],"supplier_terms_and_conditions":{"type":"SUPPLIER_TERMS_AND_CONDITIONS","format":"PLAIN_TEXT","text":"\u003cstring>"}},"revalidation":{"result":"UNCHANGED","decision":"READY_TO_BOOK","changes":[{"category":"AVAILABILITY","code":"SUPPLIER_TOTAL_INCREASED","impact":"INFORMATIONAL","scope":{"room_allocation_ids":["ra_2c1fb39ed54742f28d95bd8bc5f4375d"],"currency":"USD","collection_location":"SUPPLIER"},"description":"Supplier-payable total increased in USD.","money_change":{"previous":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"current":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"difference":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"difference_usd":{"amount_minor":17700,"currency":"USD","currency_exponent":2},"difference_display":{"amount_minor":17700,"currency":"USD","currency_exponent":2}}}]},"supplier_hotel":{"provider_code":"RATEHAWK","provider_hotel_id":"7468213","name":"Pullman Dubai Jumeirah Lakes Towers Hotel \u0026 Residence","address":"Cluster T, Jumeirah Lakes Towers, Dubai","country_code":"AE","mapping_status":"VERIFIED","verified_at":"2026-10-28T09:14:02.000Z"}}}}},"exampleType":"generated"}},"headers":{"X-Unifystays-Contract-Version":{"description":"Hotel contract version of this response.","schema":{"type":"string","enum":["2"]}}},"exampleType":"generated"},"05858cf9-259a-41f0-b19b-26c25c43c25c":{"description":"Invalid request. Codes: VALIDATION_ERROR, BOOKING_TOKEN_INVALID, BOOKING_TOKEN_EXPIRED, BOOKING_TOKEN_CONTEXT_NOT_FOUND, BOOKING_TOKEN_OPTION_NOT_FOUND, BOOKING_TOKEN_HOTEL_MISMATCH, PROVIDER_NOT_REGISTERED. Fetch fresh rooms for any token error.","headers":{"X-Unifystays-Contract-Version":{"description":"Hotel contract version of this response.","schema":{"type":"string","enum":["2"]}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"4f77259a-85b9-4081-900e-becfadb94cc1":{"description":"Not found (for example HOTEL_NOT_FOUND). Token problems are 400 errors, not 404.","headers":{"X-Unifystays-Contract-Version":{"description":"Hotel contract version of this response.","schema":{"type":"string","enum":["2"]}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"33d7f727-c66d-4909-8030-0146926bd0de":{"description":"CONTRACT_VERSION_UNSUPPORTED","headers":{"X-Unifystays-Contract-Version":{"description":"Hotel contract version of this response.","schema":{"type":"string","enum":["2"]}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"bf8f0c0b-7f68-4968-8af8-65202e07f238":{"description":"PREBOOK_IN_PROGRESS (same token already being prebooked; wait the Retry-After seconds and repeat the identical request), OFFER_UNAVAILABLE (no longer available; fetch fresh rooms), HOTEL_MAPPING_UNVERIFIED or HOTEL_MAPPING_CHECK_PENDING, PREBOOKING_ID_EXPIRED, PROVIDER_OPERATION_NOT_SUPPORTED (the refreshed offer needs an unsupported payment instrument).","headers":{"X-Unifystays-Contract-Version":{"description":"Hotel contract version of this response.","schema":{"type":"string","enum":["2"]}}},"content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"71ce26d4-cf7b-4d3b-ab99-f95701a1c420":{"x-api-key":{"type":"apiKey","in":"header","name":"x-api-key","description":"Environment-specific API key created in the Unifystays portal","scopes":[],"schemeName":"x-api-key"}}},"servers":{"58b3027e-a79b-4d2c-898a-ec7cc8ae6eae":{"url":"https://api-sandbox.unifystays.com","description":"Sandbox"},"32e511f6-5caf-4d51-acd6-ad4d164fb151":{"url":"https://api.unifystays.com","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"x-api-key","description":"Environment-specific API key created in the Unifystays portal","scopes":[],"schemeName":"x-api-key"},"schema":{"title":"x-api-key","type":"string","description":"Environment-specific API key created in the Unifystays portal","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"x-api-key","name":"x-api-key"}],"title":"x-api-key"}]},"originalFileLocation":"reference/openapi.json"},"subdomain":"unifystays","siteName":"Unifystays API","title":"Prebook a Room - Unifystays API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T06:56:51.123Z","originalFileLocation":"api-reference/prebook.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Unifystays API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/unifystays/_generated/favicon/apple-touch-icon.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/unifystays/_generated/favicon/favicon-32x32.png?v=3\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/unifystays/_generated/favicon/favicon-16x16.png?v=3\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"https://mintlify.s3.us-west-1.amazonaws.com/unifystays/_generated/favicon/favicon.ico?v=3\">\u003cmeta data-mint-head property=\"og:title\" content=\"Prebook a Room - Unifystays API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Unifystays API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.unifystays.com/api-reference/prebook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://unifystays.mintlify.app/_mintlify/api/og/v2?division=Search+%26+hotels\u0026amp;title=Prebook+a+Room\u0026amp;description=Recheck+the+selected+offer+with+the+supplier+and+get+the+prebooking_id+you+need+to+book.\u0026amp;theme=8157bd32ddef625e2bd30aba\u0026amp;signature=cecbfbd3f46545a202f64cd43dec9a81c5edb806cff44be5e0e8ba6f543b0c2d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Prebook a Room - Unifystays API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://unifystays.mintlify.app/_mintlify/api/og/v2?division=Search+%26+hotels\u0026amp;title=Prebook+a+Room\u0026amp;description=Recheck+the+selected+offer+with+the+supplier+and+get+the+prebooking_id+you+need+to+book.\u0026amp;theme=8157bd32ddef625e2bd30aba\u0026amp;signature=cecbfbd3f46545a202f64cd43dec9a81c5edb806cff44be5e0e8ba6f543b0c2d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"https://mintlify.s3.us-west-1.amazonaws.com/unifystays/_generated/favicon/browserconfig.xml?v=3\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Unifystays API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F766E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.unifystays.com/api-reference/prebook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/prebook.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.unifystays.com/#organization\",\"name\":\"Unifystays API\",\"url\":\"https://docs.unifystays.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.unifystays.com#website\",\"name\":\"Unifystays API\",\"url\":\"https://docs.unifystays.com\",\"publisher\":{\"@id\":\"https://docs.unifystays.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.unifystays.com/api-reference/prebook#webpage\",\"url\":\"https://docs.unifystays.com/api-reference/prebook\",\"name\":\"Prebook a Room\",\"description\":\"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\",\"dateModified\":\"2026-10-31T06:56:51.123Z\",\"isPartOf\":{\"@id\":\"https://docs.unifystays.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.unifystays.com/api-reference/prebook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.unifystays.com/api-reference/prebook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Search \u0026 hotels\",\"item\":\"https://docs.unifystays.com/api-reference/hotel-filters\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Prebook a Room\",\"item\":\"https://docs.unifystays.com/api-reference/prebook\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.unifystays.com/api-reference/prebook#apireference\",\"headline\":\"Prebook a Room\",\"name\":\"Prebook a Room\",\"description\":\"Recheck the selected offer with the supplier and get the prebooking_id you need to book.\",\"url\":\"https://docs.unifystays.com/api-reference/prebook\",\"mainEntityOfPage\":{\"@id\":\"https://docs.unifystays.com/api-reference/prebook#webpage\"},\"dateModified\":\"2026-10-31T06:56:51.123Z\",\"publisher\":{\"@id\":\"https://docs.unifystays.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.unifystays.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Unifystays API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Unifystays API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"Overview","href":"/api-reference/overview"}]},{"group":"Destination \u0026 master data","pages":[{"title":"Destination Autocomplete","openapi":"reference/openapi.json GET /destinations/autocomplete","href":"/api-reference/destination-autocomplete"},{"title":"List Nationalities","openapi":"reference/openapi.json GET /master-data/nationalities","href":"/api-reference/nationalities"}]},{"group":"Search \u0026 hotels","pages":[{"title":"Get Hotel Filters","openapi":"reference/openapi.json GET /hotels/filters","href":"/api-reference/hotel-filters"},{"title":"Search Hotels","openapi":"reference/openapi.json POST /hotels/search","href":"/api-reference/search-hotels"},{"title":"Get Search Price Updates","openapi":"reference/openapi.json GET /hotels/search/{searchId}/prices","href":"/api-reference/search-price-updates"},{"title":"Get Hotel Content","openapi":"reference/openapi.json GET /hotels/{hotelId}/content","href":"/api-reference/hotel-content"},{"title":"Get Room Options","openapi":"reference/openapi.json POST /hotels/{hotel_id}/rooms","href":"/api-reference/hotel-rooms"},{"title":"Stream Room Updates","description":"Consume room offers from every supplier as they arrive, with family objects, prices, cancellation terms and booking tokens.","openapi":"reference/openapi.json GET /hotels/{hotel_id}/rooms/stream/{stream_id}","href":"/api-reference/hotel-room-stream"},{"title":"Prebook a Room","openapi":"reference/openapi.json POST /hotels/prebook","href":"/api-reference/prebook"}]},{"group":"Bookings","pages":[{"title":"Create Booking","description":"Create an idempotent hotel booking from a successful Unifystays prebooking response.","openapi":"reference/openapi.json POST /hotels/book","href":"/api-reference/create-booking"},{"title":"Confirm Hold","openapi":"reference/openapi.json POST /hotels/book/{booking_id}/confirm-hold","href":"/api-reference/confirm-hold"},{"title":"List Bookings","openapi":"reference/openapi.json GET /hotels/book","href":"/api-reference/list-bookings"},{"title":"Get Booking Status","openapi":"reference/openapi.json GET /hotels/book/{booking_id}","href":"/api-reference/get-booking-status"},{"title":"Find Booking by Idempotency-Key","openapi":"reference/openapi.json GET /hotels/book/by-idempotency-key","href":"/api-reference/get-booking-by-idempotency-key"},{"title":"Get Booking Details","openapi":"reference/openapi.json GET /hotels/book/{booking_id}/details","href":"/api-reference/get-booking-details"},{"title":"Quote Cancellation","openapi":"reference/openapi.json POST /hotels/book/{booking_id}/cancellation-quote","href":"/api-reference/cancellation-quote"},{"title":"Cancel Booking","openapi":"reference/openapi.json POST /hotels/book/{booking_id}/cancel","href":"/api-reference/cancel-booking"}]},{"group":"Webhook endpoints","pages":[{"title":"Create Webhook Endpoint","openapi":"reference/openapi.json POST /webhooks/endpoints","href":"/api-reference/webhooks/create-endpoint"},{"title":"List Webhook Endpoints","openapi":"reference/openapi.json GET /webhooks/endpoints","href":"/api-reference/webhooks/list-endpoints"},{"title":"Get Webhook Endpoint","openapi":"reference/openapi.json GET /webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/get-endpoint"},{"title":"Update Webhook Endpoint","openapi":"reference/openapi.json PATCH /webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/update-endpoint"},{"title":"Delete Webhook Endpoint","openapi":"reference/openapi.json DELETE /webhooks/endpoints/{endpoint_id}","href":"/api-reference/webhooks/delete-endpoint"},{"title":"Rotate Webhook Secret","openapi":"reference/openapi.json POST /webhooks/endpoints/{endpoint_id}/rotate-secret","href":"/api-reference/webhooks/rotate-secret"},{"title":"Send Test Webhook","openapi":"reference/openapi.json POST /webhooks/endpoints/{endpoint_id}/test","href":"/api-reference/webhooks/test-endpoint"}]},{"group":"Webhook logs","pages":[{"title":"List Webhook Events","openapi":"reference/openapi.json GET /webhooks/events","href":"/api-reference/webhooks/list-events"},{"title":"List Webhook Deliveries","openapi":"reference/openapi.json GET /webhooks/deliveries","href":"/api-reference/webhooks/list-deliveries"},{"title":"Get Webhook Delivery","openapi":"reference/openapi.json GET /webhooks/deliveries/{delivery_id}","href":"/api-reference/webhooks/get-delivery"},{"title":"Replay Webhook Delivery","openapi":"reference/openapi.json POST /webhooks/deliveries/{delivery_id}/replay","href":"/api-reference/webhooks/replay-delivery"}]}]}]},"basePath":"","title":"Prebook a Room - Unifystays API","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}