openapi-directory
Version:
Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS
1 lines • 132 kB
JSON
{"openapi":"3.0.0","info":{"title":"hetras Booking API Version 0","version":"v0","x-logo":{"url":"https://twitter.com/hetras/profile_image?size=original"},"x-origin":[{"format":"swagger","url":"https://developer.hetras.com/swagger/spec/BookingAPIv0.json","version":"2.0"}],"x-providerName":"hetras-certification.net","x-serviceName":"booking"},"paths":{"/api/booking/v0/addons":{"get":{"deprecated":false,"description":"With the addons request you can get a list of offers for addon services available for a specific rate, room type\r\n and guest stay details.The channel code will define which rates will be returned based on the access control \r\n configuration for related rates.","operationId":"Addons_Get","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Specifies the hotel id to request offers for.","in":"query","name":"hotelId","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Date from when the addon service will be booked to the reservation in the ISO-8601 format \"YYYY-MM-DD\".","in":"query","name":"arrivalDate","required":true,"schema":{"type":"string","format":"date-time"}},{"description":"Date until when the addon service will be booked to the reservation in the ISO-8601 format \"YYYY-MM-DD\".\r\n This is usually the departure date of the reservation.","in":"query","name":"departureDate","required":true,"schema":{"type":"string","format":"date-time"}},{"description":"Channel Code the rate plan needs to be configured for.","in":"query","name":"channelCode","required":true,"schema":{"type":"string"}},{"description":"Number of adults per room.","in":"query","name":"adults","required":true,"schema":{"type":"string","format":"byte","minimum":1,"maximum":255}},{"description":"Number of rooms.","in":"query","name":"rooms","required":true,"schema":{"type":"string","format":"byte","minimum":1,"maximum":255}},{"description":"Only return offers for the specified room type code.","in":"query","name":"roomType","required":true,"schema":{"type":"string"}},{"description":"Only return offers for the specified rate plan code.","in":"query","name":"ratePlanCode","required":true,"schema":{"type":"string"}},{"description":"Expand the rates breakdown if required.","in":"query","name":"expand","required":false,"schema":{"type":"string","enum":["None","Breakdown"]}}],"responses":{"200":{"description":"All addon offers for the requested stay details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Addons"}},"text/json":{"schema":{"$ref":"#/components/schemas/Addons"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate. Either a mandatory parameter was missing or no offers for \r\n the requested stay details"},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Get a list of offers for addon services for the specified guest stay details.","tags":["Addons"]}},"/api/booking/v0/availability":{"get":{"deprecated":false,"description":"Read past occupancy and future availability for a specific hotel. You can also request the breakdown per room type.","operationId":"Availability_Get","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Specifies the hotel id to request the availability for.","in":"query","name":"hotelId","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Defines the first business day you would like to get availability numbers for.","in":"query","name":"from","required":true,"schema":{"type":"string","format":"date-time"}},{"description":"Defines the last business day you would like to get availability numbers for. The maximum time span between <i>from</i>´and <i>to</i>\r\n is limited to 365 days.","in":"query","name":"to","required":true,"schema":{"type":"string","format":"date-time"}},{"description":"You can expand the room types breakdown per business day for the availibility numbers if need be.","in":"query","name":"expand","required":false,"schema":{"type":"string","enum":["RoomTypes"]}},{"description":"Amount of items to skip.","in":"query","name":"skip","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Amount of items to select.","in":"query","name":"top","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return total number of items for a given filter criteria.","in":"query","name":"inlinecount","required":false,"schema":{"type":"string","enum":["None","AllPages"]}}],"responses":{"200":{"description":"Returns a list of availabilities per business day.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/AvailabilityResponse"}}}},"400":{"description":"Bad request. Request parameters syntactically erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."}},"summary":"Gets the availability and occupancy for a specific hotel and timespan.","tags":["Availability"]}},"/api/booking/v0/blocks":{"get":{"deprecated":false,"description":"With this endpoint you can request a list of blocks for the hotel chain. Currently we only support to optionally\r\n filter by the group code linked to the block. Additional filters will be available soon.","operationId":"Blocks_GetBlocksAsync","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Only return blocks for this specific hotel.","in":"query","name":"hotelId","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Filter the blocks by the specified group code","in":"query","name":"groupCode","required":false,"schema":{"type":"string"}},{"description":"Return all blocks where the block's last_departure is greater than specified date.","in":"query","name":"from","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Return all blocks where the block's last_departure is less than specified date.","in":"query","name":"to","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Return all blocks where the block status is one of the specified values.","in":"query","name":"status","required":false,"schema":{"type":"string","enum":["Cancelled","Tentative","Definite"]}},{"description":"Return all blocks that have related the specified comma-separated rate plans.","in":"query","name":"ratePlanCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"If true it will include also details of block count per each room type.","in":"query","name":"countDetails","required":false,"schema":{"type":"boolean"}},{"description":"Amount of items to skip.","in":"query","name":"skip","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Amount of items to select.","in":"query","name":"top","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return total number of items for a given filter criteria.","in":"query","name":"inlinecount","required":false,"schema":{"type":"string","enum":["None","AllPages"]}}],"requestBody":{"$ref":"#/components/requestBodies/CancellationToken"},"responses":{"200":{"description":"Returns a list of blocks matching the provided filter criteria.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}},"text/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"204":{"description":"There are no blocks matching your filter criteria."},"400":{"description":"Bad request. Request parameters syntactically erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Gets a list of blocks.","tags":["Blocks"]}},"/api/booking/v0/blocks/$count":{"get":{"deprecated":false,"operationId":"Blocks_GetBlocksCountAsync","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Only return blocks for this specific hotel.","in":"query","name":"hotelId","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Filter the blocks by the specified group code","in":"query","name":"groupCode","required":false,"schema":{"type":"string"}},{"description":"Return all blocks where the block's last_departure is greater than specified date.","in":"query","name":"from","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Return all blocks where the block's last_departure is less than specified date.","in":"query","name":"to","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Return all blocks where the block status is one of the specified values.","in":"query","name":"status","required":false,"schema":{"type":"string","enum":["Cancelled","Tentative","Definite"]}},{"description":"Return all blocks that have related the specified comma-separated rate plans.","in":"query","name":"ratePlanCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"If true it will include also details of block count per each room type.","in":"query","name":"countDetails","required":false,"schema":{"type":"boolean"}}],"requestBody":{"$ref":"#/components/requestBodies/CancellationToken"},"responses":{"200":{"description":"The total blocks count for a given filter criteria.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotalCountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/TotalCountResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"500":{"description":"We couldn't return the representation due to an internal server error."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Get total blocks count that match the given filter criteria.","tags":["Blocks"]}},"/api/booking/v0/blocks/{blockCode}":{"get":{"deprecated":false,"description":"Read all informationen about a block including the numbers of blocked rooms per room type and business day.","operationId":"Blocks_GetSingleBlockAsync","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Specifies the block code. The block code is composed of the hotel code, a dash and the block code \r\n as shown in the hetras UI.","in":"path","name":"blockCode","required":true,"schema":{"type":"string"}}],"requestBody":{"$ref":"#/components/requestBodies/CancellationToken"},"responses":{"200":{"description":"Returns you all details for the specific block.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}},"text/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Bad request. Request parameters syntactically erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Gets the details for a specific block.","tags":["Blocks"]}},"/api/booking/v0/bookings":{"get":{"deprecated":false,"description":"Here you can easily find bookings matching various criteria. The booking you are looking for has to fullfill all the specified criteria\r\n at the same time. So if you specify a customer name and a channel code you will get all bookings where the firstname or lastname of a guest or a \r\n contact contains the specified value and that have been done through the defined channel.\r\n A booking can consist of multiple reservations, so even if you are looking for a specific reservation which is part of a multi-room booking you will get\r\n all reservations for this booking returned.","operationId":"Bookings_GetBookings","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Only return bookings for this specific hotel.","in":"query","name":"hotelId","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return bookings for this cancellation id.","in":"query","name":"cancellationId","required":false,"schema":{"type":"string"}},{"description":"Return bookings matching this reservation number. Please note that reservation numbers are only unique within a hotel. If you\r\n don´t specify a hotel filter at the same time you could get back multiple bookings from different hotels.","in":"query","name":"reservationNumber","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return all bookings where the first or lastname of one of the guests or the contact contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"customerName","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the primary email address of one of the guests or the contact contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"customerEmail","required":false,"schema":{"type":"string"}},{"description":"Return all bookings the id of one of the guests or the contact matches the specified value.","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings having the specified room number assigned.","in":"query","name":"roomNumber","required":false,"schema":{"type":"string"}},{"description":"Return all bookings exactly matching the specified external id. This filter is case sensitive.","in":"query","name":"externalId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the name of the linked company or travel agent profile contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"companyName","required":false,"schema":{"type":"string"}},{"description":"Return all bookings the id of the company or travel agent profile matches the specified value.","in":"query","name":"companyId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the primary email address of the company or the travel agent profile contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"companyEmail","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the block code matches the specified value.","in":"query","name":"blockCode","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the reservation status is one of the specified values.","in":"query","name":"reservationStatuses","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"enum":["Tentative","Waitlisted","OnRequest","NonGuaranteed","Guaranteed","InHouse","CheckedOut","NoShow","Denied","Cancelled","Released","Walked","Expired","WalkIn","Registered"],"type":"string"}}},{"description":"Return all bookings where the market code is one of the specified values.","in":"query","name":"marketCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the channel code is one of the specified values.","in":"query","name":"channelCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the subchannel code is one of the specified values.","in":"query","name":"subChannelCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the room type is one of the specified values.","in":"query","name":"roomTypes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the rate plan code is one of the specified values.","in":"query","name":"ratePlanCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all reservations with at least one of the specified labels.","in":"query","name":"labels","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Start date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r\n one reservation arriving on the specified date or later.","in":"query","name":"from","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"End date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r\n one reservation arriving on the specified date or earlier.","in":"query","name":"to","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Select a date field you want to filter bookings by. Only one filter at a time can be applied. The to and from dates\r\n will then define the time range.","in":"query","name":"dateFilter","required":false,"schema":{"type":"string","enum":["ArrivalDate","DepartureDate","StayDate","CreationDate","ModificationDate"]}},{"description":"To be able to request reservations without personal data based on GDPR.","in":"query","name":"exclude","required":false,"schema":{"type":"string","enum":["Customers"]}},{"description":"Amount of items to skip.","in":"query","name":"skip","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Amount of items to select.","in":"query","name":"top","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return total number of items for a given filter criteria.","in":"query","name":"inlinecount","required":false,"schema":{"type":"string","enum":["None","AllPages"]}}],"responses":{"200":{"description":"A list of reservations for the requested hotel identifier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingListResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/BookingListResponse"}}}},"204":{"description":"There are no bookings matching your filter criteria."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Find bookings matching the given filter criteria.","tags":["Bookings"]},"post":{"deprecated":false,"description":"Create a new booking as defined in the requests payload. You can get more information about the payload if you check out the\r\n documentation for the reservation request model.<br />\r\n Please also have a look at the <a href=\"https://developer.hetras.com/docs/tutorials\" onfocus=\"this.blur()\">Tutorials</a>.<br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_CreateBooking","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Whether to send a confirmation email to the primary guest","in":"query","name":"sendConfirmation","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reservation"}},"text/json":{"schema":{"$ref":"#/components/schemas/Reservation"}}},"description":"Specifies the details of the booking to be created.","required":true},"responses":{"201":{"description":"The creation of the booking was successful. You will get back the confirmation id and maybe warnings, if\r\n e.g. the prepayment could not be captured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationConfirmation"}},"text/json":{"schema":{"$ref":"#/components/schemas/ReservationConfirmation"}}}},"400":{"description":"Bad request. Request body erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Create a new booking.","tags":["Bookings"]}},"/api/booking/v0/bookings/$count":{"get":{"deprecated":false,"description":"Get the count of all bookings matching your criteria. The bookings have to fullfill all the specified criteria\r\n at the same time. So if you specify a customer name and a channel code you will get the count for all bookings where the firstname or lastname \r\n of a guest or a contact contains the specified value and that have been done through the defined channel.","operationId":"Bookings_GetBookingsCount","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"Only return bookings for this specific hotel.","in":"query","name":"hotelId","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return bookings for this cancellation id.","in":"query","name":"cancellationId","required":false,"schema":{"type":"string"}},{"description":"Return bookings matching this reservation number. Please note that reservation numbers are only unique within a hotel. If you\r\n don´t specify a hotel filter at the same time you could get back multiple bookings from different hotels.","in":"query","name":"reservationNumber","required":false,"schema":{"type":"integer","format":"int32"}},{"description":"Return all bookings where the first or lastname of one of the guests or the contact contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"customerName","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the primary email address of one of the guests or the contact contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"customerEmail","required":false,"schema":{"type":"string"}},{"description":"Return all bookings the id of one of the guests or the contact matches the specified value.","in":"query","name":"customerId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings having the specified room number assigned.","in":"query","name":"roomNumber","required":false,"schema":{"type":"string"}},{"description":"Return all bookings exactly matching the specified external id. This filter is case sensitive.","in":"query","name":"externalId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the name of the linked company or travel agent profile contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"companyName","required":false,"schema":{"type":"string"}},{"description":"Return all bookings the id of the company or travel agent profile matches the specified value.","in":"query","name":"companyId","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the primary email address of the company or the travel agent profile contains the specified value. The search is executed case insensitive\r\n and also stripping of any whitespaces.","in":"query","name":"companyEmail","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the block code matches the specified value.","in":"query","name":"blockCode","required":false,"schema":{"type":"string"}},{"description":"Return all bookings where the reservation status is one of the specified values.","in":"query","name":"reservationStatuses","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"enum":["Tentative","Waitlisted","OnRequest","NonGuaranteed","Guaranteed","InHouse","CheckedOut","NoShow","Denied","Cancelled","Released","Walked","Expired","WalkIn","Registered"],"type":"string"}}},{"description":"Return all bookings where the market code is one of the specified values.","in":"query","name":"marketCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the channel code is one of the specified values.","in":"query","name":"channelCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the subchannel code is one of the specified values.","in":"query","name":"subChannelCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the room type is one of the specified values.","in":"query","name":"roomTypes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all bookings where the rate plan code is one of the specified values.","in":"query","name":"ratePlanCodes","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Return all reservations with at least one of the specified labels.","in":"query","name":"labels","required":false,"style":"form","explode":false,"schema":{"type":"array","items":{"type":"string"}}},{"description":"Start date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r\n one reservation arriving on the specified date or later.","in":"query","name":"from","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"End date for the selected date filter. If you select arrival date as date filter the bookings returned will have at least\r\n one reservation arriving on the specified date or earlier.","in":"query","name":"to","required":false,"schema":{"type":"string","format":"date-time"}},{"description":"Select a date field you want to filter bookings by. Only one filter at a time can be applied. The to and from dates\r\n will then define the time range.","in":"query","name":"dateFilter","required":false,"schema":{"type":"string","enum":["ArrivalDate","DepartureDate","StayDate","CreationDate","ModificationDate"]}},{"description":"To be able to request reservations without personal data based on GDPR.","in":"query","name":"exclude","required":false,"schema":{"type":"string","enum":["Customers"]}}],"responses":{"200":{"description":"The total booking count for a given filter criteria.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TotalCountResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/TotalCountResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Get total count of bookings matchung the given filter criteria.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}":{"get":{"deprecated":false,"description":"A booking groups all reservations done in one single request and can be identified by the confirmation id.\r\n Guests usually use the confirmation id to check in at the kiosk, on the website or mobile device. In hetras\r\n all reservations of one booking share the room type, rate plan and number of guests per room.","operationId":"Bookings_GetBooking","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking to load.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the expand type.","in":"query","name":"expand","required":false,"schema":{"type":"string","enum":["None","RoomRates"]}},{"description":"Specifies the exclude type.","in":"query","name":"exclude","required":false,"schema":{"type":"string","enum":["None","Customers"]}}],"responses":{"200":{"description":"Returns a list of all reservations for that booking.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationsResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ReservationsResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Load all reservations for one booking by confirmation id.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}":{"get":{"deprecated":false,"description":"With this request you can load one specific reservation done with one booking request.","operationId":"Bookings_GetReservation","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation to load.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Specifies the expand type.","in":"query","name":"expand","required":false,"schema":{"type":"string","enum":["None","RoomRates"]}},{"description":"Specifies the exclude type.","in":"query","name":"exclude","required":false,"schema":{"type":"string","enum":["None","Customers"]}}],"responses":{"200":{"description":"Returns the details of the reservation specified.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/ReservationResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Load a specific reservation from a booking.","tags":["Bookings"]},"patch":{"deprecated":false,"description":"The hetras API is using this <a href=\"https://developer.hetras.com/docs/patch\" onfocus=\"this.blur()\" target=\"_blank\">Patch Specification</a>\r\n to partially update an existing resource. Currently this call allows to update the following fields:\r\n external_id, market_code, channel_code, subchannel_code, guarantee_type, comment, addon_services, labels, guests, contact and company.\r\n <br /><br />\r\n A request example:<br /><pre>\r\n [\r\n {\r\n \"op\": \"replace\", \"path\": \"/addon_services\", \"value\": [\"BREAKFAST\", \"PARKING\"]\r\n },\r\n {\r\n \"op\": \"add\", \"path\": \"/labels/-\", \"value\": \"MOBILE\"\r\n },\r\n {\r\n \"op\": \"replace\", \"path\": \"/guests/SHOW-1234\", \"value\": { \"customer_id\": \"SHOW-1234\", \"primary\": false }\r\n },\r\n {\r\n \"op\": \"add\", \"path\": \"/guests/-\", \"value\": { \"customer_id\": \"SHOW-5678\", \"primary\": true }\r\n }\r\n ]\r\n </pre><br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_Patch","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation that has to be updated.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonPatchDocument_ReservationPatchableModel_"}},"text/json":{"schema":{"$ref":"#/components/schemas/JsonPatchDocument_ReservationPatchableModel_"}}},"description":"A set of JSON Patch operations","required":true},"responses":{"200":{"description":"The update was successful. Reponse would contain a referer to the updated reservation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Object"}},"text/json":{"schema":{"$ref":"#/components/schemas/Object"}}}},"400":{"description":"Bad request. Request body erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Partially updates a reservation.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/assign_room":{"post":{"deprecated":false,"description":"By default this API call assigns a random room, which has the proper room type, is not already assigned\r\n to another reservation or has any maintenance status set for the stay period of the underlying reservation. If the\r\n arrival date for the underlying reservation is the current business day dirty rooms are excluded by default. For reservation\r\n arriving on any latter day the room condition is not taken into account.<br />\r\n By specifiying the room selection criteria in the request body you can influence which room will be assigned. See the request model\r\n for further details.<br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_PostRoomAssignment","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation the room should be assigned to.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoomCriteria"}},"text/json":{"schema":{"$ref":"#/components/schemas/AssignRoomCriteria"}}},"description":"Specifies the criteria for the room selection."},"responses":{"200":{"description":"The room assignment was successful. The Reponse would contain the room number assigned.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignRoomResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/AssignRoomResponse"}}}},"400":{"description":"Bad request. Request body erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate. The reason could be no available rooms or a mismatch of room types etc."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Assign a room to a reservation.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/cancel":{"post":{"deprecated":false,"description":"This request will cancel one specific reservation. It will show up in the hetras UI in the Cancellation and NoShow\r\n processing screen and it will be up to the hotel staff to either charge or waive the cancellation fee.<br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_CancelReservation","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation to cancel.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}},{"description":"Whether to send a confirmation email to the primary guest","in":"query","name":"sendConfirmation","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Returns the cancellation id and the cancellation fee that will be charged to the folio of the reservation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancellationResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/CancellationResponse"}}}},"400":{"description":"Bad request. Request body erroneous."},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Cancel one reservation.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/check_in":{"post":{"deprecated":false,"description":"With this call you can set a reservation to the status inhouse. It allows only single room reservations to be checked in.\r\n The reservation must have assigned a vacant and clean room.<br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_CheckIn","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation to be checked in.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckInDetails"}},"text/json":{"schema":{"$ref":"#/components/schemas/CheckInDetails"}}},"description":"Specifies checkIn details, for example Client Identity.","required":true},"responses":{"200":{"description":"The check in was successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate. The reason could be wrong room or reservation status, wrong start date of reservation etc."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Performs a check in operation for a reservation.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/check_out":{"post":{"deprecated":false,"description":"With this call you can set a reservation to the checkout status. It allows only single room reservations to be checked out.\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_CheckOut","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"x-data-threescale-name":"app_ids","schema":{"type":"string"}},{"description":"Application key.","in":"header","name":"App-Key","required":true,"x-data-threescale-name":"app_keys","schema":{"type":"string"}},{"description":"The confirmation id for the booking the reservation was made.","in":"path","name":"confirmationId","required":true,"schema":{"type":"string"}},{"description":"Specifies the reservation number for the reservation to be checked out.","in":"path","name":"reservationNumber","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"The check out was successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}},"text/json":{"schema":{"$ref":"#/components/schemas/BaseResponse"}}}},"401":{"description":"You provided wrong credentials, or you reached your API limit."},"403":{"description":"The application does not have access to the requested resource."},"404":{"description":"Not Found. The server has not found anything matching the Request-URI."},"422":{"description":"The request failed to validate. The reason could be wrong reservation status, such as it was already checked out."},"500":{"description":"We caught an unexpected error on our side. Please report with providing the Hetras-Tracking-Id from the response headers and we will check the logfiles."},"503":{"description":"The server is currently unavailable. Please try later."}},"summary":"Performs a check out operation for a reservation.","tags":["Bookings"]}},"/api/booking/v0/bookings/{confirmationId}/reservations/{reservationNumber}/payment_token":{"put":{"deprecated":false,"description":"TBD.<br />\r\n For more details on how the API responds to errors please check our documentation on \r\n <a href=\"https://developer.hetras.com/docs/errors/\" onfocus=\"this.blur()\">Error Handling</a>.","operationId":"Bookings_PaymentToken","parameters":[{"description":"Application identifier","in":"header","name":"App-Id","required":true,"