# Models

## The allergens object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"allergens":{"allergen":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Localized name of the allergen.","minLength":1,"maxLength":255,"pattern":".*"},"description":{"type":["string","null"],"description":"Localized description of the allergen.","minLength":0,"maxLength":10000,"pattern":".*"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The areas object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"areas":{"area":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"areas"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","maxLength":10000,"pattern":"^[^<>&]+$","description":"Name for the Area."},"isActive":{"type":"boolean","description":"Indicates whether the Area is active or not."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","isActive"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"tables":{"type":"object","description":"Details of the tables associated with the area.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"tables"},"links":{"self":{"type":"string","format":"uri","maxLength":255}}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type"]},"areas_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/areas/area"}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}}}}}
```

## The bookings object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"bookings":{"booking":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"bookings"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","allOf":[{"$ref":"#/components/schemas/bookings/booking_attributes"},{"type":"object","properties":{"isWalkIn":{"type":"boolean","description":"Indicates if the booking is a walk-in."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["status","partySize","bookingDatetime"]}]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"tables":{"type":"object","description":"Details of the tables associated with the booking.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"tables"}},"required":["id","type"]}}},"required":["data"]},"customer":{"type":"object","description":"Details of the customer associated with the booking.","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"customers"}}},{"type":"null"}]}}},"orders":{"type":"object","description":"Details of the orders associated with the booking.","properties":{"data":{"type":"array","description":"A list of related order objects.","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type"]},"booking_attributes":{"type":"object","properties":{"status":{"type":["string","null"],"enum":["confirmed","seated","completed","cancelled","no_show"],"description":"The initial status of the booking. Possible values are \"confirmed\", \"seated\", \"completed\", \"cancelled\", and \"no_show\"."},"partySize":{"type":"integer","description":"Represents the number of people included in the booking.","format":"int32","minimum":1,"maximum":1000},"bookingDatetime":{"type":"string","maxLength":25,"format":"date-time","description":"The booking's date."},"duration":{"type":["integer","null"],"description":"Represents the length of the booking in minutes.","format":"int32","minimum":1,"maximum":10000},"notes":{"type":["string","null"],"maxLength":10000,"pattern":"^[^<>&]+$","description":"Additional notes for the booking."},"roomNumber":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The room number of the booking's customer."},"promotions":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The promotions of the booking."},"bookingReference":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"A reference code or identifier associated with the booking."},"depositAmount":{"type":["string","null"],"description":"The amount of the deposit.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"booking_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"bookings"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","allOf":[{"$ref":"#/components/schemas/bookings/booking_attributes"},{"type":"object","properties":{"isWalkIn":{"type":["boolean","null"],"description":"Indicates if the booking is a walk-in. Defaults to `false`."}},"required":["partySize","bookingDatetime"]}]},"relationships":{"type":"object","description":"An [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) representing associations with other resources.","properties":{"customer":{"type":"object","description":"Represents the customer associated with the booking.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"customers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"tables":{"type":"object","description":"Represents the table associated with the booking.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","const":"tables"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}}}}}},"required":["type","attributes"]},"booking_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/bookings/booking_create","description":"The document's \"primary data\"."}},"required":["data"]},"booking_payload":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/bookings/booking","description":"The document's \"primary data\"."}},"required":["data"]},"booking_update":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"bookings"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","allOf":[{"$ref":"#/components/schemas/bookings/booking_attributes"},{"type":"object","properties":{"isWalkIn":{"type":["boolean","null"],"description":"Indicates if the booking is a walk-in."}}}]},"relationships":{"type":"object","description":"An [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) representing associations with other resources.","properties":{"customer":{"type":"object","description":"Represents the customer associated with the booking.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"customers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"tables":{"type":"object","description":"Represents the table associated with the booking.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","const":"tables"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}}}}}},"required":["type"]},"booking_update_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/bookings/booking_update","description":"The document's \"primary data\"."}},"required":["data"]},"bookings_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/bookings/booking"}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}}}}}
```

## The customers object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"customers":{"customer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"customers","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"$ref":"#/components/schemas/customers/customer_attributes","createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"anyOf":[{"required":["fullName"]},{"required":["companyNumber"]}],"required":["createdAt","updatedAt"]}},"required":["id","type","attributes"]},"customer_attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"fullName":{"type":["string","null"],"minLength":1,"maxLength":255,"pattern":"^[^<>&]+$","description":"The full name of the customer. This can be either a personal name or a company name."},"companyName":{"type":["string","null"],"maxLength":255,"pattern":"^[-\\w\\s.,!;;'&]+$","description":"The name of the company associated with the customer."},"taxNumber":{"type":["string","null"],"maxLength":40,"pattern":"^[A-Za-z0-9]{1,24}$","description":"The customer's tax identification number."},"email":{"type":["string","null"],"maxLength":320,"pattern":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","description":"The customer's email address."},"address1":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"The first line of the customer's address."},"address2":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"The second line of the customer's address."},"city":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The city of the customer's address."},"state":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The state or province of the customer's address."},"postalCode":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The postal or ZIP code of the customer's address."},"country":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The country of the customer's address."},"notes":{"type":["string","null"],"maxLength":500,"pattern":"^[\\s\\S]*$","description":"Additional notes about the customer."},"phone":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The customer's phone number."},"mobile":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The customer's mobile phone number."},"countrySpecificCode":{"type":["string","null"],"maxLength":50,"pattern":"^[^<>&]+$","description":"A unique country specific code assigned to the customer. Lottery code, for example, in Italy."},"dateOfBirth":{"type":["string","null"],"maxLength":10,"format":"date","description":"The customer's date of birth in YYYY-MM-DD format."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}}},"customer_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"customers"},"attributes":{"$ref":"#/components/schemas/customers/customer_attributes","anyOf":[{"required":["fullName"]},{"required":["companyName"]}]}},"required":["type","attributes"]},"customer_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/customers/customer_create","description":"The document's \"primary data\"."}},"required":["data"]},"customer_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/customers/customer","description":"The document's \"primary data\"."}},"required":["data"]},"customers_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/customers/customer"}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}}}}}
```

## The dietary\_restrictions object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"dietary_restrictions":{"dietary_restriction":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Localized name of the dietary restriction.","minLength":1,"maxLength":255,"pattern":".*"},"description":{"type":["string","null"],"description":"Localized description of the dietary restriction.","minLength":0,"maxLength":10000,"pattern":".*"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The error object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"error":{"type":"object","description":"A JSON:API error object.\n\nAdditional properties specific to the problem type may be present.    \n","properties":{"errors":{"type":"array","description":"An array of error details to accompany a problem details response.","maxItems":1000,"items":{"type":"object","description":"An object to provide explicit details on a problem towards an API consumer.","properties":{"id":{"type":"string","maxLength":16,"description":"A unique identifier for this particular occurrence of the problem.","pattern":"^[A-Za-z0-9_-]+$"},"status":{"type":"string","maxLength":3,"description":"The HTTP status code applicable to this problem, expressed as a string value.","pattern":"^[1-5][0-9]{2}$"},"code":{"type":"string","maxLength":50,"description":"An application-specific error code, expressed as a string value.","pattern":"^[A-Za-z0-9_-]+$"},"title":{"type":"string","description":"A short, human-readable summary of the problem that SHOULD NOT change from occurrence to occurrence of the problem, except for purposes of localization.","maxLength":256,"pattern":"^.{1,255}$"},"detail":{"type":"string","description":"A human-readable explanation specific to this occurrence of the problem. Like title, this field's value can be localized.","maxLength":1024,"pattern":"^.{1,1023}$"},"source":{"type":"object","properties":{"pointer":{"type":"string","description":"A JSON Pointer to a specific request body property that is the source of error.","maxLength":1024,"pattern":"^$|^/([A-Za-z0-9_-]+/)*[A-Za-z0-9_-]+$"},"parameter":{"type":"string","description":"A string indicating which URI query parameter caused the error.","maxLength":1024,"pattern":"^[A-Za-z0-9_]+$"},"header":{"type":"string","description":"The name of the header that is the source of error.","maxLength":1024,"pattern":"^[A-Za-z-]+$"}}},"meta":{"type":"object","description":"Additional information about the error.","additionalProperties":true}},"required":["title"]}}},"required":["errors"]}}}}
```

## The experience\_configuration\_menus object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"experience_configuration_menus":{"experience_configuration_menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the experience configuration menu.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"experienceConfigurationMenus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"availability":{"type":"array","description":"Array of availability periods, each containing days, start_time, and end_time.","maxItems":1000,"items":{"type":"object","properties":{"days":{"type":"array","description":"List of weekdays for this availability period.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"startTime":{"type":["string","null"],"description":"Start time for this availability period (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"endTime":{"type":["string","null"],"description":"End time for this availability period (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["days"]}}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"experienceConfiguration":{"type":"object","description":"Details of the experience configuration associated with this menu override.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"experienceConfigurations","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"menu":{"type":"object","description":"Details of the menu associated with the experience configuration menu.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menus","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["experienceConfiguration","menu"]}},"required":["id","type","attributes","relationships"]}}}}}
```

## The experience\_configurations object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"experience_configurations":{"experience_configuration":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"experienceConfigurations"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"Name of the experience configuration.","maxLength":255,"pattern":"^[^<>&]*$"},"description":{"type":["string","null"],"description":"Description of the experience configuration.","maxLength":10000,"pattern":"^[^<>&]*$"},"serviceType":{"type":"string","description":"Type of service for the experience configuration.","enum":["order_and_pay","menu_browsing","pay_only"]},"minimumOrderValue":{"type":["string","null"],"description":"Minimum order value required.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"serviceFee":{"type":["string","null"],"description":"Service fee amount.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"serviceFeeType":{"type":["string","null"],"description":"Whether the service fee is a percentage or an absolute value.","enum":["percentage","absolute"]},"requiresStaffApproval":{"type":"boolean","description":"Whether staff approval is required."},"roomChargeEnabled":{"type":"boolean","description":"Whether room charge is enabled."},"tippingEnabled":{"type":"boolean","description":"Whether tipping is enabled."}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"experienceConfigurationMenus":{"type":"object","description":"Details of the experience configuration menus associated with the experience configuration.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"experienceConfigurationMenus","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]},"logo":{"type":"object","description":"Details of the logo image associated with the experience configuration.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"images","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"backgroundImage":{"type":"object","description":"Details of the background image associated with the experience configuration.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"images","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["experienceConfigurationMenus"]}},"required":["id","type","attributes","relationships"]}}}}}
```

## The health\_check object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"health_check":{"health_check":{"type":"object","properties":{"id":{"type":"string","title":"Resource identifier","const":"current"},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"healthChecks"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing information about the health check.","properties":{"status":{"type":"string","description":"Overall health check status of the server.","enum":["ok","error"],"maxLength":255},"timestamp":{"type":"string","description":"The timestamp when the health check was performed.","maxLength":25,"format":"date-time"}},"required":["status","timestamp"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"checks":{"type":"object","description":"A relationship to the detailed list of checks performed.","properties":{"data":{"type":"array","maxItems":1000,"description":"A relationship to the detailed list of checks performed.","items":{"type":"object","properties":{"id":{"type":"string","title":"Resource identifier","pattern":"^[^<>&]+$","maxLength":255},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"checks"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["type","id","attributes"]},"health_check_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/health_check/health_check","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the health check is related.","items":{"$ref":"#/components/schemas/health_check_items/health_check_item"}}},"required":["data"]}},"health_check_items":{"health_check_item":{"type":"object","properties":{"id":{"type":"string","title":"Resource identifier","pattern":"^[^<>&]+$","maxLength":255},"type":{"type":"string","description":"Category of the check.","const":"checks"},"attributes":{"type":"object","properties":{"status":{"type":"string","description":"Result of the check.","enum":["ok","error"],"maxLength":255}}}},"required":["id","type","attributes"]}}}}}
```

## The health\_check\_items object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"health_check_items":{"health_check_item":{"type":"object","properties":{"id":{"type":"string","title":"Resource identifier","pattern":"^[^<>&]+$","maxLength":255},"type":{"type":"string","description":"Category of the check.","const":"checks"},"attributes":{"type":"object","properties":{"status":{"type":"string","description":"Result of the check.","enum":["ok","error"],"maxLength":255}}}},"required":["id","type","attributes"]}}}}}
```

## The images object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"images":{"image":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"images"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"width":{"type":"integer","description":"Image width in pixels.","format":"int32","minimum":1,"maximum":100000},"height":{"type":"integer","description":"Image height in pixels.","format":"int32","minimum":1,"maximum":100000},"mimeType":{"type":"string","description":"MIME type of the image.","maxLength":255,"pattern":"^[a-zA-Z0-9.+-]+/[a-zA-Z0-9.+-]+$"},"url":{"type":"string","description":"Fully qualified URL of the image asset.","format":"uri","maxLength":2048},"name":{"type":["string","null"],"description":"Original filename for display purposes (e.g. on editing pages).","minLength":1,"maxLength":255,"pattern":".*"}}}},"required":["id","type"]}}}}}
```

## The invoice\_item\_modifiers object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"invoice_item_modifiers":{"invoice_item_modifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoiceItemModifiers","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier item.","maxLength":255,"pattern":"^[^<>&]+$"},"price":{"type":"string","description":"Price of the modifier item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["name","price"]}},"required":["id","type","attributes"]}}}}}
```

