{"openapi":"3.0.2","info":{"title":"Reservation APIs","description":"API supported for Property Reservation","version":"1.0.0","contact":{"name":"API Support","url":"https://www.lastminute.com","email":"info@lastminute.com"},"termsOfService":"https://www.lastminute.com/terms/terms-and-conditions.html"},"servers":[{"url":"https://qa-partner.momorooms.com","description":"qa server"},{"url":"https://partner.momorooms.com","description":"production server"}],"tags":[{"name":"Reservation","description":"API related to Reservation."}],"paths":{"/v1/reservation":{"post":{"description":"API supported for Property Reservation","operationId":"CreateReservation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"400":{"description":"Client Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationClientErrorResponse"}}}},"500":{"description":"Server Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponse"}}}}},"summary":"Create Reservation"}},"/v1/reservation/cancel":{"post":{"description":"API which will do the cancellation of the given reservation.","operationId":"CancelReservation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCancelRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCancelResponse"}}}},"400":{"description":"Client Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationCancelClientErrorResponse"}}}},"500":{"description":"Server Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponse"}}}}},"summary":"Cancel Reservation"}},"/v1/reservations/list":{"post":{"description":"API to retrieve all the reservations for given criteria.","operationId":"ReservationList","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationListRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationListResponse"}}}},"400":{"description":"Client Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationErrorResponse"}}}},"500":{"description":"Server Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponse"}}}}},"summary":"Reservation List"}},"/v1/reservations/detail":{"post":{"description":"API to retrieve details the reservations for given criteria.","operationId":"ReservationDetail","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationDetailRequest"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationDetailResponse"}}}},"400":{"description":"Client Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationErrorResponse"}}}},"500":{"description":"Server Side Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerErrorResponse"}}}}},"summary":"Reservation Detail"}}},"components":{"schemas":{"ReservationErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ReservationError"}}}},"ReservationCancelRequest":{"type":"object","required":["reservationId","cancelReason"],"properties":{"reservationId":{"type":"integer","format":"int64","description":"Reservation ID to be cancelled."},"cancelReason":{"type":"string","description":"Reason for the cancellation."}}},"ReservationCancelResponse":{"type":"object","properties":{"cancelStatus":{"type":"string","description":"Cancellation Status \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eCancellation Status\u003c/th\u003e \u003cth\u003eCancellation Value\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003eCancellation is in Success\u003c/td\u003e\u003ctd\u003eSUCCESS\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eCancellation is in Failed\u003c/td\u003e\u003ctd\u003eFAILED\u003c/td\u003e\u003c/tr\u003e   \u003c/tbody\u003e \u003c/table\u003e"},"currencyCode":{"type":"string","description":"Currency code of the refundAmount"},"refundAmount":{"type":"string","description":"The amount to be refunded to the customer after cancellation. Decimal value represented as string to preserve precision."}}},"ReservationCancelClientErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/CancellationClientError"}}}},"ReservationCancelServerErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/CancellationServerError"}}}},"ReservationResponse":{"type":"object","properties":{"reservationId":{"type":"integer","format":"int64","description":"Reservation ID created and used for future reference."},"reservationStatus":{"type":"string","description":"Reservation Status \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eReservation Status\u003c/th\u003e \u003cth\u003eReservation Value\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003eReservation is in Success\u003c/td\u003e\u003ctd\u003eSuccess\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003eReservation is in Failed\u003c/td\u003e\u003ctd\u003eFailed\u003c/td\u003e\u003c/tr\u003e   \u003c/tbody\u003e \u003c/table\u003e"}}},"ReservationClientErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ReservationClientError"}}}},"ServerErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/ServerError"}}}},"ReservationError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string","description":"Possible error responses:  \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eErrorCode\u003c/th\u003e \u003cth\u003eErrorDesc\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003e3001\u003c/td\u003e\u003ctd\u003eReservation does not exist\u003c/td\u003e\u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e"}}},"ReservationClientError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string","description":"Possible error responses:  \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eErrorCode\u003c/th\u003e \u003cth\u003eErrorDesc\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003e4001 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - Property ID \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4002 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - CheckIn \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4003 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - checkOut \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4004 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - Market Code \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4005 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - productType \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4006 \u003c/td\u003e\u003ctd\u003e RoomStay is required, Please provide a valid value \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4007 \u003c/td\u003e\u003ctd\u003e RoomStay Id is required, Please provide a valid value \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4008 \u003c/td\u003e\u003ctd\u003e Adult Count is required, Please provide a valid value \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4009 \u003c/td\u003e\u003ctd\u003e Guest is required, Please provide a valid value \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4010 \u003c/td\u003e\u003ctd\u003e Number of Child per room must be within 8 \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4011 \u003c/td\u003e\u003ctd\u003e Number of Adult per room must be within 9 \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4012 \u003c/td\u003e\u003ctd\u003e Invalid no of rooms requested - max 9 rooms supported \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4013 \u003c/td\u003e\u003ctd\u003e Number of propertyId requested must be within 100 \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4014 \u003c/td\u003e\u003ctd\u003e CheckIn must be in the future \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4015 \u003c/td\u003e\u003ctd\u003e CheckOut must be in the future \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4016 \u003c/td\u003e\u003ctd\u003e CheckIn/CheckOut must be in the format: yyyy-MM-dd \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4017 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - Guest Email \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4018 \u003c/td\u003e\u003ctd\u003e Invalid format for Guest Email \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4019 \u003c/td\u003e\u003ctd\u003e Missing mandatory parameter - Primary Guest Phone Number \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4020 \u003c/td\u003e\u003ctd\u003e CheckOut must be after checkIn \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4023 \u003c/td\u003e\u003ctd\u003e Invalid Value for Market, Please provide a valid value FR, DE, IT, ES, GB \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e1022 \u003c/td\u003e\u003ctd\u003e Invalid Value for Product Type, Please provide a valid value Hotel, Package \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4024 \u003c/td\u003e\u003ctd\u003e PropertyId is required, Please provide a valid value \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4025 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - LM Reservation ID \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4026 \u003c/td\u003e\u003ctd\u003e Missing mandatory parameter - partnerReservationId \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4027 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - Product ID \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4028 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - RateType \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4029 \u003c/td\u003e\u003ctd\u003e PropertyId not mapped for distrubution \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4030 \u003c/td\u003e\u003ctd\u003e Reservation Already Exists with reservationId - \u003cID\u003e \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4035 \u003c/td\u003e\u003ctd\u003e Validation Failed for reservationId - \u003cID\u003e \u003c/td\u003e\u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e"}}},"ServerError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string","description":"Possible error responses:  \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eErrorCode\u003c/th\u003e \u003cth\u003eErrorDesc\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003e500 \u003c/td\u003e\u003ctd\u003e An unexpected error occurred. Please try again later. \u003c/td\u003e\u003c/tr\u003e  \u003c/tbody\u003e \u003c/table\u003e"}}},"CancellationServerError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string","description":"Possible error responses:  \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eErrorCode\u003c/th\u003e \u003cth\u003eErrorDesc\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003e500 \u003c/td\u003e\u003ctd\u003e An unexpected error occurred. Please try again later. \u003c/td\u003e\u003c/tr\u003e  \u003c/tbody\u003e \u003c/table\u003e"}}},"CancellationClientError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string","description":"Possible error responses:  \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eErrorCode\u003c/th\u003e \u003cth\u003eErrorDesc\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003e4025 \u003c/td\u003e\u003ctd\u003e Missing Mandatory Parameter - LM Reservation ID \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4031 \u003c/td\u003e\u003ctd\u003e Reservation already cancelled \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4032 \u003c/td\u003e\u003ctd\u003e Unable to Cancel the reservation, Please Try Again \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4033 \u003c/td\u003e\u003ctd\u003e Cancel Penalty is Not Available \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4034 \u003c/td\u003e\u003ctd\u003e Reservation does not exist \u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003e4036 \u003c/td\u003e\u003ctd\u003e Reason for Cancel is Mandatory \u003c/td\u003e\u003c/tr\u003e \u003c/tbody\u003e \u003c/table\u003e"}}},"ReservationListRequest":{"type":"object","description":"Request to fetch reservation list. Only one filter criteria can be provided at a time: partnerReservationIds, reservationIds, check-in date range (checkInFrom \u0026 checkInTo), or booking date range (bookedFrom \u0026 bookedTo).","allOf":[{"oneOf":[{"required":["partnerReservationIds"],"properties":{"partnerReservationIds":{"type":"array","description":"List of partner reservation IDs to filter","minItems":1,"items":{"type":"string"}}}},{"required":["reservationIds"],"properties":{"reservationIds":{"type":"array","description":"List of reservation IDs to filter","minItems":1,"items":{"type":"integer","format":"int64"}}}},{"required":["checkInStartDate","checkInEndDate"],"properties":{"checkInStartDate":{"type":"string","format":"date","description":"Start date for check-in range filter in the format (yyyy-MM-dd)"},"checkInEndDate":{"type":"string","format":"date","description":"End date for check-in range filter in the format (yyyy-MM-dd)"}}},{"required":["bookingStartDate","bookingEndDate"],"properties":{"bookingStartDate":{"type":"string","format":"date","description":"Start date for booking date range filter in the format (yyyy-MM-dd)"},"bookingEndDate":{"type":"string","format":"date","description":"End date for booking date range filter in the format (yyyy-MM-dd)"}}}]}]},"ReservationDetailRequest":{"type":"object","description":"Request to fetch reservation list. Only one filter criteria can be provided at a time: partnerReservationIds, reservationIds, check-in date range (checkInFrom \u0026 checkInTo), or booking date range (bookedFrom \u0026 bookedTo).","allOf":[{"oneOf":[{"required":["partnerReservationIds"],"properties":{"partnerReservationIds":{"type":"array","description":"List of partner reservation IDs to filter","minItems":1,"items":{"type":"string"}}}},{"required":["reservationIds"],"properties":{"reservationIds":{"type":"array","description":"List of reservation IDs to filter","minItems":1,"items":{"type":"integer","format":"int64"}}}},{"required":["checkInStartDate","checkInEndDate"],"properties":{"checkInStartDate":{"type":"string","format":"date","description":"Start date for check-in range filter in the format (yyyy-MM-dd)"},"checkInEndDate":{"type":"string","format":"date","description":"End date for check-in range filter in the format (yyyy-MM-dd)"}}},{"required":["bookingStartDate","bookingEndDate"],"properties":{"bookingStartDate":{"type":"string","format":"date","description":"Start date for booking date range filter in the format (yyyy-MM-dd)"},"bookingEndDate":{"type":"string","format":"date","description":"End date for booking date range filter in the format (yyyy-MM-dd)"}}}]}]},"ReservationListResponse":{"type":"object","description":"Response for the reservation list API.","properties":{"reservations":{"type":"array","description":"List of reservations.","items":{"$ref":"#/components/schemas/ReservationSummary"}}}},"ReservationDetailResponse":{"type":"object","description":"Response for the reservation Detail API.","properties":{"reservations":{"type":"array","description":"List of reservation details.","items":{"$ref":"#/components/schemas/ReservationDetailedResponse"}}}},"ReservationSummary":{"type":"object","description":"Summary reservation response returned when `showDetails` is false.","properties":{"partnerReservationId":{"type":"string","description":"Reservation ID from the partner side for reference."},"reservationId":{"type":"integer","format":"int64","description":"momorooms reservation ID."},"bookingStatus":{"type":"string","description":"Current status of the reservation (e.g. Booked, Cancelled)."}}},"ReservationDetailedResponse":{"type":"object","description":"Detailed reservation response returned when `showDetails` is true. Fields returned vary based on `bookingStatus`: - **Booked**: returns all fields including `bookingAmount`, `roomStays`. Does not return `cancelDate` or `refundAmount`. - **Cancelled**: returns `cancelDate`, `refundAmount` and `bookingAmount`. Does not return `roomStays`.\n","properties":{"partnerReservationId":{"type":"string","description":"Reservation ID from the partner side for reference."},"reservationId":{"type":"integer","format":"int64","description":"momorooms reservation ID."},"bookDate":{"type":"string","format":"date-time","description":"Date and time when the reservation was booked."},"cancelDate":{"type":"string","format":"date","description":"Date when the reservation was cancelled. Present only when `bookingStatus` is Cancelled."},"bookingAmount":{"type":"number","description":"Total booking amount. Present for both Booked and Cancelled statuses."},"refundAmount":{"type":"number","description":"Amount to be refunded. Present only when `bookingStatus` is Cancelled."},"currency":{"type":"string","description":"Currency code for the booking/refund amount."},"bookingStatus":{"type":"string","description":"Current status of the reservation (e.g. Booked, Cancelled)."},"roomStays":{"type":"array","description":"List of room stays with cancel penalty details. Present only when `bookingStatus` is Booked.","items":{"$ref":"#/components/schemas/ReservationListRoomStay"}},"checkInDate":{"type":"string","format":"date","description":"Check-in date in the format (yyyy-MM-dd)."},"checkOutDate":{"type":"string","format":"date","description":"Check-out date in the format (yyyy-MM-dd)."}}},"ReservationListRoomStay":{"type":"object","description":"Room stay details including cancellation penalty windows.","properties":{"id":{"type":"integer","format":"int32","description":"Unique ID for the room stay."},"cancelPenalties":{"type":"array","description":"List of cancellation penalty windows applicable to this room stay.","items":{"$ref":"#/components/schemas/CancelPenaltyWindow"}}}},"CancelPenaltyWindow":{"type":"object","description":"Defines a cancellation penalty window with applicable dates and penalty amount.","properties":{"penaltyStartDate":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ssXXX","description":"Start date of the penalty window in the format (yyyy-MM-dd)."},"penaltyEndDate":{"type":"string","format":"yyyy-MM-dd'T'HH:mm:ssXXX","description":"End date of the penalty window in the format (yyyy-MM-dd)."},"penaltyAmount":{"type":"number","description":"Penalty amount applicable within this window."},"currency":{"type":"string","description":"Currency code for the penalty amount."}}},"ReservationListError":{"type":"object","properties":{"errorCode":{"type":"integer","format":"int32"},"errorDescription":{"type":"string"}}},"ReservationRequest":{"type":"object","required":["propertyId","reservationId","checkIn","checkOut","market","rateType","productType","roomStays"],"properties":{"propertyId":{"description":"momorooms ID of the property against which reservation is triggered.","type":"integer","format":"int64"},"reservationId":{"type":"integer","format":"int64","description":"Reservation Id for as returned in the Quote response associated with the Reservation."},"partnerReservationId":{"type":"integer","format":"int64","description":"Reservation ID from the Partner Side for reference."},"checkIn":{"type":"string","description":"Date of check-in in the format (yyyy-mm-dd)","format":"date"},"checkOut":{"type":"string","description":"Date of checkout (not included in stay) in the format (yyyy-mm-dd)","format":"date"},"market":{"type":"string","description":"ISO country codes for the market \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eCountry Name \u003c/th\u003e \u003cth\u003eCountry code\u003c/th\u003e \u003c/tr\u003e\u003c/thead\u003e\u003ctbody\u003e \u003ctr\u003e \u003ctd\u003eAustria\u003c/td\u003e \u003ctd\u003eAT\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eBelgium\u003c/td\u003e \u003ctd\u003eBE\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eBulgaria\u003c/td\u003e \u003ctd\u003eBG\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eChile\u003c/td\u003e \u003ctd\u003eCL\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eCroatia\u003c/td\u003e \u003ctd\u003eHR\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eCyprus\u003c/td\u003e \u003ctd\u003eCY\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eCzechia\u003c/td\u003e \u003ctd\u003eCZ\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eDenmark\u003c/td\u003e \u003ctd\u003eDK\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eEstonia\u003c/td\u003e \u003ctd\u003eEE\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eFinland\u003c/td\u003e \u003ctd\u003eFI\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eFrance\u003c/td\u003e \u003ctd\u003eFR\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eGermany\u003c/td\u003e \u003ctd\u003eDE\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eHungary\u003c/td\u003e \u003ctd\u003eHU\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eIceland\u003c/td\u003e \u003ctd\u003eIS\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eIndia\u003c/td\u003e \u003ctd\u003eIN\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eIreland\u003c/td\u003e \u003ctd\u003eIE\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eItaly\u003c/td\u003e \u003ctd\u003eIT\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eLatvia\u003c/td\u003e \u003ctd\u003eLV\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eLithuania\u003c/td\u003e \u003ctd\u003eLT\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eLuxembourg\u003c/td\u003e \u003ctd\u003eLU\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eMalta\u003c/td\u003e \u003ctd\u003eMT\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eMexico\u003c/td\u003e \u003ctd\u003eMX\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eNetherlands\u003c/td\u003e \u003ctd\u003eNL\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eNorway\u003c/td\u003e \u003ctd\u003eNO\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003ePoland\u003c/td\u003e \u003ctd\u003ePL\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003ePortugal\u003c/td\u003e \u003ctd\u003ePT\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eRomania\u003c/td\u003e \u003ctd\u003eRO\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eSlovakia\u003c/td\u003e \u003ctd\u003eSK\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eSlovenia\u003c/td\u003e \u003ctd\u003eSI\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eSpain\u003c/td\u003e \u003ctd\u003eES\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eSweden\u003c/td\u003e \u003ctd\u003eSE\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eSwitzerland\u003c/td\u003e \u003ctd\u003eCH\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eUnited Kingdom\u003c/td\u003e \u003ctd\u003eGB\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eUnited States of America\u003c/td\u003e \u003ctd\u003eUS\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eArgentina\u003c/td\u003e \u003ctd\u003eAR\u003c/td\u003e \u003c/tr\u003e \u003ctr\u003e \u003ctd\u003eGreece\u003c/td\u003e \u003ctd\u003eGR\u003c/td\u003e \u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e"},"rateType":{"type":"string","description":"Parameter denoting for which kind of rate is the request triggered as in below table \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eScenario\u003c/th\u003e \u003cth\u003eRate Type\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003eRegular Rate\u003c/td\u003e\u003ctd\u003eBAR\u003c/td\u003e\u003c/tr\u003e \u003c/tbody\u003e\u003c/table\u003e"},"productType":{"type":"string","description":"Parameter denoting for which kind of product is the request triggered as in below table \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eScenario\u003c/th\u003e \u003cth\u003eSearch Path\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003eRequest includes only hotel accommodations\u003c/td\u003e\u003ctd\u003eHotel\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eRequest includes only packages bundled with hotel stays\u003c/td\u003e\u003ctd\u003ePackage\u003c/td\u003e\u003c/tr\u003e\u003c/tbody\u003e\u003c/table\u003e"},"roomStays":{"type":"array","maxItems":9,"minItems":1,"description":"Collection for holding the guest details for each room requested. Collection to be repeated for each room.","items":{"$ref":"#/components/schemas/RoomStay"}}}},"RoomStay":{"type":"object","required":["id","productId","adultCount","guestDetails"],"properties":{"id":{"type":"integer","format":"int32","description":"Unique identifier for each room stay in the reservation. Room ids must start at 0 and increment by 1 for each additional room (0,1,2,...)."},"productId":{"type":"integer","description":"ID of the product against which the reservation is triggered. Product ID should be one from the propertyId.","format":"int64"},"adultCount":{"type":"integer","format":"int32","minimum":1,"maximum":9,"description":"Number of Adults in the party mix."},"childAges":{"type":"array","maxItems":8,"description":"List of ages of the children in the party mix.Comma separated values. Example - [2,5] denotes 2 children in the party mix of ages 2 \u0026 5.","items":{"type":"integer","format":"int32"}},"guestDetails":{"type":"array","maxItems":9,"minItems":1,"description":"Collection for holding the guest details for each room requested","items":{"$ref":"#/components/schemas/GuestDetail"}}}},"GuestDetail":{"type":"object","required":["firstName","contact"],"properties":{"firstName":{"type":"string","description":"First Name of the Guest"},"lastName":{"type":"string","description":"Last Name of the Guest"},"primary":{"type":"boolean","description":"Is this Guest is Primary Guest"},"guestType":{"type":"string","description":"Guest Type \u003ctable\u003e \u003cthead\u003e \u003ctr\u003e \u003cth\u003eGuest Type Name\u003c/th\u003e \u003cth\u003eGuest Type\u003c/th\u003e \u003c/tr\u003e \u003c/thead\u003e \u003ctbody\u003e \u003ctr\u003e\u003ctd\u003eGuest is Adult\u003c/td\u003e\u003ctd\u003eAdult\u003c/td\u003e\u003c/tr\u003e \u003ctr\u003e\u003ctd\u003eGuest is Child\u003c/td\u003e\u003ctd\u003eChild\u003c/td\u003e\u003c/tr\u003e  \u003c/tbody\u003e \u003c/table\u003e"},"contact":{"$ref":"#/components/schemas/GuestContact"}}},"GuestContact":{"type":"object","description":"Guest Contact details needed only for Primary Guest for any communication","properties":{"email":{"type":"string","description":"Guest Email address"},"phone":{"type":"string","description":"Guest Email Phone number"}}}},"securitySchemes":{"oAuthSecurity":{"type":"oauth2","flows":{"clientCredentials":{"tokenUrl":"https://qa-partner.momorooms.com/auth/oauth/token","scopes":{"read_rooms":"sample scope to execute read operations","write_rooms":"sample scope to execute write operations"}}}}}},"security":[{"oAuthSecurity":["read_rooms","write_rooms"]}]}