openapi: 3.0.1 info: title: Channex ARI Bookings API description: 'Channex is a white-label hotel channel manager API. This specification describes the JSON-based REST API (v1) for managing properties, room types, rate plans, availability and restrictions (ARI), bookings, channels, and webhooks. Requests and responses use a resource envelope: response bodies carry a `data` (or `meta` / `errors`) root key, and `data` objects contain `type` and `attributes`. Write requests wrap their payload under a resource-type key (e.g. `property`, `room_type`, `rate_plan`).' termsOfService: https://channex.io/terms-of-service/ contact: name: Channex Support email: support@channex.io url: https://docs.channex.io/ version: '1.0' servers: - url: https://secure.channex.io/api/v1 description: Production - url: https://staging.channex.io/api/v1 description: Staging / sandbox security: - userApiKey: [] tags: - name: Bookings description: Retrieve and manage bookings and booking revisions. paths: /bookings: get: operationId: listBookings tags: - Bookings summary: List bookings parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Limit' - name: filter[property_id] in: query schema: type: string format: uuid responses: '200': description: A list of bookings. content: application/json: schema: $ref: '#/components/schemas/BookingList' /bookings/{id}: parameters: - $ref: '#/components/parameters/Id' get: operationId: getBooking tags: - Bookings summary: Get a booking description: Retrieve the latest revision of a booking. responses: '200': description: The requested booking. content: application/json: schema: $ref: '#/components/schemas/BookingResponse' /bookings/{booking_id}/no_show: parameters: - name: booking_id in: path required: true schema: type: string format: uuid post: operationId: reportNoShow tags: - Bookings summary: Report a no-show responses: '200': description: No-show reported. /bookings/{booking_id}/invalid_card: parameters: - name: booking_id in: path required: true schema: type: string format: uuid post: operationId: reportInvalidCard tags: - Bookings summary: Report an invalid card responses: '200': description: Invalid card reported. /bookings/{booking_id}/cancel_due_invalid_card: parameters: - name: booking_id in: path required: true schema: type: string format: uuid post: operationId: cancelDueInvalidCard tags: - Bookings summary: Cancel a booking due to an invalid card responses: '200': description: Booking cancelled due to invalid card. /booking_revisions: get: operationId: listBookingRevisions tags: - Bookings summary: List booking revisions responses: '200': description: A list of booking revisions. content: application/json: schema: $ref: '#/components/schemas/Envelope' /booking_revisions/feed: get: operationId: getBookingRevisionsFeed tags: - Bookings summary: Booking revisions feed description: Returns unacknowledged booking revisions. Primary mechanism for keeping a PMS in sync with new and modified bookings. responses: '200': description: Unacknowledged booking revisions. content: application/json: schema: $ref: '#/components/schemas/Envelope' /booking_revisions/{id}: parameters: - $ref: '#/components/parameters/Id' get: operationId: getBookingRevision tags: - Bookings summary: Get a booking revision responses: '200': description: The requested booking revision. content: application/json: schema: $ref: '#/components/schemas/Envelope' /booking_revisions/{id}/ack: parameters: - $ref: '#/components/parameters/Id' post: operationId: ackBookingRevision tags: - Bookings summary: Acknowledge a booking revision responses: '200': description: Revision acknowledged. components: parameters: Limit: name: limit in: query schema: type: integer minimum: 1 maximum: 100 default: 10 Page: name: page in: query schema: type: integer minimum: 1 default: 1 Id: name: id in: path required: true schema: type: string format: uuid schemas: BookingList: type: object properties: data: type: array items: $ref: '#/components/schemas/Booking' meta: type: object Booking: type: object properties: id: type: string format: uuid type: type: string example: booking attributes: $ref: '#/components/schemas/BookingAttributes' Envelope: type: object properties: data: description: Resource object or array of resource objects. meta: type: object errors: type: object BookingResponse: type: object properties: data: $ref: '#/components/schemas/Booking' BookingAttributes: type: object properties: property_id: type: string format: uuid ota_name: type: string ota_reservation_code: type: string status: type: string enum: - new - modified - cancelled arrival_date: type: string format: date departure_date: type: string format: date currency: type: string amount: type: string occupancy: type: object properties: adults: type: integer children: type: integer infants: type: integer customer: type: object rooms: type: array items: type: object services: type: array items: type: object notes: type: string securitySchemes: userApiKey: type: apiKey in: header name: user-api-key description: Channex API key passed in the `user-api-key` request header. Generate a key in the Channex application under your account settings.