## The invoice\_items object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"invoice_items":{"invoice_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoiceItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"productName":{"type":"string","description":"The name of the product or item being invoiced.","maxLength":255,"pattern":"^[^<>&]+$"},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The number of units of the product being purchased."},"subtotal":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the product before taxes and discounts are applied."},"tax":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The tax amount applicable to the specific item."},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The percentage or amount of discount applied specifically to this item."},"comp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not.","deprecated":true},"void":{"type":"boolean","description":"Indicates whether the item has been voided from the invoice.","deprecated":true},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the invoice."},"compVoidReason":{"type":["string","null"],"description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":["string","null"],"description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to this specific item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"subtotalInclDiscount":{"type":"string","description":"The subtotal of the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"taxInclDiscount":{"type":"string","description":"The tax amount applicable to the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"totalInclDiscount":{"type":"string","description":"The tax amount applicable to the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["productName","unitPriceInclTax","quantity","subtotal","tax","total","discount","comp","void","isComp","isVoid","compVoidReason","compVoidNotes","discountAmount","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"type":"object","description":"Details of the product associated with the invoiceItem.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]},"productVariant":{"type":"object","description":"Details of the productVariant associated with the invoiceItem.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]},"invoiceItemModifiers":{"type":"object","description":"Details of the items associated with the invoiceItem.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoiceItemModifiers"}},"required":["id","type"]}}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the invoiceItem.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}}}}},"required":["id","type","attributes"]},"invoice_item_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/invoice_items/invoice_item","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the invoiceItemModifiers to which the invoiceItem is associated.","items":{"anyOf":[{"$ref":"#/components/schemas/invoice_item_modifiers/invoice_item_modifier"},{"$ref":"#/components/schemas/revenue_centers/revenue_center"}]}}},"required":["data"]}},"invoice_item_modifiers":{"invoice_item_modifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoiceItemModifiers","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier item.","maxLength":255,"pattern":"^[^<>&]+$"},"price":{"type":"string","description":"Price of the modifier item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["name","price"]}},"required":["id","type","attributes"]}},"revenue_centers":{"revenue_center":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"revenueCenters"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","maxLength":255,"pattern":"^[^<>&]+$","description":"Name of the revenue center."},"isActive":{"type":"boolean","description":"Indicates whether the revenue center is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","isActive","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The invoices object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"invoices":{"invoice":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoices","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discount":{"type":["string","null"],"description":"The amount of discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tax":{"type":"string","description":"The total tax amount applicable to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"total":{"type":"string","description":"The final amount due on the invoice after all discounts and taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"subtotal":{"type":"string","description":"The total amount of the invoice before taxes and additional charges.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tipAmount":{"type":["string","null"],"description":"The amount of gratuity or tip added to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"cancelled":{"type":"boolean","description":"Indicates whether the invoice has been cancelled (true) or not (false)."},"cancelReason":{"type":["string","null"],"description":"The reason provided for cancelling the invoice, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"description":{"type":["string","null"],"description":"A brief description of the invoice, including details about the transaction.","maxLength":255,"pattern":"^[^<>&]+$"},"itemDiscountAmount":{"type":["string","null"],"description":"The total discount amount applied to individual items within the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["discount","tax","total","subtotal","tipAmount","createdAt","updatedAt","cancelled","cancelReason","discountAmount","description","itemDiscountAmount"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"user":{"type":"object","description":"Details of the user associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"users"}},"required":["id","type"]}},"required":["data"]},"order":{"type":"object","description":"Details of the order associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"}},"required":["id","type"]}},"required":["data"]},"registers":{"type":"object","description":"Details of the register associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"register"}},"links":{"self":{"type":"string","format":"uri","maxLength":255}},"required":["id","type"]}},"required":["data"]},"originalInvoice":{"type":"object","description":"Details of the original invoice associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoices"}},"required":["id","type"]}},"required":["data"]},"items":{"type":"object","description":"Details of the items associated with the invoice.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoiceItems"},"links":{"self":{"type":"string","format":"uri","maxLength":255}}},"required":["id","type"]}}},"required":["data"]},"promoCode":{"type":"object","description":"Details of the promo codes associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"promoCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}}}}},"required":["id","type","attributes"]},"invoices_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/invoices/invoice"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the invoice is related.","items":{"anyOf":[{"$ref":"#/components/schemas/invoice_items/invoice_item"},{"$ref":"#/components/schemas/users/user"},{"$ref":"#/components/schemas/registers/register"},{"$ref":"#/components/schemas/orders/order"},{"$ref":"#/components/schemas/invoices/invoice"},{"$ref":"#/components/schemas/promo_codes/promo_code"},{"$ref":"#/components/schemas/revenue_centers/revenue_center"}]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}},"invoice_items":{"invoice_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoiceItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"productName":{"type":"string","description":"The name of the product or item being invoiced.","maxLength":255,"pattern":"^[^<>&]+$"},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The number of units of the product being purchased."},"subtotal":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the product before taxes and discounts are applied."},"tax":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The tax amount applicable to the specific item."},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The percentage or amount of discount applied specifically to this item."},"comp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not.","deprecated":true},"void":{"type":"boolean","description":"Indicates whether the item has been voided from the invoice.","deprecated":true},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the invoice."},"compVoidReason":{"type":["string","null"],"description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":["string","null"],"description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to this specific item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"subtotalInclDiscount":{"type":"string","description":"The subtotal of the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"taxInclDiscount":{"type":"string","description":"The tax amount applicable to the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"totalInclDiscount":{"type":"string","description":"The tax amount applicable to the item after applying any discounts.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["productName","unitPriceInclTax","quantity","subtotal","tax","total","discount","comp","void","isComp","isVoid","compVoidReason","compVoidNotes","discountAmount","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"type":"object","description":"Details of the product associated with the invoiceItem.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]},"productVariant":{"type":"object","description":"Details of the productVariant associated with the invoiceItem.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]},"invoiceItemModifiers":{"type":"object","description":"Details of the items associated with the invoiceItem.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoiceItemModifiers"}},"required":["id","type"]}}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the invoiceItem.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}}}}},"required":["id","type","attributes"]}},"users":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"users"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Full name of the user.","maxLength":255,"pattern":"^[^<>&]+$"}},"required":["name"]}},"required":["id","type","attributes"]}},"registers":{"register":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"registers"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the register.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"invoicesCount":{"type":"integer","description":"Total number of invoices issued from this register.","format":"int32","minimum":0,"maximum":100000},"index":{"type":"integer","description":"The index of a register within an outlet.","format":"int32","minimum":1,"maximum":100},"virtual":{"type":"boolean","description":"A boolean indicating whether the register is virtual `true` or physical `false`."},"createdAt":{"type":"string","description":"Register created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Register updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","invoicesCount","index","virtual","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"outlet":{"type":"object","description":"Details of the outlet to which the register is associated.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}}}},"required":["id","type","attributes","links"]}},"orders":{"order":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"notes":{"type":["string","null"],"description":"Notes about the order.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"covers":{"oneOf":[{"type":"integer","format":"int32","minimum":0,"maximum":1000},{"type":"null"}],"description":"How many people are seated at the table."},"depositAmount":{"type":["string","null"],"description":"The amount of discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tableStatus":{"type":["string","null"],"description":"Status of the table. Possible values are \"no_table\", \"seated\", \"cleaning\", and \"free\".","enum":[null,"no_table","seated","cleaning","free"]},"surcharge":{"type":["string","null"],"description":"The surcharge amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"surchargeType":{"type":["string","null"],"description":"The type of surcharge applied to the order.","enum":["fixed","percentage"]},"surchargeDescription":{"type":["string","null"],"description":"Description of the surcharge applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"discount":{"type":["string","null"],"description":"The discount amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":["string","null"],"description":"The type of discount applied to the order.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":["string","null"],"description":"Fulfillment status of the order lifecycle.","enum":[null,"auto","received","confirmed","rejected","preparing","ready_for_delivery","dispatched","in_transit","delivered"]},"state":{"type":["string"],"description":"Order state.","enum":["draft","sent","paid","discarded","cart","pending_payment","open","open_web"]},"createdAt":{"type":"string","description":"Order created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Order updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["covers","tableStatus","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"invoice":{"type":"object","description":"Details of the invoice associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoices","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"customer":{"type":"object","description":"Details of the customer associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"customers","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"booking":{"type":"object","description":"Details of the booking associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"bookings","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"tables":{"type":"object","description":"Details of the tables associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"description":"An array of table objects.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"tables","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]},"promoCode":{"type":"object","description":"Details of the promo codes associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"promoCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"outlet":{"type":"object","description":"Details of the outlet associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"orderItems":{"type":"object","description":"Details of the items associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"oneOf":[{"$ref":"#/components/schemas/order_items/order_item_identifier"},{"$ref":"#/components/schemas/order_bundle_items/order_bundle_item_identifier"}]}}},"required":["data"]},"payments":{"type":"object","description":"Details of the payments associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"payments","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes","links"]}},"order_items":{"order_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderItems"}},"required":["id","type"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"order_bundle_items":{"order_bundle_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"promo_codes":{"promo_code":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"promoCodes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discountType":{"type":"string","description":"Specifies whether the discount is a fixed amount, a percentage, or free shipping.","enum":["absolute","percent","free_shipping"]},"amount":{"type":["string","null"],"description":"The value of the discount. Required for absolute and percent discount types.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":19},"channel":{"type":"string","description":"The sales channel where the discount is applicable.","enum":["all_channels","ecommerce","pos"]},"code":{"type":"string","description":"The unique identifier code for the promo code.","pattern":"^.+$","minLength":1,"maxLength":255},"active":{"type":"boolean","description":"A boolean indicating if the promo code is currently active."},"description":{"type":["string","null"],"description":"A description of the promo code.","pattern":"^.*$","maxLength":1000},"maxUsages":{"type":["integer","null"],"description":"Maximum number of times this promo code can be used.","format":"int32","minimum":1,"maximum":1000000},"startsAt":{"type":["string","null"],"description":"Date and time when the promo code becomes valid in RFC 3339 format.","maxLength":25,"format":"date-time"},"endsAt":{"type":["string","null"],"description":"Date and time when the promo code expires in RFC 3339 format.","maxLength":25,"format":"date-time"},"createdAt":{"type":"string","description":"Promo code created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Promo code updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["discountType","amount","channel","code","active","description","maxUsages","startsAt","endsAt","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"revenue_centers":{"revenue_center":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"revenueCenters"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","maxLength":255,"pattern":"^[^<>&]+$","description":"Name of the revenue center."},"isActive":{"type":"boolean","description":"Indicates whether the revenue center is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","isActive","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The links object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The menu\_items object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"menu_items":{"menu_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"The name of the menu item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"itemType":{"type":"string","description":"Type of the menu item.","enum":["Product","ProductVariant","ProductBundle"]},"tileLabel":{"type":["string","null"],"description":"Short name of the menu item to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tileColor":{"type":["string","null"],"description":"Color of menu item tile to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the menu item image.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu item.","format":"int32","minimum":1,"maximum":1000},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Retail price excluding tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"price":{"type":["string","null"],"maxLength":255,"description":"Customer set price of the menu item [deprecated].","pattern":"^(\\d+(\\.\\d+)?)(-\\d+(\\.\\d+)?)?$"},"priceRange":{"type":["object","null"],"description":"Price range of the menu item if it is not a fixed price","properties":{"min":{"type":"string","description":"Minimum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"max":{"type":"string","description":"Maximum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"hasVariants":{"type":["boolean","null"],"description":"Indicates if the menu item is a product with variants."},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["itemType","retailPriceInclTax","position","createdAt","updatedAt"]},"relationships":{"type":"object","properties":{"item":{"type":"object","description":"The polymorphic item associated with this menu item. Can be a product, product variant, or product bundle.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"}},"required":["id","type"]},{"type":"null"}],"description":"Resource identifier object for the item (product, product variant, or product bundle)."}}},"taxes":{"type":"object","description":"Taxes that apply to this menu item.","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]},"description":"Array of tax resource identifier objects."}}}},"required":["taxes"]}},"required":["id","type","attributes"]}}}}}
```

## The menu\_overrides object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"menu_overrides":{"menu_override":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menuOverrides"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data. Availability attributes match the menu schema.","properties":{"availabilityDays":{"type":"array","description":"List of weekdays when the menu override is available.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"availabilityStartTime":{"type":["string","null"],"description":"Start time when the menu override is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"availabilityEndTime":{"type":["string","null"],"description":"End time when the menu override is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"menu":{"type":"object","description":"Details of the menu associated with the menu override.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menus","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["menu"]}},"required":["id","type","attributes","relationships"]}}}}}
```

