Check Mgmt YAML
The YAML is evolving and you will see extra fields and endpoints that we haven’t discussed, ignore them for now.
- 7/17/2023: Milestone 5: Calculate on an Order
- 7/17/2023: Milestone 4: Add and Delete Discount from an Order
- 5/19/2023: Milestone 3: Add, Edit, Delete Item from an Order
- 5/08/2023: Milestone 2: Create, Edit, Get, and List Order
-
openapi: 3.0.0 info: contact: {} description: >- The Orders API provides functionality to manage and handle orders in progress within the context of the CheckManagement project. It enables operations such as placing new orders, updating order details, retrieving order information, and performing order-related actions. For access and authentication, please refer to the CheckManagement documentation. title: Orders API V3 version: 1.0.0 servers: [] paths: '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders': get: parameters: - description: The corporate ID in: path name: corporate_id required: true schema: format: int64 type: integer - description: The venue ID in: path name: venue_id required: true schema: format: int64 type: integer - description: The vendor ID in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Example: 2022-02-22T14:38:25Z Query filter. From what date of creation should the orders be listed, on RFC 3339 format in: query name: start_date required: true schema: type: string - description: >- Example: 2022-03-22T14:38:25Z Query filter. Up to what date of creation should the orders be listed, on RFC 3339 format in: query name: end_date required: true schema: type: string - description: 'How many orders should each page list, max 500' in: query name: per_page required: false schema: default: '100' format: int64 type: integer - description: What page of the entire list is going to be returned in: query name: page required: false schema: default: '1' format: int64 type: integer - description: >- Query filter. Orders on what statuses are going to be retrieved. Allowed values are open, completed, cancelled, pending-checkout explode: true in: query name: status required: false schema: items: enum: - COMPLETED - CANCELLED - OPEN type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3ListOrdersResponse' description: The orders were successfully retrieved '400': content: application/json: schema: example: code: 400 message: invalid venue id description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: >- Retrieves all orders the user has access to, within a specified date and time range. operationId: OrdersV3Service_ListOrders summary: List Orders post: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer responses: '201': content: application/json: schema: $ref: '#/components/schemas/v3CreateOrderResponse' description: The order was successfully created '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: Creates a new order and returns a uuid to reference in future calls. operationId: OrdersV3Service_CreateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3Order' required: - order required: true summary: Create Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3DeleteDiscountResponse' description: >- The order was successfully cancelled out and now it is in completed state '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: Cancel process TBD operationId: OrdersV3Service_Cancel summary: Cancel an order get: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3GetOrderResponse' description: The order was retrieved '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: Retrieves an order by its UUID operationId: OrdersV3Service_GetOrder summary: Get Order patch: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints in: path name: uuid required: true schema: type: string - in: query name: field_mask required: false schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3UpdateOrderResponse' description: The order was successfully updated '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: >- Allows the modification of a specific set of properties of the order. Properties that are accepted in this endpoint are being named as `order_metadata`. operationId: OrdersV3Service_UpdateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3OrderMetadata' required: - order_metadata required: true summary: Update Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/calculate': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3CalculateResponse' description: The order was calculated '400': content: application/json: schema: example: code: 400 message: invalid parameter order uuid. description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order level endpoints description: >- Run the calculation process for the order and return all the relevant information related to the order. Additionally, store the last calculation of the order so the user can query the order details without needing to run the calculate function again. A flag indicating whether the order needs to be recalculated will be set to false after running this process. An order needs to be calculated before proceeding to the submit to kitchen, add payment or checkout processes. Submitting to the kitchen and adding payments do not alter the state of the "needs to be recalculated" flag. operationId: OrdersV3Service_Calculate summary: Calculate an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/checkout': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3DeleteDiscountResponse' description: The order was successfully completed by checkout process '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. security: - ConnectApiKey: [] tags: - All Check Management endpoints - Order level endpoints description: >- Checkout process TBD This endpoint requires a connect api key, it must be sent in a custom header called "Connect-API-Key" operationId: OrdersV3Service_Checkout summary: Checkout an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/discounts': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3AddDiscountsResponse' description: >- The all discounts ref-tags are added to the order and pending to be applied '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: 'codes not found [1,2,3]' description: >- The at least one of the code was not found in the system (you need to add it in connect before). '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order discounts endpoints description: >- Adds one or more discounts to a given order, the discounts included in this request comes in the format of ref-tags configured in connect. This endpoint accepts a list of discounts to be applied later during the calculation, which means this endpoint only validates if the given discount exists in the system (created in Connect) but not if the items or order meets the criteria to apply the discount. operationId: OrdersV3Service_AddDiscounts requestBody: content: application/json: schema: description: >- Represents the request of add discounts to be applied to order during calculate properties: ref_tags: description: The array of ref tags used to identify the reductions items: type: string type: array required: - ref_tags title: AddDiscountsRequest type: object required: true summary: Add Discounts to an order to be applied during the calculation '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/discounts/{code}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The code of the discount to be deleted in: path name: code required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeleteDiscountResponse' description: The discount was successfully deleted from the order '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: discount not found in the order description: The discount was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order discounts endpoints description: >- Deletes a manual discount from the existing order, the discount to be deleted can be either item level or order level. This endpoint will delete all discounts matching the given code operationId: OrdersV3Service_DeleteDiscount summary: Delete discounts from an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3AddItemsResponse' description: >- The items were successfully included to the order, if a single item in the request fails the whole request fail, and the order will remain untouch '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order items endpoints description: >- Adds an array of items to an existing order, if the order already has items this endpoint merges the new items into the existing ones and run the validation one more time. So no nested loops are allowed in the items. operationId: OrdersV3Service_AddItems requestBody: content: application/json: schema: description: Represents the request of add items to order endpoint properties: items: description: Array of items to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array required: - items title: AddItemsRequest type: object required: true summary: Add Items to an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items/{item_uuid}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The UUID of the item to be deleted in: path name: item_uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeleteItemResponse' description: The item was successfully deleted from the order '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: item not found in the order description: The item was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order items endpoints description: >- Deletes an item from an existing order, if the item has modifiers all of them will be deleted (no matters how many it has) operationId: OrdersV3Service_DeleteItem summary: Delete Item from an order patch: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The UUID of the item to be deleted in: path name: item_uuid required: true schema: type: string - description: The list of the fields to be updated in: query name: field_mask required: false schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3UpdateItemResponse' description: The item was successfully updated in the order '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: item not found in the order description: The item was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order items endpoints description: >- Updates an item from an existing order, item parent cannot be changed, to do that, you need to delete the item and re-add it. operationId: OrdersV3Service_UpdateItem requestBody: content: application/json: schema: $ref: '#/components/schemas/v3ItemMetadata' description: The metadata to be updated in the order required: - item_metadata required: true summary: Update Item from an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/payments': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '201': content: application/json: schema: $ref: '#/components/schemas/v3AddPaymentsResponse' description: All paymentes were added succesfully '400': content: application/json: schema: example: code: 400 message: invalid parameter order uuid. description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order payments endpoints description: >- This API endpoint allows adding payments to an existing order. It is used to associate one or more payments with a specific order. operationId: OrdersV3Service_AddPayments requestBody: content: application/json: schema: description: Represents the request for adding payments endpoint properties: payments: description: Array of payments objects items: $ref: '#/components/schemas/v3Payment' type: array required: - payments title: AddPaymentsRequest type: object required: true summary: AddPayments to an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/payments/{payment_uuid}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: >- Unique identifier of the payment in the order, after the deletion this uuid cannot be re-used due to internal restrictions because the deleted payments will be remain stored but hidden from the user in: path name: payment_uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeletePaymentResponse' description: The payment was successfully deleted from the order '400': content: application/json: schema: example: code: 400 message: The request is not valid. description: >- There is an error with the request please review the format of the query parameters or additional headers you are sending '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: payment not found in the order description: The payment was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order payments endpoints description: Deletes a single payment from an existing order operationId: OrdersV3Service_DeletePayment summary: Delete Payment from an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/submit': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3SubmitToKitchenResponse' description: All items in the order were successfully submitted to the kitchen '400': content: application/json: schema: example: code: 400 message: invalid request parameters description: The request is invalid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '409': content: application/json: schema: example: code: 409 message: calculate has not been run description: The order has not been calculated. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - All Check Management endpoints - Order kitchen endpoints description: |- Submits all items inside an order to the kitchen Items that were sent to the kitchen can no longer be updated or deleted operationId: OrdersV3Service_SubmitToKitchen summary: Submit order to the kitchen components: schemas: v3AddDiscountsResponse: description: Represents the response to add disconts to an order title: AddDiscountsResponse type: object v3AddItemsResponse: description: Represents of add items to an order endpoint response title: AddItemsResponse type: object v3AddPaymentsResponse: description: Represents the response of adding payments endpoint title: AddPaymentsResponse type: object v3CalculateResponse: description: Calculate endpoint response properties: calculations: allOf: - $ref: '#/components/schemas/v3OrderCalculations' description: >- Calculation object with all relevant information from the calculate process items: description: >- Array of items included in the order. This array is included as part of the calculate order response because the calculate endpoint can modify the items in the order in different scenarios. For example, when applying automatic or manual discounts that combine items, or when implementing buy one and get one discounts. items: $ref: '#/components/schemas/v3OrderItem' type: array title: CalculateResponse type: object v3CancelResponse: description: Represents the response of cancel order operation title: CancelResponse type: object v3CheckoutResponse: description: >- Represents the response of checkout process, this includes information from Connect title: CheckoutResponse type: object v3CreateOrderResponse: description: Represents the response of create order endpoint properties: uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string title: CreateOrderResponse type: object v3DeleteDiscountResponse: description: Discount was successfully deleted title: DeleteDiscountResponse type: object v3DeleteItemResponse: description: Items were successfully deleted title: DeleteItemResponse type: object v3DeletePaymentResponse: description: Represents the response of deleting a payment title: DeletePaymentResponse type: object v3GetOrderResponse: description: 'Represents of get order endpoint, contains the order information' properties: order: allOf: - $ref: '#/components/schemas/v3Order' description: Represents a full order readOnly: true title: GetOrderResponse type: object v3Integrations: description: >- Object with all relevant fields required for integration with external systems properties: qsra_check_number: description: >- Contains a check number identifier for the order required by QSRA integration. The value of this field is computed based on vendor id and order uuid. format: uint64 readOnly: true type: string title: Integrations type: object v3ItemAsModifier: description: Enables an item to behave as modifier properties: item_set_uuid: description: >- The item set id. The given item set will be used only if the item belongs to that item set, and that item set is configured in it's parent, otherwise, this value will be ignored. example: 61f8454e6622f7327e4b1366 type: string parent_uuid: description: >- This field identifies the uuid of the item that the modifier applies to, this field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string required: - parent_uuid - item_set_uuid title: ItemAsModifier type: object v3ItemMetadata: properties: notes: description: Special instructions for the item type: string price_override: format: float type: number quantity: format: int32 type: integer title: ItemMetadata type: object v3ListOrdersResponse: properties: orders: description: Returned orders items: $ref: '#/components/schemas/v3OrderInfo' type: array pagination: allOf: - $ref: '#/components/schemas/v3Pagination' description: Pagination object title: ListOrdersResponse type: object v3Order: description: >- This object represents an order in a restaurant or food service setting, which contains details like external_id, allow_override, seat_id, metadata and items that are part of the order, and each item has details like uuid, item_id, quantity and related modifiers details. properties: applied_discounts: allOf: - $ref: '#/components/schemas/v3OrderDiscounts' description: Discounts added to the order and are already applied readOnly: true charity_rounding_enabled: description: >- Optional flag indicating whether charity rounding is enabled for this order. If it is not provided, charity rounding defaults to false for the order. When it is provided and set to true, OrdersV3 will calculate the cents needed to round up to the next whole dollar and the cents will be donated to charity. The charity rounding calculation will only run if the venue has configured in Connect. If the Connect setting is not enabled and the user tries to set this flag as true, the order creation or update will be rejected. type: boolean corporate_id: description: Corporate ID that identifies where the order is placed format: int64 readOnly: true type: integer created_date: description: Date when the order was originally submitted example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- External identifer, used as discresion of the API user, the API does not verify the uniqueness of this field. Maximum length 64 characters example: this is any string up 64 characters type: string integrations: allOf: - $ref: '#/components/schemas/v3Integrations' description: >- Object with all relevant fields required for integration with external systems readOnly: true items: description: Array of items included or to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array metadata: description: >- Used as discresion of the API user, it stores string with maximum length of 1024 characters type: string needs_to_be_recalculated: description: >- Flag indicating if the order needs to be recalculated. This flag is used to indicate whether the order calculations are invalid and need to be recalculated. If the flag is set to true, it means that certain operations or modifications have occurred in the order that may have affected the calculations. In such cases, the order should be recalculated before proceeding with further actions or retrieving updated details. readOnly: true type: boolean order_totals: allOf: - $ref: '#/components/schemas/v3OrderTotals' description: >- Represents the cumulative amounts calculated for various functions within the calculate process. These totals include subtotals, discounts, taxes, and any other relevant calculations related to the items in the cart. The cart totals provide an overview of the financial aspects of the order. It's important to note that If the 'needs_to_be_recalculated' flag is set to true, the cart totals may be invalid or outdated. In such cases, it is recommended to recalculate the order to ensure accurate and up-to-date cart totals before relying on them for further processing or displaying to the user. readOnly: true payment_information: allOf: - $ref: '#/components/schemas/v3PaymentInformation' description: >- Object with the payment information including an array with all payments pending_discounts: allOf: - $ref: '#/components/schemas/v3OrderDiscounts' description: >- Discounts added to the order, but are currently not applied (needs calculation or does not meet criteria) readOnly: true seat_id: description: >- Identifier of the seat where the customer is located, this is configured in Connect and it is part of API call to Checkout format: int64 type: integer status: allOf: - $ref: '#/components/schemas/v3OrderStatus' description: Current status of the order readOnly: true updated_date: description: Date recording the last modification of the order example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints. This field is RFC 4122 complaint in string representation example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string vendor_id: description: Vendor ID that identifies where the order is placed format: int64 readOnly: true type: integer venue_id: description: Venue ID that identifies where the order is placed format: int64 readOnly: true type: integer required: - external_id - payment_information title: Order type: object v3OrderCalculations: description: >- This object is returned by the Calculate endpoint and is also included in the Get order details response. Depending on the calls made to endpoints that modify the order, this object may enter an invalid state, which is indicated by the needs to be recalculated flag. properties: applied_discount_codes: description: Discounts added to the order and are already applied items: type: string readOnly: true type: array order_totals: allOf: - $ref: '#/components/schemas/v3OrderTotals' description: >- Represents the cumulative amounts calculated for various functions within the calculate process. These totals include subtotals, discounts, taxes, and any other relevant calculations related to the items in the cart. The cart totals provide an overview of the financial aspects of the order. It's important to note that If the 'needs_to_be_recalculated' flag is set to true, the cart totals may be invalid or outdated. In such cases, it is recommended to recalculate the order to ensure accurate and up-to-date cart totals before relying on them for further processing or displaying to the user. readOnly: true pending_discount_codes: description: >- Discounts added to the order, but are currently not applied (needs calculation or does not meet criteria) items: type: string readOnly: true type: array title: OrderCalculations type: object v3OrderDiscounts: description: Represents discounts by code or reftag in an order properties: reftags: description: Discounts added by reftag to the order items: type: string readOnly: true type: array title: Order Discounts type: object v3OrderInfo: properties: created_date: description: Date the order was created on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- Order identifier, not internal but from the client who originated the order. example: any-string-up-to-64-characters type: string status: allOf: - $ref: '#/components/schemas/v3OrderStatus' description: 'The status of the order, can be ''open'', ''pending-close'' or ''closed''' readOnly: true updated_date: description: Date the order was last updated on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string title: OrderInfo type: object v3OrderItem: description: Represents a unique item included or to be included in an order properties: item_as_modifier: allOf: - $ref: '#/components/schemas/v3ItemAsModifier' description: >- This object is used to indicate the current item is a modifier and it needs to be applied to given item item_id: description: >- The item identifier, provided by the Connect service, is used to reference the item in the menu endpoint. A single order may include multiple instances of the same item, each with its own distinct properties format: int64 type: integer name: description: >- Name of the given item identified by item_id, this value can be set in Connect readOnly: true type: string notes: description: Special instructions for the item type: string price: description: >- The item's actual price, be it the original or the overriden price. Output only. format: float readOnly: true type: number price_override: description: >- The item override price, this will replace the real price if 'allow_price_override' is true format: float type: number quantity: description: Desired amount of items in the order format: int32 type: integer user_specified_price: description: 'True if the item''s price has been overriden, false otherwise.' readOnly: true type: boolean uuid: description: >- Identifies an instance of an item in the order, internally generated or accepted as part of the endpoint request body and unique to each order. This field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string required: - item_id - quantity title: OrderItem type: object v3OrderMetadata: properties: charity_rounding_enabled: description: >- Optional flag indicating whether charity rounding is enabled for this order. If it is not provided, charity rounding defaults to false for the order. When it is provided and set to true, OrdersV3 will calculate the cents needed to round up to the next whole dollar and the cents will be donated to charity. The charity rounding calculation will only run if the venue has configured in Connect. If the Connect setting is not enabled and the user tries to set this flag as true, the order creation or update will be rejected. type: boolean metadata: description: >- Used as discresion of the API user, it stores string with maximum length of 1024 characters type: string seat_id: description: >- Identifier of the seat where the customer is located, this is configured in Connect and it is part of API call to Checkout format: int64 type: integer title: OrderMetadata type: object v3OrderStatus: enum: - COMPLETED - CANCELLED - OPEN type: string v3OrderTotals: description: >- Represents the cumulative amounts calculated for various functions within the calculate process. These totals include subtotals, discounts, taxes, and any other relevant calculations related to the items in the cart. The cart totals provide an overview of the financial aspects of the order. properties: charity_total: description: >- Total amount of money accumulated for charity purposes in the order. This value represents the sum of all the rounded cents that are designated for donation to a charity. It is calculated as part of the order's overall financial calculations and is provided as an output. This field is optional and will only be present if the `CharityRoundingEnable` flag was set to true during the order creation, including zero (0) as a valid value if the `CharityRoundingEnable` flag was set. format: float readOnly: true type: number discounts_total: description: >- Contains the accumulated discounts applied to items in the order. This value is always represented as a negative value to indicate the reduction in the total cost due to discounts. The discounts_total provides an overall view of the total discount amount applied to the order. It's important to note that the discounts_total represents the cumulative discounts at a given point in time. If the 'needs_to_be_recalculated' flag is set to true, the discounts_total may not reflect the most recent calculations or modifications to the order. To ensure accurate and up-to-date discount information, it is recommended to recalculate the order before relying on the discounts_total for further processing or displaying to the user. format: float readOnly: true type: number exclusive_tax: description: >- Contains the accumulated exclusive taxes for items and modifiers. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number fees_total: description: >- Represents the cumulative fees associated with the order. These fees may include additional charges, such as delivery fees, service fees, or any other applicable fees. The fees_total provides an overview of the total fees incurred for the order. It's important to note that the fees_total represents the cumulative fees at a given point in time. If the 'needs_to_be_recalculated' flag is set to True, the fees_total may not reflect the most recent calculations or modifications to the order. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number inclusive_tax: description: >- Contains the accumulated inclusive taxes for items and modifiers. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number original_total: description: >- Represents the original cost of items and modifiers without applied taxes, discounts, or any other price modifications. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number subtotal: description: >- Represents the cost of items and modifiers, including inclusive taxes, reduced by any item-level reductions. This amount reflects the total cost before applying taxes, discounts, or any other price modifications. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number total: description: >- The final amount for the order. It is calculated by taking the subtotal, reducing it by cart-level reductions, and then adding the exclusive taxes and fees. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number title: OrderTotals type: object v3Pagination: properties: page: format: int64 type: integer per_page: format: int64 type: integer total_pages: format: int64 type: integer total_results: format: int64 type: integer title: Pagination type: object v3Payment: description: Represents a payment in the system properties: external_id: description: User specified id up to 64 characters readOnly: true type: string payment_type: allOf: - $ref: '#/components/schemas/v3PaymentType' description: >- Payment type defines the type of the object to use as value, only one of the following objects can be set at the time. payment_value: allOf: - $ref: '#/components/schemas/v3PaymentValue' description: >- Payment value, it is a polimorphic object based on payment_type field, only one element of the fields can be used at the time. uuid: description: The UUID field of the payment generated by the API internally readOnly: true type: string required: - payment_type - payment_value title: Payment type: object v3PaymentInformation: description: Represents the information about payments properties: amount: description: Amount of the total of payments in the order format: float readOnly: true type: number payments: description: Array of payments objects items: $ref: '#/components/schemas/v3Payment' type: array required: - payments title: Payment Information type: object v3PaymentType: enum: - PAYMENT_V1 type: string v3PaymentValue: properties: V1_payment: allOf: - $ref: '#/components/schemas/v3V1Payment' description: Legacy opai payment payload. title: PaymentValue type: object v3SubmitToKitchenResponse: description: Items were successfully sent to the kitchen title: SubmitToKitchenResponse type: object v3UpdateItemResponse: description: Item was successfully updated title: UpdateItemResponse type: object v3UpdateOrderResponse: description: Order was successfully updated title: UpdateOrderResponse type: object v3V1Credential: properties: card_encryption: type: string card_number: type: string card_pin: type: string email: type: string name: type: string phone: type: string room_number: type: string title: V1Credential type: object v3V1ExternalData: properties: auth_amount: type: string auth_code: type: string auth_currency: type: string auth_status_code: type: string balance: type: string capture_method: type: string card_art_cmid: type: string card_class: type: string card_status_code: type: string card_token: type: string card_type: type: string confirmation_code: format: int64 type: string device_transaction_id: type: string entitlement_id: type: string entitlement_type: type: string expiration_date: type: string invoice_number: type: string issuer_name: type: string masked_acc: type: string payment_gateway: type: string payment_partner_data: $ref: '#/components/schemas/v3V1PaymentPartnerData' receipt_identifier: $ref: '#/components/schemas/v3V1ReceiptIdentifier' req_amount: type: string req_currency: type: string transaction_identifier: $ref: '#/components/schemas/v3V1TransactionIdentifier' transaction_type: type: string transaction_uid: type: string title: V1ExternalData type: object v3V1Payment: description: >- This object is the first version of the payment payload, the fields here may match any other API specs but it is a complete new implementation. properties: additional_data: type: string amount: format: float type: number amount_tendered: format: float type: number authorization_code: type: string card_encoded: type: boolean card_number: type: string card_status: type: string card_type: type: string cardholder_fullname: type: string cardholder_name: type: string change: format: float type: number code_map: format: int32 type: integer custom_tender_id: type: string encryption_type: type: string exp_date: type: string external_data: $ref: '#/components/schemas/v3V1ExternalData' fee: format: float type: number gateway_response_data: type: string payment_identifier_for_display: type: string payment_index: format: int32 type: integer payment_status: type: string payment_type: format: int32 type: integer payment_uuid: type: string payment_valid: type: boolean ppi_loyalty_id: type: string ppi_pin: type: string refunded: type: boolean remaining_balance: format: float type: number subpayment_type: format: int32 type: integer subtotal_amount: format: float type: number tender_name: type: string tip: format: float type: number token_value: type: string title: V1Payment type: object v3V1PaymentPartnerData: properties: credential: $ref: '#/components/schemas/v3V1Credential' payment_data: type: string provider: type: string transaction_uid: type: string title: V1PaymentPartnerData type: object v3V1ReceiptIdentifier: properties: authorization_code: type: string title: V1ReceiptIdentifier type: object v3V1TransactionIdentifier: properties: account_token: type: string authorization_code: type: string current_total_amount: format: float type: number expiration_date: type: string local_request_id: type: string merchant_reference_code: type: string original_transaction_type: $ref: '#/components/schemas/v3V1TransactionType' remote_request_id: type: string title: V1TransactionIdentifier type: object v3V1TransactionType: enum: - VOID - REFUND - AUTHORIZE - ADJUSTMENT - CAPTURE type: string securitySchemes: ConnectApiKey: description: API key provided by connect. Only used for checkout endpoint in: header name: Connect-API-Key type: apiKey bearer: description: 'Authentication token, prefixed by Bearer: Bearer <token>' in: header name: Authorization type: apiKey security: - bearer: [] - ConnectApiKey: []
-
openapi: 3.0.0 info: contact: {} description: >- The Orders API provides functionality to manage and handle orders in progress within the context of the CheckManagement project. It enables operations such as placing new orders, updating order details, retrieving order information, and performing order-related actions. For access and authentication, please refer to the CheckManagement documentation. title: Orders API V3 version: 1.0.0 servers: [] paths: '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders': get: parameters: - description: The corporate ID in: path name: corporate_id required: true schema: format: int64 type: integer - description: The venue ID in: path name: venue_id required: true schema: format: int64 type: integer - description: The vendor ID in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Example: 2022-02-22T14:38:25Z Query filter. From what date of creation should the orders be listed, on RFC 3339 format in: query name: start_date required: true schema: type: string - description: >- Example: 2022-03-22T14:38:25Z Query filter. Up to what date of creation should the orders be listed, on RFC 3339 format in: query name: end_date required: true schema: type: string - description: 'How many orders should each page list, max 500' in: query name: per_page required: false schema: default: '100' format: int64 type: integer - description: What page of the entire list is going to be returned in: query name: page required: false schema: default: '1' format: int64 type: integer - description: >- Query filter. Orders on what statuses are going to be retrieved. Allowed values are open, completed, cancelled, pending-checkout explode: true in: query name: status required: false schema: items: enum: - COMPLETED - CANCELLED - OPEN type: string type: array responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3ListOrdersResponse' description: The orders were successfully retrieved '400': content: application/json: schema: example: code: 400 message: invalid venue id description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Retrieves all orders the user has access to, within a specified date and time range. operationId: OrdersV3Service_ListOrders summary: List Orders post: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer responses: '201': content: application/json: schema: $ref: '#/components/schemas/v3CreateOrderResponse' description: The order was successfully created '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Creates a new order and returns a uuid to reference in future calls. operationId: OrdersV3Service_CreateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3Order' required: - order required: true summary: Create Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}': get: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3GetOrderResponse' description: The order was retrieved '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Retrieves an order by its UUID operationId: OrdersV3Service_GetOrder summary: Get Order patch: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints in: path name: uuid required: true schema: type: string - in: query name: field_mask required: false schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3UpdateOrderResponse' description: The order was successfully updated '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Allows the modification of a specific set of properties of the order. Properties that are accepted in this endpoint are being named as `order_metadata`. operationId: OrdersV3Service_UpdateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3OrderMetadata' required: - order_metadata required: true summary: Update Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/calculate': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3CalculateResponse' description: The order was calculated '400': content: application/json: schema: example: code: 400 message: invalid parameter order uuid. description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Run the calculation process for the order and return all the relevant information related to the order. Additionally, store the last calculation of the order so the user can query the order details without needing to run the calculate function again. A flag indicating whether the order needs to be recalculated will be set to false after running this process. An order needs to be calculated before proceeding to the submit to kitchen, add payment or checkout processes. Submitting to the kitchen and adding payments do not alter the state of the "needs to be recalculated" flag. operationId: OrdersV3Service_Calculate summary: Calculate an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/discounts': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3AddDiscountsResponse' description: >- The all discounts ref-tags are added to the order and pending to be applied '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: 'codes not found [1,2,3]' description: >- The at least one of the code was not found in the system (you need to add it in connect before). '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Adds one or more discounts to a given order, the discounts included in this request comes in the format of ref-tags configured in connect. This endpoint accepts a list of discounts to be applied later during the calculation, which means this endpoint only validates if the given discount exists in the system (created in Connect) but not if the items or order meets the criteria to apply the discount. operationId: OrdersV3Service_AddDiscounts requestBody: content: application/json: schema: description: >- Represents the request of add discounts to be applied to order during calculate properties: ref_tags: description: The array of ref tags used to identify the reductions items: type: string type: array required: - ref_tags title: AddDiscountsRequest type: object required: true summary: Add Discounts to an order to be applied during the calculation '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/discounts/{code}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The code of the discount to be deleted in: path name: code required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeleteDiscountResponse' description: The discount was successfully deleted from the order '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: discount not found in the order description: The discount was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Deletes a manual discount from the existing order, the discount to be deleted can be either item level or order level. This endpoint will delete all discounts matching the given code operationId: OrdersV3Service_DeleteDiscount summary: Delete discounts from an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3AddItemsResponse' description: >- The items were successfully included to the order, if a single item in the request fails the whole request fail, and the order will remain untouch '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Adds an array of items to an existing order, if the order already has items this endpoint merges the new items into the existing ones and run the validation one more time. So no nested loops are allowed in the items. operationId: OrdersV3Service_AddItems requestBody: content: application/json: schema: description: Represents the request of add items to order endpoint properties: items: description: Array of items to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array required: - items title: AddItemsRequest type: object required: true summary: Add Items to an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items/{item_uuid}': delete: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The UUID of the item to be deleted in: path name: item_uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeleteItemResponse' description: The item was successfully deleted from the order '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: item not found in the order description: The item was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Deletes an item from an existing order, if the item has modifiers all of them will be deleted (no matters how many it has) operationId: OrdersV3Service_DeleteItem summary: Delete Item from an order patch: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The UUID of the item to be deleted in: path name: item_uuid required: true schema: type: string - description: The list of the fields to be updated in: query name: field_mask required: false schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3UpdateItemResponse' description: The item was successfully updated in the order '400': content: application/json: schema: example: code: 400 message: The request body is not valid. description: The request body is not valid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: item not found in the order description: The item was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Updates an item from an existing order, item parent cannot be changed, to do that, you need to delete the item and re-add it. operationId: OrdersV3Service_UpdateItem requestBody: content: application/json: schema: $ref: '#/components/schemas/v3ItemMetadata' description: The metadata to be updated in the order required: - item_metadata required: true summary: Update Item from an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/submit': post: parameters: - description: Corporate ID that identifies where the order is placed in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID that identifies where the order is placed in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID that identifies where the order is placed in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3SubmitToKitchenResponse' description: All items in the order were successfully submitted to the kitchen '400': content: application/json: schema: example: code: 400 message: invalid request parameters description: The request is invalid. '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order not found description: The order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: |- Submits all items inside an order to the kitchen Items that were sent to the kitchen can no longer be updated or deleted operationId: OrdersV3Service_SubmitToKitchen summary: Submit order to the kitchen components: schemas: v3AddDiscountsResponse: type: object v3AddItemsResponse: description: Represents of add items to an order endpoint response title: AddItemsResponse type: object v3CalculateResponse: description: Calculate endpoint response properties: calculations: allOf: - $ref: '#/components/schemas/v3OrderCalculations' description: >- Calculation object with all relevant information from the calculate process items: description: >- Array of items included in the order. This array is included as part of the calculate order response because the calculate endpoint can modify the items in the order in different scenarios. For example, when applying automatic or manual discounts that combine items, or when implementing buy one and get one discounts. items: $ref: '#/components/schemas/v3OrderItem' type: array title: CalculateResponse type: object v3CreateOrderResponse: description: Represents the response of create order endpoint properties: uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string title: CreateOrderResponse type: object v3DeleteDiscountResponse: description: Discount was successfully deleted title: DeleteDiscountResponse type: object v3DeleteItemResponse: description: Items were successfully deleted title: DeleteItemResponse type: object v3GetOrderResponse: description: 'Represents of get order endpoint, contains the order information' properties: order: allOf: - $ref: '#/components/schemas/v3Order' description: Represents a full order readOnly: true title: GetOrderResponse type: object v3ItemAsModifier: description: Enables an item to behave as modifier properties: item_set_uuid: description: >- The item set id. The given item set will be used only if the item belongs to that item set, and that item set is configured in it's parent, otherwise, this value will be ignored. example: 61f8454e6622f7327e4b1366 type: string parent_uuid: description: >- This field identifies the uuid of the item that the modifier applies to, this field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string required: - parent_uuid - item_set_uuid title: ItemAsModifier type: object v3ItemMetadata: properties: notes: description: Special instructions for the item type: string price_override: format: float type: number quantity: format: int32 type: integer type: object v3ListOrdersResponse: properties: orders: description: Returned orders items: $ref: '#/components/schemas/v3OrderInfo' type: array pagination: allOf: - $ref: '#/components/schemas/v3Pagination' description: Pagination object type: object v3Order: description: >- This object represents an order in a restaurant or food service setting, which contains details like external_id, allow_override, seat_id, metadata and items that are part of the order, and each item has details like uuid, item_id, quantity and related modifiers details. properties: applied_discounts: allOf: - $ref: '#/components/schemas/v3OrderDiscounts' description: Discounts added to the order and are already applied readOnly: true charity_rounding_enable: description: >- Optional flag indicating whether charity rounding is enabled for this order. If it is not provided, charity rounding defaults to false for the order. When it is provided and set to true, OrdersV3 will calculate the cents needed to round up to the next whole dollar and the cents will be donated to charity. The charity rounding calculation will only run if the venue has configured in Connect. If the Connect setting is not enabled and the user tries to set this flag as true, the order creation or update will be rejected. type: boolean corporate_id: description: Corporate ID that identifies where the order is placed format: int64 readOnly: true type: integer created_date: description: Date when the order was originally submitted example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- External identifer, used as discresion of the API user, the API does not verify the uniqueness of this field. Maximum length 64 characters example: this is any string up 64 characters type: string items: description: Array of items included or to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array metadata: description: >- Used as discresion of the API user, it stores string with maximum length of 1024 characters type: string pending_discounts: allOf: - $ref: '#/components/schemas/v3OrderDiscounts' description: >- Discounts added to the order, but are currently not applied (needs calculation or does not meet criteria) readOnly: true seat_id: description: >- Identifier of the seat where the customer is located, this is configured in Connect and it is part of API call to Checkout format: int64 type: integer status: allOf: - $ref: '#/components/schemas/v3OrderStatus' description: Current status of the order readOnly: true updated_date: description: Date recording the last modification of the order example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints. This field is RFC 4122 complaint in string representation example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string vendor_id: description: Vendor ID that identifies where the order is placed format: int64 readOnly: true type: integer venue_id: description: Venue ID that identifies where the order is placed format: int64 readOnly: true type: integer required: - external_id title: Order type: object v3OrderCalculations: description: >- This object is returned by the Calculate endpoint and is also included in the Get order details response. Depending on the calls made to endpoints that modify the order, this object may enter an invalid state, which is indicated by the needs to be recalculated flag. example: calculations: applied_discount_codes: - string needs_to_be_recalculated: false order_totals: charity_total: 0 discounts_total: 0 exclusive_tax: 0 fees_total: 0 inclusive_tax: 0 original_total: 0 subtotal: 0 total: 0 pending_discount_codes: - string items: item_as_modifier: item_set_uuid: 61f8454e6622f7327e4b1366 parent_uuid: 736b99f8-9113-11ed-a1eb-0242ac120002 item_id: 0 notes: string price: 0 price_override: 0 quantity: 0 user_specified_price: true uuid: 736b99f8-9113-11ed-a1eb-0242ac120002 properties: applied_discount_codes: description: Discounts added to the order and are already applied items: type: string readOnly: true type: array needs_to_be_recalculated: description: >- Flag indicating if the order needs to be recalculated. This flag is used to indicate whether the order calculations are invalid and need to be recalculated. If the flag is set to true, it means that certain operations or modifications have occurred in the order that may have affected the calculations. In such cases, the order should be recalculated before proceeding with further actions or retrieving updated details. readOnly: true type: boolean order_totals: allOf: - $ref: '#/components/schemas/v3OrderTotals' description: >- Represents the cumulative amounts calculated for various functions within the calculate process. These totals include subtotals, discounts, taxes, and any other relevant calculations related to the items in the cart. The cart totals provide an overview of the financial aspects of the order. It's important to note that If the 'needs_to_be_recalculated' flag is set to true, the cart totals may be invalid or outdated. In such cases, it is recommended to recalculate the order to ensure accurate and up-to-date cart totals before relying on them for further processing or displaying to the user. readOnly: true pending_discount_codes: description: >- Discounts added to the order, but are currently not applied (needs calculation or does not meet criteria) items: type: string readOnly: true type: array title: OrderCalculations type: object v3OrderDiscounts: description: Represents discounts by code or reftag in an order properties: reftags: description: Discounts added by reftag to the order items: type: string readOnly: true type: array title: OrderDiscounts type: object v3OrderInfo: properties: created_date: description: Date the order was created on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- Order identifier, not internal but from the client who originated the order. example: any-string-up-to-64-characters type: string status: allOf: - $ref: '#/components/schemas/v3OrderStatus' description: 'The status of the order, can be ''open'', ''pending-close'' or ''closed''' readOnly: true updated_date: description: Date the order was last updated on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string type: object v3OrderItem: description: Represents a unique item included or to be included in an order properties: item_as_modifier: allOf: - $ref: '#/components/schemas/v3ItemAsModifier' description: >- This object is used to indicate the current item is a modifier and it needs to be applied to given item item_id: description: >- The item identifier, provided by the Connect service, is used to reference the item in the menu endpoint. A single order may include multiple instances of the same item, each with its own distinct properties format: int64 type: integer notes: description: Special instructions for the item type: string price: description: >- The item's actual price, be it the original or the overriden price. Output only. format: float readOnly: true type: number price_override: description: >- The item override price, this will replace the real price if 'allow_price_override' is true format: float type: number quantity: description: Desired amount of items in the order format: int32 type: integer user_specified_price: description: 'True if the item''s price has been overriden, false otherwise.' readOnly: true type: boolean uuid: description: >- Identifies an instance of an item in the order, internally generated or accepted as part of the endpoint request body and unique to each order. This field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string required: - item_id - quantity title: OrderItem type: object v3OrderMetadata: properties: charity_rounding_enable: description: >- Optional flag indicating whether charity rounding is enabled for this order. If it is not provided, charity rounding defaults to false for the order. When it is provided and set to true, OrdersV3 will calculate the cents needed to round up to the next whole dollar and the cents will be donated to charity. The charity rounding calculation will only run if the venue has configured in Connect. If the Connect setting is not enabled and the user tries to set this flag as true, the order creation or update will be rejected. type: boolean metadata: description: >- Used as discresion of the API user, it stores string with maximum length of 1024 characters type: string seat_id: description: >- Identifier of the seat where the customer is located, this is configured in Connect and it is part of API call to Checkout format: int64 type: integer type: object v3OrderStatus: enum: - COMPLETED - CANCELLED - OPEN type: string v3OrderTotals: description: >- Represents the cumulative amounts calculated for various functions within the calculate process. These totals include subtotals, discounts, taxes, and any other relevant calculations related to the items in the cart. The cart totals provide an overview of the financial aspects of the order. properties: charity_total: description: >- Total amount of money accumulated for charity purposes in the order. This value represents the sum of all the rounded cents that are designated for donation to a charity. It is calculated as part of the order's overall financial calculations and is provided as an output. This field is optional and will only be present if the `CharityRoundingEnable` flag was set to true during the order creation, including zero (0) as a valid value if the `CharityRoundingEnable` flag was set. format: float readOnly: true type: number discounts_total: description: >- Contains the accumulated discounts applied to items in the order. This value is always represented as a negative value to indicate the reduction in the total cost due to discounts. The discounts_total provides an overall view of the total discount amount applied to the order. It's important to note that the discounts_total represents the cumulative discounts at a given point in time. If the 'needs_to_be_recalculated' flag is set to true, the discounts_total may not reflect the most recent calculations or modifications to the order. To ensure accurate and up-to-date discount information, it is recommended to recalculate the order before relying on the discounts_total for further processing or displaying to the user. format: float readOnly: true type: number exclusive_tax: description: >- Contains the accumulated exclusive taxes for items and modifiers. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number fees_total: description: >- Represents the cumulative fees associated with the order. These fees may include additional charges, such as delivery fees, service fees, or any other applicable fees. The fees_total provides an overview of the total fees incurred for the order. It's important to note that the fees_total represents the cumulative fees at a given point in time. If the 'needs_to_be_recalculated' flag is set to True, the fees_total may not reflect the most recent calculations or modifications to the order. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number inclusive_tax: description: >- Contains the accumulated inclusive taxes for items and modifiers. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number original_total: description: >- Represents the original cost of items and modifiers without applied taxes, discounts, or any other price modifications. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number subtotal: description: >- Represents the cost of items and modifiers, including inclusive taxes, reduced by any item-level reductions. This amount reflects the total cost before applying taxes, discounts, or any other price modifications. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number total: description: >- The final amount for the order. It is calculated by taking the subtotal, reducing it by cart-level reductions, and then adding the exclusive taxes and fees. To ensure accurate and up-to-date fee information, it is recommended to recalculate the order before relying on the fees_total for further processing or displaying to the user. format: float readOnly: true type: number title: OrderTotals type: object v3Pagination: properties: page: format: int64 type: integer per_page: format: int64 type: integer total_pages: format: int64 type: integer total_results: format: int64 type: integer type: object v3SubmitToKitchenResponse: description: Items were successfully sent to the kitchen title: SubmitToKitchenResponse type: object v3UpdateItemResponse: description: Item was successfully updated title: UpdateItemResponse type: object v3UpdateOrderResponse: description: Order was successfully updated title: UpdateOrderResponse type: object securitySchemes: bearer: description: 'Authentication token, prefixed by Bearer: Bearer <token>' in: header name: Authorization type: apiKey security: - bearer: []
-
openapi: 3.0.0 info: contact: {} description: >- The Appetize Transactions API provides access to get and list order information. For access, please contact Appetize. You will receive a JWT that defines the venues to which you have access. Use the ListOrders endpoint to get a list of all orders to which you have access, within a date and time range that you specify. Use the GetOrder endpoint to get order details for a specific order, using the UUID you got from the ListOrders endpoint. title: Appetize Order API version: 3.0.0 servers: [] paths: '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders': get: parameters: - description: The corporate ID in: path name: corporate_id required: true schema: format: int64 type: integer - description: The venue ID in: path name: venue_id required: true schema: format: int64 type: integer - description: The vendor ID in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Example: 2022-02-22T14:38:25Z Query filter. From what date of creation should the orders be listed, on RFC 3339 format in: query name: start_date required: true schema: type: string - description: >- Example: 2022-03-22T14:38:25Z Query filter. Up to what date of creation should the orders be listed, on RFC 3339 format in: query name: end_date required: true schema: type: string - description: 'How many orders should each page list, max 500' in: query name: per_page required: false schema: default: '100' format: int64 type: integer - description: What page of the entire list is going to be returned in: query name: page required: false schema: default: '1' format: int64 type: integer responses: '202': content: application/json: schema: $ref: '#/components/schemas/v3ListOrdersResponse' description: The orders were successfully retrieved '400': content: application/json: schema: example: code: 400 message: invalid venue id description: The request is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: >- Retrieves all orders the user has access to, within a specified date and time range. operationId: OrdersV3Service_ListOrders summary: List Orders post: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer responses: '201': content: application/json: schema: $ref: '#/components/schemas/v3CreateOrderResponse' description: The order was successfully created '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Creates a new order and returns a uuid to reference in future calls. operationId: OrdersV3Service_CreateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3Order' required: - order required: true summary: Create Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}': get: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/v3GetOrderResponse' description: The order was retrieved '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Retrieves an order by its UUID operationId: OrdersV3Service_GetOrder summary: Get Order patch: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer - description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints in: path name: uuid required: true schema: type: string - in: query name: field_mask required: false schema: type: string responses: '204': content: application/json: schema: {} description: No Content '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: |- Allows the modification of a specific set of properties of the order. Properties that operationId: OrdersV3Service_UpdateOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/v3OrderMetadata' required: - order_metadata required: true summary: Update Order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items': post: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3AddItemsResponse' description: The items were successfully included to the order '400': content: application/json: schema: example: code: 400 message: venue_id not present in the request body description: The request body is invalid '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: venue 1 is not owned by the corporateID 1 description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: order was not found description: Order was not found. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Adds an array of items to an existing order operationId: OrdersV3Service_AddItems requestBody: content: application/json: schema: description: Represents the request of add items to order endpoint properties: items: description: Array of items to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array required: - items title: AddItemsRequest type: object required: true summary: Add Items to an order '/v3/corporate/{corporate_id}/venue/{venue_id}/vendor/{vendor_id}/orders/{uuid}/items/{item_uuid}': delete: parameters: - description: Corporate ID to place the order in: path name: corporate_id required: true schema: format: int64 type: integer - description: Venue ID to place the order in: path name: venue_id required: true schema: format: int64 type: integer - description: Vendor ID to place the order in: path name: vendor_id required: true schema: format: int64 type: integer - description: The UUID field that was retrieved when creating the order in: path name: uuid required: true schema: type: string - description: The UUID of the item to be deleted in: path name: item_uuid required: true schema: type: string responses: '204': content: application/json: schema: $ref: '#/components/schemas/v3DeleteItemResponse' description: The items were successfully deleted from the order '401': content: application/json: schema: example: code: 401 message: The request is unauthorized. description: The request is unauthorized. '403': content: application/json: schema: example: code: 403 message: you do not have access to this resource description: The resource is forbidden. '404': content: application/json: schema: example: code: 404 message: item not found in the order description: The item was not found in the order. '500': content: application/json: schema: example: code: 500 message: internal server error description: There was an error processing the request. tags: - Check Management description: Deletes an item from an existing order operationId: OrdersV3Service_DeleteItem summary: Delete Item from an order components: schemas: v3AddItemsResponse: description: Represents of add items to an order endpoint response title: AddItemsResponse type: object v3CreateOrderResponse: description: Represents the response of create order endpoint properties: uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string title: CreateOrderResponse type: object v3DeleteItemResponse: description: Items were successfully deleted title: DeleteItemResponse type: object v3GetOrderResponse: description: 'Represents of get order endpoint, contains the order information' properties: order: allOf: - $ref: '#/components/schemas/v3Order' description: Represents a full order readOnly: true title: GetOrderResponse type: object v3ItemAsModifier: description: Enables an item to behave as modifier properties: item_set_uuid: description: >- The item set id. The given item set will be used only if the item belongs to that item set, and that item set is configured in it's parent, otherwise, this value will be ignored. example: 61f8454e6622f7327e4b1366 type: string parent_uuid: description: >- This field identifies the uuid of the item that the modifier applies to, this field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string required: - parent_uuid - item_set_uuid title: ItemAsModifier type: object v3ListOrdersResponse: properties: orders: description: Returned orders items: $ref: '#/components/schemas/v3OrderInfo' type: array pagination: allOf: - $ref: '#/components/schemas/v3Pagination' description: Pagination object type: object v3Order: description: >- This object represents an order in a restaurant or food service setting, which contains details like external_id, allow_override, seat_id, metadata and items that are part of the order, and each item has details like uuid, item_id, quantity and related modifiers details. properties: corporate_id: description: Used to identify the order's corporate readOnly: true type: string created_date: description: Date when the order was originally submitted example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- External identifer, used as discresion of the API user, the API does not verify the uniqueness of this field. Maximum length 64 characters example: this is any string up 64 characters type: string items: description: Array of items included or to be included in the order items: $ref: '#/components/schemas/v3OrderItem' type: array metadata: description: >- Used as discresion of the API user, it stores string with maximum length of 1024 characters type: string seat_id: description: >- Identifier of the seat where the customer is located, this is configured in Connect and it is part of API call to Checkout format: int64 type: integer status: description: Current status of the order example: completed readOnly: true type: string updated_date: description: Date recording the last modification of the order example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints. This field is RFC 4122 complaint in string representation example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string vendor_id: description: Used to identify the order's vendor readOnly: true type: string venue_id: description: Used to identify the order's venue readOnly: true type: string required: - external_id title: Order type: object v3OrderInfo: properties: created_date: description: Date the order was created on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string external_id: description: >- Order identifier, not internal but from the client who originated the order. example: any-string-up-to-64-characters type: string order_status: description: 'The status of the order, can be ''open'', ''pending-close'' or ''closed''' example: open readOnly: true type: string updated_date: description: Date the order was last updated on RFC3339 format example: '2022-02-22T14:38:25Z' readOnly: true type: string uuid: description: >- Order unique identifier, created internally in the order system and used to identify the order in all endpoints example: 0cf361e1-4b44-483d-a159-54dabdf7e814 readOnly: true type: string type: object v3OrderItem: description: Represents a unique item included or to be included in an order properties: item_as_modifier: allOf: - $ref: '#/components/schemas/v3ItemAsModifier' description: >- This object is used to indicate the current item is a modifier and it needs to be applied to given item item_id: description: >- The item identifier, provided by the Connect service, is used to reference the item in the menu endpoint. A single order may include multiple instances of the same item, each with its own distinct properties format: int64 type: integer price: description: >- The item price, this will replace the real price if 'allow_price_override' is true format: float type: number quantity: description: Desired amount of items in the order format: int32 type: integer uuid: description: >- Identifies an instance of an item in the order, internally generated or accepted as part of the endpoint request body and unique to each order. This field is RFC 4122 complaint in string representation example: 736b99f8-9113-11ed-a1eb-0242ac120002 type: string title: OrderItem type: object v3OrderMetadata: properties: metadata: type: string seat_id: format: int64 type: integer type: object v3OrderStatus: properties: status: $ref: '#/components/schemas/v3OrderStatusStatus' type: object v3OrderStatusStatus: enum: - COMPLETED - CANCELLED - PENDING_CHECKOUT - OPEN type: string v3Pagination: properties: limit: format: int64 type: integer page: format: int64 type: integer total_pages: format: int64 type: integer total_results: format: int64 type: integer type: object v3UpdateOrderResponse: type: object securitySchemes: bearer: description: 'Authentication token, prefixed by Bearer: Bearer <token>' in: header name: Authorization type: apiKey security: - bearer: []