openapi: 3.0.0 info: contact: email: support@impala.travel name: Impala Developer Support url: https://docs.impala.travel/ description: 'Add room selling to your app with ease, or expand your existing hotel portfolio. Access all the marketing material you need to sell a room, from hotel amenities to images. Constantly updated, ever expanding and always correct. Impala allows you to start selling hotel rooms and earn a commission with every booking in hours. Getting started is easy: > **1. Sign-up within seconds**: Head to the [Impala website](https://impala.travel), enter your details and receive your sandbox API key immediately (no credit card needed). > **2. Start building within minutes**: Build against a sandbox API with realistic test data. Use a [step-by-step walkthrough](https://impala.travel) to see what''s possible. Check for available hotels and their rates. Make and manage fake bookings without any risk. Add room booking to your existing website or app, or start an online travel agency from scratch. [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/11303451-9b241872-9961-424d-9ef4-9d949534567d?action=collection%2Ffork&collection-url=entityId%3D11303451-9b241872-9961-424d-9ef4-9d949534567d%26entityType%3Dcollection%26workspaceId%3D5ae55f12-332c-4e7d-8acc-3e75df3b2ee2) > **3. Go live within hours**: Once your app or integration is ready for prime time, move to production within your Impala dashboard and start making real hotel bookings for your customers right away. Want to see how it all works? Watch [a 5-minute walkthrough](https://www.youtube.com/watch?v=7B3evCL3nrY) of the two API requests you need to make a booking, and a demo of one of our customer''s apps.' termsOfService: https://impala.travel/terms-and-conditions/ title: Impala Hotel Booking Bookings API version: '1.003' x-apisguru-categories: - ecommerce x-logo: url: https://api.apis.guru/v2/cache/logo/https_images.prismic.io_impala-v2_8d1fd8ad-ef74-46e6-99b8-a8dca8265c60_IM_LI_POST_LAUNCH.jpg x-origin: - format: openapi url: https://docs.impala.travel/api/v1/projects/impala/booking-api/nodes/spec/openapi.seller.yaml?branch=v1.003 version: '3.0' x-providerName: impala.travel x-serviceName: hotels servers: - description: Hotel Booking API Sandbox url: https://sandbox.impala.travel/v1 - description: Hotel Booking API Production url: https://api.impala.travel/v1 security: - API_Key_Authentication: [] tags: - description: Making and managing bookings. name: Bookings paths: /bookings: get: description: 'Returns a list of all the bookings you''ve made. You can filter the list based on when bookings were created or last updated, as well as their arrival (`start`) and departure (`end`). These date-based filters allow to narrow down the result with modifiers for less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Example: Adding the query parameters `start[gt]=2021-05-20&updated[lte]=2020-11-20T11:11:00.000Z` would return bookings arriving after May 20th, 2020 that were updated before or on November 20th, 2020 at 11:11 am UTC. You can specify the **sorting order** in which bookings are returned: * This is done by using the `sortBy` query parameter. * Results can be sorted by `createdAt` and `updatedAt` * The parameter allows for a comma-separated list of arguments with `:asc` (ascending, the default if no sorting is specified) and `:desc` (descending) modifiers.' operationId: listBookings parameters: - description: 'Allows for filtering based on arrival date of the booking in ISO 8601 format (e.g. `2021-12-01`). Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?start[lte]=2021-12-20&start[gte]=2021-12-10`' example: eq: '2021-12-20' gt: '2021-12-20' gte: '2021-12-20' lt: '2021-12-20' lte: '2021-12-20' explode: true in: query name: start schema: type: object style: deepObject - description: 'Allows for filtering based on departure date of the booking in ISO 8601 format (e.g. `2021-12-01`). Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?end[lte]=2021-12-25&end[gte]=2021-12-15`' example: eq: '2021-12-20' gt: '2021-12-20' gte: '2021-12-20' lt: '2021-12-20' lte: '2021-12-20' explode: true in: query name: end schema: type: object style: deepObject - description: 'Allows for filtering based on creation date and time of the booking in ISO 8601 format (e.g. `2020-11-04T17:37:37Z`) and UTC timezone. Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?created[lte]=2020-11-04T19:37:37Z&created[gte]=2020-11-04T15:56:37.000Z`' example: eq: '2020-11-04T15:56:37.000Z' gt: '2020-11-04T15:56:37.000Z' gte: '2020-11-04T15:56:37.000Z' lt: '2020-11-04T15:56:37.000Z' lte: '2020-11-04T15:56:37.000Z' explode: true in: query name: created schema: type: object style: deepObject - description: 'Allows for filtering based on the date and time the booking was last updated, in ISO 8601 format (e.g. `2020-11-04T17:37:37Z`) and UTC timezone. Available modifiers include less than (`lt`), greater than (`gt`), lower than or equal to (`lte`), greater than or equal to (`gte`) and equal to (`eq`). Usage example: `?updated[lte]=2020-11-04T19:37:37Z&updated[gte]=2020-11-04T15:56:37.000Z`' example: eq: '2020-11-04T15:56:37.000Z' gt: '2020-11-04T15:56:37.000Z' gte: '2020-11-04T15:56:37.000Z' lt: '2020-11-04T15:56:37.000Z' lte: '2020-11-04T15:56:37.000Z' explode: true in: query name: updated schema: type: object style: deepObject - description: Pagination size. Defaults to 100 if omitted. in: query name: size schema: default: 100 format: int32 type: number - description: Pagination offset. Defaults to 0 if omitted. in: query name: offset schema: default: 0 format: int32 type: number - description: Order in which the results should be sorted. Currently allows you to sort by `createdAt` and `updatedAt`. Specify multiple paramaters by separating with commas in: query name: sortBy schema: default: createdAt:asc example: createdAt:desc,updatedAt:asc type: string responses: '200': content: application/json: examples: List of bookings: value: data: - bookedRooms: - adults: 1 cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' notes: fromGuest: Please add an extra bed to this room fromSeller: '' rate: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' hotelAgreement: null maxOccupancy: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ retailRate: taxesAndFees: includedInRate: - category: VAT charge: amount: 9500 currency: code: EUR formatted: 10% VAT payAtHotel: - category: VAT charge: amount: 9500 currency: code: EUR formatted: 10% VAT total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' roomType: name: Penthouse Suite roomTypeId: d5b192ce-c45f-46da-abf5-3880b429b7cc sellerToImpalaPayment: amount: 9500 currency: code: EUR bookingId: IM-0199-00000103 cancellation: fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE contact: contactId: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample createdAt: '2020-10-20T12:38:22Z' end: '2020-10-24' hotel: address: city: Impalaland country: GBR countryName: United Kingdom line1: 12 Sample Avenue line2: string postalCode: '12345' region: string hotelId: 60a06628-2c71-44bf-9685-efbd2df4179e href: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e images: - altText: A photo of an object height: 4000 url: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg width: 4000 location: latitude: 58.386186 longitude: -9.952549 name: Impala Minimalist Palace starRating: 2.5 hotelConfirmationCode: 04M3995 notes: fromGuest: I am travelling with my family fromSeller: '' start: '2020-10-21' status: ACCEPTED updatedAt: '2020-10-22T20:12:33Z' pagination: count: 10 next: /v1/hotels?size=20&offset=120 prev: /v1/hotels?size=20&offset=80 total: 1500 schema: properties: data: items: $ref: '#/components/schemas/booking' type: array pagination: $ref: '#/components/schemas/pagination' required: - data - pagination type: object description: Returns a paginated list of bookings (filtered based on your query parameters). '400': content: application/json: examples: Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: DATE_FORMAT message: '"start" must be in YYYY-MM-DD format' property: start - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: Your request wasn't formatted correctly and therefore couldn't be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don't exist (e.g. due to typos). We're including a list of `validations` to point out where things are going wrong and should be fixed. '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: List all bookings tags: - Bookings post: description: 'Creates a booking for for the rate and dates you specify in the request body. You''ll need a `roomTypes[].rates[].rateId` that''s bookable for those dates, which you can find using the [Retrieve a hotel](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1hotels~1%7BhotelId%7D/get) endpoint. If you have provided a credit card on the dashboard then **Impala will send the booking to the hotel immediately**. We''ll ensure payment is taken care of before your guest arrives at the hotel. * Your guest needs to be **paying you** the rate specified in `retailRate` (as listed in the [Retrieve a hotel](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1hotels~1%7BhotelId%7D/get) response) before you submit this request. * Once your request is received and the booking is confirmed, **Impala will charge you** as the seller this `retailRate` minus the `sellerCommissionPercentage` (which is the affiliate commission you get to keep). We''ll use the business credit card you''ve added to your account as payment method for this. * The difference between the amount you charge your guest (`retailRate`, e.g. 200 €) and what Impala charges you (`retailRate` minus `sellerCommissionPercentage`, e.g. 200 €) is your commission (in this example: 20 €) to keep. You can find more information on how money flows between your guest and you, and you and Impala, [in this article](https://impala.stoplight.io/docs/booking-api/branches/v1.003/docs/good-to-know/payments-and-commissions.md) > **This request might take up to 20 seconds to load.** While we work to return a response to your request within milliseconds in most cases, some bookings require us to re-verify current pricing in real-time and doing so might take up to 20 seconds. Please make sure your app handles this waiting state appropriately.' operationId: createBooking requestBody: content: application/json: examples: example-1: value: bookingContact: email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample end: '2019-08-24' rooms: - adults: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ start: '2019-08-24' schema: $ref: '#/components/schemas/bookingRequest' description: Specifies the room you want to book for your guest. responses: '202': content: application/json: examples: Booking created (paid via guest): $ref: '#/components/examples/BookingCreatedExampleWithPaymentBearerToken' Booking created (paid via you): $ref: '#/components/examples/BookingCreatedExample' schema: $ref: '#/components/schemas/booking' description: We've created the booking and are returning some of its details in the response body. '400': content: application/json: examples: Incorrect date range: value: code: BAD_REQUEST message: There must be rate for each different day of the stay. Invalid rate ID: value: code: BAD_REQUEST message: Incorrect rate id provided. 47vP4lpKjW1giRX3ns6PSfoDwhccLqdzvRdMNNmCiaGaWK1DuFUm2qDvq is not a valid rate id No remaining allocations: value: code: BAD_REQUEST message: No allocations remaining for dealId 'D123456' Room can't accommodate occupancy: value: code: BAD_REQUEST message: The requested guest count exceeds the maximum occupancy for one or more rooms Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: DATE_FORMAT message: '"start" must be in YYYY-MM-DD format' property: start - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: 'Your request wasn''t formatted correctly and therefore couldn''t be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don''t exist (e.g. due to typos). We''re including a list of `validations` to point out where things are going wrong and should be fixed. ' '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '403': content: application/json: schema: $ref: '#/components/schemas/genericError' description: You are not authorized to use this service. Please contact support@impala.travel to gain access. '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: Create a booking tags: - Bookings /bookings/{bookingId}: delete: description: ' > Cancels the specified booking with immediate effect. This action might result in a cancellation charge being charged. Submitting this request means we''ll notify the hotel of the cancellation and that they won''t expect your guest. You can use `GET /bookings/{bookingId}`to see the cancellation policies that apply to a booking at a given point in time. Please note that cancelling a booking will incur a cancellation fee according to the rules that apply at the time of cancellation. You can find the cancellation fee that has been charged in the response of this call in the `cancellation.fee` object. If the booking you cancelled allows for a partial or full refund, we''ll credit your Impala balance with the amount we charged you as the seller of this booking – meaning we''ll deduct the amount the next time we''re requesting payment for the sum of all the bookings you made.' operationId: cancelBooking parameters: - $ref: '#/components/parameters/bookingIdParam' responses: '200': content: application/json: examples: Cancelled booking: $ref: '#/components/examples/CancelledBooking' schema: $ref: '#/components/schemas/booking' description: Returns the cancelled booking. This includes the `cancellation.fee` object with details on the fee for this cancellation (most frequently this means either a zero fee, so the booking is fully refundable, or the full amount of the stay is due as a fee, meaning the booking was non-refundable). '400': content: application/json: examples: Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: DATE_FORMAT message: '"start" must be in YYYY-MM-DD format' property: start - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: Your request wasn't formatted correctly and therefore couldn't be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don't exist (e.g. due to typos). We're including a list of `validations` to point out where things are going wrong and should be fixed. '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '403': content: application/json: examples: Booking started in the past: summary: No access value: code: FORBIDDEN message: The booking's arrival date is in the past schema: $ref: '#/components/schemas/genericError' description: This booking can't be cancelled. This most frequently happens when you're trying to cancel a booking that has already started. Impala allows you to handle booking management up to a guest's arrival. Once the guest is staying or due arrival, please contact the hotel directly for questions around their current stay. '404': content: application/json: examples: Booking not found: summary: Not found value: code: NOT_FOUND message: Cannot find booking schema: $ref: '#/components/schemas/genericError' description: Not found '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: Cancel a booking tags: - Bookings get: description: Returns all details for the specified booking. operationId: retrieveBooking parameters: - $ref: '#/components/parameters/bookingIdParam' responses: '200': content: application/json: examples: Confirmed booking: $ref: '#/components/examples/BookingCreatedExample' schema: $ref: '#/components/schemas/booking' description: Returns the requested booking. '400': content: application/json: examples: Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: DATE_FORMAT message: '"start" must be in YYYY-MM-DD format' property: start - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: Your request wasn't formatted correctly and therefore couldn't be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don't exist (e.g. due to typos). We're including a list of `validations` to point out where things are going wrong and should be fixed. '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '404': content: application/json: examples: Booking not found: summary: Not found value: code: NOT_FOUND message: Cannot find booking with reference IM-0576-00000000 schema: $ref: '#/components/schemas/genericError' description: You've likely requested a booking that doesn't exist. This might be because of a typo in the booking ID. Impala booking IDs start with `IM-` for real-life bookings and `SANDBOX-` for all bookings created in our sandbox environment (e.g. `/bookings/IM-0576-00000601`). '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: Retrieve a booking tags: - Bookings put: description: ' > Updates the specified booking with immediate effect. This action might result in a cancellation charge being charged. > Please note that if you wish to change the contact details associated with a booking, you should use the [Change a Booking''s Contact Details](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1bookings~1%7BbookingId%7D~1booking-contact/put) endpoint. Changes / updates a confirmed booking with the details you provide in the request body. When your guest needs to change their booking, you can use this endpoint to change any of the details you initially supplied when you [made their booking](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1bookings/post), e.g. you''ll need to query for availability and use the `roomTypes[].rates[].rateId` that are available currently for their new stay dates. Any new rates selected must be for the same hotel as the original booking. A booking cannot be updated on or after the check in day of the original or new stay. In addition, we require you do supply a `updateBookingVersionAtTimestamp` field with the `updatedAt` timestamp of the booking. You can find this value by looking up the booking via the [Retrieve a booking](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1bookings~1%7BbookingId%7D/get) endpoint. This is to avoid race conditions where another update might have happened since the last time you have checked for the current details of this booking. The `status` of this booking will switch back to `PENDING` until we have submitted and confirmed the new details with the hotel. > **This request might take up to 20 seconds to load.** While we work to return a response to your request within milliseconds in most cases, some bookings require us to re-verify current pricing in real-time and doing so might take up to 20 seconds. Please make sure your app handles this waiting state appropriately.' operationId: updateBooking parameters: - $ref: '#/components/parameters/bookingIdParam' requestBody: content: application/json: examples: Example: value: bookingContact: email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample end: '2019-08-24' rooms: - adults: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ start: '2019-08-24' updateBookingVersionAtTimestamp: '2020-12-20T11:01:30.745Z' schema: $ref: '#/components/schemas/updateBookingRequest' description: Specifies the room you want to book for your guest. responses: '200': content: application/json: examples: Booking created: $ref: '#/components/examples/BookingCreatedExample' schema: $ref: '#/components/schemas/booking' description: We've submitted the change to the hotel and are returning some of its details in the response body. '400': content: application/json: examples: Incorrect date range: value: code: BAD_REQUEST message: There must be rate for each different day of the stay. Invalid rate ID: value: code: BAD_REQUEST message: Incorrect rate id provided. 47vP4lpKjW1giRX3ns6PSfoDwhccLqdzvRdMNNmCiaGaWK1DuFUm2qDvq is not a valid rate id Requires guest payment: value: code: BAD_REQUEST message: Cannot change a booking requires guest payment Room can't accommodate occupancy: value: code: BAD_REQUEST message: The requested guest count exceeds the maximum occupancy for one or more rooms Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: DATE_FORMAT message: '"start" must be in YYYY-MM-DD format' property: start - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: 'Your request was invalid or wasn''t formatted correctly and therefore couldn''t be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don''t exist (e.g. due to typos). We''re including a list of `validations` to point out where things are going wrong and should be fixed. ' '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '404': content: application/json: examples: Booking not found: summary: Not found value: code: NOT_FOUND message: Cannot find booking schema: $ref: '#/components/schemas/genericError' description: Not found '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: Change a booking tags: - Bookings /bookings/{bookingId}/booking-contact: put: description: 'Updates a confirmed booking with the booking contact details you provide in the request body. In addition, we require you to supply a `updateBookingVersionAtTimestamp` field with the `updatedAt` timestamp of the booking. You can find this value by looking up the booking via the [Retrieve a booking](https://docs.impala.travel/docs/booking-api/spec/openapi.seller.yaml/paths/~1bookings~1%7BbookingId%7D/get) endpoint. This is to avoid race conditions where another update might have happened since the last time you have checked for the current details of this booking.' operationId: updateBookingContact parameters: - $ref: '#/components/parameters/bookingIdParam' requestBody: content: application/json: schema: $ref: '#/components/schemas/updateBookingContactRequest' responses: '200': content: application/json: examples: Booking created: $ref: '#/components/examples/BookingCreatedExample' schema: $ref: '#/components/schemas/booking' description: We've submitted the change to the hotel and are returning the booking details in the response body. '400': content: application/json: examples: Validation error: summary: Bad request value: code: VALIDATION_ERROR message: '"start" must be in YYYY-MM-DD format. "foo" is not allowed. "lorem" missing required peer "ipsum"' validations: - code: OBJECT_UNKNOWN message: '"foo" is not allowed' property: foo - code: OBJECT_WITH message: '"lorem" missing required peer "ipsum"' property: lorem schema: $ref: '#/components/schemas/validationError' description: 'Your request was invalid or wasn''t formatted correctly and therefore couldn''t be processed. This most frequently happens when query parameters or request body values are missing, incorrectly formatted or added where they don''t exist (e.g. due to typos). We''re including a list of `validations` to point out where things are going wrong and should be fixed. ' '401': content: application/json: examples: API key invalid: value: message: Invalid authentication credentials API key missing: value: message: No API key found in request schema: $ref: '#/components/schemas/genericError' description: Your request was sent without or with an incorrect API key. This most frequently happens when the `x-api-key` header wasn't added or contains an incorrect value. This might also happen if you're trying to access the production API endpoints with a sandbox API key or vice versa. '404': content: application/json: examples: Booking not found: summary: Not found value: code: NOT_FOUND message: Cannot find booking schema: $ref: '#/components/schemas/genericError' description: Not found '500': content: application/json: examples: Internal Server Error: summary: Server has encountered an internal error. value: message: Internal Server Error schema: $ref: '#/components/schemas/genericError' description: 'An internal server error within the Impala platform has occurred. Our team will investigate the error. We recommend that you contact us at support@impala.travel with the x-correlation-id value contained within the response headers. Sending us this value will allow us to identify the precise error you encountered.' summary: Change a booking contact tags: - Bookings components: schemas: updateBookingVersionAtTimestamp: description: The timestamp of when the booking was last updated example: '2020-12-20T11:01:30.745Z' format: date-time type: string writeOnly: true notesBooking: description: Notes allow sellers to their guests to communicate relevant information to the hotel. properties: fromGuest: description: Notes a guest has entered as they made the book can be added here. This allows you to display a free text field to your guests where they can enter any information they want to communicate to the hotel (e.g. that their booking is for a special occassion or that they have a particular room preference). type: string fromSeller: description: Notes you as a seller want to communicate to the hotel. You might use this field to communicate operational processes to watch out for (e.g. providing the hotel with context around where the booking was made or what to watch out for) or information about the guest. type: string type: object personInfo: description: Information on a person and their contact details. properties: email: description: Email address. example: jocelin.carreon.crespo@example.com type: string firstName: description: First name. example: Jocelín type: string lastName: description: Family name or surname. example: Carreón Sample type: string required: - firstName - lastName - email title: Person type: object money: description: An amount of money in the specified currency (used in the context of prices, fees, refunds etc.) properties: amount: description: Amount in the smallest unit of the currency. E.g. 234.56 € is expressed as 23456 (in Euro cents to avoid rounding errors in calculations). example: 9500 type: integer currency: description: Details of the currency. properties: code: description: Three-character currency code in ISO 4217 notation. example: EUR type: string required: - code title: CurrencyDetails type: object required: - amount - currency title: Money type: object x-examples: Double-decimal currency (EUR): amount: 9500 currency: code: EUR Zero-decimal currency (JPY): amount: 37747 currency: code: JPY bookedRate: description: Information on the price of the booked room, other components of the room (such as breakfast, lunch or a welcome drink) and the cancellation policies that apply. properties: cancellationPolicies: items: $ref: '#/components/schemas/cancellationPolicy' minItems: 1 type: array uniqueItems: true components: items: $ref: '#/components/schemas/rateComponent' minItems: 0 type: array uniqueItems: true end: example: '2021-11-23' format: date minLength: 1 type: string hotelAgreement: $ref: '#/components/schemas/hotelAgreementStub' maxOccupancy: type: number retailRate: description: The public retail rate you should quote and charge your guest. You're not allowed to quote or charge an amount lower than this if your website or app is publicly accessible. properties: taxesAndFees: description: Breakdown of taxes (e.g. VAT, city tax) and fees (e.g. cleaning or resort fees). properties: includedInRate: description: Taxes and fees that are included in the `retailRate.total` price paid at the time of booking. items: $ref: '#/components/schemas/taxOrFee' minItems: 0 type: array payAtHotel: description: Taxes and fees that need to be payed at the hotel (often upon arrival or departure). This frequently happens for fees that only need to be collected based on certain conditions (e.g. a guest coming from abroad or being older than a certain age). items: $ref: '#/components/schemas/taxOrFee' minItems: 0 type: array type: object total: $ref: '#/components/schemas/money' required: - total - taxesAndFees type: object sellerCommissionPercentage: description: The commission percentage you as a seller will earn from this booking, based on `retailRate.total`. example: 9.5 format: float type: number start: example: '2021-11-20' format: date minLength: 1 type: string required: - start - end - hotelAgreement - retailRate - sellerCommissionPercentage - components - cancellationPolicies title: Room rate type: object x-examples: Example: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' rateId: dBFo retailRate: total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' bookingRequest: properties: bookingContact: allOf: - $ref: '#/components/schemas/personInfo' description: Details of your guest (will be provided to the hotel in case of questions). end: description: The last day of the desired stay range in ISO 8601 format YYYY-MM-DD. format: date type: string notes: $ref: '#/components/schemas/notesBooking' paymentType: description: How will the guest make payment for this booking? enum: - API type: string rooms: description: List of room type identifiers to be booked. items: properties: adults: description: The number of adult guests staying in the room. example: 2 type: number notes: $ref: '#/components/schemas/notesBookedRoom' rateId: description: The unique identifier of this rate within Impala. Every rate returned in the `roomTypes[].rates[]` array when retrieving hotel availability includes this id. example: 3rX3IaqkpJaPlttxoFoM3uDcHJEZCAuByqfBSLUPMvkBGyu7IAlhbxl3rZ7cVmVj6TbXL4EfiHlTA type: string required: - rateId - adults type: object type: array start: description: The first day of the desired stay range in ISO 8601 format YYYY-MM-DD. format: date type: string required: - start - end - bookingContact - rooms title: Booking request (used for creating a booking) type: object x-examples: Example: bookingContact: email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample end: '2019-08-24' rooms: - adults: 2 rateId: 3rX3IaqkpJaPlttxoFoM3uDcHJEZCAuByqfBSLUPMvkBGyu7IAlhbxl3rZ7cVmVj6TbXL4EfiHlTA start: '2019-08-24' address: description: Physical address properties: city: example: Impalaland type: string country: description: Three-character country code in ISO alpha-3 format. example: GBR type: string countryName: description: English name of the country. example: United Kingdom type: string line1: description: First line of the address. example: 12 Sample Avenue type: string line2: description: Second line of the address. nullable: true type: string postalCode: example: '12345' type: string region: nullable: true type: string required: - line1 - city - country - countryName - postalCode title: Address type: object rateComponent: description: Product or service offered as part of a rate in addition to accommodation in the room. properties: formatted: description: Human-readable plain English version of the component included in the rate, ready to be shown to your guests. example: breakfast type: string includedInRate: type: boolean type: description: The type of product or service included in the price. We currently support rates including "BREAKFAST", "LUNCH", "DINNER" and "ALL_INCLUSIVE". enum: - BREAKFAST - LUNCH - DINNER - WELCOME_BEVERAGE - ALL_INCLUSIVE example: BREAKFAST type: string required: - formatted - type title: Rate component type: object x-examples: {} validationError: allOf: - $ref: '#/components/schemas/genericError' - properties: validations: items: $ref: '#/components/schemas/validationResult' type: array type: object title: Validation error response x-examples: {} cancellationPolicy: description: A rule that applies if the booking is cancelled. properties: end: description: The time (in the hotel's local timezone) at which the policy takes effect, in ISO 8601 format. If omitted, the policy applies open-ended until the guests' stay. example: '2020-12-17 23:59:59.999' type: string fee: $ref: '#/components/schemas/cancellationFee' formatted: description: Human-readable plain English cancellation policy information, ready to be shown to your guests. example: Non-refundable after October 19, 2021 00:00 type: string start: description: The time (in the hotel's local timezone) at which the policy takes effect, in ISO 8601 format. If omitted, the policy is already in effect. example: '2020-12-15 23:59:59.999' type: string required: - start - formatted - fee title: Cancellation policy type: object cancellationFee: description: Describes the costs associated with a cancellation and how it is calculated. properties: count: description: The value that is used in calculation of the cost. This could be 50 in case of a 50% fee being charged for a type "PERCENTAGE" or 2 in case of the initial two nights of the stay being charged in full as a fee if the type is "NIGHTS". example: 100 type: number price: $ref: '#/components/schemas/money' type: description: The way in which the cancellation fee is calculated. This can be "NONE" in case a full refund is paid out, "NON_REFUNDABLE" if no refund is paid out and the full amount is due, "PERCENTAGE" if a percentage of the total price for the stay is charged as cancellation fee, "NIGHTS" if a defined number of initial nights of the stay are charged in full as cancellation fee or "FLAT" in case a flat cancellation fee is charged. enum: - NON_REFUNDABLE - PERCENTAGE - NONE - NIGHTS - FLAT example: PERCENTAGE type: string required: - type - price title: Cancellation fee type: object x-examples: example-1: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE hotelAgreementStub: description: Essential information on an agreement with a hotel. nullable: true properties: conditions: description: A deal may have conditions set to it. For example, the deal may only apply for a closed user group (PRIVATE_RATE) or sold along with another component e.g flights (PACKAGED) items: example: PRIVATE_RATE type: string type: array dealId: description: The unique identifier for this deal request. example: D1234 type: string dealsSellable: description: 'There is a limit to the number of deals that can be sold. ' properties: remaining: description: The amount of deals remaining that can sold. example: 5 type: number type: object discount: description: Rather than selling the hotel's generally available public rates, if a discount is agreed on, bookings made with this deal will have a reduced rate. example: count: 10 type: PERCENTAGE properties: count: description: This is the amount of discount received. example: 10 type: number type: description: 'This is the type of discount which can be: PERCENTAGE or FLAT_FEE.' example: FLATFEE type: string type: object hotelAgreementId: description: Unique identifier for the hotel agreement. example: A82983 type: string href: description: URI that allows access to the full deal information. example: v1/deal-requests/D1234/agreements/A76543 type: string specialInstructions: description: 'These are conditions set by you the seller or the hotel for which the deal can be sold. For example: this deal can only be sold on mobile. Any specialInstructions will override other variables, for example, if an instruction includes: All bookings are non refundable, this will override any pre-existing cancellationPolicy.' example: This deal can only be sold via desktop (not allowed for mobile apps) nullable: true type: string required: - hotelAgreementId - dealId - specialInstructions title: Hotel Agreement (stub) type: object x-examples: {} updateBookingRequest: allOf: - $ref: '#/components/schemas/bookingRequest' - properties: updateBookingVersionAtTimestamp: $ref: '#/components/schemas/updateBookingVersionAtTimestamp' required: - updateBookingVersionAtTimestamp title: updateBookingRequest type: object description: '' title: Booking request (used for updating a booking) x-examples: Example: value: bookingContact: email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample end: '2019-08-24' rooms: - adults: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ start: '2019-08-24' updateBookingVersionAtTimestamp: '2020-12-20T11:01:30.745Z' taxOrFee: description: Details of a tax or fee (included or excluded in a rate). properties: category: description: Structured information on what type the type of tax or fee. enum: - VAT - CITY_TAX - OTHER minLength: 1 type: string charges: $ref: '#/components/schemas/money' formatted: description: Formatted English description of this tax or fee, ready to be shown to your guests. example: 10% VAT minLength: 1 type: string title: Tax / fee type: object bookedRoom: description: '' properties: adults: description: Number of adult guests booked for this room type. format: integer minimum: 1 type: number notes: $ref: '#/components/schemas/notesBookedRoom' rate: $ref: '#/components/schemas/bookedRate' roomType: description: Booked room properties: name: description: The hotel's name for this room type. example: Penthouse Suite type: string roomTypeId: description: Unique identifier of this room type within the Impala platform. example: d5b192ce-c45f-46da-abf5-3880b429b7cc format: uuid type: string required: - roomTypeId - name type: object sellerToImpalaPayment: $ref: '#/components/schemas/money' required: - roomType - rate - notes title: Booked room type: object x-examples: {} notesBookedRoom: description: 'Notes about this booked room. These might be requests for room setup (e.g. extra beds or requests to remove alcoholic beverages from the minibar) or other requests related to this particular booked room. These fields allow for **Markdown formatting** that''s displayed to hotels in its rendered format in most circumstances but might fall back to text-only in scenarios where that''s not possible.' properties: fromGuest: description: Notes your guest has entered as part of the booking for this booked room. These allow them to communicate anything noteworthy about this booked room to the hotel, e.g. special instructions around room setup, that the minibar should not contain any alcoholic beverages or a wheelchair-accessible room is required. nullable: true type: string fromSeller: description: Notes from you as a seller allow you to communicate any instructions for this booked room. These are communicated to the hotel as coming from you. You can use this field to provide the hotel with pointers about e.g. room setup, connecting doors that need to be opened, extrabeds to be placed in the rooms or any other instructions. nullable: true type: string required: - fromGuest - fromSeller type: object pagination: description: Information that helps paginate through lists of resources. properties: count: description: The number of items returned on this page. example: 10 format: int32 type: number next: description: The absolute URL pointing to the next page. Will be null if there are no next pages. example: /v1/sample?size=20&offset=120 nullable: true type: string prev: description: The absolute URL pointing to the previous page. Will be null if there are no previous pages. example: /v1/sample?size=20&offset=80 nullable: true type: string total: description: The total number of items that exist for your query across all pages. example: 1500 format: int32 type: number required: - count - total - next - prev title: Pagination information type: object updateBookingContactRequest: description: Request body for update contact booking properties: bookingContact: $ref: '#/components/schemas/personInfo' updateBookingVersionAtTimestamp: $ref: '#/components/schemas/updateBookingVersionAtTimestamp' required: - bookingContact - updateBookingVersionAtTimestamp title: UpdateBookingContactRequest type: object x-examples: Example: value: bookingContact: email: jocelin.carreon.sample@example.com firstName: Jocelín lastName: Carreón Sample updateBookingVersionAtTimestamp: '2021-06-20T11:01:30.745Z' hotelStub: description: Essential information on a hotel returned as part of other resources, linking to the full resource within its `href` field. properties: address: $ref: '#/components/schemas/address' checkIn: $ref: '#/components/schemas/timeRange' checkOut: $ref: '#/components/schemas/timeRange' emails: items: type: string type: array hotelId: description: Unique identifier for this hotel within the Impala platform. example: 60a06628-2c71-44bf-9685-efbd2df4179e format: uuid type: string href: description: URI that allows access to the full hotel information. example: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e type: string images: description: Photos of the hotel, sorted in the recommended display order (e.g. for photo galleries) starting with the recommended hero image. items: $ref: '#/components/schemas/image' type: array location: $ref: '#/components/schemas/location' name: description: Name of the hotel. example: Impala Minimalist Palace type: string phoneNumbers: description: The hotel's phone number(s) items: type: string type: array starRating: description: The star rating (or star-equivalent rating) example: 2.5 format: double nullable: true type: number timezone: description: The timezone the hotel is in - e.g AST example: AST type: string required: - hotelId - name - starRating - images - address - location title: Hotel information (stub) type: object x-examples: {} validationResult: description: Describes the validation that failed. properties: code: description: Error code intended for logging and debugging. example: ANY_REQUIRED type: string field: description: Name of the field that has failed to validate. Intended to aid developers in finding and fixing implementation mistakes. example: start type: string message: description: Error message in English intended to aid developers in finding and solving implementation mistakes. Do not display to your guests as it **might contain sensitive implementation information**. example: '"start" is required' type: string required: - message - code title: Validation result type: object x-examples: {} booking: description: Details of an existing booking. properties: bookedRooms: description: List of rooms booked items: $ref: '#/components/schemas/bookedRoom' type: array bookingId: description: Unique identifier for this booking within the Impala platform. example: IM-0199-00000103 type: string cancellation: description: Returned in case the booking (or parts of it) has been cancelled. Contains information on the cancellation. nullable: true properties: fee: $ref: '#/components/schemas/cancellationFee' required: - fee type: object contact: allOf: - $ref: '#/components/schemas/personInfo' - properties: contactId: description: Unique identifier of this guest within the Impala platform. example: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 format: uuid type: string required: - contactId description: Guest details for this booking. type: object createdAt: description: Date and time (in UTC and ISO 8601 format) when the booking was created. example: '2020-10-20T12:38:22Z' format: date-time type: string end: description: The departure date of the booking. example: '2020-10-24' format: date type: string hotel: $ref: '#/components/schemas/hotelStub' hotelConfirmationCode: description: The hotel's confirmation identifier for this booking. example: 04M3995 nullable: true type: string notes: description: 'The notes that were transmitted to the hotel as part of this booking. These fields allow for **Markdown formatting** that''s displayed to hotels in its rendered format in most circumstances but might fall back to text-only in scenarios where that''s not possible.' properties: fromGuest: description: Notes your guest has entered as part of the booking. These allow them to communicate anything to the hotel (e.g. that they're travelling for a special occassion or have a particular room assignment preference). nullable: true type: string fromSeller: description: Notes you as a seller want to communicated to the hotel. These might be around operational processes to watch out for. Impala communicates these as coming from you. nullable: true type: string required: - fromGuest - fromSeller type: object paymentBearerToken: description: If status is PAYMENT_REQUIRED, then this should be used as the Authorisation header for the POST to the /payments endpoint. nullable: true type: string paymentClientSecret: description: If status is PAYMENT_REQUIRED, then this should be used as the client secret when rendering Impala Payment Elements in the UI. nullable: true type: string start: description: The arrival date of the booking. example: '2020-10-21' format: date type: string status: description: Status of this booking within the Impala platform. When you make a booking, it'll first appear as `PENDING` until we receive the hotel's confirmation details. At this point your booking will move to `ACCEPTED`. enum: - CANCELLED - PENDING - ACCEPTED - PAYMENT_REQUIRED - PAYMENT_ABANDONED example: ACCEPTED type: string updatedAt: description: Date and time (in UTC and ISO 8601 format) when the booking was last updated. example: '2020-10-22T20:12:33Z' format: date-time type: string required: - bookingId - status - start - end - hotel - bookedRooms - contact - notes - createdAt - updatedAt title: Booking type: object x-examples: example-paid-via-you: value: bookedRooms: - adults: 1 rate: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' maxOccupancy: 2 rateId: dBFo retailRate: total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' roomType: name: Penthouse Suite roomTypeId: d5b192ce-c45f-46da-abf5-3880b429b7cc bookingId: IM-0199-00000103 cancellation: fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE contact: contactId: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample createdAt: '2020-10-20T12:38:22Z' end: '2020-10-24' hotel: address: city: Impalaland country: GBR line1: 12 Sample Avenue line2: string postalCode: '12345' region: string hotelId: 60a06628-2c71-44bf-9685-efbd2df4179e href: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e images: - altText: A photo of an object height: 4000 url: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg width: 4000 location: latitude: 58.386186 longitude: -9.952549 name: Impala Minimalist Palace starRating: 2.5 hotelConfirmationCode: 04M3995 start: '2020-10-21' status: ACCEPTED updatedAt: '2020-10-22T20:12:33Z' location: description: Precise location on a map (using WGS 84 longitude and latitude notation) properties: latitude: description: WGS 84 latitude. example: 58.386186 type: number longitude: description: WGS 84 longitude. example: -9.952549 type: number required: - latitude - longitude title: Location type: object timeRange: description: A time range. Open-ended time ranges are indicated by omitting either `start` or `end` in the object. example: from: '12:00' to: '21:00' properties: from: description: Time in ISO 8601 time format. example: '13:00' type: string to: description: Time in ISO 8601 time format. example: '21:00' type: string title: Time range type: object image: properties: altText: description: Alternative text for the image (to be used e.g. to cater to screenreaders). example: A photo of an object nullable: true type: string height: description: Height in pixels. example: 4000 type: number url: description: The url of this image. The url of an image might change over time, and we therefore advise not to store or cache image URLs within your app beyond a few minutes. example: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg format: uri type: string width: description: Width in pixels. example: 4000 type: number required: - height - width - url title: Image type: object x-examples: {} genericError: properties: code: description: Error code for you to use programatically, for error logging and debugging. example: ERROR_CODE type: string message: description: Error message intended to aid developers in debugging issues. We strongly advise against displaying this information publicly to your guests as it **might contain sensitive implementation details**. example: Resource not found type: string required: - message title: Error response type: object examples: CancelledBooking: value: bookedRooms: - adults: 1 cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' notes: fromGuest: Please add an extra bed to this room fromSeller: '' rate: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' hotelAgreement: null maxOccupancy: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ retailRate: taxesAndFees: includedInRate: - category: VAT charge: amount: 9500 currency: code: EUR formatted: 10% VAT payAtHotel: - category: VAT charge: amount: 9500 currency: code: EUR formatted: 10% VAT total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' roomType: name: Penthouse Suite roomTypeId: d5b192ce-c45f-46da-abf5-3880b429b7cc sellerToImpalaPayment: amount: 9500 currency: code: EUR bookingId: IM-0199-00000103 cancellation: fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE contact: contactId: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample createdAt: '2020-10-20T12:38:22Z' end: '2020-10-24' hotel: address: city: Impalaland country: GBR countryName: United Kingdom line1: 12 Sample Avenue line2: string postalCode: '12345' region: string hotelId: 60a06628-2c71-44bf-9685-efbd2df4179e href: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e images: - altText: A photo of an object height: 4000 url: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg width: 4000 location: latitude: 58.386186 longitude: -9.952549 name: Impala Minimalist Palace starRating: 2.5 hotelConfirmationCode: 04M3995 notes: fromGuest: I am travelling with my family fromSeller: '' start: '2020-10-21' status: CANCELLED updatedAt: '2020-10-22T20:12:33Z' BookingCreatedExampleWithPaymentBearerToken: value: bookedRooms: - adults: 1 notes: fromGuest: Please add an extra bed to this room fromSeller: '' rate: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' hotelAgreement: null maxOccupancy: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ retailRate: taxesAndFees: includedInRate: [] payAtHotel: [] total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' roomType: name: Penthouse Suite roomTypeId: d5b192ce-c45f-46da-abf5-3880b429b7cc sellerToImpalaPayment: amount: 9500 currency: code: EUR bookingId: IM-0199-00000103 cancellation: fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE contact: contactId: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample createdAt: '2020-10-20T12:38:22Z' end: '2020-10-24' hotel: address: city: Impalaland country: GBR countryName: United Kingdom line1: 12 Sample Avenue line2: string postalCode: '12345' region: string hotelId: 60a06628-2c71-44bf-9685-efbd2df4179e href: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e images: - altText: A photo of an object height: 4000 url: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg width: 4000 location: latitude: 58.386186 longitude: -9.952549 name: Impala Minimalist Palace starRating: 2.5 hotelConfirmationCode: 04M3995 notes: fromGuest: I am travelling with my family fromSeller: '' paymentBearerToken: xxxxx.yyyyy.zzzzz start: '2020-10-21' status: ACCEPTED updatedAt: '2020-10-22T20:12:33Z' BookingCreatedExample: value: bookedRooms: - adults: 1 notes: fromGuest: Please add an extra bed to this room fromSeller: '' rate: cancellationPolicies: - end: '2020-12-17 23:59:59.999' fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE formatted: Non-refundable after October 19, 2021 00:00 start: '2020-12-15 23:59:59.999' components: - formatted: Breakfast includedInRate: true type: BREAKFAST end: '2021-11-23' hotelAgreement: null maxOccupancy: 2 rateId: i8fIZ277SPDq4UohuxAft5Sr29UhMvyc0VypRxLiRFLoTk0XHmEbgSQ retailRate: taxesAndFees: includedInRate: [] payAtHotel: [] total: amount: 9500 currency: code: EUR sellerCommissionPercentage: 9.5 start: '2021-11-20' roomType: name: Penthouse Suite roomTypeId: d5b192ce-c45f-46da-abf5-3880b429b7cc sellerToImpalaPayment: amount: 9500 currency: code: EUR bookingId: IM-0199-00000103 cancellation: fee: count: 100 price: amount: 9500 currency: code: EUR type: PERCENTAGE contact: contactId: 3c8aa2ff-5e5e-4f23-bcfc-9036ba818a84 email: jocelin.carreon.crespo@example.com firstName: Jocelín lastName: Carreón Sample createdAt: '2020-10-20T12:38:22Z' end: '2020-10-24' hotel: address: city: Impalaland country: GBR countryName: United Kingdom line1: 12 Sample Avenue line2: string postalCode: '12345' region: string hotelId: 60a06628-2c71-44bf-9685-efbd2df4179e href: /v1/hotels/60a06628-2c71-44bf-9685-efbd2df4179e images: - altText: A photo of an object height: 4000 url: https://cdn.impala.travel/ckhlsuxbb000b3b666rr9ussq.jpg width: 4000 location: latitude: 58.386186 longitude: -9.952549 name: Impala Minimalist Palace starRating: 2.5 hotelConfirmationCode: 04M3995 notes: fromGuest: I am travelling with my family fromSeller: '' paymentBearerToken: null start: '2020-10-21' status: ACCEPTED updatedAt: '2020-10-22T20:12:33Z' parameters: bookingIdParam: description: The unique identifier of the booking you would like to update. in: path name: bookingId required: true schema: type: string securitySchemes: API_Key_Authentication: in: header name: x-api-key type: apiKey paymentAuth: bearerFormat: JWT scheme: bearer type: http