## The menu\_sections object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"menu_sections":{"menu_section":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuSections","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the menu section.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu section.","format":"int32","minimum":1,"maximum":100},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","position","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The menus object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"menus":{"menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the menu.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"Status of the menu.","enum":["active","inactive"]},"description":{"type":["string","null"],"description":"Description of the menu.","maxLength":10000,"pattern":"^[^<>&]*$"},"deleted":{"type":"boolean","description":"Indicates whether the Menu is deleted or not."},"createdAt":{"type":"string","description":"Menu created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"availabilityDays":{"type":"array","description":"List of weekdays when the menu is available.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"availabilityStartTime":{"type":["string","null"],"description":"Start time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"availabilityEndTime":{"type":["string","null"],"description":"End time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"menuSections":{"type":"object","description":"Details of the menu sections associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menuSections"}},"required":["id","type"]}}},"required":["data"]},"outlets":{"type":"object","description":"Details of the outlets associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"outlets"}},"required":["id","type"]}}},"required":["data"]}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]},"menu_payload":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/menus/menu","description":"The document's \"primary data\"."}},"required":["data"]},"menu_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/menus/menu","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the menu is related.","items":{"anyOf":[{"$ref":"#/components/schemas/menu_sections/menu_section"},{"$ref":"#/components/schemas/menu_items/menu_item"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/products/product"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/product_bundles/product_bundle"}]}}},"required":["data"]},"menus_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/menus/menu"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the menu is related.","items":{"anyOf":[{"$ref":"#/components/schemas/menu_sections/menu_section"},{"$ref":"#/components/schemas/menu_items/menu_item"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/products/product"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/product_bundles/product_bundle"}]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}},"menu_sections":{"menu_section":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuSections","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the menu section.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu section.","format":"int32","minimum":1,"maximum":100},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","position","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"menu_items":{"menu_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"The name of the menu item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"itemType":{"type":"string","description":"Type of the menu item.","enum":["Product","ProductVariant","ProductBundle"]},"tileLabel":{"type":["string","null"],"description":"Short name of the menu item to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tileColor":{"type":["string","null"],"description":"Color of menu item tile to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the menu item image.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu item.","format":"int32","minimum":1,"maximum":1000},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Retail price excluding tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"price":{"type":["string","null"],"maxLength":255,"description":"Customer set price of the menu item [deprecated].","pattern":"^(\\d+(\\.\\d+)?)(-\\d+(\\.\\d+)?)?$"},"priceRange":{"type":["object","null"],"description":"Price range of the menu item if it is not a fixed price","properties":{"min":{"type":"string","description":"Minimum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"max":{"type":"string","description":"Maximum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"hasVariants":{"type":["boolean","null"],"description":"Indicates if the menu item is a product with variants."},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["itemType","retailPriceInclTax","position","createdAt","updatedAt"]},"relationships":{"type":"object","properties":{"item":{"type":"object","description":"The polymorphic item associated with this menu item. Can be a product, product variant, or product bundle.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"}},"required":["id","type"]},{"type":"null"}],"description":"Resource identifier object for the item (product, product variant, or product bundle)."}}},"taxes":{"type":"object","description":"Taxes that apply to this menu item.","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]},"description":"Array of tax resource identifier objects."}}}},"required":["taxes"]}},"required":["id","type","attributes"]}},"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}},"products":{"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"sku":{"type":["string","null"],"description":"SKU of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"isAvailable":{"type":"boolean","description":"Whether the product is available.","default":true},"barcode":{"type":["string","null"],"description":"Barcode of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"status":{"type":"string","description":"Status of the product. Possible values are \"active\" and \"inactive\".","enum":["active","inactive"]},"tax":{"type":["string","null"],"description":"Tax of the product.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Product price excluding tax.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":["string","null"],"description":"Product price including applicable taxes.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productType":{"type":"object","description":"Details of the product type associated with the product.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"}},"required":["id","type"]}}},"modifierSets":{"type":"object","description":"Details of the modifier sets associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"}},"required":["id","type"]}}},"required":["data"]},"modifiers":{"type":"object","description":"Details of the modifiers associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]},"productVariants":{"type":"object","description":"Details of the product variants associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}}}},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"dietaryRestrictions":{"type":"object","description":"Details of the dietary restrictions associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"}},"required":["id","type"]}}},"required":["data"]},"allergens":{"type":"object","description":"Details of the allergens associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"product_bundles":{"product_bundle":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product bundle.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the product bundle image.","minLength":0,"maxLength":1024,"format":"uri"},"priceRange":{"type":["object","null"],"description":"Price range of the bundle when not using fixed pricing. Contains minimum and maximum prices.","properties":{"min":{"type":"string","description":"Minimum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"max":{"type":"string","description":"Maximum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["min","max"]},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax of the bundle when using fixed pricing.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","description","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productBundleItems":{"type":"object","description":"Details of the product bundle items associated with the bundle.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}}}}}
```

## The modifier\_sets object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"modifier_sets":{"modifier_set":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier set.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selection":{"type":"string","description":"Modifier set selection type. Possible values are \"single\" and \"multiple\".","enum":["single","multiple"]},"maximumCount":{"type":"integer","description":"Maximum number of modifiers that can be selected.","format":"int32","minimum":0,"maximum":1000},"minimumCount":{"type":"integer","description":"Minimum number of modifiers that must be selected.","format":"int32","minimum":0,"maximum":1000},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","selection","maximumCount","minimumCount","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"modifiers":{"type":"object","description":"Details of the modifiers associated with the modifier set.","properties":{"data":{"type":"array","description":"The modifiers associated with the modifier set.","maxItems":100,"items":{"type":"object","description":"Details of the modifier.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the modifier.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The type of the modifier.","enum":["modifiers"]}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]},"modifier_set_single_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/modifier_sets/modifier_set"}},"required":["data"]},"modifier_sets_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/modifier_sets/modifier_set"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The modifiers object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"modifiers":{"modifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"price":{"type":"string","description":"Price of the modifier.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","price","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"relationship_modifiers":{"type":"object","description":"Details of the modifiers associated with the selected item.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}
```

## The order\_bundle\_items object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"order_bundle_items":{"order_bundle_item":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The number of units of the product being ordered."},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"notes":{"type":["string","null"],"description":"Internal notes for the order bundle item.","maxLength":1000,"pattern":"^[^<>&]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["quantity","unitPriceInclTax","total","notes","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"$ref":"#/components/schemas/products/relationship_product"},"productVariant":{"$ref":"#/components/schemas/product_variants/relationship_product_variant"},"modifiers":{"$ref":"#/components/schemas/modifiers/relationship_modifiers"},"revenueCenter":{"$ref":"#/components/schemas/revenue_centers/relationship_revenue_center"},"orderBundle":{"$ref":"#/components/schemas/order_bundles/relationship_order_bundle"}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]},"order_bundle_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"products":{"relationship_product":{"type":"object","description":"Details of the product associated with the selected item.","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]}},"product_variants":{"relationship_product_variant":{"type":"object","description":"Details of the product variant associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]}},"modifiers":{"relationship_modifiers":{"type":"object","description":"Details of the modifiers associated with the selected item.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]}},"revenue_centers":{"relationship_revenue_center":{"type":"object","description":"Details of the revenue center associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"order_bundles":{"relationship_order_bundle":{"type":"object","description":"Details of the order bundle associated with the selected item.","properties":{"data":{"type":["object"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderBundles"}},"required":["id","type"]}},"required":["data"]}}}}}
```

## The order\_bundles object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"order_bundles":{"order_bundle":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundles","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The percentage or amount of discount applied specifically to this item."},"discountType":{"type":"string","description":"The type of discount applied to the order item.","enum":["fixed","percentage"]},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["discount","discountType","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]},"relationship_order_bundle":{"type":"object","description":"Details of the order bundle associated with the selected item.","properties":{"data":{"type":["object"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderBundles"}},"required":["id","type"]}},"required":["data"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}
```

