openapi: 3.0.3 info: title: Revel Open API description: >- The Revel Open API is the REST interface for the Revel Systems cloud iPad point-of-sale platform for restaurants and retailers. It exposes core POS resources such as orders, order items, products, product modifiers, customers, establishments, employees, and labor-scheduling records. The API is built on Django Tastypie conventions: list responses return an `objects` array alongside a `meta` pagination envelope, and filtering uses Django field-lookup syntax (e.g. `id__lt`, `created_date__range`, `name__icontains`). Each Revel customer is served from a dedicated subdomain (`https://{subdomain}.revelup.com/resources/`); a shared sandbox is hosted at `https://api-sandbox-revel.revelup.com/resources/`. version: '2025.3.0' contact: name: Revel Systems Developer Support url: https://developer.revelsystems.com/ x-generated-from: documentation x-source-url: https://developer.revelsystems.com/revelsystems/reference/welcome x-last-validated: '2026-06-03' servers: - url: https://{subdomain}.revelup.com/resources description: Production REST endpoint (per Revel establishment subdomain) variables: subdomain: default: yoursubdomain description: The customer's Revel subdomain - url: https://api-sandbox-revel.revelup.com/resources description: Shared sandbox REST endpoint tags: - name: Orders description: Order and order-item resources. - name: Products description: Product catalog and modifier resources. - name: Customers description: Customer records and addresses. - name: Establishments description: Establishment (location) resources. - name: Scheduling description: Labor scheduling and timesheet resources. paths: /Order/: get: operationId: getOrders summary: Get Orders description: Returns the list of Order objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset pagination. tags: - Orders parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fields' - name: order_by in: query description: Field to sort by. Prefix with `-` for descending. schema: type: string enum: [updated_date, pickup_time, running_tax_number, id, created_date] example: updated_date - name: id in: query schema: {type: integer} example: 1 - name: uuid in: query schema: {type: string, format: uuid} example: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" - name: establishment in: query schema: {type: integer} example: 1 - name: customer in: query schema: {type: integer} example: 1 - name: closed in: query schema: {type: boolean} example: true - name: web_order in: query schema: {type: boolean} example: true - name: created_date in: query schema: {type: string, format: date-time} example: "2026-06-01T12:00:00Z" - name: updated_date in: query schema: {type: string, format: date-time} example: "2026-06-01T12:00:00Z" responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/OrderList' examples: GetOrders200Example: summary: Default getOrders 200 response x-microcks-default: true value: meta: total_count: 42 limit: 42 offset: 42 next: "example" previous: "example" objects: - id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createOrder summary: Create Order description: Creates a new Order object. tags: - Orders requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Order' examples: CreateOrderRequestExample: summary: Default createOrder request x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" responses: '201': description: Order created content: application/json: schema: $ref: '#/components/schemas/Order' examples: CreateOrder201Example: summary: Default createOrder 201 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Order/{id}/: get: operationId: getOrder summary: Get Order description: Returns a single Order object by its numeric id. tags: - Orders parameters: - $ref: '#/components/parameters/idPath' - $ref: '#/components/parameters/fields' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Order' examples: GetOrder200Example: summary: Default getOrder 200 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK patch: operationId: updateOrder summary: Update Order description: Partially updates an existing Order object. tags: - Orders parameters: - $ref: '#/components/parameters/idPath' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Order' examples: UpdateOrderRequestExample: summary: Default updateOrder request x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" responses: '200': description: Order updated content: application/json: schema: $ref: '#/components/schemas/Order' examples: UpdateOrder200Example: summary: Default updateOrder 200 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" establishment: 1 customer: 1 created_by: 1 call_number: 42 call_name: "Window" running_tax_number: 42 web_order: true is_invoice: true closed: true printed: true has_items: true has_history: true dining_option: 42 delivery_employee: 42 device_id: 1 local_id: "LOC-1" pickup_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Product/: get: operationId: getProducts summary: Get Products description: Returns the list of Product objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset pagination. tags: - Products parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fields' - name: order_by in: query schema: type: string enum: [sorting, id, '-sorting', '-id'] example: sorting - name: name in: query schema: {type: string} example: "Cappuccino" - name: barcode in: query schema: {type: string} example: "0123456789012" - name: sku in: query schema: {type: string} example: "CAP-001" - name: category in: query schema: {type: integer} example: 1 - name: active in: query schema: {type: boolean} example: true - name: establishment in: query schema: {type: integer} example: 1 - name: display_online in: query schema: {type: boolean} example: true responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/ProductList' examples: GetProducts200Example: summary: Default getProducts 200 response x-microcks-default: true value: meta: total_count: 42 limit: 42 offset: 42 next: "example" previous: "example" objects: - id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" name: "Cappuccino" description: "Premium roast" price: 4.99 cost: 1.0 barcode: "0123456789012" sku: "CAP-001" category: 1 active: true display_online: true dining_options: "dine_in" establishment: 1 attribute_parent: 42 attribute_type: 42 course_number: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createProduct summary: Create Product description: Creates a new Product object. tags: - Products requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Product' examples: CreateProductRequestExample: summary: Default createProduct request x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" name: "Cappuccino" description: "Premium roast" price: 4.99 cost: 1.0 barcode: "0123456789012" sku: "CAP-001" category: 1 active: true display_online: true dining_options: "dine_in" establishment: 1 attribute_parent: 42 attribute_type: 42 course_number: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" responses: '201': description: Product created content: application/json: schema: $ref: '#/components/schemas/Product' examples: CreateProduct201Example: summary: Default createProduct 201 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" name: "Cappuccino" description: "Premium roast" price: 4.99 cost: 1.0 barcode: "0123456789012" sku: "CAP-001" category: 1 active: true display_online: true dining_options: "dine_in" establishment: 1 attribute_parent: 42 attribute_type: 42 course_number: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Product/{id}/: get: operationId: getProduct summary: Get Product description: Returns a single Product object by its numeric id. tags: - Products parameters: - $ref: '#/components/parameters/idPath' - $ref: '#/components/parameters/fields' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Product' examples: GetProduct200Example: summary: Default getProduct 200 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" name: "Cappuccino" description: "Premium roast" price: 4.99 cost: 1.0 barcode: "0123456789012" sku: "CAP-001" category: 1 active: true display_online: true dining_options: "dine_in" establishment: 1 attribute_parent: 42 attribute_type: 42 course_number: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Customer/: get: operationId: getCustomers summary: Get Customers description: Returns the list of Customer objects. Supports Tastypie field-lookup filtering, field selection, ordering, and offset pagination. tags: - Customers parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fields' - name: order_by in: query schema: {type: string} example: "example" - name: first_name in: query schema: {type: string} example: "Jane" - name: last_name in: query schema: {type: string} example: "Doe" - name: email in: query schema: {type: string, format: email} example: "customer@example.com" - name: phone_number in: query schema: {type: string} example: "+15551234567" - name: active in: query schema: {type: boolean} example: true - name: ref_number in: query schema: {type: string} example: "REF-1001" - name: created_date in: query schema: {type: string, format: date-time} example: "2026-06-01T12:00:00Z" - name: updated_date in: query schema: {type: string, format: date-time} example: "2026-06-01T12:00:00Z" responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/CustomerList' examples: GetCustomers200Example: summary: Default getCustomers 200 response x-microcks-default: true value: meta: total_count: 42 limit: 42 offset: 42 next: "example" previous: "example" objects: - id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" first_name: "Jane" last_name: "Doe" email: "customer@example.com" phone_number: "+15551234567" ref_number: "REF-1001" active: true total_purchases: 42 total_visits: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createCustomer summary: Create Customer description: Creates a new Customer object. tags: - Customers requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Customer' examples: CreateCustomerRequestExample: summary: Default createCustomer request x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" first_name: "Jane" last_name: "Doe" email: "customer@example.com" phone_number: "+15551234567" ref_number: "REF-1001" active: true total_purchases: 42 total_visits: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" responses: '201': description: Customer created content: application/json: schema: $ref: '#/components/schemas/Customer' examples: CreateCustomer201Example: summary: Default createCustomer 201 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" first_name: "Jane" last_name: "Doe" email: "customer@example.com" phone_number: "+15551234567" ref_number: "REF-1001" active: true total_purchases: 42 total_visits: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Customer/{id}/: get: operationId: getCustomer summary: Get Customer description: Returns a single Customer object by its numeric id. tags: - Customers parameters: - $ref: '#/components/parameters/idPath' - $ref: '#/components/parameters/fields' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Customer' examples: GetCustomer200Example: summary: Default getCustomer 200 response x-microcks-default: true value: id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" first_name: "Jane" last_name: "Doe" email: "customer@example.com" phone_number: "+15551234567" ref_number: "REF-1001" active: true total_purchases: 42 total_visits: 42 created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' x-microcks-operation: delay: 0 dispatcher: FALLBACK /Establishment/: get: operationId: getEstablishments summary: Get Establishments description: Returns the list of Establishment (location) objects. tags: - Establishments parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fields' responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/EstablishmentList' examples: GetEstablishments200Example: summary: Default getEstablishments 200 response x-microcks-default: true value: meta: total_count: 42 limit: 42 offset: 42 next: "example" previous: "example" objects: - id: 1 uuid: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" name: "Cappuccino" ach_payments_enabled: true created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK /TimeSchedule/: get: operationId: getTimeSchedules summary: Get Time Schedules description: Returns the list of TimeSchedule objects representing scheduled employee shifts within an establishment. tags: - Scheduling parameters: - $ref: '#/components/parameters/limit' - $ref: '#/components/parameters/offset' - $ref: '#/components/parameters/fields' - name: establishment in: query schema: {type: integer} example: 1 responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/TimeScheduleList' examples: GetTimeSchedules200Example: summary: Default getTimeSchedules 200 response x-microcks-default: true value: meta: total_count: 42 limit: 42 offset: 42 next: "example" previous: "example" objects: - id: 1 establishment: 1 employee: 1 role: 42 wage: 1.0 start_time: "2026-06-01T12:00:00Z" end_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK post: operationId: createTimeSchedule summary: Create Time Schedule description: Creates a new TimeSchedule (employee shift) object. tags: - Scheduling requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TimeSchedule' examples: CreateTimeScheduleRequestExample: summary: Default createTimeSchedule request x-microcks-default: true value: id: 1 establishment: 1 employee: 1 role: 42 wage: 1.0 start_time: "2026-06-01T12:00:00Z" end_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" responses: '201': description: Time schedule created content: application/json: schema: $ref: '#/components/schemas/TimeSchedule' examples: CreateTimeSchedule201Example: summary: Default createTimeSchedule 201 response x-microcks-default: true value: id: 1 establishment: 1 employee: 1 role: 42 wage: 1.0 start_time: "2026-06-01T12:00:00Z" end_time: "2026-06-01T12:00:00Z" created_date: "2026-06-01T12:00:00Z" updated_date: "2026-06-01T12:00:00Z" resource_uri: "/resources/Resource/1/" '401': $ref: '#/components/responses/Unauthorized' x-microcks-operation: delay: 0 dispatcher: FALLBACK components: securitySchemes: apiAuthentication: type: apiKey in: header name: API-AUTHENTICATION description: >- API key and secret joined by a colon, e.g. `API-AUTHENTICATION: key:secret`. The key and secret may alternatively be passed as `api_key` and `api_secret` query parameters. parameters: limit: name: limit in: query description: Maximum number of objects to return per page. Use `0` to disable pagination. schema: type: integer default: 20 offset: name: offset in: query description: Zero-based offset of the first object to return. schema: type: integer default: 0 fields: name: fields in: query description: Comma-separated list of direct resource attributes to return (e.g. `id,name,price`). schema: type: array items: type: string style: form explode: false idPath: name: id in: path required: true description: Numeric resource identifier. schema: type: integer responses: Unauthorized: description: Authentication failed or was not provided. NotFound: description: The requested resource was not found. RateLimited: description: Too many requests. Honor the Retry-After header and back off. schemas: Meta: type: object description: Tastypie pagination envelope. properties: total_count: type: integer example: 142 limit: type: integer example: 20 offset: type: integer example: 0 next: type: string nullable: true example: /resources/Order/?limit=20&offset=20 previous: type: string nullable: true example: Order: type: object x-schema-source: documentation x-source-url: https://developer.revelsystems.com/revelsystems/reference/getorders properties: id: {type: integer, example: 1} uuid: {type: string, format: uuid, example: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"} establishment: {type: integer, description: Foreign key to Establishment., example: 1} customer: {type: integer, nullable: true, description: Foreign key to Customer., example: 1} created_by: {type: integer, description: Employee who created the order., example: 1} call_number: {type: integer, nullable: true, example: 42} call_name: {type: string, nullable: true, example: "Window"} running_tax_number: {type: integer, nullable: true, example: 42} web_order: {type: boolean, example: true} is_invoice: {type: boolean, example: true} closed: {type: boolean, example: true} printed: {type: boolean, example: true} has_items: {type: boolean, example: true} has_history: {type: boolean, example: true} dining_option: {type: integer, nullable: true, example: 42} delivery_employee: {type: integer, nullable: true, example: 42} device_id: {type: integer, nullable: true, example: 1} local_id: {type: string, nullable: true, example: "LOC-1"} pickup_time: {type: string, format: date-time, nullable: true, example: "2026-06-01T12:00:00Z"} created_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} updated_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} resource_uri: {type: string, example: "/resources/Resource/1/"} OrderList: type: object properties: meta: {$ref: '#/components/schemas/Meta'} objects: type: array items: {$ref: '#/components/schemas/Order'} Product: type: object x-schema-source: documentation x-source-url: https://developer.revelsystems.com/revelsystems/reference/getproduct properties: id: {type: integer, example: 1} uuid: {type: string, format: uuid, example: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"} name: {type: string, example: "Cappuccino"} description: {type: string, nullable: true, example: "Premium roast"} price: {type: number, format: float, example: 4.99} cost: {type: number, format: float, nullable: true, example: 1.0} barcode: {type: string, nullable: true, example: "0123456789012"} sku: {type: string, nullable: true, example: "CAP-001"} category: {type: integer, description: Foreign key to product category., example: 1} active: {type: boolean, example: true} display_online: {type: boolean, example: true} dining_options: {type: string, nullable: true, example: "dine_in"} establishment: {type: integer, nullable: true, example: 1} attribute_parent: {type: integer, nullable: true, example: 42} attribute_type: {type: integer, nullable: true, example: 42} course_number: {type: integer, nullable: true, example: 42} created_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} updated_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} resource_uri: {type: string, example: "/resources/Resource/1/"} ProductList: type: object properties: meta: {$ref: '#/components/schemas/Meta'} objects: type: array items: {$ref: '#/components/schemas/Product'} Customer: type: object x-schema-source: documentation x-source-url: https://developer.revelsystems.com/revelsystems/reference/getcustomers properties: id: {type: integer, example: 1} uuid: {type: string, format: uuid, example: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"} first_name: {type: string, example: "Jane"} last_name: {type: string, example: "Doe"} email: {type: string, format: email, nullable: true, example: "customer@example.com"} phone_number: {type: string, nullable: true, example: "+15551234567"} ref_number: {type: string, nullable: true, example: "REF-1001"} active: {type: boolean, example: true} total_purchases: {type: integer, example: 42} total_visits: {type: integer, example: 42} created_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} updated_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} resource_uri: {type: string, example: "/resources/Resource/1/"} CustomerList: type: object properties: meta: {$ref: '#/components/schemas/Meta'} objects: type: array items: {$ref: '#/components/schemas/Customer'} Establishment: type: object x-schema-source: documentation x-source-url: https://developer.revelsystems.com/revelsystems/changelog/revel-271-api-updates properties: id: {type: integer, example: 1} uuid: {type: string, format: uuid, example: "a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"} name: {type: string, example: "Cappuccino"} ach_payments_enabled: {type: boolean, description: Whether ACH payments are enabled (US establishments)., example: true} created_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} updated_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} resource_uri: {type: string, example: "/resources/Resource/1/"} EstablishmentList: type: object properties: meta: {$ref: '#/components/schemas/Meta'} objects: type: array items: {$ref: '#/components/schemas/Establishment'} TimeSchedule: type: object description: Represents a scheduled employee shift within an establishment. x-schema-source: documentation x-source-url: https://developer.revelsystems.com/revelsystems/reference/overview-2 properties: id: {type: integer, example: 1} establishment: {type: integer, example: 1} employee: {type: integer, description: Foreign key to the scheduled employee., example: 1} role: {type: integer, nullable: true, example: 42} wage: {type: number, format: float, nullable: true, example: 1.0} start_time: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} end_time: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} created_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} updated_date: {type: string, format: date-time, example: "2026-06-01T12:00:00Z"} resource_uri: {type: string, example: "/resources/Resource/1/"} TimeScheduleList: type: object properties: meta: {$ref: '#/components/schemas/Meta'} objects: type: array items: {$ref: '#/components/schemas/TimeSchedule'} security: - apiAuthentication: []