{"openapi":"3.0.0","info":{"title":"API: Booking","version":"3.0.0"},"servers":[{"url":"https://book.liteapi.travel/v3.0"}],"security":[{"apikeyAuth":[]}],"components":{"securitySchemes":{"apikeyAuth":{"name":"X-API-Key","type":"apiKey","in":"header"}}},"tags":[{"name":"Make bookings","description":"The **Book API V3** provides the relevant methods m book a specific room rate of a hotel."},{"name":"Manage bookings","description":"The **Booking Management API** collection provides different methods to retrieve an existing booking by the booking Id and also by guest Id, It also provides a method to cancel an existing booking Id if it exists and when cancellation policies are met"}],"paths":{"/prebooks/{prebookId}":{"get":{"tags":["Manage bookings"],"summary":"Retrieve a prebook by ID","description":"## Overview\n\nRetrieve details of an existing prebook session by its ID. Use this to fetch prebook information without creating a new session.\n\n## When to Use\n\n- **Session recovery** - Retrieve prebook details if you've stored the prebookId\n- **Status checks** - Verify prebook session details before completing booking\n- **Payment integration** - Get prebook data needed for payment processing\n- **Credit balance** - Optionally include updated credit balance information\n\n## What You Get\n\n- **Complete prebook data** - All information from the prebook session\n- **Rate details** - Pricing, room types, and availability\n- **Terms and conditions** - Cancellation policies and booking terms\n- **Credit balance** - Optional updated credit balance (if requested)\n\n## Quick Start\n\nProvide the `prebookId` in the URL path. Optionally include `includeCreditBalance` query parameter to get updated credit information.","parameters":[{"name":"prebookId","in":"path","required":true,"schema":{"type":"string"},"description":"(Required) The unique identifier of the prebook session."},{"name":"includeCreditBalance","in":"query","required":false,"schema":{"type":"string"},"description":"Whether to include updated credit balance information with the prebook."}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["prebookId","hotelId","checkin","checkout","currency","price","roomTypes"],"properties":{"prebookId":{"type":"string","description":"The pre-booking ID is required to confirm a booking and is reusable for multiple bookings. It's the only required field unless using our payment SDK, which also requires transactionId and secretKey."},"offerId":{"type":"string","description":"The offer ID passed during the prebook call, provided again here for reference."},"hotelId":{"type":"string","description":"The unique identifier for the hotel related to this pre-booking. Used along with the hotel content endpoint."},"checkin":{"type":"string","description":"The check-in date for the booking in YYYY-MM-DD format."},"checkout":{"type":"string","description":"The check-out date for the booking in YYYY-MM-DD format."},"currency":{"type":"string","description":"The currency in which prices and fees are displayed."},"termsAndConditions":{"type":"string","description":"The terms and conditions that apply to this booking, provided as a string."},"roomTypes":{"type":"array","description":"An array of objects containing all the requested rooms/rates. This is not the type of room being booked.","items":{"type":"object","properties":{"rates":{"type":"array","description":"An array of objects detailing the pricing and availability of the selected room rates. There will be a number of rates equal to the occupancies request.","items":{"type":"object","properties":{"rateId":{"type":"string","description":"The unique identifier for a specific rate within the offer."},"occupancyNumber":{"type":"integer","description":"The number identifying which guest is associated with each room in a multi-room booking."},"name":{"type":"string","description":"The name of the room type booked, including key attributes."},"maxOccupancy":{"type":"integer","description":"The maximum number of guests allowed in this room."},"adultCount":{"type":"integer","description":"The number of adults included in this booking."},"childCount":{"type":"integer","description":"The number of children included in this booking."},"childrenAges":{"type":"array","description":"A list of ages for each child included in this rate. Empty array if no children.","items":{"type":"integer"}},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"remarks":{"type":"string","description":"Any special remarks related to the booking or room type."},"priceType":{"type":"string","description":"Defines how pricing is structured. Only commission currently used. It can be set to 0 for net rates."},"commission":{"type":"array","description":"An array of objects specifying commission details for the booking.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The amount of commission included in the total price."},"currency":{"type":"string","description":"The currency the commission is in."}}}},"retailRate":{"type":"object","description":"An object containing details of the final price, including taxes and fees.","properties":{"total":{"type":"array","description":"An array containing the total price due for this room.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The total cost amount due to book this room. This is what the end user will pay."},"currency":{"type":"string","description":"The currency the total is in."}}}},"suggestedSellingPrice":{"type":"array","description":"This field represents the recommended price at which the booking should be offered.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The minmum amount the room can be sold for publicly."},"currency":{"type":"string","description":"The currency the SSP is in."},"source":{"type":"string","description":"The source of the SSP if we have it. "}}}},"initialPrice":{"type":"array","description":"This object represents the hotel's standard listed price for the room. It is always equal to or higher than the total price. If higher, it indicates a hotel discount is applied.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The initial price amount."},"currency":{"type":"string","description":"The currency of the initial price."}}}},"taxesAndFees":{"type":"array","description":"Breakdown of taxes and additional charges:","items":{"type":"object","properties":{"included":{"type":"boolean","description":"Indicates whether the tax or fee is already included in the total price (true) or if it must be paid separately at check-in (false)."},"description":{"type":"string","description":"A brief explanation of the tax or fee (e.g., \"Hotel Tax Rate\" or \"Daily Facilities Fee\")."},"amount":{"type":"number","description":"The monetary value of the tax or fee."},"currency":{"type":"string","description":"The currency the tax is in."}}}}}},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"An array of payment types supported for this booking request."}}}}}}},"suggestedSellingPrice":{"type":"object","description":"The minimum public selling price for all the rooms combined. This is used for pricing control.","properties":{"amount":{"type":"number","description":"The minmum amount the room can be sold for publicly."},"currency":{"type":"string","description":"The currency the suggestedSellingPrice is in."},"source":{"type":"string","description":"The source of the suggestedSellingPrice if we have it. ex: 'expedia.com' or 'providerDirect'."}}},"commission":{"type":"number","description":"The total commission earned for all rooms being booked."},"addonsTotalAmount":{"type":"number","description":"The total amount charged for any additional services or extras."},"price":{"type":"number","description":"The final price of the booking for all rooms after applicable calculations."},"priceType":{"type":"string","description":"Defines how pricing is structured. Only commission currently used. It can be set to 0 for net rates."},"priceDifferencePercent":{"type":"integer","description":"Percentage difference between original offered and final price if alternate rate used."},"cancellationChanged":{"type":"boolean","description":"Boolean indicating if cancellation policies have changed since the initial offer."},"boardChanged":{"type":"boolean","description":"Boolean indicating if the board (meal plan) has changed since the initial offer."},"supplier":{"type":"string","description":"The supplier providing the inventory for this booking. By default this will always be Nuitee."},"supplierId":{"type":"integer","description":"The numerical identifier of the supplier. By default Nuitee's ID is always 2."},"transactionId":{"type":"string","description":"A unique transaction identifier for this booking request. Only returned if using the payment SDK."},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"An array of payment types supported for this booking request."},"mappedRoomId":{"type":"integer","nullable":true,"description":"The mapped room ID, or null if the room has not been mapped"},"secretKey":{"type":"string","description":"A key used for calling the paymentSDK to secure booking-related payments. Only returned if using the payment SDK."},"voucherCode":{"type":"string","description":"Represents the unique code used to redeem a voucher during the transaction."},"voucherTotalAmount":{"type":"string","description":"Specifies the total monetary value or discount amount provided by the voucher."},"addonsRequest":{"type":"array","description":"An array of objects specifying additional services or extras requested for the booking.","items":{"type":"object","properties":{"addon":{"type":"string","description":"The name or type of the additional service requested."},"value":{"type":"number","description":"The price of the addon in the specified currency."},"currency":{"type":"string","description":"The currency in which the addon is priced."},"addonDetails":{"type":"object","description":"An object containing additional details about the requested addon.","properties":{"package_id":{"type":"integer","description":" Unique package ID for the addon"},"destination_code":{"type":"string","description":"Destination location code (e.g., US)"},"start_date":{"type":"string","description":"Start date of the addon service"},"end_date":{"type":"string","description":"End date of the addon service"}}}}}},"creditLine":{"type":"object","description":"Credit line information returned when includeCreditBalance is set to true and the user has a credit line available.","properties":{"remainingCredit":{"type":"number","description":"The remaining credit amount available for the user."},"currency":{"type":"string","description":"The currency of the remaining credit amount."}}}}},"guestLevel":{"type":"integer","description":"Used with loyalty programs to determine the guests level of cost reduction."},"sandbox":{"type":"boolean","description":"Indicates whether this response is in a test/sandbox environment (true/false)."}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"47"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}},"examples":{"Unauthorized":{"value":{"error":{"code":401,"message":"Unauthorized"}}}}}}}}}},"/rates/prebook":{"post":{"tags":["Make bookings"],"summary":"1. Create a checkout session (PREBOOK)","description":"## Overview\n\n**Step 1 of 2** in the booking flow. Create a prebook session to check the availability of a rate and get final pricing before payment. This `prebookId` needed to complete the booking.\n\n## When to Use\n\n- **Before payment** - Always call this before completing a booking\n- **Rate confirmation** - Verify final pricing and availability\n- **Session creation** - Generate a checkout session for your payment flow\n\n## What You Get\n\n- **Prebook ID** - Required for the next step (completing the booking)\n- **Final pricing** - Confirmed rates with all fees and taxes\n- **Terms and conditions** - Cancellation policies and booking rules\n- **Room details** - Complete information about the selected rooms\n\n## Key Features\n\n- **Live availability check** - Verifies the rate is available before you collect payment\n- **Payment SDK support** - Set `usePaymentSdk=true` to use client-side payment forms\n- **Reusable** - PrebookId can be used for multiple bookings if needed\n\n## Quick Start\n\nProvide the `offerId` from your hotel rates search and set `usePaymentSdk` (true/false). Returns a `prebookId` to use in the next step.\n\n**Next Step**: Use the `prebookId` with `/rates/book` to complete the booking.","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["offerId","usePaymentSdk"],"properties":{"offerId":{"type":"string","description":"The unique identifier of the selected offer from the search results."},"usePaymentSdk":{"type":"boolean","description":"Specifies whether the fields needed to call the payment processing SDK are returned. Set to true if using the SDK for payment processing."},"voucherCode":{"type":"string","description":"An optional voucher code to apply discounts to the booking. The vouchers API allows creation of these discounts"},"addons":{"type":"array","description":"A list of additional services or extras that can be added to the booking. For example, adding an Uber voucher or an esim card. The final booking amount is the sum of the offer's total price and the cost of any addons. Each addon's price is added individually to reflect all extras in the billed total. ","items":{"type":"object","required":["adults"],"properties":{"addon":{"type":"string","description":"The type of addon service (e.g., uber, esimply).","example":"uber"},"value":{"type":"number","description":"The monetary cost of the addon service","example":50},"currency":{"type":"string","description":"The currency in which the addon service is charged","example":"USD"},"addonDetails":{"type":"object","properties":{"package_id":{"type":"integer","description":"Unique identifier of the addon package","example":1},"destination_code":{"type":"string","description":" Short code representing the destination or country (e.g., ES for Spain)","example":"ES"},"start_date":{"type":"string","description":"The start date for the add-on service (YYYY-MM-DD format)","example":"2025-12-05"},"end_date":{"type":"string","description":"The end date for the add-on service (YYYY-MM-DD format)","example":"2025-12-10"}}}}}},"bedTypeIds":{"type":"array","description":"An optional array of bed type IDs to specify preferred bed configurations for the rooms being booked. The availability of specific bed types depends on the hotel's inventory.","items":{"type":"integer"}},"includeCreditBalance":{"type":"boolean","description":"Optional flag to include credit line information in the response. When set to true, credit line details will be returned if the user has a credit line available.","example":false}}},"examples":{"Prebook request":{"value":{"offerId":"GE5ESNBSIZKVEQ2OJRFEURSPKRFVUR2OIRKVGVCLKVEVERCVKNLUWRKJGVDVKVKVGJEESRK2KVHVES2PJNFE4RKPK5JVIS2SI5KTIV2TKRETKQKUI5JEGRSKLJFEMTKSGJNEOSSFIZJVIS2LJFJEIVKTK5FUKSKWJBCUKVKLJFEVMTKVJFIVUWCJJJFFKT2RJMZESUSFKUZFCUZSJE2UCVSVK5BVUTCKI5CTMVCCKZFE4TCFJ5HDERCLLJDFKNCOKNDUUTSLKRCVES2RJNDE2VSLKEZE4SKOINCU2TSDGJEVMQSVGJJTERKJGVBVMU2XINNEUVSKIZDVGQ2CJRFE2RSTKZJUWS2OIZLFKVCLJFEVKM2VIVKVGSCHKJGVMSKUGJIESSSMIVIVCSZSJNJEGVJUK5JTESSCIFKEOVSLLJGEUQ2GI5KFGUSLJJFUKR2UJNBUWNKEKVFVOS2FJFHEKVSVKVJUQSSFLJKUOTKTJZFEUSKVJ5LUWWSLKJAVKMSUIJKUUTSGIVEVESSVI42UERSHKIZEETCKINCVGVCLINGEMRCVKNHEGVKJJZDVKRKVJNEESSJTIVEVCWSYJFFE2RKPKFFFGSKSINKTEU2TIVFE4RSFKFKTESCLKZFFKT2TKNNEWSSLIVFVIS2DJNHEIVSDKYZFKSKGJBDEKVCTJBEUKWSVI5IUWTSKJJEVKUKTJNNESUSBLBMU4QSRJBAVQRCJJUZTIUCSJJCTMOZSHJETIMSGKVJEGTSMJJFEMT2UJNNEOTSEKVJVIS2VJFJEIVKTK5FUKSJVI5KVKVJSJBEUKWSVJ5JEWT2LJJHEKT2XKNKEWUSHKU2FOU2UJE2UCVCHKJBUMSS2JJDE2URSLJDUURKGKNKEWU2JKJCFKU2XJNCUSVSIIVCVKS2JJFLE2VKJKFNFQSKKJJKU6UKLGJEVERKVGJIVGMSJGVAVMVKXINNEYSSHIU3FIQSWJJHEYRKPJYZEIS22IZKTITSTI5FE4S2UIVJEWUKLIZGVMS2RGJHESTSDIVGU4QZSJFLEEVJSKMZEKSJVINLFGV2DLJFFMSSGI5JUGQSMJJGUMU2WKNFUWTSGKZKVIS2JJFKTGVKFKVJUQR2SJVLESVBSKBEUUTCFKFIUWMSLKJBVKNCXKMZEUQSBKRDVMS22JRFEGRSHKRJVES2KJNCUOVCLINFTKRCVJNLUWRKJJZCVMVKVKNEEURK2KVDU2U2OJJFESVKPK5FVUS2SIFKTEVCCKVFE4RSFJFJEUVKHGVBEMR2SGJBEYSSDIVJVIS2DJRDEIVKTJZBVKSKOI5KUKVKLJBEUSM2FJFIVUWCJJJGUKT2RJJJUSUSDKUZFGU2FJJHEMRKRKUZEQS2WJJKU6U2TLJFUUS2FJNKEWQ2LJZCFMQ2WGJKUSRSIIZCVIU2IJFCVUVKHKFFU4SSKJFKVCU2LLJEVEQKYLFHEEUKIIFMEISKNGM2FAUSKIU3HYMJQGYYTAML4GJ6GY4BRHFSTONL4GEWTWMRNGEYXYVKTIR6FKU34GIYDENBNGA4S2MBRPQZDAMRUFUYDSLJQGN6A","usePaymentSdk":true,"voucherCode":"example-voucher-1234","addons":[{"addon":"uber","value":50,"currency":"USD"},{"addon":"uber","value":70,"currency":"USD"},{"addon":"esimply","value":30,"currency":"USD","addonDetails":{"package_id":1,"destination_code":"US","start_date":"2025-12-05","end_date":"2025-12-10"}}],"bedTypeIds":[1,2]}}}}}},"parameters":[{"name":"timeout","in":"query","schema":{"type":"integer"},"example":30},{"name":"includeCreditBalance","in":"query","schema":{"type":"boolean"},"description":"Optional flag to include credit line information in the response. When set to true, credit line details will be returned if the user has a credit line available. This can also be provided in the request body as `includeCreditBalance`.","example":false}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["prebookId","hotelId","checkin","checkout","currency","price","roomTypes"],"properties":{"prebookId":{"type":"string","description":"The pre-booking ID is required to confirm a booking and is reusable for multiple bookings. It's the only required field unless using our payment SDK, which also requires transactionId and secretKey."},"offerId":{"type":"string","description":"The offer ID passed during the prebook call, provided again here for reference."},"hotelId":{"type":"string","description":"The unique identifier for the hotel related to this pre-booking. Used along with the hotel content endpoint."},"checkin":{"type":"string","description":"The check-in date for the booking in YYYY-MM-DD format."},"checkout":{"type":"string","description":"The check-out date for the booking in YYYY-MM-DD format."},"currency":{"type":"string","description":"The currency in which prices and fees are displayed."},"termsAndConditions":{"type":"string","description":"The terms and conditions that apply to this booking, provided as a string."},"roomTypes":{"type":"array","description":"An array of objects containing all the requested rooms/rates. This is not the type of room being booked.","items":{"type":"object","properties":{"rates":{"type":"array","description":"An array of objects detailing the pricing and availability of the selected room rates. There will be a number of rates equal to the occupancies request.","items":{"type":"object","properties":{"rateId":{"type":"string","description":"The unique identifier for a specific rate within the offer."},"occupancyNumber":{"type":"integer","description":"The number identifying which guest is associated with each room in a multi-room booking."},"name":{"type":"string","description":"The name of the room type booked, including key attributes."},"maxOccupancy":{"type":"integer","description":"The maximum number of guests allowed in this room."},"adultCount":{"type":"integer","description":"The number of adults included in this booking."},"childCount":{"type":"integer","description":"The number of children included in this booking."},"childrenAges":{"type":"array","description":"A list of ages for each child included in this rate. Empty array if no children.","items":{"type":"integer"}},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"remarks":{"type":"string","description":"Any special remarks related to the booking or room type."},"priceType":{"type":"string","description":"Defines how pricing is structured. Only commission currently used. It can be set to 0 for net rates."},"commission":{"type":"array","description":"An array of objects specifying commission details for the booking.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The amount of commission included in the total price."},"currency":{"type":"string","description":"The currency the commission is in."}}}},"retailRate":{"type":"object","description":"An object containing details of the final price, including taxes and fees.","properties":{"total":{"type":"array","description":"An array containing the total price due for this room.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The total cost amount due to book this room. This is what the end user will pay."},"currency":{"type":"string","description":"The currency the total is in."}}}},"suggestedSellingPrice":{"type":"array","description":"This field represents the recommended price at which the booking should be offered.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The minmum amount the room can be sold for publicly."},"currency":{"type":"string","description":"The currency the SSP is in."},"source":{"type":"string","description":"The source of the SSP if we have it. "}}}},"initialPrice":{"type":"array","description":"This object represents the hotel's standard listed price for the room. It is always equal to or higher than the total price. If higher, it indicates a hotel discount is applied.","items":{"type":"object","properties":{"amount":{"type":"number","description":"The initial price amount."},"currency":{"type":"string","description":"The currency of the initial price."}}}},"taxesAndFees":{"type":"array","description":"Breakdown of taxes and additional charges:","items":{"type":"object","properties":{"included":{"type":"boolean","description":"Indicates whether the tax or fee is already included in the total price (true) or if it must be paid separately at check-in (false)."},"description":{"type":"string","description":"A brief explanation of the tax or fee (e.g., \"Hotel Tax Rate\" or \"Daily Facilities Fee\")."},"amount":{"type":"number","description":"The monetary value of the tax or fee."},"currency":{"type":"string","description":"The currency the tax is in."}}}}}},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"An array of payment types supported for this booking request."},"perks":{"type":"array","description":"An array of perks or benefits associated with this rate.","items":{"type":"object","properties":{"perkId":{"type":"integer","description":"Unique identifier for the perk."},"name":{"type":"string","description":"The name or description of the perk."},"amount":{"type":"number","description":"The monetary value of the perk."},"currency":{"type":"string","description":"The currency of the perk amount."},"level":{"type":"string","description":"The level or tier of the perk."}}}}}}}}}},"suggestedSellingPrice":{"type":"object","description":"The minimum public selling price for all the rooms combined. This is used for pricing control.","properties":{"amount":{"type":"number","description":"The minmum amount the room can be sold for publicly."},"currency":{"type":"string","description":"The currency the suggestedSellingPrice is in."},"source":{"type":"string","description":"The source of the suggestedSellingPrice if we have it. ex: 'expedia.com' or 'providerDirect'."}}},"commission":{"type":"number","description":"The total commission earned for all rooms being booked."},"price":{"type":"number","description":"The final price of the booking for all rooms after applicable calculations."},"priceType":{"type":"string","description":"Defines how pricing is structured. Only commission currently used. It can be set to 0 for net rates."},"priceDifferencePercent":{"type":"integer","description":"This is one of the three important fields to check. This should be 0. But if a rate has sold out, a similar alternate rate may be found and this field tells how much is the percentage difference between the original and final price."},"cancellationChanged":{"type":"boolean","description":"This is one of the three important fields to check. Boolean indicating if cancellation policies have changed since the initial offer."},"boardChanged":{"type":"boolean","description":"This is one of the three important fields to check. Boolean indicating if the board (meal plan) has changed since the initial offer."},"supplier":{"type":"string","description":"The supplier providing the inventory for this booking. By default this will always be Nuitee."},"supplierId":{"type":"integer","description":"The numerical identifier of the supplier. By default Nuitee's ID is always 2."},"transactionId":{"type":"string","description":"A unique transaction identifier for this booking request. Only returned is using the payment SDK."},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"An array of payment types supported for this booking request."},"mappedRoomId":{"type":"integer","nullable":true,"description":"The mapped room ID, or null if the room has not been mapped"},"secretKey":{"type":"string","description":"A key used for calling the paymentSDK to secure booking-related payments. Only returned is using the payment SDK."},"voucherCode":{"type":"string","description":"Represents the unique code used to redeem a voucher during the transaction."},"voucherTotalAmount":{"type":"string","description":"Specifies the total monetary value or discount amount provided by the voucher."},"addonsRequest":{"type":"array","description":"An array of objects specifying additional services or extras requested for the booking.","items":{"type":"object","properties":{"addon":{"type":"string","description":"The name or type of the additional service requested."},"value":{"type":"number","description":"The price of the addon in the specified currency."},"currency":{"type":"string","description":"The currency in which the addon is priced."},"addonDetails":{"type":"object","description":"An object containing additional details about the requested addon.","properties":{"package_id":{"type":"integer","description":" Unique package ID for the addon"},"destination_code":{"type":"string","description":"Destination location code (e.g., US)"},"start_date":{"type":"string","description":"Start date of the addon service"},"end_date":{"type":"string","description":"End date of the addon service"}}}}}},"creditLine":{"type":"object","description":"Credit line information returned when includeCreditBalance is set to true and the user has a credit line available.","properties":{"remainingCredit":{"type":"number","description":"The remaining credit amount available for the user."},"currency":{"type":"string","description":"The currency of the remaining credit amount."}}}}},"guestLevel":{"type":"integer","description":"Used with loyalty programs to determine the guests level of cost reduction."}}},"examples":{"Prebook response":{"value":{"data":{"prebookId":"zzWkJcdgk","offerId":"GE5ESNBSIZKVMQ2QJJNEERSPKIZEMR2OIRKVOVCTKNFVMRCWKNLUWVKKGVDVMRKWGJEEWRSOIVEVCS2PJNJEEVKPK5FFKS2SI5LFKU2TLBETIMSGKVJEGQSKLJHEMR2SGIZEWUSDIUZFOU2TJM2UOVSFJZJUKSKOIVLFKVJSJBEUMTSFJFJTETSJJJFVKT2RJNNEYQSNKUZFKU2SJE2UKVCFKZBUESS2IJDEGURSJNDVURCVK5GTEVCHGVDFMTKTKNMUYRSMIVLVMQ2RJNFEMVSNKIZFGSKRGJCU6U2TIJFVEQKWINGVUVKJGVCVMVKSINJEUVK2KREVGMSWJRFEIRJSKYZEKS2OJFDEGV2LKVFDKSCFIVKUWSCHKFNEKSKRJNHESSSNIVHVCSSTJFJECVJUKEZESSS2JJDEWUSLLJFEMTSGJ5JDESSHKJFUKV2TJMZEWVSEKZFU2MSUI5FEQRSFKUZESSKVLJDFCV2LKZFU4RCVKVLVEV2JKJBVKMSRKNKESNKLKZJVEQ2IJJLE4RSDKIZEETCKINCUGVCLIVDVERCVJVHFGRSJGQZVKR2VGJEESVSNKZEVKS2OJFITERKPKJFFGS2SJBKTEV2TLFEVMSCFKVJEUV2KIVNEMR2TJMZEUQSCKVHVIS2TJNDEIVKTJVJVIR2KI5KUKVSDI5FVMTSGJFIUWSSJJJEVKT2TJJLESUSBKUZFCTBUI5CTGRCHJRJFOR22GZCEKTKCKNDVKV2UIFGVUTSHJVMUGQKNIJJUQSKZIRAU6USRI5BDMRSFKRMXYNRSHE2XYMT4NRYDCOBZG56DELL4KVJUI7CVKN6DEMBSGUWTANBNGAYXYMRQGI2S2MBUFUYDE7D4GQXDAMA","hotelId":"lp1897","checkin":"2025-12-05","checkout":"2025-12-10","currency":"USD","termsAndConditions":"","roomTypes":[{"rates":[{"rateId":"I42FUVCPJZBFOR2FGNDUWTSSKVDVSWKUJ5GVEV2HKFNEIQKOKRBUOWJUKRGVUSSXI42FURCBJZNFGR22KRCE2WSSK5GVENSEINEVUU2HIFNEIS2NIJKUOQKZLBMU2USRI5ETEVCBJZBFCR2KGZDUWM2TG5FVMSSYLFLEWVCQKJFVMR2SIQ2EOSSBKRAVCMZUI5EVURCRJUZTIS2VLJDE2V2EKNIFCWKUJ5HEEUKHGQZEIQKNIJMEOQJSIRAU4Q2IJZJFKRKZJFNFOR2JGRKEWSK2KVDVKM2TGJHFEU2IIUZFQWKVKNDUUWRWIRCU2QSTI5KVSRCHJVNFCR2BLJCECTKEGRDUMNSFI43UGU2HIVMVIUKNIQ2EORJSKRHU2WSYIVHEURJWJEZFGSK2JBBUOTKSKFDUSMSTGJGUEVCGKVNFIQKJIJIUOSJVIRAU2QL4GE3DGLRWGZ6DEMBSGUWTAMZNGMYCAMBSHIYDAORQGB6FETY","occupancyNumber":1,"name":"Standard King Room - Room only","maxOccupancy":2,"adultCount":2,"childCount":0,"childrenAges":[],"boardType":"RO","boardName":"Room Only","remarks":"<br/><br/>A Resort Fee totaling USD43.61 will be charged for the stay. The Manhattan at Times Square Hotel has a mandatory Facilities Fee of $40.16 per room per night provides guests with the following inclusive services, amenities and added value offerings: \n All local, long distance and international phone calls \n Premium high-speed wireless internet access for unlimited devices \n An eco-friendly, collapsible 16 oz. water bottle to use at the hotel?s water filtration stations \n Unlimited use of our Business Center \n Unlimited use of our 24/7 Fitness Center with treadmills, bikes, elliptical machines and free weights \n*The Facilities Fee does not include service gratuity . Hotel Check In Policy: Major credit card required at check-in for deposit and incidentals. Any additional fees such as parking, pet fees, etc. are solely at the discretion of the hotel, are subject to change at any point and should be paid directly by the guest.. Minimum adult age at check in is 21 years.<br/>","priceType":"commission","commission":[{"amount":6.28,"currency":"USD"}],"retailRate":{"total":[{"amount":163.66,"currency":"USD"}],"suggestedSellingPrice":[{"amount":185.7,"currency":"USD","source":""}],"initialPrice":null,"taxesAndFees":[{"included":true,"description":"NYC Javits Center Fee","amount":1.62,"currency":"USD"},{"included":true,"description":"NYC Occupancy Tax","amount":2.16,"currency":"USD"},{"included":true,"description":"NY State Tax","amount":11.88,"currency":"USD"},{"included":true,"description":"NY City Tax","amount":7.87,"currency":"USD"},{"included":false,"description":"Facility Fee","amount":43.61,"currency":"USD"}]},"cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-03-30 02:00:00","amount":163.66,"currency":"USD","type":"amount","timezone":"GMT"}],"hotelRemarks":[],"refundableTag":"RFN"},"paymentTypes":["NUITEE_PAY","PROPERTY_PAY"],"perks":[]}]}],"suggestedSellingPrice":{"amount":185.7,"currency":"USD","source":"expedia.com"},"isPackageRate":null,"commission":6.28,"addonsTotalAmount":70,"price":213.66,"priceType":"commission","priceDifferencePercent":0,"cancellationChanged":false,"boardChanged":false,"supplier":"nuitee","supplierId":2,"transactionId":"tr_ct_NjePtG_-HHUDCeQ_LrTOS","secretKey":"pi_3QxSJ8A4FXPoRk9Y14cv6f1G_secret_psA870CD4S17fSh58skN1TWaG","voucherCode":"createvoucher83","voucherTotalAmount":20,"addonsRequest":[{"addon":"uber","value":70,"currency":"USD"}],"creditLine":{"remainingCredit":1000,"currency":"USD"}},"guestLevel":0}}}}}},"400":{"description":"Bad Request","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}},"examples":{"invalid offerId":{"value":{"error":{"code":4002,"description":"invalid offerId","message":"required request field is missing or wrong input"}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"47"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}},"examples":{"Unauthorized":{"value":{"error":{"code":401,"message":"Unauthorized"}}}}}}},"408":{"description":"Request Timeout","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"85"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}},"examples":{"Prebook timeout":{"value":{"error":{"code":4016,"description":"prebook timeout exceeded, please consider increasing","message":"prebook timeout exceeded, please consider increasing"}}},"Outdated offerId":{"value":{"error":{"code":4040,"description":"outdated offerId","message":"this offer is marked as not valid, please refetch rates for this hotel"}}}}}}}}}},"/rates/book":{"post":{"tags":["Make bookings"],"summary":"2. Complete a booking","description":"## Overview\n\n**Step 2 of 2** in the booking flow. Complete the booking by providing guest information and payment details. This confirms the reservation and creates the final booking.\n\n## When to Use\n\n- **After prebook** - Call this after creating a prebook session\n- **Payment processing** - Submit payment information to confirm booking\n- **Booking confirmation** - Finalize the reservation\n\n## What You Get\n\n- **Booking ID** - Unique identifier for the confirmed booking\n- **Hotel confirmation code** - Reference code from the hotel\n- **Complete booking details** - Dates, pricing, room information\n- **Cancellation policies** - Terms for cancelling the booking\n- **Guest information** - Confirmed guest details\n\n## Payment Methods\n\n- **ACC_CREDIT_CARD** - Direct credit card payment. In sandbox mode, this can be used to simulate a booking without getting charged.\n- **TRANSACTION** - Use when using Payment SDK (provide `transactionId`)\n- **WALLET** - Wallet payment method\n- **CREDIT** - Use account credit balance\n\n## Testing\n\nWhen testing sandbox bookings, simply use the `ACC_CREDIT_CARD` payment method. This allows you to simulate a booking without getting charged.\n\n## Required Information\n\n- **Prebook ID** - From the prebook step\n- **Guest details** - First name, last name, and email\n- **Payment information** - Payment method and details\n\n## Quick Start\n\nProvide the `prebookId`, guest information (firstName, lastName, email), and payment details. Returns confirmed booking with booking ID and confirmation code.","requestBody":{"content":{"application/json":{"schema":{"type":"object","x-examples":{"Example 1":{"prebookId":"dsePLiNX1","holder":{"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel","phone":"0200923695"},"guests":[{"occupancyNumber":1,"firstName":"Sunny","lastName":"Mars","email":"s.mars@liteapi.travel"}],"payment":{"method":"ACC_CREDIT_CARD"}}},"required":["prebookId","holder","guests","payment"],"properties":{"prebookId":{"type":"string","description":"This identifier from the pre-booking step is used to confirm a booking rate"},"clientReference":{"type":"string","description":"An optional client-defined reference ID acts as an idempotency key to prevent duplicate bookings. If a booking already exists with the same client reference, the API will return a 4005 error."},"holder":{"type":"object","description":"Information on the person responsible for making the payment. This may not necessarily be the traveler","required":["firstName","lastName","email","phone"],"properties":{"firstName":{"type":"string","description":"The first name of the payer"},"lastName":{"type":"string","description":"The last name of the payer"},"email":{"type":"string","description":"The email address of the payer"},"phone":{"type":"string","description":"The phone number of the payer, if available"}}},"guests":{"type":"array","description":"This represents a list of all individuals included in the hotel reservation","items":{"type":"object","required":["occupancyNumber","firstName","lastName","email"],"properties":{"occupancyNumber":{"type":"integer","description":"An array where each object represents the primary guest assigned to a specific booked room. There is a 1:1 mapping between guests and rooms, meaning each guest object corresponds to a single room in the booking.  (Doc for more details: https://docs.liteapi.travel/docs/adding-guests-durring-the-booking-step)"},"remarks":{"type":"string","description":"Special requests or remarks for the guest's stay (not guaranteed)"},"firstName":{"type":"string","description":"The first name of the primary guest staying in this assigned room"},"lastName":{"type":"string","description":"The last name of the primary guest staying in the assigned room"},"email":{"type":"string","description":"The email of the primary guest staying in the assigned room"},"phone":{"type":"string","description":"The guest's contact number for verification and hotel communication"}}}},"metadata":{"type":"object","description":"Encapsulates essential metadata for fraud detection and compliance, including IP, location, language, device details, and marketing parameters.","required":["occupancyNumber","firstName","lastName","email","phone"],"properties":{"ip":{"type":"string","description":" ip String (or derived) IPv4/IPv6 of the requester"},"country":{"type":"string","description":"The country inferred from the requester's IP, aiding in regional compliance."},"language":{"type":"string","description":"The preferred language from the user's browser settings."},"platform":{"type":"string","description":"The operating system or device platform from which the request originates."},"device_id":{"type":"string","description":"A unique identifier for the user's device, useful for tracking and security."},"user_agent":{"type":"string","description":"The browser/OS user agent string for verifying request authenticity."},"utm_medium":{"type":"string","description":"The marketing medium (e.g., email, ad) through which the service was accessed."},"utm_source":{"type":"string","description":"The source of the traffic, such as a search engine or social network."},"utm_campaign":{"type":"string","description":"An identifier for the specific marketing campaign that led to the request."}}},"customTags":{"type":"object","description":"Optional bag of up to 5 user-defined key/value labels persisted with the booking. Keys must match `^[A-Z0-9_-]+$` (uppercase letters, digits, `-`, `_`). Values are arbitrary strings up to 255 characters. These labels are returned on booking responses and can be used to filter the list endpoints via the `customTags=KEY:VALUE,KEY2:VALUE2` query parameter.","maxProperties":5,"additionalProperties":{"type":"string","maxLength":255},"example":{"SOURCE":"GOOGLE","TIER":"GOLD"}},"payment":{"anyOf":[{"type":"object","additionalProperties":false,"description":"Payment methods that don't require a transaction ID. These methods use pre-configured payment settings: ACC_CREDIT_CARD uses stored card details (in sandbox mode, this can be used to simulate a booking without getting charged), WALLET uses available wallet balance, and CREDIT allows payment on credit line.","required":["method"],"properties":{"method":{"enum":["ACC_CREDIT_CARD","WALLET","CREDIT"],"description":"The payment method used for the transaction. This determines where the money for the booking comes from."}}},{"type":"object","additionalProperties":false,"description":"Payment method using TRANSACTION_ID. Required when using the Payment SDK for processing payments. This method requires both the payment method and transaction ID from the prebook step.","required":["method","transactionId"],"properties":{"method":{"enum":["TRANSACTION_ID"],"description":"The payment method used for the transaction. This determines where the money for the booking comes from."},"transactionId":{"type":"string","description":"The unique identifier for the transaction from the prebook step and only used with the payment SDK and the TRANSACTION method"}}}],"description":"Specifies the payment method for completing the booking"},"guestPayment":{"type":"object","description":"The payment method used for the transaction. This determines where the money for the booking comes from. Recommended to be added when you are merchant of record to improve the fraud detection system.","required":["method","phone","last_4_digits","payee_last_name","payee_first_name"],"properties":{"phone":{"type":"string","description":"Contact number associated with the payment"},"method":{"type":"string","description":"Payment method used (e.g., ACC_CREDIT_CARD, WALLET)."},"payee_last_name":{"type":"string","description":"Last name of the person making the payment"},"payee_first_name":{"type":"string","description":"First name of the person making the payment"},"last_4_digits":{"type":"string","description":"Last 4 digits of the credit card used for payment"},"address":{"type":"object","description":" Billing address details of the payee","properties":{"city":{"type":"string","description":"City of the billing address"},"address":{"type":"string","description":"Street address"},"country":{"type":"string","description":"Country of the billing address"},"postal_code":{"type":"string","description":"Postal or ZIP code"}}}}}}},"examples":{"Book request":{"value":{"prebookId":"len80MPr_","holder":{"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel","phone":"0200923695"},"guests":[{"occupancyNumber":1,"remarks":"quiet room please","firstName":"Sunny","lastName":"Mars","email":"s.mars@liteapi.travel","phone":"0200923695"},{"occupancyNumber":2,"remarks":"non smokong room please","firstName":"James","lastName":"Smith","email":"j.smith@liteapi.travel","phone":"0343108276"}],"metadata":{"ip":"203.112.45.67","country":"FR","language":"fr-FR","platform":"Windows","device_id":"device-abc-789","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64)","utm_medium":"organic","utm_source":"bing","utm_campaign":"spring_2025"},"customTags":{"SOURCE":"GOOGLE","TIER":"GOLD"},"guestPayment":{"method":"CREDIT_CARD","phone":"0200923695","payee_last_name":"john","payee_first_name":"doe","last_4_digits":"1111","address":{"city":"New York","address":"123 Main Street","country":"US","postal_code":"10001"}},"payment":{"method":"TRANSACTION_ID","transactionId":"tr_ct_ELlwT7nqeZCKsxZq1Vr"}}}}}}},"parameters":[{"name":"timeout","in":"query","schema":{"type":"integer"},"example":30}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"Successful response","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["bookingId","status","checkin","checkout","currency","price","createdAt"],"properties":{"bookingId":{"type":"string","description":"The unique identifier for the confirmed booking. This is used to reference the booking later via the API or calls for support."},"clientReference":{"type":"string","description":"A reference ID provided by the client (you) for tracking purposes."},"supplierBookingId":{"type":"string","description":"The booking ID assigned by the supplier. Not needed, use bookingId instead."},"supplierBookingName":{"type":"string","description":"The name associated with the booking in the supplier's system. By default, Nuitee."},"supplier":{"type":"string","description":"The supplier handling this booking. By default, Nuitee."},"supplierId":{"type":"integer","description":"The unique numerical identifier for the supplier. By default, 2 for Nuitee."},"status":{"type":"string","description":"The current status of the booking. At this point it will be CONFIRMED, the other option for this field is CANCELED."},"hotelConfirmationCode":{"type":"string","description":"The confirmation code issued by the hotel for the booking. Not available at booking time. Nuitee performs a manual process to to contact the hotel and get the confirmation number."},"checkin":{"type":"string","format":"date","description":"The check-in date for the booking (ISO format)."},"checkout":{"type":"string","format":"date","description":"The check-out date for the booking (ISO format)."},"hotel":{"type":"object","description":"An object containing details about the booked hotel.","properties":{"hotelId":{"type":"string","description":"The unique identifier of the hotel."},"name":{"type":"string","description":"The name of the hotel."}}},"bookedRooms":{"type":"array","items":{"type":"object","properties":{"roomType":{"type":"object","description":"An object containing details about the booked room type.","properties":{"roomTypeId":{"type":"string","description":"Unique identifier for the room type."},"name":{"type":"string","description":"The name of the booked room type."}}},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"adults":{"type":"integer","description":"Number of adults in this room."},"children":{"type":"integer","description":"Number of children in this room."},"rate":{"type":"object","description":"An object containing rate information for the booked room.","properties":{"rateId":{"type":"string","description":"The unique identifier for a specific rate within the offer."},"retailRate":{"type":"object","description":"An object with details about the retail price of the booking.","properties":{"total":{"type":"object","description":"an object containing the total cost of the rate","properties":{"amount":{"type":"integer","description":"The total cost amount due to book this room. This is what the end user will pay."},"currency":{"type":"string","description":"The currency the total is in."}}}}},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"maxOccupancy":{"type":"integer","description":"The maximum number of guests allowed in this room."},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"remarks":{"type":"string","description":"Any special remarks related to the booking or room type."},"perks":{"type":"array","description":"An array of perks or benefits associated with this rate.","items":{"type":"object","properties":{"perkId":{"type":"integer","description":"Unique identifier for the perk."},"name":{"type":"string","description":"The name or description of the perk."},"amount":{"type":"number","description":"The monetary value of the perk."},"currency":{"type":"string","description":"The currency of the perk amount."},"level":{"type":"string","description":"The level or tier of the perk."}}}}}},"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"childrenAges":{"type":"array","items":{"type":"integer"},"nullable":true,"description":"Ages of children in this room."},"board":{"type":"string","description":"The full name of the meal plan included in the booking."},"boardCode":{"type":"string","description":"A short code representing the meal plan included with the booking."},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"room_id":{"type":"string","description":"Unique identifier for the room."},"occupancy_number":{"type":"integer","description":"Occupancy number within this booking."},"amount":{"type":"number","description":"Room price for this booking."},"currency":{"type":"string","description":"Currency code for the room cost."},"children_count":{"type":"integer","description":"Number of children in this room."},"remarks":{"type":"string","description":"Additional remarks for this room."},"guests":{"type":"array","description":"Guest details for this room.","items":{"type":"object","properties":{"firstName":{"type":"string","description":"Guest's first name."},"lastName":{"type":"string","description":"Guest's last name."},"email":{"type":"string","description":"Guest's email address."},"phone":{"type":"string","description":"Guest's phone number."},"remarks":{"type":"string","description":"Remarks specific to this guest."},"occupancyNumber":{"type":"integer","description":"Occupancy number for this guest."}}}}}}},"holder":{"type":"object","description":"An object containing details of the person responsible for the booking.","properties":{"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"email":{"type":"string","description":"The email address of the person responsible for the booking."},"phone":{"type":"string","description":"The phone number of the person responsible for the booking."}}},"createdAt":{"type":"string","format":"date-time","description":"The timestamp when the booking was created."},"updatedAt":{"type":"string","format":"date-time","description":"The timestamp when the booking was last updated."},"cancellationPolicies":{"type":"object","description":"An object detailing the cancellation rules and penalties for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects listing specific cancellation policies and penalties.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."},"currency":{"type":"string","description":"The currency of the cancellation fee."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel about the booking.","items":{"type":"string"}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable (e.g., 'NRFN' for non-refundable)."}}},"price":{"type":"number","description":"The final total price of all rooms on the booking."},"commission":{"type":"number","description":"The total commission amount associated with all rooms on the booking."},"currency":{"type":"string","description":"The currency in which the booking price is displayed."},"guestId":{"type":"integer","description":"Guest ID associated with the booking."},"trackingId":{"type":"string","description":"The tracking identifier for the booking."},"prebookId":{"type":"string","description":"The identifier from the pre-booking step."},"sellingPrice":{"type":"string","description":"The total selling price of the booking."},"exchangeRate":{"type":"number","description":"The exchange rate used for currency conversion."},"exchangeRateUsd":{"type":"number","description":"The USD exchange rate for the booking."},"tag":{"type":"string","description":"Indicates if the booking is refundable ('RFN' for refundable, 'NRFN' for non-refundable)."},"lastFreeCancellationDate":{"type":"string","description":"The latest date/time when the booking can be canceled without penalties (ISO 8601 format)."},"userId":{"type":"integer","description":"The ID of the user who made the booking."},"nationality":{"type":"string","description":"The nationality of the guest."},"loyaltyGuestId":{"type":"integer","description":"The loyalty or membership ID of the guest."},"cancelledAt":{"type":"string","format":"date-time","description":"The timestamp when the booking was cancelled."},"refundedAt":{"type":"string","format":"date-time","description":"The timestamp when the booking was refunded."},"cancelledBy":{"type":"integer","description":"The ID of who cancelled the booking, empty in this step."},"remarks":{"type":"string","description":"Any additional notes related to the booking."},"hotelRemarks":{"type":"string","description":"Hotel-specific remarks from the booking."},"addonsTotalAmount":{"type":"number","description":"The total amount charged for any additional services or extras."},"addon":{"type":"array","description":"An array of objects specifying additional services or extras included in the booking.","items":{"type":"object","properties":{"addon":{"type":"string","description":"The name or type of the additional service or extra."},"value":{"type":"number","description":"The price of the addon in the specified currency."},"currency":{"type":"string","description":"The currency in which the addon is priced."},"originalValue":{"type":"number","description":"The original price of the addon before any discounts."},"originalCurrency":{"type":"string","description":"The original currency of the addon price."},"expiryDate":{"type":"string","description":"The expiration date of the addon, if applicable."},"addonVoucherCode":{"type":"string","description":"A code associated with the addon voucher, if applicable."},"addonVoucherId":{"type":"integer","description":"A unique identifier for the addon voucher."},"status":{"type":"string","description":"The current status of the addon (e.g., active, expired)."}}}},"goodwillPayment":{"type":"object","description":"Goodwill payment information for the booking.","properties":{"amount":{"type":"number","description":"The amount of the payment."},"currency":{"type":"string","description":"The currency of the payment."},"description":{"type":"string","description":"Short description of the payment."}}}}},"guestLevel":{"type":"integer","description":"The guest's loyalty or membership level, if applicable."},"sandbox":{"type":"boolean","description":"Indicates whether this booking is in a test/sandbox environment (true/false)."}}},"examples":{"confirmed_booking":{"value":{"data":{"bookingId":"ABC123","clientReference":"REF123","supplierBookingId":"SUP123","supplierBookingName":"nuitee","supplier":"nuitee","supplierId":2,"status":"CONFIRMED","hotelConfirmationCode":"HOTEL123","checkin":"2025-01-01","checkout":"2025-01-02","hotel":{"hotelId":"lp1897","name":"Sample Hotel"},"bookedRooms":[{"roomType":{"roomTypeId":"RT123","name":"Standard Room"},"boardType":"RO","boardName":"Room Only","adults":2,"children":0,"rate":{"rateId":"RATE123","retailRate":{"total":{"amount":100,"currency":"USD"}},"cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-01-01 00:00:00","amount":100,"type":"amount","timezone":"GMT","currency":"USD"}],"hotelRemarks":[],"refundableTag":"RFN"},"maxOccupancy":2,"remarks":"Standard rate"},"firstName":"John","lastName":"Doe","childrenAges":[],"board":"Room Only","boardCode":"RO","room_id":"RM123","occupancy_number":1,"amount":100,"currency":"USD","children_count":0,"remarks":"High floor preferred","guests":[{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+1234567890","remarks":"High floor preferred","occupancyNumber":1}],"mappedRoomId":184936}],"holder":{"firstName":"John","lastName":"Doe","email":"john.doe@example.com","phone":"+1234567890"},"createdAt":"2025-01-01T00:00:00Z","updatedAt":"2025-01-01T00:00:00Z","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-01-01 00:00:00","amount":100,"type":"amount","timezone":"GMT","currency":"USD"}],"hotelRemarks":[],"refundableTag":"RFN"},"price":100,"commission":10,"currency":"USD","guestId":1,"trackingId":"TRACK123","prebookId":"PRE123","sellingPrice":"100","exchangeRate":1,"exchangeRateUsd":1,"tag":"RFN","lastFreeCancellationDate":"2025-01-01T00:00:00Z","userId":1,"nationality":"US","loyaltyGuestId":1,"cancelledAt":null,"refundedAt":null,"cancelledBy":null,"suggestedSellingPrice":{"amount":185.7,"currency":"USD","source":""},"remarks":"<ul><li>Free breakfast</li><li>Free WiFi</li></ul>","addonsTotalAmount":8313.73,"addons":[{"addon":"uber","value":50,"currency":"USD","originalValue":50,"originalCurrency":"USD","expiryDate":"2025-11-19","addonVoucherCode":"https://r.uber.com/rjuwpo5UUau","addonVoucherId":1300,"status":"SUCCESS"}],"goodwillPayment":{"amount":25.5,"currency":"USD","description":"Example description"}},"guestLevel":0,"sandbox":true}}}}}},"400":{"description":"Bad request errors","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Contains details about the encountered error","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}},"examples":{"Invalid prebookId, rate not found":{"value":{"error":{"code":4002,"description":"invalid prebookId, rate not found","message":"required request field is missing or wrong input"}}},"prebookId data retrieval failed":{"value":{"error":{"code":5000,"description":"prebookId data retrieval failed","message":"unable to process request"}}},"empty request body":{"value":{"error":{"code":4002,"description":"empty request body","message":"required request field is missing or wrong input"}}},"[request body validation message]":{"value":{"error":{"code":4002,"description":"[request body validation message]","message":"required request field is missing or wrong input"}}},"invalid prebookId, invalid rate":{"value":{"error":{"code":4002,"description":"invalid prebookId, invalid rate","message":"required request field is missing or wrong input"}}},"prebookId invalid data":{"value":{"error":{"code":5000,"description":"prebookId invalid data","message":"unable to process request"}}},"prebookId data validation failed, please check your request fields":{"value":{"error":{"code":4010,"description":"prebookId data validation failed, please check your request fields","message":"wrong rate id"}}},"missing or empty transaction id":{"value":{"error":{"code":4002,"description":"missing or empty transaction id","message":"required request field is missing or wrong input"}}},"missing or empty token":{"value":{"error":{"code":4002,"description":"missing or empty token","message":"required request field is missing or wrong input"}}},"missing or not supported payment method":{"value":{"error":{"code":4000,"description":"missing or not supported payment method","message":"bad request"}}},"booking unique id generation failure, please try again":{"value":{"error":{"code":5000,"description":"missing or not supported payment method","message":"unable to process request"}}},"booking initial save failed, please try again":{"value":{"error":{"code":5000,"description":"booking initial save failed, please try again","message":"unable to process request"}}},"payment retrieval failed":{"value":{"error":{"code":2014,"description":"payment retrieval failed","message":"booking incomplete"}}},"payment metadata retrieval failed":{"value":{"error":{"code":2014,"description":"payment metadata retrieval failed","message":"booking incomplete"}}},"prebookId is not associated to the requested transactionId":{"value":{"error":{"code":2014,"description":"prebookId is not associated to the requested transactionId","message":"booking incomplete"}}},"payment status save failed":{"value":{"error":{"code":2014,"description":"payment status save failed","message":"booking incomplete"}}},"payment not completed":{"value":{"error":{"code":2014,"description":"payment not completed","message":"booking incomplete"}}},"please check if you have provided a payment method for your account":{"value":{"error":{"code":5000,"description":"please check if you have provided a payment method for your account","message":"unable to process request"}}},"payment transaction id save failed":{"value":{"error":{"code":5000,"description":"payment transaction id save failed","message":"unable to process request"}}},"payment failed please check your provided payment information":{"value":{"error":{"code":5000,"description":"payment failed please check your provided payment information","message":"unable to process request"}}},"booking not confirmed":{"value":{"error":{"code":2010,"description":"booking not confirmed","message":"booking is not confirmed"}}},"booking failed provider response was unsuccessful":{"value":{"error":{"code":2013,"description":"booking not confirmed","message":"booking failed"}}},"booking failed, provider booking response is invalid":{"value":{"error":{"code":2013,"description":"booking failed, provider booking response is invalid","message":"booking failed"}}},"booking incomplete, booking data was not updated":{"value":{"error":{"code":2014,"description":"booking incomplete, booking data was not updated","message":"booking incomplete"}}},"duplicate booking attempt with existing client reference":{"value":{"error":{"code":4005,"message":"duplicate booking attempt with existing client reference"}}}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"47"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Contains details about the encountered error","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}}}}}}}},"/rates/rebook":{"post":{"tags":["Manage bookings"],"summary":"Complete a hard amendment (rebook)","description":"## Overview\n\n**Step 2 of 2** in the **hard amendment** flow. Use a `prebookId` produced by `POST /bookings/{bookingId}/alternative-prebooks` to create the replacement booking. On success, the new booking is created **and the original booking is automatically cancelled** — you do **not** need to call the cancel endpoint.\n\n## When to Use\n\n- **After alternative-prebooks** — Once the guest has chosen one of the alternative prebooks returned by `POST /bookings/{bookingId}/alternative-prebooks`.\n- **Date or occupancy changes** — The guest needs different check-in/check-out dates or a different number of adults/children at the same hotel.\n- **Hard amendments only** — For simple guest-name updates use `PUT /bookings/{bookingId}/amend` instead.\n\n## How It Works\n\n1. The provided `prebookId` is validated against the booking referenced by `existingBookingId` (it must have been produced by an `alternative-prebooks` call for that booking).\n2. The new booking is created with the supplier using the alternative rate.\n3. The original booking is then automatically cancelled. If the cancellation fails after the new booking is confirmed, the error is logged but the new booking is still returned — contact support to reconcile.\n\n## Payment\n\n- No payment is collected on this endpoint. The `payment.method` value is ignored — the request body must still include a `payment` object to satisfy the schema, but the server forces the method to `NONE` internally. Any price delta between the original and new rate is settled out of band.\n\n## Refundable vs Non-refundable Originals\n\n- **Refundable original** — Returns `200 OK` with the new booking, and the original is cancelled immediately.\n- **Non-refundable original** — Returns `202 Accepted` with a booking amendment record. The request is queued for the Nuitee operations team to handle manually (the original booking may incur cancellation fees).\n\n## Required Information\n\n- **prebookId** — A prebook session returned by `POST /bookings/{bookingId}/alternative-prebooks`.\n- **existingBookingId** — The `bookingId` of the original confirmed booking being replaced. Must match the `bookingId` that produced the prebook.\n- **holder** and **guests** — Same structure as `POST /rates/book`. If `holder` fields are empty they are copied from the original booking.\n\n## Quick Start\n\n1. Call `POST /bookings/{bookingId}/alternative-prebooks` and pick one of the returned `prebookId` values.\n2. Call this endpoint with that `prebookId`, the original `bookingId` as `existingBookingId`, and guest information.\n3. On success, the new booking is confirmed and the original is cancelled — no further calls are needed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["prebookId","existingBookingId","holder","guests","payment"],"properties":{"prebookId":{"type":"string","description":"A prebook session returned by `POST /bookings/{bookingId}/alternative-prebooks`. Must reference the same booking as `existingBookingId`."},"existingBookingId":{"type":"string","description":"The `bookingId` of the confirmed booking being replaced. The original booking is cancelled automatically when the new booking is confirmed."},"clientReference":{"type":"string","description":"An optional client-defined reference ID. Acts as an idempotency key to prevent duplicate rebooks. If a booking already exists with the same client reference, the API will return a 4005 error."},"holder":{"type":"object","description":"Information on the person responsible for the booking. Any field left empty is populated from the original booking's holder.","properties":{"firstName":{"type":"string","description":"First name of the holder. Defaults to the original booking's holder first name when empty."},"lastName":{"type":"string","description":"Last name of the holder. Defaults to the original booking's holder last name when empty."},"email":{"type":"string","description":"Email of the holder. Defaults to the original booking's holder email when empty."},"phone":{"type":"string","description":"Phone number of the holder."}}},"guests":{"type":"array","description":"List of guests for the new booking. There is a 1:1 mapping between guests and rooms (one guest entry per `occupancyNumber`).","items":{"type":"object","required":["occupancyNumber","firstName","lastName","email"],"properties":{"occupancyNumber":{"type":"integer","description":"Which occupancy/room this guest belongs to. Must match an occupancy on the prebook."},"firstName":{"type":"string","description":"Guest first name."},"lastName":{"type":"string","description":"Guest last name."},"email":{"type":"string","description":"Guest email."},"phone":{"type":"string","description":"Guest phone number."},"remarks":{"type":"string","description":"Optional remarks for this guest (not guaranteed)."}}}},"payment":{"type":"object","description":"Required by the schema but ignored. The server forces the payment method to `NONE` for rebooks — no charge is taken on this endpoint. Send `{\"method\": \"NONE\"}` to be explicit.","required":["method"],"properties":{"method":{"type":"string","enum":["NONE"],"description":"Always `NONE` for rebook. Any other value supplied by the client is overridden."}}},"trackingId":{"type":"string","description":"Optional tracking ID for analytics or partner attribution."},"customTags":{"type":"object","description":"Optional bag of up to 5 user-defined key/value labels persisted with the booking. Keys must match `^[A-Z0-9_-]+$` and values are strings up to 255 characters. See `POST /rates/book` for the full description.","maxProperties":5,"additionalProperties":{"type":"string","maxLength":255}}}},"examples":{"Rebook request":{"value":{"prebookId":"aB1cD2eF3","existingBookingId":"iv0Ldy9fH","holder":{"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel","phone":"0200923695"},"guests":[{"occupancyNumber":1,"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel"}],"payment":{"method":"NONE"}}}}}}},"parameters":[{"name":"timeout","in":"query","schema":{"type":"integer"},"description":"Optional request timeout in seconds.","example":30}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"Rebook completed. The original booking has been cancelled and a new confirmed booking has been created. Response shape matches `POST /rates/book`.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"The newly created booking. See `POST /rates/book` for the full schema.","properties":{"bookingId":{"type":"string","description":"The unique identifier of the new confirmed booking."},"status":{"type":"string","description":"`CONFIRMED` when the rebook succeeded."},"rebookFrom":{"type":"string","description":"The `bookingId` of the original booking that was cancelled as part of this rebook."},"checkin":{"type":"string","format":"date"},"checkout":{"type":"string","format":"date"},"price":{"type":"number"},"currency":{"type":"string"},"prebookId":{"type":"string","description":"Echo of the prebook used to create this booking."}}},"guestLevel":{"type":"integer"},"sandbox":{"type":"boolean"}}},"examples":{"Rebook confirmed":{"value":{"data":{"bookingId":"NEW123ABC","clientReference":"REBOOK-REF-1","supplier":"nuitee","supplierId":2,"status":"CONFIRMED","rebookFrom":"iv0Ldy9fH","checkin":"2026-02-28","checkout":"2026-03-02","hotel":{"hotelId":"lp12345","name":"Sample Hotel"},"holder":{"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel","phone":"0200923695"},"createdAt":"2026-02-15T10:00:00Z","updatedAt":"2026-02-15T10:00:00Z","price":320.5,"commission":16.02,"currency":"USD","prebookId":"aB1cD2eF3"},"guestLevel":0,"sandbox":false}}}}}},"202":{"description":"Rebook request queued for manual handling. Returned when the original booking is **non-refundable** — the Nuitee operations team will process the amendment manually and any cancellation fees will be handled separately. No new booking is created at this point.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Booking amendment record representing the pending rebook request.","properties":{"id":{"type":"integer","description":"Amendment request ID."},"bookingId":{"type":"string","description":"The `bookingId` of the new booking that will be created once operations completes the rebook."},"userId":{"type":"integer","description":"The user ID that owns the original booking."},"type":{"type":"string","description":"Always `REBOOK` for this endpoint."},"subType":{"type":"string","description":"Either `CHECKIN_CHANGE` (dates changed) or `OCCUPANCY_CHANGE` (occupancies changed)."},"status":{"type":"string","description":"Always `PENDING` for newly-created rebook amendments."},"prebookId":{"type":"string","description":"The prebook ID used for the rebook."},"holderEmail":{"type":"string","nullable":true},"holderFirstName":{"type":"string","nullable":true},"holderLastName":{"type":"string","nullable":true},"holderPhone":{"type":"string","nullable":true},"guests":{"type":"array","items":{"type":"object"}},"createdBy":{"type":"integer","description":"The user ID that initiated the rebook (may be an agent acting on behalf of `userId`)."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"audit_trail":{"type":"object","description":"Snapshot of the old vs new values for the rebook.","properties":{"oldCheckin":{"type":"string","format":"date"},"oldCheckout":{"type":"string","format":"date"},"newCheckin":{"type":"string","format":"date"},"newCheckout":{"type":"string","format":"date"},"oldAdults":{"type":"integer"},"oldChildren":{"type":"integer"},"newAdults":{"type":"integer"},"newChildren":{"type":"integer"},"oldSellingPrice":{"type":"number"},"newSellingPrice":{"type":"number"},"oldPrebookId":{"type":"string"},"newPrebookId":{"type":"string"},"oldBookingId":{"type":"string"},"newBookingId":{"type":"string"}}}}},"message":{"type":"string","description":"Human-readable confirmation that the request was queued."}}},"examples":{"Rebook queued for ops":{"value":{"data":{"id":1234,"bookingId":"NEW123ABC","userId":927,"type":"REBOOK","subType":"CHECKIN_CHANGE","status":"PENDING","prebookId":"aB1cD2eF3","holderEmail":"s.doe@liteapi.travel","holderFirstName":"Steve","holderLastName":"Doe","holderPhone":"0200923695","guests":[{"occupancyNumber":1,"firstName":"Steve","lastName":"Doe","email":"s.doe@liteapi.travel"}],"createdBy":927,"createdAt":"2026-02-15T10:00:00Z","updatedAt":"2026-02-15T10:00:00Z","audit_trail":{"oldCheckin":"2026-02-20","oldCheckout":"2026-02-22","newCheckin":"2026-02-28","newCheckout":"2026-03-02","oldSellingPrice":305,"newSellingPrice":320.5,"oldPrebookId":"len80MPr_","newPrebookId":"aB1cD2eF3","oldBookingId":"iv0Ldy9fH","newBookingId":"NEW123ABC"}},"message":"The request has been received by our operations team and will be looked at as soon as possible"}}}}}},"400":{"description":"Bad request. Validation failed or the rebook is not allowed for this offer.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"description":{"type":"string"},"message":{"type":"string"}}}}},"examples":{"Missing existingBookingId":{"value":{"error":{"code":4002,"description":"existingBookingId field missing or empty","message":"required request field is missing or wrong input"}}},"prebookId does not match the existingBookingId":{"value":{"error":{"code":4000,"description":"prebook not found","message":"bad request"}}},"Rebooking not allowed for this offer":{"value":{"error":{"code":4000,"description":"rebooking is not allowed for this offer","message":"bad request"}}},"Missing prebookId":{"value":{"error":{"code":4002,"description":"prebookId field missing or empty","message":"required request field is missing or wrong input"}}},"Duplicate client reference":{"value":{"error":{"code":4005,"message":"duplicate booking attempt with existing client reference"}}}}}}},"401":{"description":"Unauthorized. Invalid or missing API key, or the caller is not allowed to rebook.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Unauthorized":{"value":{"error":{"code":401,"message":"Unauthorized"}}}}}}},"409":{"description":"Conflict. A rebook for the same prebook has already been completed.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"description":{"type":"string"},"message":{"type":"string"}}}}},"examples":{"Rebook already completed":{"value":{"error":{"code":4009,"description":"a rebook for the specified prebook id has already been completed","message":"booking amendment already completed"}}}}}}},"500":{"description":"Internal server error. Failed to create the new booking or to retrieve booking/prebook data.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"description":{"type":"string"},"message":{"type":"string"}}}}},"examples":{"Previous booking retrieval failed":{"value":{"error":{"code":5000,"description":"previous booking retrieval failed","message":"unable to process request"}}},"Rebook request creation failed":{"value":{"error":{"code":5000,"description":"rebook request creation failed","message":"unable to process request"}}}}}}}}}},"/bookings":{"get":{"tags":["Manage bookings"],"operationId":"listBookings","summary":"List bookings","description":"## Overview\n\nSearch for bookings by guest ID or client reference. Perfect for displaying a guest's booking history or finding bookings by your internal reference codes.\n\n## When to Use\n\n- **Guest booking history** - Show all bookings for a specific guest\n- **Reference lookup** - Find bookings by your internal reference codes\n- **Booking management** - List bookings for administrative purposes\n- **Customer support** - Quickly find bookings for support tickets\n\n## What You Get\n\n- **Booking list** - All matching bookings with complete details\n- **Guest information** - Name, email, and contact details\n- **Stay details** - Check-in/check-out dates and hotel information\n- **Payment status** - Current payment and booking status\n- **Booking references** - Booking IDs and confirmation codes\n\n## Search Options\n\n- **By guest ID** - Find all bookings for a specific guest\n- **By client reference** - Find bookings using your internal reference codes\n- **By customTags** - Narrow results by booking labels using `customTags=KEY:VALUE,KEY2:VALUE2` (AND across keys)\n- **Optional timeout** - Set request timeout (default 4 seconds)\n\n## Quick Start\n\nProvide either `guestId` or `clientReference` (or both). Returns matching bookings with full details.","parameters":[{"name":"clientReference","in":"query","schema":{"type":"string"},"example":"JOHNDOE-TRIP"},{"name":"guestId","in":"query","schema":{"type":"string"},"example":"4"},{"name":"customTags","in":"query","description":"Filter by customTags. Comma-separated `KEY:VALUE` pairs (e.g. `SOURCE:GOOGLE,TIER:GOLD`); all pairs are joined with AND. Keys must match `^[A-Z0-9_-]+$`, up to 5 keys, value up to 255 characters. Value matching is case-insensitive.","required":false,"schema":{"type":"string"},"example":"SOURCE:GOOGLE,TIER:GOLD"},{"schema":{"type":"number","default":4,"format":"float"},"in":"query","name":"timeout","description":"request timeout in seconds","example":1.5}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["bookingId","status","checkin","checkout","currency"],"properties":{"bookingId":{"type":"string","description":"The unique identifier for the confirmed booking. This is used to reference the booking later via the API or calls for support."},"clientReference":{"type":"string","description":"A reference ID provided by the client (you) for tracking purposes."},"supplierBookingId":{"type":"string","description":"The booking ID assigned by the supplier. Not needed, use bookingId instead."},"supplierBookingName":{"type":"string","description":"The name associated with the booking in the supplier's system. By default, Nuitee."},"supplier":{"type":"string","description":"The supplier handling this booking. By default, Nuitee."},"supplierId":{"type":"integer","description":"The unique numerical identifier for the supplier. By default, 2 for Nuitee."},"feed":{"type":"string","description":"Which feed was used for this booking. Null if the default feed was used."},"status":{"type":"string","description":"The current status of the booking. At this point it will be CONFIRMED, the other options for this field are CANCELED or CANCELLED_WITH_CHARGES."},"hotelConfirmationCode":{"type":"string","description":"The confirmation code issued by the hotel for the booking. Not available at booking time. Nuitee performs a manual process to to contact the hotel and get the confirmation number."},"checkin":{"type":"string","format":"date","description":"The check-in date for the booking (ISO format)."},"checkout":{"type":"string","format":"date","description":"The check-out date for the booking (ISO format)."},"hotel":{"type":"object","properties":{"hotelId":{"type":"string","description":"Identifier for the booked hotel."},"name":{"type":"string","description":"Name of the hotel."}}},"rooms":{"type":"array","items":{"type":"object","properties":{"roomType":{"type":"object","description":"An object containing details about the booked room type.","properties":{"roomTypeId":{"type":"string","description":"Unique identifier for the room type."},"name":{"type":"string","description":"The name of the booked room type."}}},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"adults":{"type":"integer","description":"Number of adults in this room."},"children":{"type":"integer","description":"Number of children in this room."},"rate":{"type":"object","description":"An object containing rate information for the booked room.","properties":{"rateId":{"type":"string","description":"The unique identifier for a specific rate within the offer."},"retailRate":{"type":"object","description":"An object with details about the retail price of the booking.","properties":{"total":{"type":"object","description":"an object containing the total cost of the rate","properties":{"amount":{"type":"integer","description":"The total cost amount due to book this room. This is what the end user will pay."},"currency":{"type":"string","description":"The currency the total is in."}}}}},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"maxOccupancy":{"type":"integer","description":"The maximum number of guests allowed in this room."},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"remarks":{"type":"string","description":"Any special remarks related to the booking or room type."}}},"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"childrenAges":{"type":"array","items":{"type":"integer"},"nullable":true,"description":"Ages of children in this room."},"board":{"type":"string","description":"The full name of the meal plan included in the booking."},"boardCode":{"type":"string","description":"A short code representing the meal plan included with the booking."},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"room_id":{"type":"string","description":"Unique identifier for the room."},"occupancy_number":{"type":"integer","description":"Occupancy number within this booking."},"amount":{"type":"number","description":"Room price for this booking."},"currency":{"type":"string","description":"Currency code for the room cost."},"children_count":{"type":"integer","description":"Number of children in this room."},"remarks":{"type":"string","description":"Additional remarks for this room."},"guests":{"type":"array","description":"Guest details for this room.","items":{"type":"object","properties":{"firstName":{"type":"string","description":"Guest's first name."},"lastName":{"type":"string","description":"Guest's last name."},"email":{"type":"string","description":"Guest's email address."},"phone":{"type":"string","description":"Guest's phone number."},"remarks":{"type":"string","description":"Remarks specific to this guest."},"occupancyNumber":{"type":"integer","description":"Occupancy number for this guest."}}}}}}},"holder":{"type":"object","description":"An object containing details of the person responsible for the booking.","properties":{"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"email":{"type":"string","description":"The email address of the person responsible for the booking."},"phone":{"type":"string","description":"The phone number of the person responsible for the booking."}}},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the booking was created."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the booking was last updated."},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"specialRemarks":{"type":"string","description":"Special requests or remarks for the booking."},"price":{"type":"number","description":"The final total price of all rooms on the booking."},"commission":{"type":"number","description":"The total commission amount associated with all rooms on the booking."},"clientCommission":{"type":"number","description":"Commission amount for the client."},"currency":{"type":"string","description":"The currency in which the booking price is displayed."},"guestId":{"type":"string","description":"Guest ID associated with the booking."},"trackingId":{"type":"string","description":"Tracking identifier for the booking."},"prebookId":{"type":"string","description":"Identifier from the pre-booking step."},"paymentStatus":{"type":"string","description":"Status of the payment for the booking."},"paymentTransactionId":{"type":"string","description":"Transaction identifier for the payment."},"sellingPrice":{"type":"string","description":"Total selling price of the booking."},"exchangeRate":{"type":"number","description":"Exchange rate used for currency conversion."},"exchangeRateUsd":{"type":"number","description":"USD exchange rate for the booking."},"email":{"type":"string","description":"Email of the guest or booking holder."},"tag":{"type":"string","description":"Indicates if the booking is refundable ('RFN' for refundable, 'NRFN' for non-refundable)."},"lastFreeCancellationDate":{"type":"string","format":"date-time","description":"The latest date/time when the booking can be canceled without penalties (ISO 8601 format)."},"userId":{"type":"integer","description":"ID of the user who made the booking."},"nationality":{"type":"string","description":"Nationality of the guest."},"loyaltyGuestId":{"type":"integer","description":"Loyalty or membership ID of the guest."},"cancelledAt":{"type":"string","format":"date-time","description":"Timestamp when the booking was cancelled."},"refundedAt":{"type":"string","format":"date-time","description":"Timestamp when the booking was refunded."},"cancelledBy":{"type":"integer","description":"User ID or agent ID who cancelled the booking."},"sandbox":{"type":"integer","description":"Indicates if this booking is in sandbox mode (0 or 1)."},"voucherId":{"type":"string","description":"ID of any voucher used."},"voucherTotalAmount":{"type":"number","description":"Total amount covered by a voucher."},"voucherTransationId":{"type":"string","description":"Transaction ID associated with the voucher."},"processingFee":{"type":"number","description":"Processing fee for the booking."},"amountRefunded":{"type":"number","description":"Total amount refunded for this booking."},"refundType":{"type":"string","description":"Type of refund (e.g., full, partial)."},"paymentScheduledAt":{"type":"string","description":"Scheduled time for the payment process."},"addonsTotalAmount":{"type":"number","description":"The total amount charged for any additional services or extras."},"addonsRedemptions":{"type":"string","description":"Details of any add-on redemptions."},"rebookFrom":{"type":"string","description":"Original booking ID if this booking was rebooked."},"agentId":{"type":"integer","description":"ID of the agent who made the booking, if applicable."},"suggestedSellingPrice":{"type":"object","description":"The minimum public selling price for all the rooms combined. This is used for pricing control.","properties":{"amount":{"type":"number","description":"The minimum amount the room can be sold for publicly."},"currency":{"type":"string","description":"The currency the suggestedSellingPrice is in."},"source":{"type":"string","description":"The source of the suggestedSellingPrice if we have it. ex: 'expedia.com' or 'providerDirect'."}}},"goodwillPayment":{"type":"object","description":"Goodwill payment information for the booking.","properties":{"amount":{"type":"number","description":"The amount of the payment."},"currency":{"type":"string","description":"The currency of the payment."},"description":{"type":"string","description":"Short description of the payment."}}},"customTags":{"type":"object","description":"User-defined key/value labels persisted at booking time. Keys match `^[A-Z0-9_-]+$`, values are strings up to 255 characters, capped at 5 entries.","additionalProperties":{"type":"string"},"example":{"SOURCE":"GOOGLE","TIER":"GOLD"}}}}}}},"example":{"data":[{"bookingId":"9EjIcpy7K","clientReference":"6b462947-b183-450b-8113-098a674f7f86","supplierBookingId":"9EjIcpy7K","supplierBookingName":"nuitee","supplier":"nuitee","supplierId":2,"status":"CANCELLED","feed":"custom_feed","hotelConfirmationCode":"9348208430284093","checkin":"2025-05-23","checkout":"2025-05-24","hotel":{"hotelId":"lp19f3a","name":"test name"},"rooms":[{"adults":2,"children":"","firstName":"Sunny","lastName":"Mars","childrenAges":null,"room_id":"HQTX7FHWARP8R55FMQ9D7UN6DCLS9B7WXGNGRL6SFTZI1MG0GQH4TQE93EGSY1964F5PXF9HCX7JEZCW60K91QNXEXZ9Z6BY2Q0M","occupancy_number":1,"amount":356.31,"currency":"USD","children_count":0,"remarks":"quiet room please","guests":[{"firstName":"Sunny","lastName":"Mars","email":"s.mars@liteapi.travel","phone":"759834795387","remarks":"quiet room please","occupancyNumber":1}]}],"holder":{"firstName":"First","lastName":"Last","email":"example-holder@liteapi.travel","phone":"","holderTitle":""},"createdAt":"2025-03-05T13:37:20+02:00","updatedAt":"2025-03-05T17:41:06+02:00","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-05-23 23:59:59","amount":356.31,"type":"amount","timezone":"","currency":"USD"}],"hotelRemarks":null,"refundableTag":""},"specialRemarks":"quiet room please","price":388.37,"commission":32.06,"clientCommission":32.06,"currency":"USD","guestId":"102","trackingId":"ucn048ucr04ru09","prebookId":"U86A3mC6G","paymentStatus":"","paymentTransactionId":"","sellingPrice":"388.37","exchangeRate":0.9612858754482988,"exchangeRateUsd":1,"email":"example-holder@liteapi.travel","tag":"","lastFreeCancellationDate":"2025-05-24T02:59:59+03:00","userId":869595,"nationality":"GR","loyaltyGuestId":102,"cancelledAt":"2025-03-05T17:41:05+02:00","refundedAt":"2025-03-05T17:41:05+02:00","cancelledBy":8459483,"sandbox":1,"voucherId":null,"voucherTotalAmount":0,"voucherTransationId":null,"processingFee":0,"amountRefunded":0,"refundType":"full","paymentScheduledAt":null,"addonsTotalAmount":null,"addonsRedemptions":null,"rebookFrom":"","agentId":null,"suggestedSellingPrice":{"amount":185.7,"currency":"USD","source":"expedia.com"},"goodwillPayment":{"amount":50,"currency":"USD","description":"Example description"}}]}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"47"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","description":"Contains details about the encountered error","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"description":{"type":"string","description":"Brief explanation of the error type"},"message":{"type":"string","description":"Detailed message providing context about the error"}}}}}}}}}}},"/bookings/{bookingId}":{"get":{"tags":["Manage bookings"],"summary":"Retrieve a booking","description":"## Overview\n\nGet complete details for a specific booking by its booking ID. Returns all booking information including status, guest details, pricing, and cancellation policies.\n\n## When to Use\n\n- **Booking details page** - Display complete booking information\n- **Status checks** - Verify current booking status\n- **Confirmation lookup** - Retrieve booking confirmation details\n- **Support queries** - Look up booking information for customer service\n\n## What You Get\n\n- **Complete booking details** - All information about the booking\n- **Booking status** - Current status (confirmed, cancelled, etc.)\n- **Guest information** - Name, email, and contact details\n- **Stay information** - Check-in/check-out dates, hotel details\n- **Pricing breakdown** - Total cost, taxes, fees, and payment status\n- **Cancellation policies** - Terms and conditions for cancellation\n- **Hotel confirmation** - Hotel confirmation code and reference\n\n## Quick Start\n\nProvide the `bookingId` in the URL path. Returns complete booking details including status and all associated information.","parameters":[{"name":"bookingId","in":"path","schema":{"type":"string"},"required":true,"description":"(Required) The unique identifier of the booking you would like to update.","example":"V8mglw-im"},{"schema":{"type":"number","default":4,"format":"float"},"in":"query","name":"timeout","description":"request timeout in seconds","example":1.5}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"OK","headers":{"Date":{"schema":{"type":"string","example":"Fri, 27 Jan 2023 21:40:18 GMT"}},"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"integer","example":359}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"x-amzn-RequestId":{"schema":{"type":"string","example":"063d1a7e-0677-4cec-997f-e0575c36017d"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"x-amzn-Remapped-Content-Length":{"schema":{"type":"integer","example":560}},"x-amz-apigw-id":{"schema":{"type":"string","example":"fa-ucH-iIAMFu5Q="}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}},"Access-Control-Expose-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"x-amzn-Remapped-Date":{"schema":{"type":"string","example":"Fri, 27 Jan 2023 21:40:18 GMT"}},"Access-Control-Max-Age":{"schema":{"type":"integer","example":10}},"Access-Control-Allow-Credentials":{"schema":{"type":"boolean","example":true}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["bookingId","status","checkin","checkout","currency","price","createdAt"],"properties":{"bookingId":{"type":"string","description":"The unique identifier for the confirmed booking. This is used to reference the booking later via the API or calls for support."},"clientReference":{"type":"string","description":"A reference ID provided by the client (you) for tracking purposes."},"supplierBookingId":{"type":"string","description":"The booking ID assigned by the supplier. Not needed, use bookingId instead."},"supplierBookingName":{"type":"string","description":"The name associated with the booking in the supplier's system. By default, Nuitee."},"supplier":{"type":"string","description":"The supplier handling this booking. By default, Nuitee."},"supplierId":{"type":"integer","description":"The unique numerical identifier for the supplier. By default, 2 for Nuitee."},"feed":{"type":"string","description":"Which feed was used for this booking. Null if the default feed was used."},"status":{"type":"string","description":"The current status of the booking. At this point it will be CONFIRMED, the other option for this field is CANCELED."},"hotelConfirmationCode":{"type":"string","description":"The confirmation code issued by the hotel for the booking. Not available at booking time. Nuitee performs a manual process to to contact the hotel and get the confirmation number."},"checkin":{"type":"string","description":"The check-in date for the booking (ISO format)."},"checkout":{"type":"string","description":"The check-out date for the booking (ISO format)."},"hotel":{"type":"object","properties":{"hotelId":{"type":"string","description":"The unique identifier of the hotel."},"name":{"type":"string","description":"The name of the hotel."}}},"bookedRooms":{"type":"array","items":{"type":"object","properties":{"roomType":{"type":"object","description":"An object containing details about the booked room type.","properties":{"roomTypeId":{"type":"string","description":"Unique identifier for the room type."},"name":{"type":"string","description":"The name of the booked room type."}}},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"adults":{"type":"integer","description":"Number of adults in this room."},"children":{"type":"integer","description":"Number of children in this room."},"rate":{"type":"object","description":"An object containing rate information for the booked room.","properties":{"rateId":{"type":"string","description":"The unique identifier for a specific rate within the offer."},"retailRate":{"type":"object","description":"An object with details about the retail price of the booking.","properties":{"total":{"type":"object","description":"an object containing the total cost of the rate","properties":{"amount":{"type":"integer","description":"The total cost amount due to book this room. This is what the end user will pay."},"currency":{"type":"string","description":"The currency the total is in."}}}}},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"maxOccupancy":{"type":"integer","description":"The maximum number of guests allowed in this room."},"boardType":{"type":"string","description":"A short code representing the meal plan included with the booking."},"boardName":{"type":"string","description":"The full name of the meal plan included in the booking."},"remarks":{"type":"string","description":"Any special remarks related to the booking or room type."},"perks":{"type":"array","description":"An array of perks or benefits associated with this rate.","items":{"type":"object","properties":{"perkId":{"type":"integer","description":"Unique identifier for the perk."},"name":{"type":"string","description":"The name or description of the perk."},"amount":{"type":"number","description":"The monetary value of the perk."},"currency":{"type":"string","description":"The currency of the perk amount."},"level":{"type":"string","description":"The level or tier of the perk."}}}}}},"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"childrenAges":{"type":"array","items":{"type":"integer"},"nullable":true,"description":"Ages of children in this room."},"board":{"type":"string","description":"The full name of the meal plan included in the booking."},"boardCode":{"type":"string","description":"A short code representing the meal plan included with the booking."},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"room_id":{"type":"string","description":"Unique identifier for the room."},"occupancy_number":{"type":"integer","description":"Occupancy number within this booking."},"amount":{"type":"number","description":"Room price for this booking."},"currency":{"type":"string","description":"Currency code for the room cost."},"children_count":{"type":"integer","description":"Number of children in this room."},"remarks":{"type":"string","description":"Additional remarks for this room."},"guests":{"type":"array","description":"Guest details for this room.","items":{"type":"object","properties":{"firstName":{"type":"string","description":"Guest's first name."},"lastName":{"type":"string","description":"Guest's last name."},"email":{"type":"string","description":"Guest's email address."},"phone":{"type":"string","description":"Guest's phone number."},"remarks":{"type":"string","description":"Remarks specific to this guest."},"occupancyNumber":{"type":"integer","description":"Occupancy number for this guest."}}}}}}},"holder":{"type":"object","description":"An object containing details of the person responsible for the booking.","properties":{"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"email":{"type":"string","description":"The email address of the person responsible for the booking."},"phone":{"type":"string","description":"The phone number of the person responsible for the booking."}}},"createdAt":{"type":"string","description":"Timestamp when the booking was created."},"updatedAt":{"type":"string","description":"Timestamp when the booking was last updated."},"cancellationPolicies":{"type":"object","description":"An object containing the cancellation rules and conditions for the booking.","properties":{"cancelPolicyInfos":{"type":"array","description":"An array of objects detailing specific cancellation penalties and deadlines.","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"The deadline to cancel before incurring a fee (ISO datetime format)."},"amount":{"type":"number","description":"The monetary penalty applied if the booking is canceled after the deadline. Can be 0 which means its fully refundable."},"currency":{"type":"string","description":"The currency of the cancellation fee."},"type":{"type":"string","description":"The type of cancellation penalty (e.g., 'amount' for a fixed fee)."},"timezone":{"type":"string","description":"The timezone in which the cancellation policy applies. Always GMT, even if not listed."}}}},"hotelRemarks":{"type":"array","description":"An array of additional remarks from the hotel regarding cancellations.","items":{"type":"object","properties":{}}},"refundableTag":{"type":"string","description":"Indicates whether the booking is refundable, Either 'NRFN' for non-refundable or RFN for refundable."}}},"specialRemarks":{"type":"string","description":"Special requests or remarks for the booking."},"optionalFees":{"type":"string","description":"Optional fees associated with the booking."},"mandatoryFees":{"type":"string","description":"Mandatory fees associated with the booking."},"knowBeforeYouGo":{"type":"string","description":"Important information for the guest."},"price":{"type":"number","description":"The final total price of all rooms on the booking."},"commission":{"type":"number","description":"The total commission amount associated with all rooms on the booking."},"addonsTotalAmount":{"type":"number","description":"The total amount charged for any additional services or extras."},"currency":{"type":"string","description":"The currency in which the booking price is displayed."},"remarks":{"type":"string","description":"Any additional notes related to the booking."},"hotelRemarks":{"type":"string","description":"Hotel-specific remarks from the booking."},"voucherCode":{"type":"string","description":"A code associated with the addon voucher, if applicable."},"voucherTotalAmount":{"type":"number","description":"Total amount covered by a voucher."},"addons":{"type":"array","description":"A list of additional services or extras that can be added to the booking. For example, adding an Uber voucher or an esim card. The final booking amount is the sum of the offer's total price and the cost of any addons. Each addon's price is added individually to reflect all extras in the billed total. ","items":{"type":"object","required":["adults"],"properties":{"addon":{"type":"string","description":"The type of addon service (e.g., uber, esimply).","example":"uber"},"value":{"type":"number","description":"The monetary cost of the addon service","example":50},"currency":{"type":"string","description":"The currency in which the addon service is charged","example":"USD"},"addonDetails":{"type":"object","properties":{"package_id":{"type":"integer","description":"Unique identifier of the addon package","example":1},"destination_code":{"type":"string","description":" Short code representing the destination or country (e.g., ES for Spain)","example":"ES"},"start_date":{"type":"string","description":"The start date for the add-on service (YYYY-MM-DD format)","example":"2025-12-05"},"end_date":{"type":"string","description":"The end date for the add-on service (YYYY-MM-DD format)","example":"2025-12-10"}}}}}},"guestId":{"type":"integer","description":"Guest ID associated with the booking."},"distributorCommission":{"type":"number","description":"Commission amount for the distributor."},"distributorPrice":{"type":"number","description":"Price after distributor commission."},"trackingId":{"type":"string","description":"Tracking identifier for the booking."},"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"adults":{"type":"integer","description":"The number of adult guests in the booking."},"children":{"type":"string","description":"A comma delimited string of children's ages included in the booking. Can be empty if no children are included."},"childrenCount":{"type":"integer","description":"Number of children in the booking."},"prebookId":{"type":"string","description":"Identifier from the pre-booking step."},"paymentStatus":{"type":"string","description":"Status of the payment for the booking."},"paymentTransactionId":{"type":"string","description":"Transaction identifier for the payment."},"sellingPrice":{"type":"string","description":"Total selling price of the booking."},"exchangeRate":{"type":"number","description":"Exchange rate used for currency conversion."},"exchangeRateUsd":{"type":"number","description":"USD exchange rate for the booking."},"email":{"type":"string","description":"Email of the guest or booking holder."},"tag":{"type":"string","description":"Indicates if the booking is refundable ('RFN' for refundable, 'NRFN' for non-refundable)."},"lastFreeCancellationDate":{"type":"string","description":"The latest date/time when the booking can be canceled without penalties (ISO 8601 format)."},"userId":{"type":"integer","description":"ID of the user who made the booking."},"nationality":{"type":"string","description":"Nationality of the guest."},"holderTitle":{"type":"string","description":"Title of the main guest/holder."},"hotelId":{"type":"string","description":"The unique identifier for the hotel associated with this booking."},"hotelName":{"type":"string","description":"The name of the hotel associated with this booking."},"cancelledAt":{"type":"string","description":"Timestamp when the booking was cancelled."},"refundedAt":{"type":"string","description":"Timestamp when the booking was refunded."},"loyaltyGuestId":{"type":"object","description":"Loyalty or membership ID of the guest."},"sandbox":{"type":"integer","description":"Indicates if this booking is in sandbox mode (0 or 1)."},"clientCommission":{"type":"number","description":"Commission amount for the client."},"voucherId":{"type":"integer","description":"ID of any voucher used."},"voucherTransationId":{"type":"string","description":"Transaction ID associated with the voucher."},"processingFee":{"type":"number","description":"Processing fee for the booking."},"amountRefunded":{"type":"number","description":"Total amount refunded for this booking."},"refundType":{"type":"string","description":"Type of refund (e.g., full, partial)."},"paymentScheduledAt":{"type":"string","description":"Scheduled time for the payment process."},"addonsRedemptions":{"type":"object","description":"Details of any add-on redemptions."},"rebookFrom":{"type":"string","description":"Original booking ID if this booking was rebooked."},"agentId":{"type":"object","description":"ID of the agent who made the booking, if applicable."},"cancelledBy":{"type":"object","description":"User ID or agent ID who cancelled the booking."},"checkinInstructions":{"type":"object","description":"Check-in instructions provided by the property, including contact information and special requirements.","properties":{"idRequired":{"type":"boolean","description":"Whether guest identification is required at check-in."},"propertyContact":{"type":"object","description":"Contact information for the property.","properties":{"email":{"type":"string","nullable":true,"description":"Property email address for guest communication."},"phone":{"type":"string","nullable":true,"description":"Property phone number for guest communication."}}},"hasCommunication":{"type":"boolean","description":"Whether guest communication with the property is required before arrival."},"instructions":{"type":"string","description":"Detailed check-in instructions from the property."},"arrivalTimeRequested":{"type":"boolean","description":"Whether the property requests guest to provide their expected arrival time."},"checkinSourceEventId":{"type":"string","description":"Unique identifier for the source event that provided these instructions."},"updatedAt":{"type":"string","format":"date-time","description":"Timestamp when the check-in instructions were last updated (ISO 8601 format)."}}},"customTags":{"type":"object","description":"User-defined key/value labels persisted at booking time. Keys match `^[A-Z0-9_-]+$`, values are strings up to 255 characters, capped at 5 entries.","additionalProperties":{"type":"string"},"example":{"SOURCE":"GOOGLE","TIER":"GOLD"}}}}}},"examples":{"example-0":{"summary":"Retrieve a confirmed booking","value":{"data":{"bookingId":"hSq2gVDrf","clientReference":"REF123","supplierBookingId":"38000","supplierBookingName":"nuitee","supplier":"nuitee","supplierId":2,"status":"CONFIRMED","feed":"custom_feed","hotelConfirmationCode":"hSq2gVDrf","checkin":"2024-11-15","checkout":"2024-11-16","hotel":{"hotelId":"lp1897","name":"Some hotel Name"},"bookedRooms":[{"roomType":{"roomTypeId":"RT123","name":"Test rate"},"boardType":"RO","boardName":"Room Only","adults":1,"children":2,"rate":{"rateId":"RATE123","retailRate":{"total":{"amount":115,"currency":"USD"}},"cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2024-11-15","amount":100,"type":"amount","timezone":"GMT","currency":"USD"}],"hotelRemarks":[],"refundableTag":"RFN"},"maxOccupancy":0,"boardType":"RO","boardName":"Room Only","remarks":""},"firstName":"John","lastName":"Doe","childrenAges":[],"board":"Room Only","boardCode":"RO","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2024-11-15","amount":100,"type":"amount","timezone":"GMT","currency":"USD"}],"hotelRemarks":[],"refundableTag":"RFN"},"room_id":"RM123","occupancy_number":1,"amount":115,"currency":"USD","children_count":2,"remarks":"","guests":null}],"holder":{"firstName":"John","lastName":"Doe","email":"johndoe@liteapi.travel","phone":"+1234567890"},"createdAt":"2024-01-27T21:38:48","updatedAt":"2024-01-27T21:38:48","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2024-11-15","amount":100,"type":"amount","timezone":"GMT","currency":"USD"}],"hotelRemarks":[],"refundableTag":"RFN"},"specialRemarks":"","optionalFees":"","mandatoryFees":"","knowBeforeYouGo":"","price":115,"commission":10,"addonsTotalAmount":0,"currency":"USD","remarks":"","voucherCode":"","voucherTotalAmount":0,"addons":null,"guestId":1,"distributorCommission":5,"distributorPrice":110,"trackingId":"TRACK123","firstName":"John","lastName":"Doe","adults":1,"children":"2","childrenCount":2,"prebookId":"PRE123","paymentStatus":"succeeded","paymentTransactionId":"PAY123","sellingPrice":"115","exchangeRate":1,"exchangeRateUsd":1,"email":"johndoe@liteapi.travel","tag":"RFN","lastFreeCancellationDate":"2024-11-15T00:00:00+00:00","userId":1,"nationality":"US","holderTitle":"Mr","hotelId":"HTL123","hotelName":"Test Hotel","cancelledAt":null,"refundedAt":null,"loyaltyGuestId":null,"sandbox":0,"clientCommission":5,"voucherId":0,"voucherTransationId":"","processingFee":0,"amountRefunded":0,"refundType":"","paymentScheduledAt":null,"addonsRedemptions":null,"rebookFrom":"","agentId":null,"cancelledBy":null,"suggestedSellingPrice":{"amount":185.7,"currency":"USD","source":"expedia.com"},"goodwillPayment":{"amount":15,"currency":"USD","description":"Example description"}}}},"example-1":{"summary":"Retrieve a cancelled booking","value":{"data":{"bookingId":"GmRZ9XR4y","clientReference":"REF456","supplierBookingId":"GmRZ9XR4y","supplierBookingName":"nuitee","supplier":"nuitee","supplierId":2,"status":"CANCELLED","hotelConfirmationCode":"891349","checkin":"2022-09-08","checkout":"2022-09-09","hotel":{"hotelId":"lp1897","name":"Test Hotel 2"},"bookedRooms":[{"roomType":{"roomTypeId":"RT456","name":"Studio, 1 King Bed"},"boardType":"RO","boardName":"Room Only","adults":2,"children":0,"rate":{"rateId":"RATE456","retailRate":{"total":{"amount":83.38,"currency":"EUR"}},"cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-03-30 02:00:00","amount":163.66,"currency":"USD","type":"amount","timezone":"GMT"}],"hotelRemarks":[],"refundableTag":"RFN"},"maxOccupancy":0,"boardType":"RO","boardName":"Room Only","remarks":""},"firstName":"John","lastName":"KARI","childrenAges":[],"board":"Room Only","boardCode":"RO","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-03-30 02:00:00","amount":163.66,"currency":"USD","type":"amount","timezone":"GMT"}],"hotelRemarks":[],"refundableTag":"RFN"},"room_id":"RM456","occupancy_number":1,"amount":83.38,"currency":"EUR","children_count":0,"remarks":"","guests":null}],"holder":{"firstName":"John","lastName":"KARI","email":"john.doe@example.com","phone":"+9876543210"},"createdAt":"2022-08-16T10:11:16","updatedAt":"2022-09-08T00:00:00","cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2025-03-30 02:00:00","amount":163.66,"currency":"USD","type":"amount","timezone":"GMT"}],"hotelRemarks":[],"refundableTag":"RFN"},"specialRemarks":"","optionalFees":"","mandatoryFees":"","knowBeforeYouGo":"","price":83.38,"commission":8.34,"addonsTotalAmount":0,"currency":"EUR","remarks":"","voucherCode":"","voucherTotalAmount":0,"addons":null,"guestId":2,"distributorCommission":4.17,"distributorPrice":79.21,"trackingId":"TRACK456","firstName":"John","lastName":"KARI","adults":2,"children":"","childrenCount":0,"prebookId":"PRE456","paymentStatus":"refunded","paymentTransactionId":"PAY456","sellingPrice":"83.38","exchangeRate":1,"exchangeRateUsd":1.2,"email":"john.doe@example.com","tag":"","lastFreeCancellationDate":null,"userId":2,"nationality":"US","holderTitle":"Mr","hotelId":"HTL456","hotelName":"Test Hotel 2","cancelledAt":"2022-09-08T00:00:00","refundedAt":"2022-09-08T00:00:00","loyaltyGuestId":null,"sandbox":0,"clientCommission":4.17,"voucherId":0,"voucherTransationId":"","processingFee":0,"amountRefunded":83.38,"refundType":"full","paymentScheduledAt":null,"addonsRedemptions":null,"rebookFrom":"","agentId":null,"cancelledBy":null,"suggestedSellingPrice":{"amount":185.7,"currency":"USD","source":"expedia.com"},"goodwillPayment":{"amount":20,"currency":"EUR","description":"Example description"}}}}}}}},"204":{"description":"No Content","headers":{"Access-Control-Allow-Credentials":{"schema":{"type":"boolean","example":true}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Expose-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Max-Age":{"schema":{"type":"integer","example":10}},"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Date":{"schema":{"type":"string","example":"Tue, 20 Sep 2022 10:59:59 GMT"}},"Content-Length":{"schema":{"type":"integer","example":56}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"items":{"type":"object","properties":{"bookingId":{"type":"string"},"status":{"type":"string"},"hotelConfirmationCode":{"type":"string"},"start":{"type":"string"},"end":{"type":"string"},"bookedRooms":{"type":"array","items":{"type":"object","properties":{"roomType":{"type":"object","properties":{"name":{"type":"string"}}},"adults":{"type":"integer"},"childCount":{"type":"integer"},"rate":{"type":"object","properties":{"maxOccupancy":{"type":"integer"},"retailRate":{"type":"object","properties":{"total":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}}}}}}}}}},"guestInfo":{"type":"object","properties":{"guestFirstName":{"type":"string"},"guestLastName":{"type":"string"},"guestEmail":{"type":"string"}}},"createdAt":{"type":"string"},"cancellationPolicies":{"type":"object","properties":{"cancelPolicyInfos":{"type":"array","items":{"type":"object","properties":{"cancelTime":{"type":"string"},"amount":{"type":"number"},"type":{"type":"string"}}}},"hotelRemarks":{"type":"string"},"refundableTag":{"type":"string"}}},"goodwillPayment":{"type":"object","description":"Goodwill payment information for the booking.","properties":{"amount":{"type":"number","description":"The amount of the payment."},"currency":{"type":"string","description":"The currency of the payment."},"description":{"type":"string","description":"Short description of the payment."}}}}}}}},"example":{"error":{"code":204,"message":"Booking Id not found"}}}}},"401":{"description":"Unauthorized","headers":{"Access-Control-Allow-Credentials":{"schema":{"type":"boolean","example":true}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Expose-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Max-Age":{"schema":{"type":"integer","example":10}},"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Date":{"schema":{"type":"string","example":"Tue, 20 Sep 2022 10:59:59 GMT"}},"Content-Length":{"schema":{"type":"integer","example":56}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"example":{"error":{"code":401,"message":"Unauthorized"}}}}}}},"put":{"tags":["Manage bookings"],"summary":"Cancel a booking","description":"## Overview\n\nCancel an existing confirmed booking. Cancellation policies determine whether a full refund, partial refund, or charges apply.\n\n## When to Use\n\n- **Guest cancellation** - Allow guests to cancel their bookings\n- **Administrative cancellation** - Cancel bookings from admin panels\n- **Policy enforcement** - Apply cancellation policies automatically\n\n## What You Get\n\n- **Cancellation status** - Success or failure of cancellation\n- **Charges information** - Any fees or charges that apply\n- **Refund details** - Amount refunded (if applicable)\n- **Updated booking status** - Booking marked as cancelled\n\n## Cancellation Outcomes\n\n- **CANCELLED** - Fully refundable, no charges\n- **CANCELLED_WITH_CHARGES** - Non-refundable or past cancellation deadline, charges apply\n- **Cancellation policies** - Applied automatically based on booking terms\n\n## Important Notes\n\n- **Non-refundable bookings** - Will be cancelled but still charged (status: CANCELLED_WITH_CHARGES)\n- **Policy enforcement** - Cancellation policies are automatically applied\n- **Past deadline** - Cancellations after the policy deadline may incur charges\n\n## Quick Start\n\nProvide the `bookingId` in the URL path. Returns cancellation status and any applicable charges or refunds.","parameters":[{"name":"bookingId","in":"path","schema":{"type":"string"},"required":true,"example":"crzhK9Lrm"},{"schema":{"type":"number","default":4,"format":"float"},"in":"query","name":"timeout","description":"request timeout in seconds","example":1.5}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"OK","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"integer","example":133}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["bookingId","status","currency"],"properties":{"bookingId":{"type":"string"},"status":{"type":"string"},"cancellation_fee":{"type":"number"},"refund_amount":{"type":"number"},"currency":{"type":"string"}}},"sandbox":{"type":"boolean"}}},"examples":{"non-refundable":{"summary":"Non-refundable booking cancellation","value":{"data":{"bookingId":"hSq2gVDrf","status":"CANCELLED_WITH_CHARGES","cancellation_fee":150,"refund_amount":0,"currency":"USD"}}},"refundable":{"summary":"Refundable booking cancellation","value":{"data":{"bookingId":"hSq2gVDrf","status":"CANCELLED","cancellation_fee":25,"refund_amount":125,"currency":"USD"}}}}}}},"204":{"description":"No Content","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"integer","example":133}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["bookingId","status","currency"],"properties":{"bookingId":{"type":"string"},"status":{"type":"string"},"cancellation_fee":{"type":"number"},"refund_amount":{"type":"number"},"currency":{"type":"string"}}},"sandbox":{"type":"boolean"}}},"example":{"error":{"code":204,"message":"booking id not found"}}}}},"304":{"description":"Not Modified","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"integer","example":133}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"example":{"error":{"code":304,"message":"unable to process request"}}}}},"401":{"description":"Unauthorized","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"integer","example":133}},"Connection":{"schema":{"type":"string","example":"keep-alive"}},"Access-Control-Allow-Origin":{"schema":{"type":"string","example":"*"}},"Access-Control-Allow-Headers":{"schema":{"type":"string","example":"Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, Authorization, accept, origin, Cache-Control, X-Requested-With, Content-Disposition"}},"Access-Control-Allow-Methods":{"schema":{"type":"string","example":"POST, HEAD, PATCH, OPTIONS, GET, PUT, DELETE"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"example":{"error":{"code":401,"message":"Unauthorized"}}}}}}}},"/bookings/":{"get":{"tags":["Manage bookings"],"summary":"Retrieve all bookings","description":"## Overview\n\nGet all bookings associated with your API key, with optional filtering by date ranges. Perfect for generating reports and managing your booking inventory.\n\n## When to Use\n\n- **Booking reports** - Generate reports of all bookings\n- **Date range queries** - Find bookings within specific date ranges\n- **Administrative overview** - View all bookings in your system\n- **Analytics** - Analyze booking patterns and trends\n\n## What You Get\n\n- **Complete booking list** - All bookings linked to your API key\n- **Filtered results** - Optional filtering by stay dates or booking creation dates\n- **Booking details** - Full information for each booking\n- **Status information** - Current status of each booking\n\n## Filtering Options\n\n- **Stay period** - Filter by check-in/check-out date range (`startDate`, `endDate`)\n- **Booking period** - Filter by when bookings were created (`bookingStartDate`, `bookingEndDate`)\n- **Status** - Filter by booking status (optional)\n\n## Quick Start\n\nNo parameters required for all bookings. Optionally provide date ranges to filter results. Returns all matching bookings with complete details.","parameters":[{"name":"startDate","in":"query","description":"Start date of the stay period. Returns bookings where the stay (check-in to check-out) overlaps with this date range.","required":false,"schema":{"type":"string","format":"date"},"example":"2024-08-30"},{"name":"endDate","in":"query","description":"End date of the stay period. Returns bookings where the stay (check-in to check-out) overlaps with this date range.","required":false,"schema":{"type":"string","format":"date"},"example":"2024-10-31"},{"name":"bookingStartDate","in":"query","description":"Start date of the booking creation period. Only bookings that were created on or after this date will be included.","required":false,"schema":{"type":"string","format":"date"},"example":"2024-08-30"},{"name":"bookingEndDate","in":"query","description":"End date of the booking creation period. Only bookings that were created on or before this date will be included.","required":false,"schema":{"type":"string","format":"date"},"example":"2024-08-30"},{"name":"status","in":"query","description":"Status of the bookings.","required":false,"schema":{"type":"string","enum":["confirmed","cancelled"]},"example":"confirmed"},{"name":"paymentStatus","in":"query","description":"Filter by payment status.","required":false,"schema":{"type":"string","enum":["succeeded","requires_capture"]},"example":"succeeded"},{"name":"Sandbox","in":"query","description":"Indicates if the request was made in a sandbox (test) environment","required":false,"schema":{"type":"string","enum":["0","1"]},"example":"1"},{"name":"customTags","in":"query","description":"Filter by customTags. Comma-separated `KEY:VALUE` pairs (e.g. `SOURCE:GOOGLE,TIER:GOLD`); all pairs are joined with AND. Keys must match `^[A-Z0-9_-]+$`, up to 5 keys, value up to 255 characters. Value matching is case-insensitive.","required":false,"schema":{"type":"string"},"example":"SOURCE:GOOGLE,TIER:GOLD"}],"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"The total number of bookings retrieved","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"count":{"type":"integer","description":"The total number of bookings returned in the response."},"data":{"type":"array","items":{"type":"object","required":["id","bookingId","status","checkin","checkout","currency"],"properties":{"id":{"type":"integer","description":"The unique identifier for the booking record."},"checkin":{"type":"string","description":"The check-in date for the booking (YYYY-MM-DD)."},"checkout":{"type":"string","description":"The check-out date for the booking (YYYY-MM-DD)."},"feed":{"type":"string","description":"Which feed was used for this booking. Null if the default feed was used."},"firstName":{"type":"string","description":"The first name of the person responsible for the booking."},"lastName":{"type":"string","description":"The last name of the person responsible for the booking."},"adults":{"type":"integer","description":"The number of adult guests in the booking."},"children":{"type":"string","description":"A comma delimited string of children's ages included in the booking. Can be empty if no children are included."},"hotel_confirmation_code":{"type":"string","description":"A unique confirmation code issued by the hotel."},"bookingId":{"type":"string","description":"The unique identifier for this booking"},"prebook_Id":{"type":"string","description":"The prebook ID used to confirm the booking."},"status":{"type":"string","description":"The current status of the booking (e.g., CONFIRMED, CANCELED)."},"payment_status":{"type":"string","description":"The status of the payment for this booking."},"payment_transaction_id":{"type":"string","description":"The transaction ID for the payment processed for this booking."},"retail_rate":{"type":"string","description":"The total cost of the booking in the specified currency."},"exchange_rate":{"type":"number","description":"The exchange rate used for converting to EUR"},"exchange_rate_usd":{"type":"number","description":"The exchange rate used for converting to USD."},"email":{"type":"string","description":"The email address associated with the booking."},"cancelPolicies":{"type":"string","description":"A JSON string containing the cancellation policy details, including penalties and deadlines."},"tag":{"type":"string","description":"Indicates if the booking is refundable ('RFN' for refundable, 'NRFN' for non-refundable)."},"last_free_cancellation_date":{"type":"string","description":"The latest date/time when the booking can be canceled without penalties (ISO 8601 format)."},"currency":{"type":"string","description":"The currency in which the booking was processed."},"nationality":{"type":"string","description":"The nationality of the primary guest, represented in ISO 2-letter country code format."},"holder_title":{"type":"string","description":"The title (Mr, Ms, Dr, etc.) of the person holding the booking. Can be empty."},"hotelId":{"type":"string","description":"The unique identifier for the hotel associated with this booking."},"Hotel_name":{"type":"string","description":"The name of the hotel associated with this booking."},"payment_data":{"type":"string","description":"A JSON string containing additional payment details. Can be empty."},"created_at":{"type":"string","description":"The timestamp when the booking was created (ISO 8601 format)."},"updated_at":{"type":"string","description":"The timestamp when the booking details were last updated (ISO 8601 format)."},"cancelled_at":{"type":"string","description":"The timestamp when the booking was canceled. Null if not canceled."},"refunded_at":{"type":"string","description":"The timestamp when the booking was refunded. Null if not refunded."},"amount_refunded":{"type":"number","description":"The total amount refunded for this booking, if applicable."},"refund_type":{"type":"string","description":"The type of refund issued, if applicable."},"guestId":{"type":"string","description":"The unique identifier for the guest associated with the booking."},"reqId":{"type":"string","description":"The request ID associated with this booking request."},"remarks":{"type":"string","description":"Any additional remarks or notes related to the booking."},"hotelRemarks":{"type":"string","description":"Any additional remarks or notes related to the hotel."},"client_reference":{"type":"string","description":"A reference string provided by the client for tracking the booking."},"IP":{"type":"number","description":"The IP address from which the booking request was made."},"sandbox":{"type":"number","description":"Indicates if this booking was made in a test/sandbox environment (0 for false, 1 for true)."},"version":{"type":"number","description":"The API version used for this booking request."},"link":{"type":"number","description":"A tracking or reference link related to the booking. Can be 0 if not applicable."},"client_commission":{"type":"number","description":"The commission amount received by the client for this booking."},"voucher_id":{"type":"string","description":"The unique identifier for any voucher applied to this booking."},"voucher_total_amount":{"type":"number","description":"The total amount covered by the voucher, if applicable."},"voucher_transation_id":{"type":"string","description":"The transaction ID associated with the voucher used for payment."},"processing_fee":{"type":"number","description":"The processing fee charged for this booking."},"supplier_Booking_Id":{"type":"string","description":"The unique booking ID assigned by the supplier."},"tracking_id":{"type":"string","description":"The campaign ID passed in from the client."}}}}}},"example":{"count":3,"data":[{"id":3320020,"checkin":"2024-09-01","checkout":"2024-09-03","firstName":"Steve","lastName":"Doe","adults":3,"children":"11","hotel_confirmation_code":"dLcN7migy","booking_Id":"Rb5JVigyN","prebook_Id":"0dLcN7mVX","status":"CONFIRMED","feed":"custom_feed","payment_status":"succeeded","payment_transaction_id":"tr_cts_vlpBFTjSK7ifl3t_0dGqQ","retail_rate":"654.84","exchange_rate":0.9187300518,"exchange_rate_usd":1,"email":"s.doe@liteapi.travel","cancelPolicies":"{\"cancelPolicyInfos\":null,\"hotelRemarks\":null}","tag":"","last_free_cancellation_date":"0001-01-01T00:00:00Z","currency":"USD","nationality":"US","holder_title":"","hotelId":"lp19e75","Hotel_name":"","payment_data":"{}","created_at":"2024-08-18T18:39:14Z","updated_at":"2024-08-18T18:39:16Z","cancelled_at":null,"refunded_at":null,"amount_refunded":0,"refund_type":"","guestId":"","reqId":"IMuclrVuu14wwkxTGXaZi","remarks":"quiet room please","client_reference":"","IP":0,"sandbox":1,"version":30,"link":0,"client_commission":58.995000000000005,"voucher_id":null,"voucher_total_amount":0,"voucher_transation_id":null,"processing_fee":0,"supplier_Booking_Id":"Rb5JVigyN","tracking_id":""}]}}}},"400":{"description":"Bad request, missing or invalid parameters.","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Length":{"schema":{"type":"string","example":"47"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"message":{"type":"string","description":"Message providing context about the error"}}}}},"example":{"error":{"code":400,"message":"Invalid startDate or endDate"}}}}},"401":{"description":"Unauthorized access.","headers":{"Content-Type":{"schema":{"type":"string","example":"application/json; charset=utf-8"}},"Content-Encoding":{"schema":{"type":"string","example":"gzip"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","description":"Numeric error code representing the type of issue"},"message":{"type":"string","description":"Message providing context about the error"}}}}},"example":{"error":{"code":401,"message":"Unauthorized"}}}}}}}},"/bookings/{bookingId}/amend":{"put":{"tags":["Manage bookings"],"summary":"Amend guest name on a booking","description":"## Overview\n\nUpdate guest information (name and email) for an existing booking. Useful for correcting typos or updating guest details after booking.\n\n## When to Use\n\n- **Name corrections** - Fix typos in guest names\n- **Email updates** - Update guest email addresses\n- **Guest changes** - Change guest information after booking\n- **Support requests** - Update booking details per customer requests\n\n## What You Get\n\n- **Confirmation** - Success message when amendment is complete\n- **Updated booking** - Booking reflects the new guest information\n\n## Editable Fields\n\n- **First name** - Guest's first name\n- **Last name** - Guest's last name\n- **Email** - Guest's email address\n- **Remarks** - Optional additional notes\n\n## Limitations\n\n- **Holder only** - Only the booking holder's information can be updated\n- **Name and email** - Other guest details cannot be amended\n\n## Quick Start\n\nProvide the `bookingId` and updated guest information (firstName, lastName, email). Optionally include remarks. Returns confirmation of the update.","parameters":[{"name":"bookingId","in":"path","schema":{"type":"string"},"required":true,"description":"(Required) The unique identifier of the booking to amend.","example":"D_hitGeNh"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["holder"],"properties":{"holder":{"type":"object","required":["firstName","lastName","email"],"properties":{"firstName":{"type":"string","description":"The new first name of the booking holder."},"lastName":{"type":"string","description":"The new last name of the booking holder."},"email":{"type":"string","description":"The new email address of the booking holder."},"phone":{"type":"string","description":"The new phone number of the booking holder."}}},"remarks":{"type":"string","description":"Optional remarks for the amendment request."}}},"examples":{"Amend guest name":{"value":{"holder":{"firstName":"John","lastName":"Doe","email":"john@example.org","phone":"+14155551234"},"remarks":"A quiet room please"}}}}}},"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"Amendment request created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","description":"Amendment request ID."},"bookingId":{"type":"string","description":"Booking ID being amended."},"userId":{"type":"integer","description":"User ID who owns the booking."},"type":{"type":"string","description":"Type of amendment (e.g., UPDATE)."},"subType":{"type":"string","description":"Subtype of amendment (e.g., UPDATE_NAME_CHANGE)."},"status":{"type":"string","description":"Status of the amendment request (e.g., PENDING)."},"prebookId":{"type":"string","description":"Prebook ID if applicable."},"holderEmail":{"type":"string","description":"Holder's email after amendment."},"holderFirstName":{"type":"string","description":"Holder's first name after amendment."},"holderLastName":{"type":"string","description":"Holder's last name after amendment."},"holderPhone":{"type":"string","description":"Holder's phone after amendment."},"remarks":{"type":"string","description":"Remarks for the amendment."},"guests":{"type":"array","items":{},"description":"List of guests (if any)."},"createdBy":{"type":"integer","description":"User ID who created the amendment request."},"createdAt":{"type":"string","description":"Timestamp when the amendment was created."},"updatedAt":{"type":"string","description":"Timestamp when the amendment was last updated."}}},"examples":{"Amendment response":{"value":{"id":566,"bookingId":"D_hitGeNh","userId":927,"type":"UPDATE","subType":"UPDATE_NAME_CHANGE","status":"PENDING","prebookId":"","holderEmail":"john@example.org","holderFirstName":"John","holderLastName":"Doe","holderPhone":null,"remarks":"A quiet room please","guests":[],"createdBy":2051,"createdAt":"2025-06-18T16:36:14.033Z","updatedAt":"2025-06-18T16:36:14.033Z"}}}}}},"400":{"description":"Bad request. Invalid input or missing required fields.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Missing holder":{"value":{"error":{"code":400,"message":"Missing holder object in request body."}}}}}}},"401":{"description":"Unauthorized. Invalid or missing API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Unauthorized":{"value":{"error":{"code":401,"message":"Unauthorized"}}}}}}}}}},"/bookings/{bookingId}/alternative-prebooks":{"post":{"tags":["Manage bookings"],"summary":"Amend booking checkin, checkout or occupancies","description":"## Overview\n\n**Hard Amendment** — Search for alternative rates at the same hotel and create ready-to-book prebook sessions for a confirmed booking. Used when the guest needs to change their check-in/check-out dates or room occupancy.\n\n## When to Use\n\n- **Date changes** — Guest needs different check-in or check-out dates\n- **Occupancy changes** — Guest needs a different number of adults or children\n- **Hard amendments** — Situations where the booking must be cancelled and re-booked with new parameters\n\n## How It Works\n\n1. The system searches for live availability at the same hotel with the new parameters.\n2. Up to `maxPrebooks` alternative rates are selected (sorted by price ascending). Defaults to 3 when omitted; capped at 10 (any larger value is silently clamped to 10).\n3. A prebook session is created for each rate.\n4. The caller receives a list of `prebookId` values ready to be used with `POST /rates/rebook`.\n\n## What You Get\n\n- **Up to `maxPrebooks` prebook sessions** — Each with a `prebookId`, final pricing, cancellation policies, and room details\n- **Price comparison** — `priceDifferencePercent` shows how each alternative compares to the **original booking's selling price** (negative = cheaper than what the guest paid, positive = more expensive)\n- **Policy change flags** — `cancellationChanged` and `boardChanged` highlight any policy differences\n\n## Completing the Amendment\n\nPass the chosen `prebookId` and the original `bookingId` as `existingBookingId` to `POST /rates/rebook`. On success, the new booking is created **and the original booking is automatically cancelled** — no separate cancellation call is needed.\n\n## Key Notes\n\n- The booking must be in **CONFIRMED** status.\n- If the original booking is non-refundable, only non-refundable alternatives are returned (unless overridden with `refundableRatesOnly`).\n- **Payment type is honoured** — only rates that support the original booking's payment type are returned. A pay-at-property booking only sees `PROPERTY_PAY` alternatives; every other booking (including pay-later, succeeded, credit_line) only sees `NUITEE_PAY` alternatives. Pay-later eligibility additionally requires a refundable rate, which is enforced automatically when the original booking was refundable.\n- The nationality and currency of the original booking are used for the availability search.\n- If the cancellation of the original booking fails after the new booking is created, the error is logged but the new booking is still returned.\n\n## Quick Start\n\n1. Call this endpoint with the `bookingId` and new `occupancies`/dates — get back up to `maxPrebooks` `prebookId` values.\n2. Call `POST /rates/rebook` with the chosen `prebookId` and `existingBookingId` — new booking confirmed, original cancelled.","parameters":[{"name":"bookingId","in":"path","schema":{"type":"string"},"required":true,"description":"(Required) The unique identifier of the confirmed booking to amend.","example":"iv0Ldy9fH"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["occupancies"],"properties":{"occupancies":{"type":"array","description":"The desired room occupancies for the amended stay. One entry per room.","items":{"type":"object","required":["adults"],"properties":{"adults":{"type":"integer","description":"Number of adults for this room.","example":2},"children":{"type":"array","description":"Ages of children for this room (empty array if no children).","items":{"type":"integer"},"example":[]}}}},"checkin":{"type":"string","format":"date","description":"The new check-in date in YYYY-MM-DD format. Must be before `checkout`.","example":"2026-02-28"},"checkout":{"type":"string","format":"date","description":"The new check-out date in YYYY-MM-DD format. Must be after `checkin`.","example":"2026-03-02"},"refundableRatesOnly":{"type":"boolean","description":"When true, only fully refundable alternative rates are returned. Defaults to false (or true if the original booking was refundable).","example":false},"boardType":{"type":"string","description":"Filter results by board/meal-plan type (e.g. `RO` for Room Only, `BB` for Bed & Breakfast). Leave empty to return all board types.","example":"RO"},"maxPrebooks":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum number of alternative prebook sessions to create. Defaults to 3 when omitted. Values above 10 are silently capped at 10; values ≤ 0 fall back to the default. The response may contain fewer entries when the hotel does not have enough distinct alternative offers.","example":5}}},"examples":{"Alternative prebook request":{"value":{"occupancies":[{"adults":2}],"checkin":"2026-02-28","checkout":"2026-03-02"}}}}}},"security":[{"apikeyAuth":[]}],"responses":{"200":{"description":"Up to `maxPrebooks` (default 3, max 10) alternative prebook sessions created successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","description":"Array of up to `maxPrebooks` alternative prebook sessions, sorted by price ascending.","items":{"type":"object","properties":{"prebookId":{"type":"string","description":"Unique prebook session ID. Use this with `POST /rates/rebook` (along with `existingBookingId`) to complete the hard amendment. The original booking will be automatically cancelled on success."},"offerId":{"type":"string","description":"The offer ID for this alternative rate."},"hotelId":{"type":"string","description":"The hotel ID — same as the original booking."},"checkin":{"type":"string","description":"The check-in date for this alternative in YYYY-MM-DD format."},"checkout":{"type":"string","description":"The check-out date for this alternative in YYYY-MM-DD format."},"currency":{"type":"string","description":"Currency for all prices in this prebook — inherited from the original booking."},"termsAndConditions":{"type":"string","description":"Terms and conditions for this alternative rate."},"price":{"type":"number","description":"Total price for all rooms in this prebook session."},"priceType":{"type":"string","description":"Pricing model. `commission` means the price includes the client commission."},"priceDifferencePercent":{"type":"number","description":"Percentage difference between this alternative's total price and the **original booking's selling price** (currency-converted into this alternative's currency). 0 means the same price; positive values mean the alternative is more expensive, negative values mean it is cheaper. Floored to an integer."},"commission":{"type":"number","description":"Client commission amount included in the total price."},"suggestedSellingPrice":{"type":"number","description":"Minimum public selling price (MSP) for all rooms combined."},"cancellationChanged":{"type":"boolean","description":"True if the cancellation policy for this alternative differs from the original offer."},"boardChanged":{"type":"boolean","description":"True if the meal plan (board type) for this alternative differs from the original offer."},"supplier":{"type":"string","description":"Name of the supplier providing this rate."},"supplierId":{"type":"integer","description":"Numeric identifier of the supplier."},"paymentTypes":{"type":"array","items":{"type":"string"},"description":"Supported payment methods for this prebook session."},"roomTypes":{"type":"array","description":"Room and rate details for this alternative.","items":{"type":"object","properties":{"name":{"type":"string","description":"Room type name."},"rates":{"type":"array","description":"One rate entry per occupancy in the request.","items":{"type":"object","properties":{"rateId":{"type":"string","description":"Unique rate identifier."},"occupancyNumber":{"type":"integer","description":"Which occupancy slot this rate belongs to."},"name":{"type":"string","description":"Room name for this rate."},"boardType":{"type":"string","description":"Meal plan code (e.g. `RO`, `BB`)."},"boardName":{"type":"string","description":"Full meal plan name (e.g. `Room Only`, `Bed & Breakfast`)."},"adultCount":{"type":"integer","description":"Number of adults for this rate."},"childCount":{"type":"integer","description":"Number of children for this rate."},"childrenAges":{"type":"array","items":{"type":"integer"},"description":"Ages of children included in this rate."},"priceType":{"type":"string","description":"Pricing model for this rate."},"commission":{"type":"array","description":"Commission breakdown per stay night or per room.","items":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}}}},"retailRate":{"type":"object","description":"Final pricing breakdown including taxes and fees.","properties":{"total":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","description":"Total amount due for this room."},"currency":{"type":"string"}}}},"suggestedSellingPrice":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"},"source":{"type":"string"}}}},"taxesAndFees":{"type":"array","description":"Itemised taxes and fees.","items":{"type":"object","properties":{"included":{"type":"boolean","description":"Whether the fee is included in the total."},"description":{"type":"string"},"amount":{"type":"number"},"currency":{"type":"string"}}}}}},"cancellationPolicies":{"type":"object","properties":{"cancelPolicyInfos":{"type":"array","items":{"type":"object","properties":{"cancelTime":{"type":"string","description":"Deadline before a fee applies (ISO 8601)."},"amount":{"type":"number","description":"Cancellation fee amount (0 = fully refundable)."},"currency":{"type":"string"},"type":{"type":"string","description":"Fee type, e.g. `amount`."},"timezone":{"type":"string"}}}},"hotelRemarks":{"type":"array","items":{"type":"string"}},"refundableTag":{"type":"string","description":"`RFN` for refundable, `NRFN` for non-refundable."}}},"paymentTypes":{"type":"array","items":{"type":"string"}}}}}}}}}}},"guestLevel":{"type":"integer","description":"Guest loyalty level used for loyalty programme pricing."},"sandbox":{"type":"boolean","description":"Present and `true` when the request was made in sandbox mode."}}},"examples":{"Alternative prebooks response":{"value":{"data":[{"prebookId":"aB1cD2eF3","offerId":"GE5ESNBSIZKVEQ2O...","hotelId":"lp12345","checkin":"2026-02-28","checkout":"2026-03-02","currency":"USD","termsAndConditions":"","price":320.5,"priceType":"commission","priceDifferencePercent":5,"commission":16.02,"suggestedSellingPrice":350,"cancellationChanged":false,"boardChanged":false,"supplier":"nuitee","supplierId":2,"paymentTypes":["CREDIT_CARD"],"roomTypes":[{"name":"Standard King Room","rates":[{"rateId":"I42FUVCPJZB...","occupancyNumber":1,"name":"Standard King Room - Room only","boardType":"RO","boardName":"Room Only","adultCount":2,"childCount":0,"childrenAges":[],"priceType":"commission","commission":[{"amount":16.02,"currency":"USD"}],"retailRate":{"total":[{"amount":320.5,"currency":"USD"}],"suggestedSellingPrice":[{"amount":350,"currency":"USD","source":"expedia.com"}],"taxesAndFees":[{"included":false,"description":"Resort Fee","amount":43.61,"currency":"USD"}]},"cancellationPolicies":{"cancelPolicyInfos":[{"cancelTime":"2026-02-21T00:00:00Z","amount":320.5,"currency":"USD","type":"amount","timezone":"GMT"}],"hotelRemarks":[],"refundableTag":"NRFN"},"paymentTypes":["CREDIT_CARD"]}]}]}],"guestLevel":0}}}}}},"400":{"description":"Bad request. Invalid or missing fields.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Missing occupancies":{"value":{"error":{"code":400,"message":"Key: 'CreateAlternativePrebooks.Occupancies' Error:Field validation for 'Occupancies' failed on the 'required' tag"}}},"Invalid dates":{"value":{"error":{"code":400,"message":"checkin date must be before checkout date"}}},"Invalid board type":{"value":{"error":{"code":400,"message":"invalid board type"}}}}}}},"401":{"description":"Unauthorized. Invalid or missing API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Unauthorized":{"value":{"error":{"code":401,"message":"Unauthorized"}}}}}}},"404":{"description":"Booking not found, not confirmed, or no availability for the requested parameters.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Booking not found":{"value":{"error":{"code":1000,"message":"invalid booking id, booking not found"}}},"No availability":{"value":{"error":{"code":1008,"message":"no availability found"}}}}}}},"500":{"description":"Internal server error. Could not create alternative prebooks.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"examples":{"Prebook creation failed":{"value":{"error":{"code":500,"message":"could not make alternative prebooks, please try again"}}}}}}}}}}},"x-readme":{"explorer-enabled":true,"proxy-enabled":true,"samples-enabled":true}}