## The order\_items object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"order_items":{"order_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"orderItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The number of units of the product being ordered."},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"subtotal":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the product before taxes and discounts are applied."},"tax":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The tax amount applicable to the specific item."},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The percentage or amount of discount applied specifically to this item."},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to this specific item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the order."},"notes":{"type":["string","null"],"description":"Internal notes for the order item.","maxLength":2048,"pattern":"^[^<>&]+$"},"compVoidReason":{"type":["string","null"],"description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":["string","null"],"description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"The current status of the order item.","enum":["received","confirmed","delivered","rejected"]},"discountType":{"type":"string","description":"The type of discount applied to the order item.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order item.","maxLength":255,"pattern":"^[^<>&]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["quantity","unitPriceInclTax","subtotal","tax","total","discount","discountAmount","isComp","isVoid","notes","compVoidReason","compVoidNotes","status","discountType","discountDescription","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"$ref":"#/components/schemas/products/relationship_product"},"productVariant":{"$ref":"#/components/schemas/product_variants/relationship_product_variant"},"modifiers":{"$ref":"#/components/schemas/modifiers/relationship_modifiers"},"revenueCenter":{"$ref":"#/components/schemas/revenue_centers/relationship_revenue_center"}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]},"order_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderItems"}},"required":["id","type"]},"order_item_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/order_items/order_item","description":"The document's \"primary data\"."}},"required":["data"]}},"products":{"relationship_product":{"type":"object","description":"Details of the product associated with the selected item.","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"product_variants":{"relationship_product_variant":{"type":"object","description":"Details of the product variant associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]}},"modifiers":{"relationship_modifiers":{"type":"object","description":"Details of the modifiers associated with the selected item.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]}},"revenue_centers":{"relationship_revenue_center":{"type":"object","description":"Details of the revenue center associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}}}}}
```

## The orders object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"orders":{"order":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"notes":{"type":["string","null"],"description":"Notes about the order.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"covers":{"oneOf":[{"type":"integer","format":"int32","minimum":0,"maximum":1000},{"type":"null"}],"description":"How many people are seated at the table."},"depositAmount":{"type":["string","null"],"description":"The amount of discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tableStatus":{"type":["string","null"],"description":"Status of the table. Possible values are \"no_table\", \"seated\", \"cleaning\", and \"free\".","enum":[null,"no_table","seated","cleaning","free"]},"surcharge":{"type":["string","null"],"description":"The surcharge amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"surchargeType":{"type":["string","null"],"description":"The type of surcharge applied to the order.","enum":["fixed","percentage"]},"surchargeDescription":{"type":["string","null"],"description":"Description of the surcharge applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"discount":{"type":["string","null"],"description":"The discount amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":["string","null"],"description":"The type of discount applied to the order.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":["string","null"],"description":"Fulfillment status of the order lifecycle.","enum":[null,"auto","received","confirmed","rejected","preparing","ready_for_delivery","dispatched","in_transit","delivered"]},"state":{"type":["string"],"description":"Order state.","enum":["draft","sent","paid","discarded","cart","pending_payment","open","open_web"]},"createdAt":{"type":"string","description":"Order created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Order updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["covers","tableStatus","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"invoice":{"type":"object","description":"Details of the invoice associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoices","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"customer":{"type":"object","description":"Details of the customer associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"customers","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"booking":{"type":"object","description":"Details of the booking associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"bookings","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"tables":{"type":"object","description":"Details of the tables associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"description":"An array of table objects.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"tables","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]},"promoCode":{"type":"object","description":"Details of the promo codes associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"promoCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"outlet":{"type":"object","description":"Details of the outlet associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"orderItems":{"type":"object","description":"Details of the items associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"oneOf":[{"$ref":"#/components/schemas/order_items/order_item_identifier"},{"$ref":"#/components/schemas/order_bundle_items/order_bundle_item_identifier"}]}}},"required":["data"]},"payments":{"type":"object","description":"Details of the payments associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"payments","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes","links"]},"order_bundle_create_attributes":{"type":"object","properties":{"quantity":{"type":"string","description":"Quantity of the bundle item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discount":{"type":"string","description":"Discount amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":"string","enum":["percentage","fixed"],"description":"Type of discount applied."}},"required":["quantity"]},"order_bundle_create_relationships":{"type":"object","properties":{"productBundle":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"productBundles"},"id":{"type":"string","format":"uuid","description":"UUID of the product bundle.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]}},"required":["productBundle"]},"order_bundle_item_create_attributes":{"type":"object","properties":{"total":{"type":"string","description":"Total price of the item including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"unitPriceInclTax":{"type":"string","description":"Unit price including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"notes":{"type":"string","description":"Internal notes for the bundle item.","maxLength":500,"pattern":"^[^<>&]+$"}},"required":["total","unitPriceInclTax"]},"order_bundle_item_create_relationships":{"type":"object","properties":{"productBundleItem":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"productBundleItems"},"id":{"type":"string","format":"uuid","description":"UUID of the product bundle item.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"orderBundle":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"orderBundles"},"id":{"type":"string","format":"uuid","description":"UUID of the product.","minLength":36,"maxLength":36},"tempId":{"type":"string","description":"Temporary ID of the order bundle.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"}},"required":["type"],"oneOf":[{"required":["id"]},{"required":["tempId"]}]}},"required":["data"]},"product":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"products"},"id":{"type":"string","format":"uuid","description":"UUID of the product.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"productVariant":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"productVariants"},"id":{"type":"string","format":"uuid","description":"UUID of the product variant.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"modifiers":{"type":"object","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"modifiers"},"id":{"type":"string","format":"uuid","description":"UUID of the modifier.","minLength":36,"maxLength":36}},"required":["type","id"]}}},"required":["data"]}},"required":["product","orderBundle","productBundleItem"]},"order_bundle_item_update_attributes":{"type":"object","properties":{"total":{"type":"string","description":"Total price of the item including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"unitPriceInclTax":{"type":"string","description":"Unit price including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"notes":{"type":"string","description":"Internal notes for the bundle item.","maxLength":500,"pattern":"^[^<>&]+$"}}},"order_bundle_item_update_relationships":{"type":"object","properties":{"orderBundle":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"orderBundles"},"id":{"type":"string","format":"uuid","description":"UUID of the order bundle.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"modifiers":{"type":"object","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"modifiers"},"id":{"type":"string","format":"uuid","description":"UUID of the modifier.","minLength":36,"maxLength":36}},"required":["type","id"]}}},"required":["data"]}}},"order_bundle_update_attributes":{"type":"object","properties":{"quantity":{"type":"string","description":"Quantity of the bundle item.","pattern":"^[0-9]+(\\.[0-9]{1,2})?$","maxLength":10},"discount":{"type":"string","description":"Discount amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":"string","enum":["percentage","fixed"],"description":"Type of discount applied."}}},"order_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"notes":{"type":"string","description":"Notes about the order.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"covers":{"type":"integer","format":"int32","description":"How many people are seated at the table.","minimum":0,"maximum":1000},"surcharge":{"type":["string","null"],"description":"The surcharge amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"surchargeType":{"type":["string","null"],"description":"The type of surcharge applied to the order.","enum":["fixed","percentage"]},"surchargeDescription":{"type":["string","null"],"description":"Description of the surcharge applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"discount":{"type":["string","null"],"description":"The discount amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":["string","null"],"description":"The type of discount applied to the order.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"}}},"relationships":{"type":"object","description":"An [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) representing associations with other resources.","properties":{"customer":{"type":"object","description":"Represents the customer associated with the order.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"customers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"tables":{"type":"object","description":"Represents the table associated with the order.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","const":"tables"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}}},"outlet":{"type":"object","description":"Represents the outlet associated with the order.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"outlets"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"revenueCenter":{"type":"object","description":"Represents the revenue center associated with the order.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"revenue_centers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"promoCode":{"type":"object","description":"Represents the promo code associated with the order.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"promo_codes"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}},"items":{"type":"object","description":"Represents the items associated with the order.","properties":{"data":{"type":"array","description":"A list of related item objects.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","enum":["orderItems","orderBundleItems"]},"tempId":{"type":"string","description":"Temporary ID of the item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"}},"required":["type","tempId"]}}},"required":["data"]},"payments":{"type":"object","description":"Represents the payments associated with the order.","properties":{"data":{"type":"array","description":"A list of related payment objects.","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"payments"},"tempId":{"type":"string","description":"Temporary ID of the payment.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"}},"required":["type","tempId"]}}},"required":["data"]}},"required":["outlet"]},"included":{"type":"object","description":"An object containing included resource objects that are related to the primary data and/or each other.","properties":{"items":{"type":"array","description":"An array of resource objects that are related to the primary data and/or each other.","maxItems":1000,"items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"orderItems"},"tempId":{"type":"string","description":"Temporary ID of the order item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"type":"object","properties":{"quantity":{"type":"string","description":"Quantity of the item.","pattern":"^[0-9]+(\\.[0-9]{1,2})?$","maxLength":10},"total":{"type":"string","description":"Total price of the item including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"unitPriceInclTax":{"type":"string","description":"Unit price including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"tax":{"type":"string","description":"Tax amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"subtotal":{"type":"string","description":"Subtotal price of the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discount":{"type":"string","description":"Discount amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":"string","enum":["percentage","fixed"],"description":"Type of discount applied."},"discountDescription":{"type":"string","description":"Description of the discount.","maxLength":255,"pattern":"^[^<>&]+$"},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the order."},"notes":{"type":["string","null"],"description":"Internal notes for the order item.","maxLength":2048,"pattern":"^[^<>&]+$"},"compVoidReason":{"type":"string","description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":"string","description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"}}},"relationships":{"type":"object","properties":{"product":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"products"},"id":{"type":"string","format":"uuid","description":"UUID of the product.","minLength":36,"maxLength":36}}}}},"productVariant":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"productVariants"},"id":{"type":"string","format":"uuid","description":"UUID of the product variant.","minLength":36,"maxLength":36}}}}},"modifiers":{"type":"object","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"modifiers"},"id":{"type":"string","format":"uuid","description":"UUID of the modifier.","minLength":36,"maxLength":36}}}}}}}}},"required":["type","tempId"]},{"type":"object","properties":{"type":{"type":"string","const":"orderBundleItems"},"tempId":{"type":"string","description":"Temporary ID of the order bundle item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_item_create_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_bundle_item_create_relationships"}},"required":["type","tempId"]}]}},"orderBundles":{"type":"array","description":"An array of resource objects that are related to the primary data and/or each other.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","const":"orderBundles"},"tempId":{"type":"string","description":"Temporary ID of the order bundle.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_create_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_bundle_create_relationships"}},"required":["type","tempId","attributes","relationships"]}},"payments":{"type":"array","description":"An array of payment resource objects that are related to the primary data and/or each other.","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"payments"},"tempId":{"type":"string","description":"Temporary ID of the payment.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"type":"object","properties":{"amount":{"type":"string","description":"Payment amount represented as a decimal string with 2 decimal places.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"notes":{"type":["string","null"],"description":"Notes about the payment.","pattern":"^[^<>&]+$","minLength":1,"maxLength":500},"roomNumber":{"type":["string","null"],"description":"The room number associated with the payment (only present for room charges).","pattern":"^[^<>&]+$","minLength":1,"maxLength":255},"tipAmount":{"type":["string","null"],"description":"Tip amount represented as a decimal string with 2 decimal places.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10}},"required":["amount"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the payment and other JSON:API resources.","properties":{"paymentMethod":{"type":"object","description":"Details of the payment method used for the payment.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"paymentMethods"}},"required":["id","type"]}},"required":["data"]}},"required":["paymentMethod"]}},"required":["type","tempId","attributes","relationships"]}}}}},"required":["type","attributes"]},"order_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/orders/order_create","description":"The document's \"primary data\"."}},"required":["data"]},"order_example":{"data":{"id":"2496b6bd-a326-4a5a-95c8-359c943dcee8","type":"orders","attributes":{"covers":1,"tableStatus":"seated","notes":"Please make it quick","depositAmount":"20.00","createdAt":"2021-06-29T08:00:00Z","updatedAt":"2021-06-29T08:00:00Z"},"relationships":{"invoice":{"data":{"id":"4014e105-57d6-4b12-a4fc-164601ec53e9","type":"invoices"}},"customer":{"data":{"id":"4014e105-57d6-4b12-a4fc-164601ec53e9","type":"customers"}},"register":{"data":{"id":"a0312dc4-e0bf-4a27-837d-a6cf41f54464","type":"bookings"}},"invoiceItems":{"data":[{"id":"dcd9718c-abb0-4ba2-83c5-ae01505a5391","type":"tables"}]},"promoCode":{"data":{"id":"167beb82-e6a7-453b-8048-cfa25d3ce467","type":"promoCodes"}},"taxes":{"data":[{"id":"5efa8b3c-b930-4b31-918d-95ab0e212e64","type":"taxes"}]},"orderItems":{"data":[{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","type":"orderItems"},{"id":"5efa8b3c-b930-4b31-918d-95ab0e212e64","type":"orderBundleItems"}]}},"included":[{"type":"orderItems","id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","attributes":{"quantity":"3.00","total":"18.00","unitPriceInclTax":"6.00","tax":"1.00","subtotal":"17.00","discount":"10.00","discountType":"percentage","discountDescription":"Regular customer"},"relationships":{"product":{"data":{"type":"products","id":"c8e421ac-dcce-458a-ba7c-6f44b642718e"}},"productVariant":{"data":{"type":"productVariants","id":"39117180-5203-462a-b325-689427a7029f"}},"modifiers":{"data":[{"type":"modifiers","id":"44582405-1201-427c-9015-153b4b1d724f"}]}}},{"type":"orderBundleItems","id":"5efa8b3c-b930-4b31-918d-95ab0e212e64","attributes":{"unitPriceInclTax":"12.50","total":"12.50","notes":"Special bundle item"},"relationships":{"productBundleItem":{"data":{"type":"productBundleItems","id":"d4f5e6a7-b8c9-40d1-9e2f-3a4b5c6d7e8f"}},"modifiers":{"data":[{"type":"modifiers","id":"55667788-99aa-bbcc-ddee-ff0011223344"}]},"orderBundle":{"data":{"type":"orderBundles","id":"f5e6d7c8-9ab0-1234-5678-90abcdef1234"}}}},{"type":"orderBundles","id":"f5e6d7c8-9ab0-1234-5678-90abcdef1234","attributes":{"quantity":"1.00","discount":"5.00","discountType":"percentage"},"relationships":{"productBundle":{"data":{"type":"productBundles","id":"f2b8e1d3-3c4b-4e6a-9f5e-2d3c45b6a7b8"}}}}],"links":{"self":"https://api.mews-demo.com/pos/v1/orders/2496b6bd-a326-4a5a-95c8-359c943dcee8"}}},"order_item_update_attributes":{"type":"object","properties":{"quantity":{"type":"string","description":"Quantity of the item.","pattern":"^[0-9]+(\\.[0-9]{1,2})?$","maxLength":10},"total":{"type":"string","description":"Total price of the item including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"unitPriceInclTax":{"type":"string","description":"Unit price including tax.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"tax":{"type":"string","description":"Tax amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"subtotal":{"type":"string","description":"Subtotal price of the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discount":{"type":"string","description":"Discount amount for the item.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":"string","enum":["percentage","fixed"],"description":"Type of discount applied."},"discountDescription":{"type":"string","description":"Description of the discount.","maxLength":255,"pattern":"^[^<>&]+$"},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the order."},"notes":{"type":["string","null"],"description":"Internal notes for the order item.","maxLength":2048,"pattern":"^[^<>&]+$"},"compVoidReason":{"type":"string","description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":"string","description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"}}},"order_item_update_relationships":{"type":"object","properties":{"product":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"products"},"id":{"type":"string","format":"uuid","description":"UUID of the product.","minLength":36,"maxLength":36}}}}},"productVariant":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"productVariants"},"id":{"type":"string","format":"uuid","description":"UUID of the product variant.","minLength":36,"maxLength":36}}}}},"modifiers":{"type":"object","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"type":{"type":"string","const":"modifiers"},"id":{"type":"string","format":"uuid","description":"UUID of the modifier.","minLength":36,"maxLength":36}}}}}}}},"order_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/orders/order","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":100,"description":"Details of the objects to which the order is associated.","items":{"anyOf":[{"$ref":"#/components/schemas/invoices/invoice"},{"$ref":"#/components/schemas/tables/table"},{"$ref":"#/components/schemas/bookings/booking"},{"$ref":"#/components/schemas/customers/customer"},{"$ref":"#/components/schemas/promo_codes/promo_code"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/revenue_centers/revenue_center"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/order_items/order_item"},{"$ref":"#/components/schemas/order_bundle_items/order_bundle_item"},{"$ref":"#/components/schemas/order_bundles/order_bundle"}]}}},"required":["data"]},"order_update":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the order.","minLength":36,"maxLength":36},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"notes":{"type":["string","null"],"description":"Notes about the order.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"covers":{"oneOf":[{"type":"integer","format":"int32","minimum":0,"maximum":1000},{"type":"null"}],"description":"How many people are seated at the table."},"surcharge":{"type":["string","null"],"description":"The surcharge amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"surchargeType":{"type":["string","null"],"description":"The type of surcharge applied to the order.","enum":["fixed","percentage"]},"surchargeDescription":{"type":["string","null"],"description":"Description of the surcharge applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"discount":{"type":["string","null"],"description":"The discount amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":["string","null"],"description":"The type of discount applied to the order.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"}}},"relationships":{"type":"object","description":"An [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) representing associations with other resources.","properties":{"customer":{"type":"object","description":"Represents the customer associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"type":{"type":"string","const":"customers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"tables":{"type":"object","description":"Represents the tables associated with the order.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":1000,"items":{"type":"object","properties":{"type":{"type":"string","const":"tables"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}}},"required":["data"]},"outlet":{"type":"object","description":"Represents the outlet associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"type":{"type":"string","const":"outlets"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Represents the revenue center associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"type":{"type":"string","const":"revenue_centers"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"promoCode":{"type":"object","description":"Represents the promo code associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"type":{"type":"string","const":"promo_codes"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]},"items":{"type":"object","description":"Represents the items in the order (both new and existing).","properties":{"data":{"type":"array","description":"A list of related item objects. Use tempId for new items, id for existing items.","maxItems":1000,"items":{"oneOf":[{"title":"New item reference (with tempId)","type":"object","description":"Reference to a new item being added to the order","properties":{"type":{"type":"string","enum":["orderItems","orderBundleItems"]},"tempId":{"type":"string","description":"Temporary ID of the new item (must match tempId in included section).","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"}},"required":["type","tempId"],"additionalProperties":false},{"title":"Existing item reference (with id)","type":"object","description":"Reference to an existing item being updated or kept in the order","properties":{"type":{"type":"string","enum":["orderItems","orderBundleItems"]},"id":{"type":"string","format":"uuid","description":"UUID of the existing item (must match id in included section if updating).","minLength":36,"maxLength":36}},"required":["type","id"],"additionalProperties":false}]}}},"required":["data"]}}},"included":{"type":"object","description":"An object containing included resource objects that are related to the primary data and/or each other.","properties":{"items":{"type":"array","description":"An array of resource objects that are related to the primary data and/or each other.","maxItems":1000,"items":{"oneOf":[{"title":"orderItems (new)","type":"object","properties":{"type":{"type":"string","const":"orderItems"},"tempId":{"type":"string","description":"Temporary ID of the order item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"$ref":"#/components/schemas/orders/order_item_update_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_item_update_relationships"}},"required":["type","tempId"],"additionalProperties":false},{"title":"orderItems (existing)","type":"object","properties":{"type":{"type":"string","const":"orderItems"},"id":{"type":"string","format":"uuid","description":"UUID of the existing order item to update.","minLength":36,"maxLength":36},"attributes":{"$ref":"#/components/schemas/orders/order_item_update_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_item_update_relationships"}},"required":["type","id"],"additionalProperties":false},{"title":"orderBundleItems (new)","type":"object","properties":{"type":{"type":"string","const":"orderBundleItems"},"tempId":{"type":"string","description":"Temporary ID of the order bundle item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_item_create_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_bundle_item_create_relationships"}},"required":["type","tempId"],"additionalProperties":false},{"title":"orderBundleItems (existing)","type":"object","properties":{"type":{"type":"string","const":"orderBundleItems"},"id":{"type":"string","format":"uuid","description":"UUID of the existing order bundle item to update.","minLength":36,"maxLength":36},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_item_update_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_bundle_item_update_relationships"}},"required":["type","id"],"additionalProperties":false}]}},"orderBundles":{"type":"array","description":"An array of resource objects that are related to the primary data and/or each other.","maxItems":1000,"items":{"oneOf":[{"title":"orderBundles (new)","type":"object","properties":{"type":{"type":"string","const":"orderBundles"},"tempId":{"type":"string","description":"Temporary ID of the order bundle.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_create_attributes"},"relationships":{"$ref":"#/components/schemas/orders/order_bundle_create_relationships"}},"required":["type","tempId"],"additionalProperties":false},{"title":"orderBundles (existing)","type":"object","properties":{"type":{"type":"string","const":"orderBundles"},"id":{"type":"string","format":"uuid","description":"UUID of the existing order bundle to update.","minLength":36,"maxLength":36},"attributes":{"$ref":"#/components/schemas/orders/order_bundle_update_attributes"}},"required":["type","id"],"additionalProperties":false}]}}}}},"required":["type","id","attributes"]},"order_update_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/orders/order_update","description":"The document's \"primary data\"."}},"required":["data"]},"orders_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/orders/order"}},"included":{"type":["array","null"],"maxItems":100,"description":"Details of the objects to which the order is associated.","items":{"anyOf":[{"$ref":"#/components/schemas/invoices/invoice"},{"$ref":"#/components/schemas/tables/table"},{"$ref":"#/components/schemas/bookings/booking"},{"$ref":"#/components/schemas/customers/customer"},{"$ref":"#/components/schemas/promo_codes/promo_code"},{"$ref":"#/components/schemas/outlets/outlet"},{"$ref":"#/components/schemas/revenue_centers/revenue_center"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/order_items/order_item"},{"$ref":"#/components/schemas/order_bundles/order_bundle"},{"$ref":"#/components/schemas/order_bundle_items/order_bundle_item"},{"$ref":"#/components/schemas/payments/payment"}]}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"order_items":{"order_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderItems"}},"required":["id","type"]},"order_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"orderItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The number of units of the product being ordered."},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"subtotal":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the product before taxes and discounts are applied."},"tax":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The tax amount applicable to the specific item."},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The percentage or amount of discount applied specifically to this item."},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to this specific item.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"isComp":{"type":"boolean","description":"Indicates whether the item was provided for free (comped) or not."},"isVoid":{"type":"boolean","description":"Indicates whether the item has been voided from the order."},"notes":{"type":["string","null"],"description":"Internal notes for the order item.","maxLength":2048,"pattern":"^[^<>&]+$"},"compVoidReason":{"type":["string","null"],"description":"The reason provided for voiding the item, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"compVoidNotes":{"type":["string","null"],"description":"Additional notes regarding the comping or voiding of the item.","maxLength":2048,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"The current status of the order item.","enum":["received","confirmed","delivered","rejected"]},"discountType":{"type":"string","description":"The type of discount applied to the order item.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order item.","maxLength":255,"pattern":"^[^<>&]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["quantity","unitPriceInclTax","subtotal","tax","total","discount","discountAmount","isComp","isVoid","notes","compVoidReason","compVoidNotes","status","discountType","discountDescription","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"$ref":"#/components/schemas/products/relationship_product"},"productVariant":{"$ref":"#/components/schemas/product_variants/relationship_product_variant"},"modifiers":{"$ref":"#/components/schemas/modifiers/relationship_modifiers"},"revenueCenter":{"$ref":"#/components/schemas/revenue_centers/relationship_revenue_center"}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"order_bundle_items":{"order_bundle_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]},"order_bundle_item":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"quantity":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The number of units of the product being ordered."},"unitPriceInclTax":{"type":"string","description":"The price of the product per unit, including applicable taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"total":{"type":"string","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$","description":"The total price of the item after taxes and discounts have been applied."},"notes":{"type":["string","null"],"description":"Internal notes for the order bundle item.","maxLength":1000,"pattern":"^[^<>&]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["quantity","unitPriceInclTax","total","notes","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"$ref":"#/components/schemas/products/relationship_product"},"productVariant":{"$ref":"#/components/schemas/product_variants/relationship_product_variant"},"modifiers":{"$ref":"#/components/schemas/modifiers/relationship_modifiers"},"revenueCenter":{"$ref":"#/components/schemas/revenue_centers/relationship_revenue_center"},"orderBundle":{"$ref":"#/components/schemas/order_bundles/relationship_order_bundle"}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"invoices":{"invoice":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoices","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discount":{"type":["string","null"],"description":"The amount of discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tax":{"type":"string","description":"The total tax amount applicable to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"total":{"type":"string","description":"The final amount due on the invoice after all discounts and taxes.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"subtotal":{"type":"string","description":"The total amount of the invoice before taxes and additional charges.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tipAmount":{"type":["string","null"],"description":"The amount of gratuity or tip added to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"cancelled":{"type":"boolean","description":"Indicates whether the invoice has been cancelled (true) or not (false)."},"cancelReason":{"type":["string","null"],"description":"The reason provided for cancelling the invoice, if applicable.","maxLength":255,"pattern":"^[^<>&]+$"},"discountAmount":{"type":["string","null"],"description":"The total monetary value of the discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"description":{"type":["string","null"],"description":"A brief description of the invoice, including details about the transaction.","maxLength":255,"pattern":"^[^<>&]+$"},"itemDiscountAmount":{"type":["string","null"],"description":"The total discount amount applied to individual items within the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["discount","tax","total","subtotal","tipAmount","createdAt","updatedAt","cancelled","cancelReason","discountAmount","description","itemDiscountAmount"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"user":{"type":"object","description":"Details of the user associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"users"}},"required":["id","type"]}},"required":["data"]},"order":{"type":"object","description":"Details of the order associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"}},"required":["id","type"]}},"required":["data"]},"registers":{"type":"object","description":"Details of the register associated with the invoice.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"register"}},"links":{"self":{"type":"string","format":"uri","maxLength":255}},"required":["id","type"]}},"required":["data"]},"originalInvoice":{"type":"object","description":"Details of the original invoice associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoices"}},"required":["id","type"]}},"required":["data"]},"items":{"type":"object","description":"Details of the items associated with the invoice.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"invoiceItems"},"links":{"self":{"type":"string","format":"uri","maxLength":255}}},"required":["id","type"]}}},"required":["data"]},"promoCode":{"type":"object","description":"Details of the promo codes associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"promoCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the invoice.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}}}}},"required":["id","type","attributes"]}},"tables":{"table":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"tables"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the table.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"numberOfSeats":{"type":"integer","description":"Number of people that can be seated at this table.","format":"int32","minimum":1,"maximum":99},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","numberOfSeats","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"area":{"type":"object","nullable":true,"description":"Details of the table area.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"areas"}},"required":["id","type"]},{"type":"null"}]}}}}}},"required":["id","type","attributes"]}},"bookings":{"booking":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"bookings"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","allOf":[{"$ref":"#/components/schemas/bookings/booking_attributes"},{"type":"object","properties":{"isWalkIn":{"type":"boolean","description":"Indicates if the booking is a walk-in."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["status","partySize","bookingDatetime"]}]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"tables":{"type":"object","description":"Details of the tables associated with the booking.","properties":{"data":{"type":"array","description":"A list of related table objects.","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"tables"}},"required":["id","type"]}}},"required":["data"]},"customer":{"type":"object","description":"Details of the customer associated with the booking.","properties":{"data":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"customers"}}},{"type":"null"}]}}},"orders":{"type":"object","description":"Details of the orders associated with the booking.","properties":{"data":{"type":"array","description":"A list of related order objects.","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type"]},"booking_attributes":{"type":"object","properties":{"status":{"type":["string","null"],"enum":["confirmed","seated","completed","cancelled","no_show"],"description":"The initial status of the booking. Possible values are \"confirmed\", \"seated\", \"completed\", \"cancelled\", and \"no_show\"."},"partySize":{"type":"integer","description":"Represents the number of people included in the booking.","format":"int32","minimum":1,"maximum":1000},"bookingDatetime":{"type":"string","maxLength":25,"format":"date-time","description":"The booking's date."},"duration":{"type":["integer","null"],"description":"Represents the length of the booking in minutes.","format":"int32","minimum":1,"maximum":10000},"notes":{"type":["string","null"],"maxLength":10000,"pattern":"^[^<>&]+$","description":"Additional notes for the booking."},"roomNumber":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The room number of the booking's customer."},"promotions":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The promotions of the booking."},"bookingReference":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"A reference code or identifier associated with the booking."},"depositAmount":{"type":["string","null"],"description":"The amount of the deposit.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}}},"customers":{"customer":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"customers","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"$ref":"#/components/schemas/customers/customer_attributes","createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"anyOf":[{"required":["fullName"]},{"required":["companyNumber"]}],"required":["createdAt","updatedAt"]}},"required":["id","type","attributes"]},"customer_attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"fullName":{"type":["string","null"],"minLength":1,"maxLength":255,"pattern":"^[^<>&]+$","description":"The full name of the customer. This can be either a personal name or a company name."},"companyName":{"type":["string","null"],"maxLength":255,"pattern":"^[-\\w\\s.,!;;'&]+$","description":"The name of the company associated with the customer."},"taxNumber":{"type":["string","null"],"maxLength":40,"pattern":"^[A-Za-z0-9]{1,24}$","description":"The customer's tax identification number."},"email":{"type":["string","null"],"maxLength":320,"pattern":"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$","description":"The customer's email address."},"address1":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"The first line of the customer's address."},"address2":{"type":["string","null"],"maxLength":255,"pattern":"^[^<>&]+$","description":"The second line of the customer's address."},"city":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The city of the customer's address."},"state":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The state or province of the customer's address."},"postalCode":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The postal or ZIP code of the customer's address."},"country":{"type":["string","null"],"maxLength":100,"pattern":"^[^<>&]+$","description":"The country of the customer's address."},"notes":{"type":["string","null"],"maxLength":500,"pattern":"^[\\s\\S]*$","description":"Additional notes about the customer."},"phone":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The customer's phone number."},"mobile":{"type":["string","null"],"maxLength":20,"pattern":"^\\+?[0-9]{1,15}$","description":"The customer's mobile phone number."},"countrySpecificCode":{"type":["string","null"],"maxLength":50,"pattern":"^[^<>&]+$","description":"A unique country specific code assigned to the customer. Lottery code, for example, in Italy."},"dateOfBirth":{"type":["string","null"],"maxLength":10,"format":"date","description":"The customer's date of birth in YYYY-MM-DD format."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}}}},"promo_codes":{"promo_code":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"promoCodes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discountType":{"type":"string","description":"Specifies whether the discount is a fixed amount, a percentage, or free shipping.","enum":["absolute","percent","free_shipping"]},"amount":{"type":["string","null"],"description":"The value of the discount. Required for absolute and percent discount types.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":19},"channel":{"type":"string","description":"The sales channel where the discount is applicable.","enum":["all_channels","ecommerce","pos"]},"code":{"type":"string","description":"The unique identifier code for the promo code.","pattern":"^.+$","minLength":1,"maxLength":255},"active":{"type":"boolean","description":"A boolean indicating if the promo code is currently active."},"description":{"type":["string","null"],"description":"A description of the promo code.","pattern":"^.*$","maxLength":1000},"maxUsages":{"type":["integer","null"],"description":"Maximum number of times this promo code can be used.","format":"int32","minimum":1,"maximum":1000000},"startsAt":{"type":["string","null"],"description":"Date and time when the promo code becomes valid in RFC 3339 format.","maxLength":25,"format":"date-time"},"endsAt":{"type":["string","null"],"description":"Date and time when the promo code expires in RFC 3339 format.","maxLength":25,"format":"date-time"},"createdAt":{"type":"string","description":"Promo code created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Promo code updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["discountType","amount","channel","code","active","description","maxUsages","startsAt","endsAt","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"revenue_centers":{"revenue_center":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"revenueCenters"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","maxLength":255,"pattern":"^[^<>&]+$","description":"Name of the revenue center."},"isActive":{"type":"boolean","description":"Indicates whether the revenue center is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","isActive","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"relationship_revenue_center":{"type":"object","description":"Details of the revenue center associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}},"products":{"relationship_product":{"type":"object","description":"Details of the product associated with the selected item.","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]}},"product_variants":{"relationship_product_variant":{"type":"object","description":"Details of the product variant associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]}},"modifiers":{"relationship_modifiers":{"type":"object","description":"Details of the modifiers associated with the selected item.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]}},"order_bundles":{"relationship_order_bundle":{"type":"object","description":"Details of the order bundle associated with the selected item.","properties":{"data":{"type":["object"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderBundles"}},"required":["id","type"]}},"required":["data"]},"order_bundle":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundles","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discount":{"type":["string","null"],"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,2}$","description":"The percentage or amount of discount applied specifically to this item."},"discountType":{"type":"string","description":"The type of discount applied to the order item.","enum":["fixed","percentage"]},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","format":"date-time","maxLength":25},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","format":"date-time","maxLength":25}},"required":["discount","discountType","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"payments":{"payment":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification)\nmember is used to describe resource objects that share common attributes and relationships.\n","const":"payments"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the payment resource's data.","properties":{"amount":{"type":"string","description":"Payment amount represented as a decimal string with 2 decimal places.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"notes":{"type":["string","null"],"description":"Notes about the payment.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"roomNumber":{"type":["string","null"],"description":"The room number associated with the payment.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tipAmount":{"type":["string","null"],"description":"Tip amount represented as a decimal string with 2 decimal places.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Payment created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Payment updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["amount","notes","tipAmount","roomNumber","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the payment and other JSON:API resources.","properties":{"order":{"type":"object","description":"Details of the order associated with the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"orders","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"paymentMethod":{"type":"object","description":"Details of the payment method used for the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"paymentMethods","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"register":{"type":"object","description":"Details of the register associated with the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"registers","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["order","paymentMethod","register"]}},"required":["id","type","attributes"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The outlets object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"outlets_response":{"type":"object","description":"Root response object.","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/outlets/outlet"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The payment\_methods object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"payment_methods":{"payment_method":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"paymentMethods"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"minLength":1,"maxLength":255,"pattern":"^.+$","description":"Name of the payment method."},"code":{"type":"string","description":"Code identifier of the payment method.","enum":["cash","credit_card","custom","cheque","wire_transfer","paypal","amazon","credit_card_external_terminal","room_charge","pre_billing","account_sale","voucher","deposit","loyalty"]},"isActive":{"type":"boolean","description":"Indicates if the payment method is active."},"isTippable":{"type":"boolean","description":"Indicates if tips are allowed for this payment method."},"createdAt":{"type":"string","description":"Payment method created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Payment method updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","code","isActive","isTippable","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"payment_methods_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/payment_methods/payment_method"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The payments object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"payments":{"payment":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification)\nmember is used to describe resource objects that share common attributes and relationships.\n","const":"payments"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the payment resource's data.","properties":{"amount":{"type":"string","description":"Payment amount represented as a decimal string with 2 decimal places.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"notes":{"type":["string","null"],"description":"Notes about the payment.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"roomNumber":{"type":["string","null"],"description":"The room number associated with the payment.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tipAmount":{"type":["string","null"],"description":"Tip amount represented as a decimal string with 2 decimal places.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Payment created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Payment updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["amount","notes","tipAmount","roomNumber","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the payment and other JSON:API resources.","properties":{"order":{"type":"object","description":"Details of the order associated with the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"orders","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"paymentMethod":{"type":"object","description":"Details of the payment method used for the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"paymentMethods","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"register":{"type":"object","description":"Details of the register associated with the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"registers","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["order","paymentMethod","register"]}},"required":["id","type","attributes"]},"payment_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification)\nmember is used to describe resource objects that share common attributes and relationships.\n","const":"payments"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the payment resource's data.","properties":{"amount":{"type":"string","description":"Payment amount represented as a decimal string with 2 decimal places.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"notes":{"type":["string","null"],"description":"Notes about the payment.","pattern":"^[^<>&]+$","minLength":1,"maxLength":500},"roomNumber":{"type":["string","null"],"description":"The room number associated with the payment (only present for room charges).","pattern":"^[^<>&]+$","minLength":1,"maxLength":255},"tipAmount":{"type":["string","null"],"description":"Tip amount represented as a decimal string with 2 decimal places.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10}},"required":["amount"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the payment and other JSON:API resources.","properties":{"order":{"type":"object","description":"Details of the order associated with the payment.","properties":{"data":{"type":["object"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"orders"}},"required":["id","type"]}},"required":["data"]},"paymentMethod":{"type":"object","description":"Details of the payment method used for the payment.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"paymentMethods"}},"required":["id","type"]}},"required":["data"]}},"required":["order","paymentMethod"]}},"required":["type","attributes"]},"payment_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/payments/payment_create","description":"The document's \"primary data\"."}},"required":["data"]},"payment_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/payments/payment","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":100,"description":"Details of the objects to which the payment is associated.","items":{"anyOf":[{"$ref":"#/components/schemas/orders/order"},{"$ref":"#/components/schemas/payment_methods/payment_method"},{"$ref":"#/components/schemas/registers/register"}]}}},"required":["data"]}},"orders":{"order":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orders"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"notes":{"type":["string","null"],"description":"Notes about the order.","minLength":1,"maxLength":500,"pattern":"^[^<>&]+$"},"covers":{"oneOf":[{"type":"integer","format":"int32","minimum":0,"maximum":1000},{"type":"null"}],"description":"How many people are seated at the table."},"depositAmount":{"type":["string","null"],"description":"The amount of discount applied to the invoice.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"tableStatus":{"type":["string","null"],"description":"Status of the table. Possible values are \"no_table\", \"seated\", \"cleaning\", and \"free\".","enum":[null,"no_table","seated","cleaning","free"]},"surcharge":{"type":["string","null"],"description":"The surcharge amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"surchargeType":{"type":["string","null"],"description":"The type of surcharge applied to the order.","enum":["fixed","percentage"]},"surchargeDescription":{"type":["string","null"],"description":"Description of the surcharge applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"discount":{"type":["string","null"],"description":"The discount amount applied to the order.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":10},"discountType":{"type":["string","null"],"description":"The type of discount applied to the order.","enum":["fixed","percentage"]},"discountDescription":{"type":["string","null"],"description":"Description of the discount applied to the order.","maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":["string","null"],"description":"Fulfillment status of the order lifecycle.","enum":[null,"auto","received","confirmed","rejected","preparing","ready_for_delivery","dispatched","in_transit","delivered"]},"state":{"type":["string"],"description":"Order state.","enum":["draft","sent","paid","discarded","cart","pending_payment","open","open_web"]},"createdAt":{"type":"string","description":"Order created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Order updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["covers","tableStatus","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"invoice":{"type":"object","description":"Details of the invoice associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"invoices","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"customer":{"type":"object","description":"Details of the customer associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"customers","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"booking":{"type":"object","description":"Details of the booking associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"bookings","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"tables":{"type":"object","description":"Details of the tables associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"description":"An array of table objects.","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"tables","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]},"promoCode":{"type":"object","description":"Details of the promo codes associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"promoCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"outlet":{"type":"object","description":"Details of the outlet associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenueCenter":{"type":"object","description":"Details of the revenue center associated with the order.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"orderItems":{"type":"object","description":"Details of the items associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"oneOf":[{"$ref":"#/components/schemas/order_items/order_item_identifier"},{"$ref":"#/components/schemas/order_bundle_items/order_bundle_item_identifier"}]}}},"required":["data"]},"payments":{"type":"object","description":"Details of the payments associated with the order.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"payments","description":"The type member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes","links"]}},"order_items":{"order_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"orderItems"}},"required":["id","type"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"order_bundle_items":{"order_bundle_item_identifier":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"orderBundleItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"payment_methods":{"payment_method":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"paymentMethods"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"minLength":1,"maxLength":255,"pattern":"^.+$","description":"Name of the payment method."},"code":{"type":"string","description":"Code identifier of the payment method.","enum":["cash","credit_card","custom","cheque","wire_transfer","paypal","amazon","credit_card_external_terminal","room_charge","pre_billing","account_sale","voucher","deposit","loyalty"]},"isActive":{"type":"boolean","description":"Indicates if the payment method is active."},"isTippable":{"type":"boolean","description":"Indicates if tips are allowed for this payment method."},"createdAt":{"type":"string","description":"Payment method created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Payment method updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","code","isActive","isTippable","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"registers":{"register":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"registers"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the register.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"invoicesCount":{"type":"integer","description":"Total number of invoices issued from this register.","format":"int32","minimum":0,"maximum":100000},"index":{"type":"integer","description":"The index of a register within an outlet.","format":"int32","minimum":1,"maximum":100},"virtual":{"type":"boolean","description":"A boolean indicating whether the register is virtual `true` or physical `false`."},"createdAt":{"type":"string","description":"Register created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Register updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","invoicesCount","index","virtual","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"outlet":{"type":"object","description":"Details of the outlet to which the register is associated.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}}}},"required":["id","type","attributes","links"]}}}}}
```

