openapi: 3.0.0 info: version: 1.0.0 title: TableCheck API - V1 availability reservations API description: The Availability API is used to obtain near real-time table availability for online reservation booking. termsOfService: https://tablecheck.atlassian.net/wiki/spaces/API/pages/61571353/TableCheck+API+Terms+of+Service servers: - url: https://api.tablecheck.com/api/availability/v1/ description: Production (uses live data) security: - ApiKeyAuth: [] tags: - name: reservations paths: /reservations: get: summary: List all Reservations operationId: listReservations tags: - reservations parameters: - name: ids in: query description: Array or comma-separated list of specific reservation IDs to return. required: false schema: type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 - name: shop_ids in: query description: Array or comma-separated list of shop IDs to filter reservations. required: false schema: type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 - name: created_at_min in: query description: Search lower bound of created_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: created_at_max in: query description: Search upper bound of created_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: updated_at_min in: query description: Search lower bound of updated_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: updated_at_max in: query description: Search upper bound of updated_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: start_at_min in: query description: Search lower bound of start_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: start_at_max in: query description: Search upper bound of start_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: page in: query description: The zero-based page number. Used for pagination. required: false schema: type: number format: integer minimum: 0 - name: per_page in: query description: Number of items to return at once. Used for pagination. required: false schema: type: number format: integer default: 100 minimum: 1 maximum: 200 - name: sort in: query description: The field by which to sort the results. required: false schema: type: string default: start_at enum: - created_at - updated_at - start_at - name: sort_order in: query description: The direction to sort the results (asc or desc.) required: false schema: default: asc enum: - asc - desc type: string - name: customer_ids in: query description: Array or comma-separated list of customer IDs to filter reservations. required: false schema: type: string format: bson-id example: f2ab06ff5d03d98e316513e1 - name: service_category_ids in: query description: Array or comma-separated list of service category IDs to filter reservations. required: false schema: type: string format: bson-id example: 6513e1b06ff2a98e31f5d03d responses: '200': description: A paged array of reservations content: application/json: schema: $ref: '#/components/schemas/ReservationsListResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' post: summary: Create Reservation operationId: createReservation tags: - reservations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReservationCreateParams' responses: '200': description: The Reservation which was created content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' /reservations/{reservation_id_or_ref}: get: summary: Fetch a specific Reservation operationId: showReservationById tags: - reservations parameters: - name: reservation_id_or_ref in: path required: true description: The ID or ref of the Reservation to retrieve schema: type: string - $ref: '#/components/parameters/IncludeFields' - $ref: '#/components/parameters/ExcludeFields' responses: '200': description: The specified Reservation content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' put: summary: Update Reservation operationId: updateReservation tags: - reservations parameters: - name: reservation_id_or_ref in: path required: true description: The ID or ref of the Reservation to update schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReservationUpdateParams' responses: '200': description: The Reservation which was updated content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' /reservations/{reservation_id_or_ref}/cancel: put: summary: Cancel Reservation operationId: cancelReservation tags: - reservations parameters: - name: reservation_id_or_ref in: path required: true description: The ID or ref of the Reservation to cancel schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReservationCancelParams' responses: '200': description: The Reservation which was cancelled content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' /reservations/{reservation_id}: get: summary: Fetch a specific Reservation operationId: showReservationById tags: - reservations parameters: - name: reservation_id in: path required: true description: The ID or slug of the Reservation to retrieve schema: type: string - $ref: '#/components/parameters/IncludeFields' - $ref: '#/components/parameters/ExcludeFields' responses: '200': description: Expected response to a valid request content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse_2' default: description: Error response content: application/json: schema: $ref: '#/components/schemas/Error' put: summary: Update Reservation operationId: updateReservation tags: - reservations parameters: - name: reservation_id in: path required: true description: The ID or ref of the Reservation to update schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReservationUpdateParams_2' responses: '200': description: The Reservation which was updated content: application/json: schema: $ref: '#/components/schemas/ReservationShowResponse_2' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '422': description: Unprocessable Entity content: application/json: schema: $ref: '#/components/schemas/UnprocessableEntityError' /shops/{shop_id}/reservations: get: summary: List all Reservations operationId: listReservations tags: - reservations parameters: - name: shop_id in: path required: true description: The ID, slug or ref of the Shop schema: type: string - name: created_at_min in: query description: Search lower bound of created_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: created_at_max in: query description: Search upper bound of created_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: updated_at_min in: query description: Search lower bound of updated_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: updated_at_max in: query description: Search upper bound of updated_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: start_at_min in: query description: Search lower bound of start_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: start_at_max in: query description: Search upper bound of start_at field (ISO timestamp). required: false schema: type: string format: date-time example: '2020-01-29T19:00:00Z' - name: customer_name in: query description: The name of the customer to search for reservations. Can be full name, first name, or last name. required: false schema: type: string - name: page in: query description: The zero-based page number. Used for pagination. required: false schema: type: number format: integer minimum: 0 - name: per_page in: query description: Number of items to return at once. Used for pagination. required: false schema: type: number format: integer default: 20 minimum: 1 maximum: 100 - $ref: '#/components/parameters/IncludeFields' - $ref: '#/components/parameters/ExcludeFields' responses: '200': description: A paged array of reservations content: application/json: schema: $ref: '#/components/schemas/ReservationsListResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '422': description: Unprocessable Entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/UnprocessableEntityError' - $ref: '#/components/schemas/ShopNotFoundError' /shops/{shop_id}/reservations/{reservation_id}: get: summary: Get Reservation information operationId: showReservation tags: - reservations parameters: - name: shop_id in: path required: true description: The ID, slug or ref of the Shop schema: type: string - name: reservation_id in: path required: true description: The ID or code of the Reservation schema: type: string - $ref: '#/components/parameters/IncludeFields' - $ref: '#/components/parameters/ExcludeFields' responses: '200': description: The Reservation content: application/json: schema: $ref: '#/components/schemas/ReservationSingleResponse' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' put: summary: Update Reservation operationId: updateReservation tags: - reservations parameters: - name: shop_id in: path required: true description: The ID, slug or ref of the Shop schema: type: string - name: reservation_id in: path required: true description: The ID or code of the Reservation schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ReservationUpdateParams_3' responses: '200': description: The Reservation which was updated content: application/json: schema: $ref: '#/components/schemas/ReservationSingleResponse' '400': description: Bad Request content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '403': description: Forbidden content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: Not Found content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '422': description: Unprocessable Entity content: application/json: schema: anyOf: - $ref: '#/components/schemas/UnprocessableEntityError' - $ref: '#/components/schemas/ShopNotFoundError' components: schemas: ReservationShowResponse: type: object properties: reservation: $ref: '#/components/schemas/Reservation' ReservationShowResponse_2: type: object properties: reservation: $ref: '#/components/schemas/Reservation_2' reservation_flags: type: array items: $ref: '#/components/schemas/ReservationFlag' Reservation_3: type: object properties: id: description: TableCheck's database ID of the Reservation. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 franchise_id: description: The ID of the Franchise to which the Reservation belongs. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 shop_id: description: The ID of Shop to which the Reservation belongs. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 cancel_reason: description: Free-text reason for cancellation. type: string example: Cancelled due to weather cancel_reason_type: description: The enumerated reason for cancellation. type: string enum: - mistake - shop - travel - deal - delay - personal - covid - other channel: description: The website or sales channel by which the Reservation was made. type: string example: instagram code: description: TableCheck's short code for the Reservation. May be displayed to user. type: string example: ABC123 customer_name: description: '[PII] The customer''s name.' type: string duration: description: The anticipated seating duration of the reservation, in seconds. type: number format: seconds example: 7200 locale: description: The customer's preferred language. type: string enum: - en - ja - ko - zh-CN - zh-TW - de - es - fr - nl - it - pt - tr - ru - id - ms - tl - th - lo - km - vi - ar - he - hi memo: description: Free-text memo which may include payment info, special requests, allergies, etc. type: string party_name: description: The party or group name for the reservation. type: string pax: description: The party size, i.e. number of people dining. type: number format: integer example: 3 points: description: The number of reward points redeemed by the customer via the provider system. type: number format: integer example: 200 provider: description: The system used to process the reservation (tablecheck, etc.) type: string example: tablecheck provider_ref: description: The Reservation ID according to the system which processed the Reservation. type: string example: ABC123DEF purpose: description: The reason or occasion for booking, e.g. "birthday". type: string enum: - birthday - birthday_self - birthday_friends - birthday_couple - birthday_spouse - birthday_family - group - group_women - group_farewell - group_holiday - group_reunion - group_wedding - group_travel - business - business_internal - business_farewell - business_holiday - family - family_celebration - family_baby - family_kids - family_intro - family_engagement - family_memorial - date - date_group - date_proposal - date_anniversary - date_celebration - event - event_seminar - event_recital - event_expo - event_film - other room_name: description: The hotel room number associated with the reservation. type: string seat_types: description: Indicates the seating preference(s) of the customer, e.g. private room. type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: The customer's smoking preference. type: string enum: - none - 'true' - 'false' source: description: The general method by which the reservation was made ("web", "phone", etc.) type: string enum: - phone - ivrs - sms - web - email - in_person - walk_in - app - other start_at: description: The time at which the party wishes to arrive for the Reservation. Must match the Blockage start_at value. type: string format: date-time example: '2020-01-29T19:15:00Z' status: description: The status of the Reservation. type: string enum: - tentative - pending - request - accepted - confirmed - attended - cancelled - noshow - rejected - iou_prepay - iou_auth table_names: description: The names of the table(s) at which the party is seated. This is derived from the table objects in TableCheck. type: array items: type: string created_at: description: The timestamp of when the Reservation was created. type: string format: date-time example: '2020-01-29T19:12:34Z' updated_at: description: The timestamp of when the Reservation was last updated. type: string format: date-time example: '2020-01-29T19:12:34Z' Reservation_2: properties: id: description: Database ID of the Reservation. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 ref: type: string description: Your identifier for the Reservation. franchise_id: description: The ID of Franchise to which the Reservation belongs. type: string format: bson-id shop_id: description: The ID of Shop to which the Reservation belongs. type: string format: bson-id customer_ids: description: The IDs of the Customers to which the Reservation belongs. type: array items: type: string format: bson-id primary_customer_id: description: The ID of primary Customer of Reservation. Refer to "customers" array. type: string format: bson-id example: ede535ea33fd275ca15d6893 table_ids: description: The IDs of the Tables where the Reservation will be seated. type: array items: type: string format: bson-id service_category_id: description: The database ID of the ServiceCategory assigned to the Reservation. type: string format: bson-id promo_id: description: The database ID of the Promo assigned to the Reservation. type: string format: bson-id created_at: description: The timestamp of when the Reservation was created. type: string format: date-time updated_at: description: The timestamp of when the Reservation was last updated. type: string format: date-time start_at: description: The time at which the party is scheduled to arrive for the Reservation. type: string format: date-time example: '2020-01-29T19:15:00Z' duration: description: The planned duration of the Reservation in seconds. type: number format: seconds example: 7200 pax: description: The total party size of the Reservation. This is the sum of the other pax fields. type: number format: integer example: 6 pax_adult: description: The number of adults attending the Reservation. type: number format: integer example: 3 pax_senior: description: The number of senior citizens attending the Reservation. type: number format: integer example: 2 pax_child: description: The number of children attending the Reservation. type: number format: integer example: 0 pax_baby: description: The number of babies attending the Reservation. type: number format: integer example: 1 status: description: The status of the Reservation. type: string enum: - tentative - pending - request - accepted - confirmed - delay - call_absent - call_message - call_wrong - cancelled - noshow - rejected - arrived - arrived_part - waiting - waitlist_called - seated - seated_part - service_drink - service_main - service_dessert - check_req - paid - turnover - turned_over source: description: The general method by which the Reservation was made (web, phone, etc.) type: string example: web channel: description: The web site or sales channel by which the Reservation was made. type: string example: instagram provider: description: The system used to process the Reservation (tablecheck, etc.) type: string example: tablecheck provider_ref: description: The Reservation ID according to the system which processed the Reservation. type: string example: ABC123DEF points: description: The number of reward points redeemed by the customer via the provider system. type: number format: integer example: 200 seat_types: description: The seating or table type(s) requested by the customer. type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: Indicates whether the customer has requested smoking or non-smoking seats. type: string enum: - none - 'true' - 'false' special_request: description: Free-text additional request made by the customer at time of booking. May be used to include special requests, dietary restrictions, etc. type: string memo: description: A free-text internal memo for the Reservation used only by merchant staff. Contains notes about the reservation, customer, or other details. type: string memo2: description: Secondary free-text internal memo for the Reservation used only by merchant staff. type: string visit_history: description: An enumeration indicating roughly how many times the customer has visited the restaurant. type: string enum: - new - visit2 - visit3 - repeater - walk_in - no_customer party_name: description: The party or group name for the reservation. type: string room_name: description: The hotel room number associated with the reservation. type: string cancel_reason_type: description: The enumerated reason for cancellation, if the reservation was cancelled. type: string enum: - mistake - shop - travel - deal - delay - personal - covid - other cancel_reason: description: The memo explaining the reason for cancellation, if the reservation was cancelled. type: string cancelled_by_customer: description: If the reservation was cancelled, this flag if true indicates the cancellation action was performed by the customer (diner) via the web. A false value indicates the cancellation was performed either by the merchant or (in rare cases) automatically by the system. type: boolean send_emails: description: Indicates whether to send the customer email notifications for this reservation. type: boolean send_texts: description: Indicates whether to send the customer text message notifications for this reservation. type: boolean enable_sms: description: Deprecated. Please use send_texts instead. type: boolean email: description: '[PII] The email address designated by the customer to receive notifications for this reservation.' type: string format: email phone: description: '[PII] The phone number designated by the customer to receive calls regarding this reservation.' type: string format: phone-e164 sms_number: description: '[PII] The mobile number designated by the customer to receive SMS notifications for this reservation. The sms_number cannot be set directly; it is using the phone parameter.' type: string format: phone-e164 franchise: $ref: '#/components/schemas/FranchiseEmbed' shop: $ref: '#/components/schemas/ShopEmbed' customers: type: array items: $ref: '#/components/schemas/CustomerEmbed' images: type: array items: $ref: '#/components/schemas/ImageEmbed' orders: type: array items: $ref: '#/components/schemas/OrderEmbed' pos_journals: type: array items: $ref: '#/components/schemas/PosJournalEmbed' payments: type: array items: $ref: '#/components/schemas/PaymentEmbed' questions: type: array items: $ref: '#/components/schemas/QuestionEmbed' tables: type: array items: $ref: '#/components/schemas/TableEmbed' service_category: $ref: '#/components/schemas/ServiceCategoryEmbed' promo: $ref: '#/components/schemas/PromoEmbed' MembershipEmbed: type: object properties: id: description: The database ID of the Membership. type: string format: bson-id code: type: string membership_program_id: description: The database ID of the Membership Program. type: string format: bson-id membership_program_name: type: string membership_tier_id: description: The database ID of the Membership Tier. type: string format: bson-id membership_tier_name: type: string status: description: The status of the membership. type: string enum: - active - pre_enrollment - cancelled points: description: The number of points available on the membership. type: number format: integer ImageEmbed: properties: id: description: The database ID of the Image. type: string format: bson-id example: 65dcd5f935288116d268b45b url: description: The URL of the image as a large size JPEG. type: string format: url example: https://cdn1.tablecheck.com/images/92a543f5085ea8b1ffbe000a/images/xl/image.jpg content_type: description: The MIME content type of the image. type: string example: image/jpeg dimensions: type: array items: $ref: '#/components/schemas/ImageDimensions' example: - 200 - 200 fingerprint: description: The fingerprint of the image used for deduplication. type: string example: af6515a29e04ac61d4379a3181140647 image_variants: description: A list of image size variants scaled to different sizes. type: array items: $ref: '#/components/schemas/ImageVariants' tags: description: Not used. type: array example: [] created_at: type: string format: date-time Emails: description: '[PII] A list of Email objects.' type: array items: $ref: '#/components/schemas/Email' UnprocessableEntityError: required: - errors properties: errors: type: array items: type: object properties: code: type: string example: not_created message: type: string example: Could not create resource due to missing parameter. QuestionEmbed: type: object properties: id: description: The database ID of the Question object. type: string format: bson-id question: description: The question asked by the merchant during the reservation booking. type: string answer: description: The response from the customer. type: string PaginationData: type: object properties: page: type: number format: integer example: 3 per_page: type: number format: integer example: 100 ReservationUpdateParams_2: type: object properties: customer_ref: description: The identifier you supplied for an existing customer. type: string customer_id: description: The identifier of an existing customer. type: string ref: description: Your identifier for the reservation. type: string pax: description: The total party size of the Reservation. May be specified as an alternative to pax_adult. type: number format: integer example: 6 pax_adult: description: The number of adults attending the Reservation. type: number format: integer example: 3 pax_senior: description: The number of senior citizens attending the Reservation. type: number format: integer example: 2 pax_child: description: The number of children attending the Reservation. type: number format: integer example: 0 pax_baby: description: The number of babies attending the Reservation. type: number format: integer example: 1 start_at: description: The time at which the party is scheduled to arrive for the Reservation. type: string format: date-time example: '2020-01-29T19:15:00Z' duration: description: The planned duration of the Reservation in seconds. It is recommended not to set this parameter, as the system will determine duration automatically. If you have previously set duration, transmitting duration as null will revert to the auto-set state. type: number format: seconds example: 7200 source: description: The general method by which the Reservation was made ("web", "phone", etc.) If not set, when creating a Reservation it will be defaulted to source "web" to indicate an online booking. type: string enum: - phone - ivrs - sms - web - email - in_person - walk_in - app - other channel: description: The web site or sales channel by which the Reservation was made. type: string example: instagram special_request: description: Free-text additional request made by the customer at time of booking. May be used to include special requests, dietary restrictions, etc. type: string memo: description: A free-text internal memo for the Reservation used only by merchant staff. Contains notes about the reservation, customer, or other details. type: string memo2: description: Secondary free-text internal memo for the Reservation used only by merchant staff. type: string seat_types: description: The seating or table type(s) requested by the customer. type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: Indicates whether the customer has requested smoking or non-smoking seats. type: string enum: - none - 'true' - 'false' status: description: The status of the Reservation. It is recommended not to set this parameter, as the system will assign status automatically. type: string enum: - tentative - pending - request - accepted - confirmed - delay - call_absent - call_message - call_wrong - cancelled - noshow - rejected - arrived - arrived_part - waiting - waitlist_called - seated - seated_part - service_drink - service_main - service_dessert - check_req - paid - turnover - turned_over points: description: The number of reward points redeemed by the customer via the provider system. type: number format: integer example: 200 party_name: description: The party or group name for the reservation. type: string room_name: description: The hotel room number associated with the reservation. type: string cancel_reason_type: description: The enumerated reason for cancellation, if the reservation was cancelled. type: string enum: - mistake - shop - travel - deal - delay - personal - covid - other cancel_reason: description: The memo explaining the reason for cancellation, if the reservation was cancelled. type: string cancelled_by_customer: description: If the reservation was cancelled, this flag if true indicates the cancellation action was performed by the customer (diner) via the web. A false value indicates the cancellation was performed either by the merchant or (in rare cases) automatically by the system. type: boolean send_emails: description: Indicates whether to send email notifications to the Customer for this Reservation. Default false. type: boolean send_texts: description: Indicates whether to send text message notifications to the Customer for this Reservation. Requires phone parameter to be a mobile number. Default false. type: boolean email: description: The email address designated by the customer to receive notifications for this reservation. type: string format: email phone: description: The phone number designated by the customer to receive text messages and calls regarding this reservation. type: string format: phone-e164 reservation_flag_ids: description: The reservation flags ids. type: array items: type: string example: 64ddfe5b6ff2a916b29dc902 images: description: Images type: array items: oneOf: - $ref: '#/components/schemas/ImageEmbedCreate' - $ref: '#/components/schemas/ImageEmbedDestroy' Error: required: - errors properties: errors: type: array items: type: object properties: code: type: string example: not_found message: type: string example: Item not found ReservationCancelParams: type: object properties: cancel_reason_type: description: The enumerated reason for cancellation. type: string enum: - mistake - shop - travel - deal - delay - personal - covid - other cancel_reason: description: Free-text reason for cancellation. type: string example: Cancelled due to weather cancel_policy_html: description: HTML representation of the venue's cancellation policy, including any applicable cancel fee rules. type: string format: html ShopNotFoundError: required: - errors properties: errors: type: array items: type: object properties: message: type: string example: Venue not found. ImageEmbedDestroy: type: object example: id: 65dcd5f935288116d268b45b _destroy: true properties: id: description: The database ID of the Image object. type: string format: bson-id example: 65dcd5f935288116d268b45b _destroy: description: Destroys the image type: boolean example: true Reservation: type: object properties: user_agent: description: The browser user agent string of the end user. type: string example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 user_ip: description: The IP address of the end user. type: string format: ip-address example: 145.0.34.255 utm_id: description: Aggregate identifier for all UTM parameters. type: string example: my-id-124723 utm_source: description: Identifies which site sent the traffic. type: string example: google utm_medium: description: Identifies what type of link was used, such as cost per click or email. type: string example: cpc utm_campaign: description: Identifies a specific product promotion or strategic campaign. type: string example: spring_sale utm_term: description: Identifies search terms. type: string example: ginza+italian utm_content: description: Identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link. It is often used for A/B testing and content-targeted ads. type: string example: logolink blockage_id: description: A non-expired Blockage ID obtained via API (see /blockages/ endpoint). The Blockage will be deleted once the Reservation is created/updated. This parameter is used only when creating/updating Reservations and is not included in the Reservation response. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 source: description: The general method by which the Reservation was made ("web", "phone", etc.) If not set, when creating a Reservation it will be defaulted to source "web" to indicate an online booking. type: string enum: - phone - ivrs - sms - web - email - in_person - walk_in - app - other channel: description: The website or sales channel by which the Reservation was made. Can be modified by the merchant. type: string example: instagram special_request: description: Free-text additional request made by the customer at time of booking. May be used to include special requests, dietary restrictions, etc. type: string memo: description: A free-text internal memo for the Reservation used only by merchant staff. Contains notes about the reservation, customer, or other details. If special_request is not set, memo will be automatically copied to special_request. type: string memo2: description: Secondary free-text internal memo for the Reservation used only by merchant staff. type: string purpose: description: The occasion for which customer booked. type: string example: birthday enum: - birthday - birthday_self - birthday_friends - birthday_couple - birthday_spouse - birthday_family - group - group_women - group_farewell - group_holiday - group_reunion - group_wedding - group_travel - business - business_internal - business_farewell - business_holiday - family - family_celebration - family_baby - family_kids - family_intro - family_engagement - family_memorial - date - date_group - date_proposal - date_anniversary - date_celebration - event - event_seminar - event_recital - event_expo - event_film - other seat_types: description: Indicates what kind of seating the customer would like to receive, e.g. table, counter, private room, etc. (array or comma-separated list) type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: The customer's smoking preference. type: string enum: - none - 'true' - 'false' ref: description: The Reservation ID according to your system. type: string example: AbC123DeF pax_adult: description: The number of adults attending the Reservation. type: number format: integer example: 3 pax_senior: description: The number of senior citizens attending the Reservation. type: number format: integer example: 2 pax_child: description: The number of children attending the Reservation. type: number format: integer example: 0 pax_baby: description: The number of babies attending the Reservation. type: number format: integer example: 1 reservation_flag_ids: description: The IDs of the ReservationFlags assigned to the Reservation. type: array items: type: string format: bson-id shop_id: description: The ID of Shop to which the Reservation belongs. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 pax: description: The party size of the Reservation. Must match the Blockage pax value. type: number format: integer example: 3 start_at: description: The time at which the party wishes to arrive for the Reservation. Must match the Blockage start_at value. type: string format: date-time example: '2020-01-29T19:15:00Z' customer_id: description: TableCheck's database ID of the Customer. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 customer_ref: description: Your identifier for the Customer. type: string first_name: description: '[PII] The Customer''s given name. Preferred to be in English.' type: string last_name: description: '[PII] The Customer''s family name. Preferred to be in English. Required by this schema; the API also accepts first_name alone as the sole name field.' type: string alt_first_name: description: '[PII] An alternate given name for the Customer, e.g. in Chinese characters.' type: string alt_last_name: description: '[PII] An alternate family name for the Customer, e.g. in Chinese characters.' type: string name_recording_url: description: '[PII] URL of an audio recording of the Customer''s name, for use in phone or device-based based booking flows. Must be publicly accessible.' format: url type: string gender: description: The Customer's gender. type: string enum: - male - female locale: description: The language in which Customer should receive messages. type: string enum: - en - ja - ko - zh-CN - zh-TW - de - es - fr - nl - it - pt - tr - ru - id - ms - tl - th - lo - km - vi - ar - he - hi email: description: '[PII] The Customer''s email address.' type: string format: email phone: description: '[PII] The Customer''s phone number, which may be either a landline or mobile number.' type: string format: phone-e164 example: '+81312345678' sms_number: description: '[PII] The Customer''s mobile phone number for SMS notifications.' type: string format: phone-e164 example: '+818012345678' send_texts: description: Indicates whether to send text message notifications to the Customer for this Reservation. Requires phone parameter to be a mobile number. Default false. type: boolean send_emails: description: Indicates whether to send email notifications to the Customer for this Reservation. Default false. type: boolean is_temporary: type: boolean description: Indicates whether the Customer is designated temporary (depends on franchise configuration). table_ids: description: The IDs of the tables assigned to the Reservation. type: array items: type: string format: bson-id example: 641d4902bc54f4a840119a49 party_name: description: The party or group name for the reservation. type: string room_name: description: The hotel room number associated with the reservation. type: string service_category_id: description: Assigned tables will be from Service Category. type: string format: bson-id example: 6513e1b06ff2a98e31f5d03d orders: description: The ordered items in the reservation. type: array items: $ref: '#/components/schemas/ReservationOrder' questions: description: Optional array of custom questions and answers (enquetes). Each item may include id, question, answer. type: array items: type: object properties: id: description: TableCheck's database ID of the Enquete (for updates). Omit when creating a new question/answer. type: string format: bson-id question: description: The question text. type: string answer: description: The customer's answer. type: string cancel_reason_type: description: The enumerated reason for cancellation. type: string enum: - mistake - shop - travel - deal - delay - personal - covid - other cancel_reason: description: Free-text reason for cancellation. type: string example: Cancelled due to weather cancel_policy_html: description: HTML representation of the venue's cancellation policy, including any applicable cancel fee rules. type: string format: html id: description: TableCheck's database ID of the Reservation. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 code: description: TableCheck's short code for the Reservation. May be displayed to user. type: string example: ABC123 url: description: TableCheck's short URL to manage the Reservation. May be displayed to user. type: string format: url example: https://tblc.hk/rABC123 created_at: description: The timestamp of when the Reservation was created. type: string format: date-time example: '2020-01-29T19:12:34Z' updated_at: description: The timestamp of when the Reservation was last updated. type: string format: date-time example: '2020-01-29T19:12:34Z' shop_slug: description: TableCheck's web ID of Shop to which the Reservation belongs. type: string example: my-shop-slug status: description: The status of the Reservation. type: string enum: - tentative - pending - request - accepted - confirmed - attended - cancelled - noshow - rejected - iou_prepay - iou_auth provider: description: The third-party system by which the Reservation was made. Cannot be modified by the merchant. type: string example: opentable provider_ref: description: The reservation identifier assigned by the third-party system. type: string example: ABC123456 is_tablecheck: description: Indicates whether the reservation was booked through via the TableCheck online booking page. type: boolean can_cancel: description: Indicates whether the end user should be allowed to cancel the reservation. type: boolean can_amend: description: Indicates whether the end user should be allowed to amend the reservation. type: boolean can_confirm: description: Indicates whether the end user should be allowed to set the reservation status to "confirmed". type: boolean allow_provider_marketing: description: Whether the diner has opted-in to receive the provider's (i.e. your) marketing mails. type: boolean currency: description: The ISO currency code of the reservation's payment transactions. type: string format: currency payment_type: description: The type of payment action. type: string enum: - prepay - auth - store - none meal_period: description: The meal period for the reservation. type: string enum: - all_day - breakfast - lunch - tea - dinner - night payment_group_fee_amt: description: The table charge (per-group fee) used for payment, if applicable. type: string format: amt payment_pax_fee_amt: description: The cover charge (per-pax fee) used for payment, if applicable. type: string format: amt payment_subtotal_amt: description: The subtotal for online payment, which includes order amounts, per-group fee, and per-pax fee. It does not include discount, service fee, delivery fee or tax. type: string format: amt payment_discount_amt: description: The discount amount applicable to online payment, e.g. from an applied promo code. type: string format: amt payment_service_fee_amt: description: The service fee applicable to online payment. type: string format: amt payment_total_amt: description: The final total amount to be charged as an online payment. If this amount is zero, then there is no payment to be charged. type: string format: amt payment_tax_amt: description: The tax fee applicable to online payment. type: string format: amt cash_subtotal_amt: description: The portion of the order total which is due at the venue. type: string format: amt cash_discount_amt: description: The discount amount applicable to the amount due at the venue, e.g. from an applied promo code. type: string format: amt cash_service_fee_amt: description: The service fee applicable to the amount due at the venue. type: string format: amt cash_tax_amt: description: The tax applicable to the amount due at the venue. type: string format: amt cash_total_amt: description: The final amount due at the venue, i.e. not to be charged by online payment. type: string format: amt grand_total_amt: description: The sum of cash_total_amt and payment_total_amt, which represents the total monetary amount for the booking. type: string format: amt BadRequestError: required: - errors properties: errors: type: array items: type: object properties: code: type: string example: parameter_missing message: type: string example: Required parameter is missing. FranchiseEmbed: type: object properties: id: description: ID of the Franchise. type: string format: bson-id example: a33e5357ed5d6893e5ca1fd2 name: description: The name of the Franchise. type: object format: string example: The Midtown Hotel ShopEmbed: type: object properties: id: description: ID of the Shop to which the Reservation belongs. type: string format: bson-id example: ede535ea33fd275ca15d6893 name_translations: description: The name of the Shop where the reservation was booked. type: object format: translations example: en: Paris Cafe fr: Café de Paris ja: カフェデパリ internal_name: description: The shorthand name of the Shop where the reservation was booked. type: object format: string example: Paris Cafe slug: description: The web ID of the Shop where the reservation was booked. type: string example: my-shop-slug country: description: The country where the Shop is located. type: string format: country example: JP currency: description: The monetary currency used by the Shop. type: string format: currency example: JPY time_zone: description: The time zone used by the Shop. type: string format: time-zone example: Asia/Tokyo ReservationUpdateParams_3: type: object properties: pos_journal_ref: description: The POS system's identifier of the check object. type: string status: description: The status of the reservation, e.g. table occupied, etc. type: string enum: - occupied - bill_printed - paid - cleaning - vacant pax: description: The party size, i.e. number of people dining. type: number format: integer table_names: description: The names of the table(s) at which the party is seated. This should exactly match the table name(s) as they appear in TableCheck. type: array items: type: string Social: type: object required: - username properties: id: description: The database ID of the Social object. type: string format: bson-id service: type: string enum: - facebook - google - twitter - line - kakao - naver - yahoo - mixi - ameblo - linkedin - skype - wechat - weibo - qq username: description: '[PII] The social media username.' type: string created_at: type: string format: date-time updated_at: type: string format: date-time ImageDimensions: properties: large: type: array items: type: number example: - 1280 - 704 medium: type: array items: type: number example: - 800 - 440 small: type: array items: type: number example: - 256 - 141 ImageVariants: properties: variant: type: string enum: - original - large - medium - small url: type: string format: url example: https://cdn1.tablecheck.com/images/92a543f5085ea8b1ffbe000a/images/xl/image.jpg dimensions: type: array items: $ref: '#/components/schemas/ImageDimensions' example: - 2000 - 1500 content_type: description: The MIME content type of the image variant. type: string example: image/jpeg Email: type: object required: - email properties: id: description: The database ID of the Email object. type: string format: bson-id email: description: '[PII] The email address.' type: string tag: type: string enum: - none - home - work - mobile - other created_at: type: string format: date-time updated_at: type: string format: date-time ReservationUpdateParams: type: object properties: user_agent: description: The browser user agent string of the end user. type: string example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 user_ip: description: The IP address of the end user. type: string format: ip-address example: 145.0.34.255 utm_id: description: Aggregate identifier for all UTM parameters. type: string example: my-id-124723 utm_source: description: Identifies which site sent the traffic. type: string example: google utm_medium: description: Identifies what type of link was used, such as cost per click or email. type: string example: cpc utm_campaign: description: Identifies a specific product promotion or strategic campaign. type: string example: spring_sale utm_term: description: Identifies search terms. type: string example: ginza+italian utm_content: description: Identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link. It is often used for A/B testing and content-targeted ads. type: string example: logolink blockage_id: description: A non-expired Blockage ID obtained via API (see /blockages/ endpoint). The Blockage will be deleted once the Reservation is created/updated. This parameter is used only when creating/updating Reservations and is not included in the Reservation response. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 source: description: The general method by which the Reservation was made ("web", "phone", etc.) If not set, when creating a Reservation it will be defaulted to source "web" to indicate an online booking. type: string enum: - phone - ivrs - sms - web - email - in_person - walk_in - app - other channel: description: The website or sales channel by which the Reservation was made. Can be modified by the merchant. type: string example: instagram special_request: description: Free-text additional request made by the customer at time of booking. May be used to include special requests, dietary restrictions, etc. type: string memo: description: A free-text internal memo for the Reservation used only by merchant staff. Contains notes about the reservation, customer, or other details. If special_request is not set, memo will be automatically copied to special_request. type: string memo2: description: Secondary free-text internal memo for the Reservation used only by merchant staff. type: string purpose: description: The occasion for which customer booked. type: string example: birthday enum: - birthday - birthday_self - birthday_friends - birthday_couple - birthday_spouse - birthday_family - group - group_women - group_farewell - group_holiday - group_reunion - group_wedding - group_travel - business - business_internal - business_farewell - business_holiday - family - family_celebration - family_baby - family_kids - family_intro - family_engagement - family_memorial - date - date_group - date_proposal - date_anniversary - date_celebration - event - event_seminar - event_recital - event_expo - event_film - other seat_types: description: Indicates what kind of seating the customer would like to receive, e.g. table, counter, private room, etc. (array or comma-separated list) type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: The customer's smoking preference. type: string enum: - none - 'true' - 'false' ref: description: Your identifier for the Reservation. type: string pax_adult: description: The number of adults attending the Reservation. type: number format: integer example: 3 pax_senior: description: The number of senior citizens attending the Reservation. type: number format: integer example: 2 pax_child: description: The number of children attending the Reservation. type: number format: integer example: 0 pax_baby: description: The number of babies attending the Reservation. type: number format: integer example: 1 reservation_flag_ids: description: The IDs of the ReservationFlags assigned to the Reservation. type: array items: type: string format: bson-id pax: description: The party size of the Reservation. Must match the Blockage pax value. type: number format: integer example: 3 start_at: description: The time at which the party wishes to arrive for the Reservation. Must match the Blockage start_at value. type: string format: date-time example: '2020-01-29T19:15:00Z' OrderEmbed: type: object properties: id: description: The database ID of the Order. type: string format: bson-id menu_item_id: description: The database ID of the MenuItem being ordered. type: string format: bson-id created_at: type: string format: date-time updated_at: type: string format: date-time unit_price: type: string format: decimal qty: type: number format: integer is_group_order: type: boolean menu_item: $ref: '#/components/schemas/MenuItemEmbed' MenuItemEmbed: type: object properties: id: type: string format: bson-id name_translations: type: string internal_name: type: string PhoneNumbersList: description: '[PII] A list of phone numbers as strings.' type: array items: type: string format: phone-e164 ReservationsListResponse: type: object properties: reservations: type: array items: $ref: '#/components/schemas/Reservation' pagination: $ref: '#/components/schemas/PaginationData' PosOrder: type: object properties: id: description: TableCheck's database ID of the PosOrder object. type: string format: bson-id ref: description: The identifier (as used by the POS system database) of the order. type: string order_at: description: The timestamp of when the order was entered into the POS system. type: string format: date-time example: '2020-01-29T19:12:34Z' menu_category_ref: description: The identifier (as used by the POS system database) of the category of the order's menu item. type: string example: ABC123DEF menu_category_name: description: The human-readable name of the category of the order's menu item. type: string example: Appetizer menu_department_ref: description: The identifier (as used by the POS system database) of the department of the order's menu item. type: string example: DEF456GHI menu_department_name: description: The human-readable name of the department of the order's menu item. type: string example: Kitchen menu_item_ref: description: The identifier (as used by the POS system database) of the order's menu item. type: string example: ABC123DEF menu_item_name: description: The human-readable name of the order's menu item. This should match the line item displayed on the receipt. type: string example: Chicken Soup sku: description: The Stock Keeping Unit identifier for the order's menu item. This may differ from menu_item_ref (the POS system database ID). type: string qty: description: The order quantity, i.e. how many units are ordered. type: number format: integer unit_price: description: The price of a single unit within the order. (The unit_price is multiplied by qty to obtain the total price.) type: string format: decimal ReservationCreateParams: type: object description: The API validates that at least one of first_name or last_name is present. This schema requires last_name so that requests valid against the schema always satisfy the API (OpenAPI cannot express "at least one of"). required: - shop_id - pax - start_at - last_name properties: user_agent: description: The browser user agent string of the end user. type: string example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36 user_ip: description: The IP address of the end user. type: string format: ip-address example: 145.0.34.255 utm_id: description: Aggregate identifier for all UTM parameters. type: string example: my-id-124723 utm_source: description: Identifies which site sent the traffic. type: string example: google utm_medium: description: Identifies what type of link was used, such as cost per click or email. type: string example: cpc utm_campaign: description: Identifies a specific product promotion or strategic campaign. type: string example: spring_sale utm_term: description: Identifies search terms. type: string example: ginza+italian utm_content: description: Identifies what specifically was clicked to bring the user to the site, such as a banner ad or a text link. It is often used for A/B testing and content-targeted ads. type: string example: logolink blockage_id: description: A non-expired Blockage ID obtained via API (see /blockages/ endpoint). The Blockage will be deleted once the Reservation is created/updated. This parameter is used only when creating/updating Reservations and is not included in the Reservation response. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 source: description: The general method by which the Reservation was made ("web", "phone", etc.) If not set, when creating a Reservation it will be defaulted to source "web" to indicate an online booking. type: string enum: - phone - ivrs - sms - web - email - in_person - walk_in - app - other channel: description: The website or sales channel by which the Reservation was made. Can be modified by the merchant. type: string example: instagram special_request: description: Free-text additional request made by the customer at time of booking. May be used to include special requests, dietary restrictions, etc. type: string memo: description: A free-text internal memo for the Reservation used only by merchant staff. Contains notes about the reservation, customer, or other details. If special_request is not set, memo will be automatically copied to special_request. type: string memo2: description: Secondary free-text internal memo for the Reservation used only by merchant staff. type: string purpose: description: The occasion for which customer booked. type: string example: birthday enum: - birthday - birthday_self - birthday_friends - birthday_couple - birthday_spouse - birthday_family - group - group_women - group_farewell - group_holiday - group_reunion - group_wedding - group_travel - business - business_internal - business_farewell - business_holiday - family - family_celebration - family_baby - family_kids - family_intro - family_engagement - family_memorial - date - date_group - date_proposal - date_anniversary - date_celebration - event - event_seminar - event_recital - event_expo - event_film - other seat_types: description: Indicates what kind of seating the customer would like to receive, e.g. table, counter, private room, etc. (array or comma-separated list) type: array items: type: string enum: - open - counter - outside - curtain - private - tatami smoking: description: The customer's smoking preference. type: string enum: - none - 'true' - 'false' ref: description: Your identifier for the Reservation. type: string pax_adult: description: The number of adults attending the Reservation. type: number format: integer example: 3 pax_senior: description: The number of senior citizens attending the Reservation. type: number format: integer example: 2 pax_child: description: The number of children attending the Reservation. type: number format: integer example: 0 pax_baby: description: The number of babies attending the Reservation. type: number format: integer example: 1 reservation_flag_ids: description: The IDs of the ReservationFlags assigned to the Reservation. type: array items: type: string format: bson-id shop_id: description: The ID of Shop to which the Reservation belongs. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 pax: description: The party size of the Reservation. Must match the Blockage pax value. type: number format: integer example: 3 start_at: description: The time at which the party wishes to arrive for the Reservation. Must match the Blockage start_at value. type: string format: date-time example: '2020-01-29T19:15:00Z' customer_id: description: The ID of the Customer to which the Reservation belongs. type: string format: bson-id example: 651a4d586ff2a928758a56e4 customer_ref: description: Your identifier for the Customer. type: string first_name: description: '[PII] The Customer''s given name. Preferred to be in English.' type: string last_name: description: '[PII] The Customer''s family name. Preferred to be in English. Required by this schema; the API also accepts first_name alone as the sole name field.' type: string alt_first_name: description: '[PII] An alternate given name for the Customer, e.g. in Chinese characters.' type: string alt_last_name: description: '[PII] An alternate family name for the Customer, e.g. in Chinese characters.' type: string name_recording_url: description: '[PII] URL of an audio recording of the Customer''s name, for use in phone or device-based based booking flows. Must be publicly accessible.' format: url type: string gender: description: The Customer's gender. type: string enum: - male - female locale: description: The language in which Customer should receive messages. type: string enum: - en - ja - ko - zh-CN - zh-TW - de - es - fr - nl - it - pt - tr - ru - id - ms - tl - th - lo - km - vi - ar - he - hi email: description: '[PII] The Customer''s email address.' type: string format: email phone: description: '[PII] The Customer''s phone number, which may be either a landline or mobile number.' type: string format: phone-e164 example: '+81312345678' sms_number: description: '[PII] The Customer''s mobile phone number for SMS notifications.' type: string format: phone-e164 example: '+818012345678' send_texts: description: Indicates whether to send text message notifications to the Customer for this Reservation. Requires phone parameter to be a mobile number. Default false. type: boolean send_emails: description: Indicates whether to send email notifications to the Customer for this Reservation. Default false. type: boolean is_temporary: type: boolean description: Indicates whether the Customer is designated temporary (depends on franchise configuration). table_ids: description: The IDs of the Tables assigned to the Reservation. type: array items: type: string format: bson-id example: 641d4902bc54f4a840119a49 party_name: description: The party or group name for the reservation. type: string room_name: description: The hotel room number associated with the reservation. type: string service_category_id: description: Assigned tables will be from Service Category. type: string format: bson-id example: 6513e1b06ff2a98e31f5d03d orders: description: Optional array of order items (menu items) to attach to the reservation. Each item may include id, menu_item_id, qty, is_group_order, memo. type: array items: type: object properties: id: description: TableCheck's database ID of the Order (for updates). Omit when creating a new order. type: string format: bson-id menu_item_id: description: The ID of the Menu Item to order. type: string format: bson-id qty: description: Quantity to order. type: number format: integer is_group_order: description: When true, quantity defaults to party size. type: boolean memo: description: Optional memo for the order. type: string questions: description: Optional array of custom questions and answers (enquetes). Each item may include id, question, answer. type: array items: type: object properties: id: description: TableCheck's database ID of the Enquete (for updates). Omit when creating a new question/answer. type: string format: bson-id question: description: The question text. type: string answer: description: The customer's answer. type: string Event: type: object example: date: 01-01-2020 tag: anniversary properties: id: description: The database ID of the Event. type: string format: bson-id tag: type: string enum: - anniversary - birthday - single - 1_month - 2_month - 3_month - 6_month - 1_year date: description: '[PII] The first occurrence date of the event. Note the year value 9996 means the year is unspecified.' type: string format: date months: description: The integer month(s) in which the event occurs, with January = 1, February = 2, etc. type: array items: type: number format: integer day: description: The day on which the event occurs. type: number format: integer memo: type: string created_at: type: string format: date-time updated_at: type: string format: date-time Address: type: object example: tag: home street: 123 Main St city: Seattle state: WA country: US properties: id: description: The database ID of the Address object. type: string format: bson-id tag: type: string description: A tag which indicates the type of address. enum: - none - home - work - other street: type: string description: '[PII] The first line of the street address.' street2: type: string description: '[PII] The second line of the street address.' city: type: string description: '[PII] The city of the address.' region: type: string description: '[PII] The region, state, province, or prefecture of the address.' postal_code: type: string description: '[PII] The postal code of the address.' country: description: The ISO 3166 Alpha-2 code of the country. type: string format: iso-country example: JP created_at: type: string format: date-time updated_at: type: string format: date-time EmailAddressesList: description: '[PII] Email addresses as an array of strings.' type: array items: type: string format: email TableEmbed: type: object properties: id: description: The database ID of the Table assigned to the Reservation. type: string format: bson-id name_translations: description: The name of the Table assigned to the Reservation. type: string NotFoundError: required: - errors properties: errors: type: array items: type: object properties: code: type: string example: resource_not_found message: type: string example: Resource not found. PosJournalEmbed: type: object properties: id: description: The database ID of the PosJournal. type: string format: bson-id reservation_id: description: The ID of the Reservation to which the PosJournal belongs. type: string format: bson-id created_at: type: string format: date-time updated_at: type: string format: date-time batch_date: type: string format: date order_at: type: string format: date-time payment_at: type: string format: date-time transaction_at: type: string format: date-time currency: type: string format: currency country: type: string format: country receipt_num: type: string terminal_name: type: string staff_name: type: string subtotal_amt: type: string format: decimal discount_amt: type: string format: decimal coupon_amt: type: string format: decimal service_fee_amt: type: string format: decimal tax_amt: type: string format: decimal tax_included_amt: type: string format: decimal total_amt: type: string format: decimal pos_orders: type: array items: $ref: '#/components/schemas/PosOrder' pos_payments: type: array items: $ref: '#/components/schemas/PosPayment' pos_discounts: type: array items: $ref: '#/components/schemas/PosDiscount' PromoEmbed: type: object properties: id: description: The database ID of the Promo to utilize on the Reservation. type: string format: bson-id code: description: The alphanumeric code of the Promo to utilize on the Reservation. type: string ReservationOrder: type: object properties: id: description: TableCheck's database ID of the Order. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 menu_item_name_translations: description: An array of translation strings of the menu item name. type: array items: $ref: '#/components/schemas/MenuItemNameTranslation' example: en: Sushi ja: 寿司 price: description: The price of a single menu item within the order. type: string format: decimal qty: description: The quantity of the Order, i.e. the number of menu item to purchase. type: number format: integer PosPayment: type: object properties: id: description: TableCheck's database ID of the PosPayment object. type: string format: bson-id ref: description: The identifier (as used by the POS system database) of the payment. type: string payment_at: description: The transaction time of the payment used to settle the check. type: string format: date-time example: '2020-01-29T19:12:34Z' amt: description: The monetary amount of the payment used to settle the check. type: string format: decimal tender: description: The payment method used in the transaction. Please transmit the raw value from the POS system as-is. Example values include "cash", "credit_card", "cashless", "voucher", etc. type: string example: credit_card brand: description: Brand of credit card or cashless wallet used to make payment. Please transmit the raw value from the POS system as-is. Examples values include "visa", "mastercard", "amex", "paypal", "apple_pay", etc. type: string example: visa issuer: description: The credit card issuer. Please transmit the raw value from the POS system as-is. Examples values include "citibank", "chase_bank", etc. type: string example: citibank MenuItemNameTranslation: type: object properties: translation: type: string example: sushi locale: type: string example: en CustomerEmbed: type: object properties: id: description: The database ID of the Customer. type: string format: bson-id ref: type: string description: Your identifier for the customer. franchise_id: description: The ID of Franchise to which the Customer belongs. type: string format: bson-id created_at: type: string updated_at: type: string name: description: '[PII] The full name of the customer.' type: string first_name: description: '[PII] The first name of the customer.' type: string last_name: description: '[PII] The last name of the customer.' type: string alt_first_name: description: '[PII] The alternate (e.g. kanji) first name of the customer.' type: string alt_last_name: description: '[PII] The alternate (e.g. kanji) last name of the customer.' type: string alpha_first_name: description: '[PII] The alphabetical first name of the customer.' type: string alpha_last_name: description: '[PII] The alphabetical last name of the customer.' type: string company_name: type: string company_title: type: string company_division: type: string gender: type: string enum: - male - female locale: type: string enum: - en - ja - ko - zh-CN - zh-TW - de - es - fr - nl - it - pt - tr - ru - id - ms - tl - th - lo - km - vi - ar - he - hi source: description: The channel by which the Customer data was obtained. type: string enum: - manual - tablecheck_guest - tablecheck_user - ota - ivr - pms - import - api - edm_subscribe memo: description: Free-text memo type: string phones: description: '[PII] Phone numbers as an array of strings.' $ref: '#/components/schemas/PhoneNumbersList' phone_objects: description: '[PII] Phone numbers as structured objects.' $ref: '#/components/schemas/Phones' emails: description: '[PII] Email addresses as an array of strings.' $ref: '#/components/schemas/EmailAddressesList' email_objects: description: '[PII] Email addresses as structured objects.' $ref: '#/components/schemas/Emails' events: description: '[PII] Calendar events such as birthday, anniversary, etc.' type: array items: $ref: '#/components/schemas/Event' socials: description: '[PII] Social media accounts' type: array items: $ref: '#/components/schemas/Social' tags: type: array items: type: string likes: type: array items: type: string dislikes: type: array items: type: string allergies: type: array items: type: string is_temporary: type: boolean allow_marketing: type: boolean allow_direct_mail: type: boolean allow_surveys: type: boolean is_incognito: description: If true, indicates that the customer should not be greeted by name (e.g. in phone calls, etc.) type: boolean addresses: type: array description: '[PII] Customer addresses' items: $ref: '#/components/schemas/Address' memberships: type: array items: $ref: '#/components/schemas/MembershipEmbed' parent_shop_id: description: The ID of the venue which is the primary relationship holder for the Customer. type: string format: bson-id merged_customer_ids: description: The IDs of other Customers which were merged into this Customer. Used for reconciliation purposes. Note that since the other Customers are destroyed after merging, it will no longer be possible to query for their ID. type: array items: type: string format: bson-id PaymentEmbed: type: object properties: id: description: The database ID of the Payment. type: string format: bson-id reservation_id: description: The ID of the Reservation to which the Payment belongs. type: string format: bson-id created_at: type: string format: date-time updated_at: type: string format: date-time payment_type: type: string payment_status: type: string total_amt: type: string format: decimal authorized_amt: type: string format: decimal captured_amt: type: string format: decimal currency: type: string format: currency brand: type: string card_digits: type: string PosDiscount: type: object properties: id: description: TableCheck's database ID of the PosDiscount object. type: string format: bson-id ref: description: The identifier (as used by the POS system database) of the discount. type: string order_at: description: The timestamp of when the discount was entered into the POS system. type: string format: date-time example: '2020-01-29T19:12:34Z' name: description: The human-readable name of the discount. This should match the line item displayed on the receipt, if applicable. type: string example: Summer Sale 20% amt: description: The monetary amount of the discount. type: string format: decimal Phones: description: '[PII] A list of Phone objects.' type: array items: $ref: '#/components/schemas/Phone' ReservationSingleResponse: type: object properties: reservation: $ref: '#/components/schemas/Reservation_3' ServiceCategoryEmbed: type: object properties: id: description: The database ID of the ServiceCategory selected by the customer for the Reservation. type: string format: bson-id name_translations: description: The name of the ServiceCategory selected by the customer for the Reservation. type: object format: translations example: en: Terrace ja: テラス ReservationFlag: type: object properties: id: description: TableCheck's database ID of the Reservation Flag. type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 franchise_id: description: The ID of Franchise to which the Reservation Flag belongs. type: string format: bson-id shop_ids: description: 'Constrains the Shops for which the Reservation Flag will be applied. An empty array means "all Shops" (no restriction). ' type: array default: [] items: type: string format: bson-id example: ae5355ca1fd337ed5d6893e2 all_shops: description: Apply the Reservation Flag to all shops. type: boolean name: description: Reservation Flag name. type: string description: description: Reservation Flag description. type: string icon: description: Reservation Flag icon name. type: string color: description: Reservation Flag icon color. type: string created_at: description: The timestamp of when the Reservation was created. type: string format: date-time example: '2020-01-29T19:12:34Z' updated_at: description: The timestamp of when the Reservation was last updated. type: string format: date-time example: '2020-01-29T19:12:34Z' Phone: type: object required: - number properties: id: description: The database ID of the Phone object. type: string format: bson-id number: description: '[PII] The phone number in E.164 format.' type: string format: phone-e164 tag: type: string enum: - none - home - work - mobile - assistant - fax - other created_at: type: string format: date-time updated_at: type: string format: date-time ImageEmbedCreate: type: object properties: image_upload_url: description: The publicly accessible URL of the image to upload. type: string format: url example: https://your.domain.com/image.png ForbiddenError: required: - errors properties: errors: type: array items: type: object properties: code: type: string example: api_key_invalid message: type: string example: Your API key is invalid. parameters: ExcludeFields: name: exclude_fields in: query description: Comma-separated list of fields to exclude from the response (blacklist). All fields except the given ones will be returned. Supports dot notation for nested fields. required: false schema: type: string example: created_at,socials.username IncludeFields: name: include_fields in: query description: Comma-separated list of fields to include in the response (whitelist). If specified, only the listed fields will be returned. Supports dot notation for nested fields. required: false schema: type: string example: id,name,addresses.city securitySchemes: ApiKeyAuth: type: apiKey in: header name: AUTHORIZATION externalDocs: description: Implementation Guide url: https://tablecheck.atlassian.net/wiki/spaces/API/pages/46301274/Availability+v1