## The product\_bundles object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"product_bundles":{"product_bundle":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product bundle.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the product bundle image.","minLength":0,"maxLength":1024,"format":"uri"},"priceRange":{"type":["object","null"],"description":"Price range of the bundle when not using fixed pricing. Contains minimum and maximum prices.","properties":{"min":{"type":"string","description":"Minimum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"max":{"type":"string","description":"Maximum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["min","max"]},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax of the bundle when using fixed pricing.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","description","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productBundleItems":{"type":"object","description":"Details of the product bundle items associated with the bundle.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]},"product_bundle_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceInclTax":{"type":"string","description":"Price of the item within the bundle.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"groupName":{"type":"string","description":"Name of the group this item belongs to within the bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceInclTax","groupName","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"product":{"type":"object","description":"Details of the product associated with this bundle item.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]},"productVariant":{"type":"object","description":"Details of the product variant associated with this bundle item (nullable).","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]}},"required":["product","productVariant"]}},"required":["id","type","attributes","relationships"]},"product_bundles_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/product_bundles/product_bundle"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the product bundle items related to the product bundle.","items":{"$ref":"#/components/schemas/product_bundles/product_bundle_item"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The product\_types object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"product_types":{"product_type":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product type.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}}}}}
```

## The product\_variants object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"relationship_product_variant":{"type":"object","description":"Details of the product variant associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}},"required":["data"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}
```

## The products object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"products":{"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"sku":{"type":["string","null"],"description":"SKU of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"isAvailable":{"type":"boolean","description":"Whether the product is available.","default":true},"barcode":{"type":["string","null"],"description":"Barcode of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"status":{"type":"string","description":"Status of the product. Possible values are \"active\" and \"inactive\".","enum":["active","inactive"]},"tax":{"type":["string","null"],"description":"Tax of the product.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Product price excluding tax.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":["string","null"],"description":"Product price including applicable taxes.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productType":{"type":"object","description":"Details of the product type associated with the product.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"}},"required":["id","type"]}}},"modifierSets":{"type":"object","description":"Details of the modifier sets associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"}},"required":["id","type"]}}},"required":["data"]},"modifiers":{"type":"object","description":"Details of the modifiers associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]},"productVariants":{"type":"object","description":"Details of the product variants associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}}}},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"dietaryRestrictions":{"type":"object","description":"Details of the dietary restrictions associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"}},"required":["id","type"]}}},"required":["data"]},"allergens":{"type":"object","description":"Details of the allergens associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]},"product_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/products/product","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the product is related.","items":{"anyOf":[{"$ref":"#/components/schemas/product_types/product_type"},{"$ref":"#/components/schemas/modifier_sets/modifier_set"},{"$ref":"#/components/schemas/modifiers/modifier"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/dietary_restrictions/dietary_restriction"},{"$ref":"#/components/schemas/allergens/allergen"}]}}},"required":["data"]},"products_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/products/product"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the product is related.","items":{"anyOf":[{"$ref":"#/components/schemas/product_types/product_type"},{"$ref":"#/components/schemas/modifier_sets/modifier_set"},{"$ref":"#/components/schemas/modifiers/modifier"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/taxes/tax"},{"$ref":"#/components/schemas/dietary_restrictions/dietary_restriction"},{"$ref":"#/components/schemas/allergens/allergen"}]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]},"relationship_product":{"type":"object","description":"Details of the product associated with the selected item.","properties":{"data":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]}},"required":["data"]}},"product_types":{"product_type":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product type.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"modifier_sets":{"modifier_set":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier set.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selection":{"type":"string","description":"Modifier set selection type. Possible values are \"single\" and \"multiple\".","enum":["single","multiple"]},"maximumCount":{"type":"integer","description":"Maximum number of modifiers that can be selected.","format":"int32","minimum":0,"maximum":1000},"minimumCount":{"type":"integer","description":"Minimum number of modifiers that must be selected.","format":"int32","minimum":0,"maximum":1000},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","selection","maximumCount","minimumCount","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"modifiers":{"type":"object","description":"Details of the modifiers associated with the modifier set.","properties":{"data":{"type":"array","description":"The modifiers associated with the modifier set.","maxItems":100,"items":{"type":"object","description":"Details of the modifier.","properties":{"id":{"type":"string","format":"uuid","description":"The id of the modifier.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The type of the modifier.","enum":["modifiers"]}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"modifiers":{"modifier":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the modifier.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"price":{"type":"string","description":"Price of the modifier.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","price","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}},"dietary_restrictions":{"dietary_restriction":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Localized name of the dietary restriction.","minLength":1,"maxLength":255,"pattern":".*"},"description":{"type":["string","null"],"description":"Localized description of the dietary restriction.","minLength":0,"maxLength":10000,"pattern":".*"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"allergens":{"allergen":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Localized name of the allergen.","minLength":1,"maxLength":255,"pattern":".*"},"description":{"type":["string","null"],"description":"Localized description of the allergen.","minLength":0,"maxLength":10000,"pattern":".*"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}
```

## The promo\_codes object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"promo_codes":{"promo_code":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"promoCodes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"discountType":{"type":"string","description":"Specifies whether the discount is a fixed amount, a percentage, or free shipping.","enum":["absolute","percent","free_shipping"]},"amount":{"type":["string","null"],"description":"The value of the discount. Required for absolute and percent discount types.","pattern":"^[0-9]+\\.[0-9]{2}$","maxLength":19},"channel":{"type":"string","description":"The sales channel where the discount is applicable.","enum":["all_channels","ecommerce","pos"]},"code":{"type":"string","description":"The unique identifier code for the promo code.","pattern":"^.+$","minLength":1,"maxLength":255},"active":{"type":"boolean","description":"A boolean indicating if the promo code is currently active."},"description":{"type":["string","null"],"description":"A description of the promo code.","pattern":"^.*$","maxLength":1000},"maxUsages":{"type":["integer","null"],"description":"Maximum number of times this promo code can be used.","format":"int32","minimum":1,"maximum":1000000},"startsAt":{"type":["string","null"],"description":"Date and time when the promo code becomes valid in RFC 3339 format.","maxLength":25,"format":"date-time"},"endsAt":{"type":["string","null"],"description":"Date and time when the promo code expires in RFC 3339 format.","maxLength":25,"format":"date-time"},"createdAt":{"type":"string","description":"Promo code created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Promo code updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["discountType","amount","channel","code","active","description","maxUsages","startsAt","endsAt","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"promo_codes_response":{"type":"object","description":"Root response object.","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/promo_codes/promo_code"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The registers object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"registers":{"register":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"registers"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the register.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"invoicesCount":{"type":"integer","description":"Total number of invoices issued from this register.","format":"int32","minimum":0,"maximum":100000},"index":{"type":"integer","description":"The index of a register within an outlet.","format":"int32","minimum":1,"maximum":100},"virtual":{"type":"boolean","description":"A boolean indicating whether the register is virtual `true` or physical `false`."},"createdAt":{"type":"string","description":"Register created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Register updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","invoicesCount","index","virtual","createdAt","updatedAt"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"outlet":{"type":"object","description":"Details of the outlet to which the register is associated.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}}}},"required":["id","type","attributes","links"]},"register_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/registers/register","description":"The document's \"primary data\"."},"included":{"type":["array","null"],"maxItems":1,"description":"Details of the outlet to which the register is associated.","items":{"$ref":"#/components/schemas/outlets/outlet"}}},"required":["data"]},"registers_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/registers/register"}},"included":{"type":["array","null"],"maxItems":1000,"description":"Details of the objects to which the registers are related.","items":{"anyOf":[{"$ref":"#/components/schemas/outlets/outlet"}]}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"outlets":{"outlet":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"outlets","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the outlet, representing the business or location.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address1":{"type":["string","null"],"description":"The first line of the outlet's street address, typically including the street number and name.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"address2":{"type":["string","null"],"description":"The second line of outlet's address.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"city":{"type":["string","null"],"description":"The city where the outlet is located.","minLength":1,"maxLength":86,"pattern":"^[^<>&]+$"},"state":{"type":["string","null"],"description":"The state or region where the outlet is located.","minLength":1,"maxLength":54,"pattern":"^[^<>&]+$"},"postalCode":{"type":["string","null"],"description":"The postal or ZIP code for outlet's location.","minLength":1,"maxLength":10,"pattern":"^[^<>&]+$"},"index":{"type":"integer","description":"A unique sequential number representing the outlet number within the establishment.","format":"int32","minimum":1,"maximum":10},"createdAt":{"type":"string","description":"Outlet created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Outlet updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","address1","address2","city","state","postalCode","index","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The resource\_identifier object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}}}}
```

## The revenue\_centers object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"revenue_centers":{"relationship_revenue_center":{"type":"object","description":"Details of the revenue center associated with the selected item.","properties":{"data":{"type":["object","null"],"properties":{"id":{"$ref":"#/components/schemas/resource_identifier"},"type":{"type":"string","const":"revenueCenters","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"revenue_center":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"revenueCenters"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","maxLength":255,"pattern":"^[^<>&]+$","description":"Name of the revenue center."},"isActive":{"type":"boolean","description":"Indicates whether the revenue center is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","isActive","createdAt","updatedAt"]}},"required":["id","type","attributes"]},"revenue_centers_response":{"type":"object","description":"Root response object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/revenue_centers/revenue_center"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"resource_identifier":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The shortlived\_integration\_tokens object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"shortlived_integration_tokens":{"shortlived_integration_token":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the token.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"shortlivedIntegrationTokens"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"secretKey":{"type":"string","description":"Secret key for authentication.","maxLength":255,"pattern":"^[^<>&]*$"},"expiresAt":{"type":["string","null"],"format":"date-time","description":"Expiration timestamp.","maxLength":255},"enterpriseId":{"type":["string","null"],"description":"Enterprise identifier for the partner.","maxLength":255,"pattern":"^[^<>&]*$"}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"spaceCode":{"type":"object","description":"Details of the space code associated with the token.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"spaceCodes","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["spaceCode"]},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","relationships","links"]},"shortlived_integration_token_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"shortlivedIntegrationTokens"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"enterpriseId":{"type":["string","null"],"description":"Enterprise identifier for the partner.","maxLength":255,"pattern":"^[^<>&]*$"}},"required":["enterpriseId"]},"relationships":{"type":"object","description":"An [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) representing associations with other resources.","properties":{"spaceCode":{"type":"object","description":"Represents the space code associated with the token.","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"spaceCodes"},"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36}},"required":["type","id"]}},"required":["data"]}},"required":["spaceCode"]}},"required":["type","attributes","relationships"]},"shortlived_integration_token_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/shortlived_integration_tokens/shortlived_integration_token_create","description":"The document's \"primary data\"."}},"required":["data"]},"shortlived_integration_token_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/shortlived_integration_tokens/shortlived_integration_token"},"links":{"$ref":"#/components/schemas/links"}},"required":["data"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The space\_codes object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"space_codes":{"space_code":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the space code.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"spaceCodes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"url":{"type":["string","null"],"description":"URL associated with the space code.","format":"uri","maxLength":2048},"designation":{"type":["string","null"],"description":"Designation of the space code.","maxLength":255,"pattern":"^[^<>&]*$"},"description":{"type":["string","null"],"description":"Description of the space code.","maxLength":10000,"pattern":"^[^<>&]*$"},"direction":{"type":["string","null"],"description":"Direction information for the space code.","maxLength":255,"pattern":"^[^<>&]*$"},"spaceType":{"type":["string","null"],"description":"Type of the space code.","maxLength":255,"pattern":"^[^<>&]*$"},"classification":{"type":["string","null"],"description":"Classification of the space code.","maxLength":255,"pattern":"^[^<>&]*$"},"capacity":{"type":["string","null"],"description":"Capacity of the space.","maxLength":255,"pattern":"^[^<>&]*$"}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"experienceConfiguration":{"type":"object","description":"Details of the experience configuration associated with the space code.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"experienceConfigurations","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["experienceConfiguration"]}},"required":["id","type","attributes","links","relationships"]},"space_code_response":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/space_codes/space_code"},"included":{"type":"array","description":"Included related resources as per JSON:API.","maxItems":1000,"items":{"oneOf":[{"$ref":"#/components/schemas/images/image"},{"$ref":"#/components/schemas/experience_configurations/experience_configuration"},{"$ref":"#/components/schemas/experience_configuration_menus/experience_configuration_menu"},{"$ref":"#/components/schemas/menus/menu"},{"$ref":"#/components/schemas/menu_sections/menu_section"},{"$ref":"#/components/schemas/menu_items/menu_item"},{"$ref":"#/components/schemas/products/product"},{"$ref":"#/components/schemas/product_variants/product_variant"},{"$ref":"#/components/schemas/product_bundles/product_bundle"}]}},"links":{"$ref":"#/components/schemas/links"}},"required":["data"]}},"images":{"image":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"images"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"width":{"type":"integer","description":"Image width in pixels.","format":"int32","minimum":1,"maximum":100000},"height":{"type":"integer","description":"Image height in pixels.","format":"int32","minimum":1,"maximum":100000},"mimeType":{"type":"string","description":"MIME type of the image.","maxLength":255,"pattern":"^[a-zA-Z0-9.+-]+/[a-zA-Z0-9.+-]+$"},"url":{"type":"string","description":"Fully qualified URL of the image asset.","format":"uri","maxLength":2048},"name":{"type":["string","null"],"description":"Original filename for display purposes (e.g. on editing pages).","minLength":1,"maxLength":255,"pattern":".*"}}}},"required":["id","type"]}},"experience_configurations":{"experience_configuration":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"experienceConfigurations"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"Name of the experience configuration.","maxLength":255,"pattern":"^[^<>&]*$"},"description":{"type":["string","null"],"description":"Description of the experience configuration.","maxLength":10000,"pattern":"^[^<>&]*$"},"serviceType":{"type":"string","description":"Type of service for the experience configuration.","enum":["order_and_pay","menu_browsing","pay_only"]},"minimumOrderValue":{"type":["string","null"],"description":"Minimum order value required.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"serviceFee":{"type":["string","null"],"description":"Service fee amount.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"serviceFeeType":{"type":["string","null"],"description":"Whether the service fee is a percentage or an absolute value.","enum":["percentage","absolute"]},"requiresStaffApproval":{"type":"boolean","description":"Whether staff approval is required."},"roomChargeEnabled":{"type":"boolean","description":"Whether room charge is enabled."},"tippingEnabled":{"type":"boolean","description":"Whether tipping is enabled."}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"experienceConfigurationMenus":{"type":"object","description":"Details of the experience configuration menus associated with the experience configuration.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"experienceConfigurationMenus","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}}},"required":["data"]},"logo":{"type":"object","description":"Details of the logo image associated with the experience configuration.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"images","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"backgroundImage":{"type":"object","description":"Details of the background image associated with the experience configuration.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"images","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["experienceConfigurationMenus"]}},"required":["id","type","attributes","relationships"]}},"experience_configuration_menus":{"experience_configuration_menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the experience configuration menu.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"experienceConfigurationMenus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"availability":{"type":"array","description":"Array of availability periods, each containing days, start_time, and end_time.","maxItems":1000,"items":{"type":"object","properties":{"days":{"type":"array","description":"List of weekdays for this availability period.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"startTime":{"type":["string","null"],"description":"Start time for this availability period (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"endTime":{"type":["string","null"],"description":"End time for this availability period (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["days"]}}}},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"experienceConfiguration":{"type":"object","description":"Details of the experience configuration associated with this menu override.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"experienceConfigurations","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]},"menu":{"type":"object","description":"Details of the menu associated with the experience configuration menu.","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menus","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."}},"required":["id","type"]}},"required":["data"]}},"required":["experienceConfiguration","menu"]}},"required":["id","type","attributes","relationships"]}},"menus":{"menu":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menus"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the menu.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"status":{"type":"string","description":"Status of the menu.","enum":["active","inactive"]},"description":{"type":["string","null"],"description":"Description of the menu.","maxLength":10000,"pattern":"^[^<>&]*$"},"deleted":{"type":"boolean","description":"Indicates whether the Menu is deleted or not."},"createdAt":{"type":"string","description":"Menu created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"availabilityDays":{"type":"array","description":"List of weekdays when the menu is available.","maxItems":7,"items":{"type":"string","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]}},"availabilityStartTime":{"type":["string","null"],"description":"Start time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"},"availabilityEndTime":{"type":["string","null"],"description":"End time when the menu is available (HH:MM format).","maxLength":5,"pattern":"^([0-1][0-9]|2[0-3]):[0-5][0-9]$"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"menuSections":{"type":"object","description":"Details of the menu sections associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"menuSections"}},"required":["id","type"]}}},"required":["data"]},"outlets":{"type":"object","description":"Details of the outlets associated with the menu.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"outlets"}},"required":["id","type"]}}},"required":["data"]}}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/format/#document-resource-object-links) containing links related to the resource.","properties":{"self":{"type":"string","format":"uri","description":"A link to the resource itself.","minLength":1,"maxLength":255}},"required":["self"]}},"required":["id","type","attributes","links"]}},"menu_sections":{"menu_section":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuSections","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the menu section.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu section.","format":"int32","minimum":1,"maximum":100},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","position","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"menu_items":{"menu_item":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","const":"menuItems","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships."},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":["string","null"],"description":"The name of the menu item.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"itemType":{"type":"string","description":"Type of the menu item.","enum":["Product","ProductVariant","ProductBundle"]},"tileLabel":{"type":["string","null"],"description":"Short name of the menu item to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"tileColor":{"type":["string","null"],"description":"Color of menu item tile to be shown if image is not available.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the menu item image.","minLength":1,"maxLength":255,"pattern":"^[^<>&]+$"},"position":{"type":"integer","description":"The position of the menu item.","format":"int32","minimum":1,"maximum":1000},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Retail price excluding tax.","minLength":0,"maxLength":10,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"price":{"type":["string","null"],"maxLength":255,"description":"Customer set price of the menu item [deprecated].","pattern":"^(\\d+(\\.\\d+)?)(-\\d+(\\.\\d+)?)?$"},"priceRange":{"type":["object","null"],"description":"Price range of the menu item if it is not a fixed price","properties":{"min":{"type":"string","description":"Minimum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"},"max":{"type":"string","description":"Maximum retail price including tax.","minLength":0,"maxLength":6,"pattern":"^[0-9]+\\.[0-9]{1,2}$"}}},"hasVariants":{"type":["boolean","null"],"description":"Indicates if the menu item is a product with variants."},"createdAt":{"type":"string","description":"Menu section created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Menu section updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["itemType","retailPriceInclTax","position","createdAt","updatedAt"]},"relationships":{"type":"object","properties":{"item":{"type":"object","description":"The polymorphic item associated with this menu item. Can be a product, product variant, or product bundle.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]},{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"}},"required":["id","type"]},{"type":"null"}],"description":"Resource identifier object for the item (product, product variant, or product bundle)."}}},"taxes":{"type":"object","description":"Taxes that apply to this menu item.","properties":{"data":{"type":"array","maxItems":100,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID7) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]},"description":"Array of tax resource identifier objects."}}}},"required":["taxes"]}},"required":["id","type","attributes"]}},"products":{"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"products"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"sku":{"type":["string","null"],"description":"SKU of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"isAvailable":{"type":"boolean","description":"Whether the product is available.","default":true},"barcode":{"type":["string","null"],"description":"Barcode of the product.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"status":{"type":"string","description":"Status of the product. Possible values are \"active\" and \"inactive\".","enum":["active","inactive"]},"tax":{"type":["string","null"],"description":"Tax of the product.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceExclTax":{"type":["string","null"],"description":"Product price excluding tax.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":["string","null"],"description":"Product price including applicable taxes.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","status","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productType":{"type":"object","description":"Details of the product type associated with the product.","properties":{"data":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productTypes"}},"required":["id","type"]}}},"modifierSets":{"type":"object","description":"Details of the modifier sets associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifierSets"}},"required":["id","type"]}}},"required":["data"]},"modifiers":{"type":"object","description":"Details of the modifiers associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"modifiers"}},"required":["id","type"]}}},"required":["data"]},"productVariants":{"type":"object","description":"Details of the product variants associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants"}},"required":["id","type"]}}}},"taxes":{"type":"object","description":"Details of the taxes associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"}},"required":["id","type"]}}},"required":["data"]},"dietaryRestrictions":{"type":"object","description":"Details of the dietary restrictions associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"dietaryRestrictions"}},"required":["id","type"]}}},"required":["data"]},"allergens":{"type":"object","description":"Details of the allergens associated with the product.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"allergens"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"product_variants":{"product_variant":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productVariants","maxLength":255},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"retailPriceExclTax":{"type":"string","description":"Product price excluding tax.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"retailPriceInclTax":{"type":"string","description":"Product price including applicable taxes.","minLength":1,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"sku":{"type":"string","description":"SKU of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"selector":{"type":"object","description":"Arbitrary key/value JSON object for product variant selector.","additionalProperties":true},"barcode":{"type":"string","description":"Barcode of the variant.","minLength":1,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["retailPriceExclTax","retailPriceInclTax","sku","barcode","createdAt","updatedAt"]}},"required":["id","type","attributes"]}},"product_bundles":{"product_bundle":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundles"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the product bundle.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"description":{"type":["string","null"],"description":"Description of the product bundle.","minLength":0,"maxLength":10000,"pattern":"^[A-Za-z0-9,-_. ]+$"},"imageUrl":{"type":["string","null"],"description":"URL of the product bundle image.","minLength":0,"maxLength":1024,"format":"uri"},"priceRange":{"type":["object","null"],"description":"Price range of the bundle when not using fixed pricing. Contains minimum and maximum prices.","properties":{"min":{"type":"string","description":"Minimum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"max":{"type":"string","description":"Maximum price in the range.","maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"}},"required":["min","max"]},"retailPriceInclTax":{"type":["string","null"],"description":"Retail price including tax of the bundle when using fixed pricing.","minLength":0,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{2}$"},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","description","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"productBundleItems":{"type":"object","description":"Details of the product bundle items associated with the bundle.","properties":{"data":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"productBundleItems"}},"required":["id","type"]}}},"required":["data"]}}}},"required":["id","type","attributes"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```

## The tables object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"tables":{"table":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"tables"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"The name of the table.","minLength":0,"maxLength":255,"pattern":"^[A-Za-z0-9,-_. ]+$"},"numberOfSeats":{"type":"integer","description":"Number of people that can be seated at this table.","format":"int32","minimum":1,"maximum":99},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["name","numberOfSeats","createdAt","updatedAt"]},"relationships":{"type":"object","description":"A [relationships object](https://jsonapi.org/format/#document-resource-object-relationships) describing relationships between the resource and other JSON:API resources.","properties":{"area":{"type":"object","nullable":true,"description":"Details of the table area.","properties":{"data":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"areas"}},"required":["id","type"]},{"type":"null"}]}}}}}},"required":["id","type","attributes"]},"tables_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/tables/table"}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}},"required":["data","links"]}}}}}
```

## The taxes object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"taxes":{"tax":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"taxes"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Name of the tax.","minLength":1,"maxLength":255,"pattern":"^.*\\S.*$"},"rate":{"type":"string","description":"Tax rate as a decimal.","minLength":3,"maxLength":255,"pattern":"^[0-9]+\\.[0-9]{1,6}$"},"taxType":{"type":"string","description":"Type of the tax.","enum":["vat","other","fixed","consumption","sales","state","city","liquor","food","entertainment"]},"isActive":{"type":"boolean","description":"Whether the tax is active."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"label":{"type":["string","null"],"description":"Label of the tax.","maxLength":255,"pattern":"^.*\\S.*$"},"ratePercent":{"type":"string","description":"Tax rate as a percentage.","minLength":1,"maxLength":7,"pattern":"^[0-9]+(\\.[0-9]{1,2})?$"}},"required":["name","rate","taxType","isActive","createdAt","updatedAt","ratePercent","label"]}},"required":["id","type","attributes"]}}}}}
```

## The users object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"users":{"user":{"type":"object","properties":{"id":{"type":"string","format":"uuid","title":"Resource identifier","description":"Universally unique ID (UUID) that identifies the related object.","minLength":36,"maxLength":36},"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"users"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"name":{"type":"string","description":"Full name of the user.","maxLength":255,"pattern":"^[^<>&]+$"}},"required":["name"]}},"required":["id","type","attributes"]}}}}}
```

## The webhook\_endpoints object

```json
{"openapi":"3.1.0","info":{"title":"POS API","version":"1.0.0"},"components":{"schemas":{"webhook_endpoints":{"webhook_endpoint":{"type":"object","description":"A webhook endpoint resource object","properties":{"id":{"type":"string","format":"uuid","minLength":36,"maxLength":36,"description":"The UUID of the webhook endpoint"},"type":{"type":"string","description":"The resource type","const":"webhookEndpoints"},"attributes":{"$ref":"#/components/schemas/webhook_endpoints/webhook_endpoint_attributes"}},"required":["id","type","attributes"]},"webhook_endpoint_attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"targetUrl":{"type":"string","format":"uri","maxLength":100,"pattern":"^[^<>&]+$","description":"The Webhook URL configured to receive event notifications from Mews."},"secret":{"type":"string","maxLength":100,"pattern":"^[^<>&]+$","description":"A string generated to ensure the authenticity of the webhook. It is used to verify that the webhook request comes from a trusted source."},"events":{"type":"array","maxItems":1000,"items":{"type":"string","enum":["booking.status.updated","product.availability.updated","order.state.updated","order.status.updated","order.total.updated","order.payments.added"]},"description":"The list of events that the webhook endpoint is subscribed to."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}},"required":["targetUrl"]},"webhook_endpoint_create":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"webhookEndpoints"},"attributes":{"$ref":"#/components/schemas/webhook_endpoints/webhook_endpoint_attributes","createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}}},"required":["type","attributes"]},"webhook_endpoint_create_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/webhook_endpoints/webhook_endpoint_create","description":"The document's \"primary data\"."}},"required":["data"]},"webhook_endpoint_response":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"targetUrl":{"type":"string","format":"uri","maxLength":100,"pattern":"^[^<>&]+$","description":"The Webhook URL configured to receive event notifications from Mews."},"secret":{"type":"string","maxLength":100,"pattern":"^[^<>&]+$","description":"A string generated to ensure the authenticity of the webhook. It is used to verify that the webhook request comes from a trusted source."},"createdAt":{"type":"string","description":"Created at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"},"updatedAt":{"type":"string","description":"Updated at timestamp in RFC 3339 format.","maxLength":25,"format":"date-time"}}},"webhook_endpoint_update":{"type":"object","properties":{"type":{"type":"string","title":"Resource type name","description":"The [type](https://jsonapi.org/format/#document-resource-object-identification) member is used to describe resource objects that share common attributes and relationships.","const":"webhookEndpoints"},"attributes":{"type":"object","description":"An [attributes object](https://jsonapi.org/format/#document-resource-object-attributes) representing some of the resource's data.","properties":{"targetUrl":{"type":"string","format":"uri","maxLength":100,"pattern":"^[^<>&]+$","description":"The Webhook URL configured to receive event notifications from Mews."},"events":{"type":"array","maxItems":1000,"items":{"type":"string","enum":["booking.status.updated","product.availability.updated","order.state.updated","order.status.updated","order.total.updated","order.payments.added"]},"description":"The list of events that will trigger the webhook."}}}},"required":["type"]},"webhook_endpoint_update_request":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/webhook_endpoints/webhook_endpoint_update","description":"The document's \"primary data\"."}},"required":["data"]},"webhook_endpoints_response":{"type":"object","properties":{"data":{"type":"array","description":"The document's \"primary data\".","maxItems":1000,"items":{"$ref":"#/components/schemas/webhook_endpoints/webhook_endpoint"}},"links":{"$ref":"#/components/schemas/links"}},"required":["data","links"]}},"links":{"type":"object","description":"A [links object](https://jsonapi.org/profiles/ethanresnick/cursor-pagination/#auto-id-links) describing cursor pagination links.","properties":{"prev":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the previous page of results."},"next":{"type":["string","null"],"format":"uri","maxLength":1024,"description":"The link to the next page of results."}},"required":["next","prev"]}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mews.com/pos-api/operations/models.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
