SpotOn Orders API

Order and check data export, including items, modifiers, payments, and taxes.

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-address-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-break-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-cash-deposit-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-employee-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-job-position-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-location-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-menu-item-catalog-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-check-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-discount-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-guest-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-menu-item-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-modifier-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-payment-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-surcharge-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-tax-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-order-type-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-owner-info-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-paid-in-out-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-payment-option-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-report-category-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/restaurant-pos-export-time-clock-entry-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-address-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-break-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-cash-deposit-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-employee-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-job-position-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-location-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-menu-item-catalog-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-check-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-discount-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-guest-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-menu-item-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-modifier-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-payment-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-surcharge-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-tax-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-order-type-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-owner-info-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-paid-in-out-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-payment-option-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-report-category-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/restaurant-pos-export-time-clock-entry-structure.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-availability-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-availability-slot-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-customer-information-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-reservation-request-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-reservation-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-restaurant-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-wait-time-response-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-waitlist-entry-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-schema/reserve-waitlist-request-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-availability-response-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-availability-slot-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-customer-information-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-reservation-request-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-reservation-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-restaurant-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-wait-time-response-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-waitlist-entry-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-structure/reserve-waitlist-request-structure.json

Other Resources

🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-address-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-break-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-cash-deposit-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-employee-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-job-position-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-location-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-menu-item-catalog-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-check-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-discount-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-guest-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-menu-item-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-modifier-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-payment-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-surcharge-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-tax-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-order-type-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-owner-info-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-paid-in-out-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-payment-option-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-report-category-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/restaurant-pos-export-time-clock-entry-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-ld/spoton-restaurant-pos-export-context.jsonld
🔗
SDKs
https://developers.spoton.com/reserve/docs/javascript
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-availability-response-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-availability-slot-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-customer-information-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-reservation-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-reservation-request-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-restaurant-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-wait-time-response-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-waitlist-entry-example.json
🔗
Examples
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/examples/reserve-waitlist-request-example.json
🔗
JSONLD
https://raw.githubusercontent.com/api-evangelist/spoton/refs/heads/main/json-ld/spoton-reserve-context.jsonld

OpenAPI Specification

spoton-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SpotOn Reserve Availability Orders API
  description: The SpotOn Reserve API (powered by SeatNinja) lets partners integrate reservation, waitlist, and guest-management workflows into the SpotOn Reserve product. It supports listing accessible restaurants, checking available reservation times, creating and managing reservations, retrieving wait times, and adding guests to a waitlist. Authentication uses an API key supplied via the x-api-key request header, scoped to specific restaurants. The sandbox environment enforces daily and hourly request quotas; production has no documented rate limit.
  version: v2
  contact:
    name: SpotOn Reserve Developer Center
    url: https://developers.spoton.com/reserve/docs/getting-started
  x-generated-from: documentation
  x-last-validated: '2026-06-03'
servers:
- url: https://api.seatninja.com
  description: Production
- url: https://sandbox.seatninja.com
  description: Sandbox
security:
- apiKeyAuth: []
tags:
- name: Orders
  description: Order and check data export, including items, modifiers, payments, and taxes.
paths:
  /locations/{locationId}/orders:
    get:
      operationId: listOrders
      summary: SpotOn List Orders
      description: Retrieve all orders that were last updated, created, or closed within the supplied date/time range for a location. Only orders touched within the last ~90 days are available, and a single date range cannot exceed 26 hours.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/LocationId'
      - name: updatedAtStart
        in: query
        description: Inclusive RFC 3339 start of the update range. Max 26-hour range, no milliseconds.
        schema:
          type: string
          format: date-time
      - name: updatedAtEnd
        in: query
        description: Exclusive RFC 3339 end of the update range. Must be at least 5 minutes in the past.
        schema:
          type: string
          format: date-time
      - name: createdAtStart
        in: query
        description: Inclusive RFC 3339 start of the creation range. Max 26-hour range, no milliseconds.
        schema:
          type: string
          format: date-time
      - name: createdAtEnd
        in: query
        description: Exclusive RFC 3339 end of the creation range. Must be at least 5 minutes in the past.
        schema:
          type: string
          format: date-time
      - name: closedAtStart
        in: query
        description: Inclusive RFC 3339 start of the closure range. Max 26-hour range, no milliseconds.
        schema:
          type: string
          format: date-time
      - name: closedAtEnd
        in: query
        description: Exclusive RFC 3339 end of the closure range. Must be at least 5 minutes in the past.
        schema:
          type: string
          format: date-time
      - name: includeUpdatedActivity
        in: query
        description: Return previously created or closed orders that were subsequently updated. Only valid with createdAt or closedAt ranges.
        schema:
          type: boolean
      responses:
        '200':
          description: A list of orders for the location.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Order'
              examples:
                ListOrders200Example:
                  summary: Default listOrders 200 response
                  x-microcks-default: true
                  value:
                  - id: abc123
                    name: Smoke's Burgers
                    deleted: false
                    locationId: abc123
                    orderTypeId: abc123
                    orderTypeName: Smoke's Burgers
                    createdByEmployeeId: abc123
                    createdByEmployeeName: Smoke's Burgers
                    createdAt: '2025-03-15T14:30:00Z'
                    closedAt: '2025-03-15T14:30:00Z'
                    orderNumber: '3'
                    tableNumber: '3'
                    scheduled: false
                    releasedAt: '2025-03-15T14:30:00Z'
                    ownerInfo:
                      employeeId: example
                      employeeName: example
                      jobPositionId: example
                    totalAmount: '12.50'
                    balanceDueAmount: '12.50'
                    checks:
                    - {}
                    updatedAt: '2025-03-15T14:30:00Z'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /locations/{locationId}/orders/{orderId}:
    get:
      operationId: getOrder
      summary: SpotOn Get Order
      description: Retrieve a single order by its unique identifier for a location.
      tags:
      - Orders
      parameters:
      - $ref: '#/components/parameters/LocationId'
      - name: orderId
        in: path
        required: true
        description: The unique identifier for the order.
        schema:
          type: string
      responses:
        '200':
          description: The requested order.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Order'
              examples:
                GetOrder200Example:
                  summary: Default getOrder 200 response
                  x-microcks-default: true
                  value:
                    id: abc123
                    name: Smoke's Burgers
                    deleted: false
                    locationId: abc123
                    orderTypeId: abc123
                    orderTypeName: Smoke's Burgers
                    createdByEmployeeId: abc123
                    createdByEmployeeName: Smoke's Burgers
                    createdAt: '2025-03-15T14:30:00Z'
                    closedAt: '2025-03-15T14:30:00Z'
                    orderNumber: '3'
                    tableNumber: '3'
                    scheduled: false
                    releasedAt: '2025-03-15T14:30:00Z'
                    ownerInfo:
                      employeeId: abc123
                      employeeName: Smoke's Burgers
                      jobPositionId: abc123
                    totalAmount: '12.50'
                    balanceDueAmount: '12.50'
                    checks:
                    - gratuityAmount: example
                      totalAmount: example
                      paymentsAmount: example
                      balanceAmount: example
                      guests: example
                      surcharges: example
                      payments: example
                      autoGratuityTaxes: example
                      items: example
                      voidedItems: example
                    updatedAt: '2025-03-15T14:30:00Z'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/ServerError'
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  schemas:
    OrderTax:
      type: object
      description: A tax applied to an order line, modifier, or surcharge.
      properties:
        taxId:
          type: string
          description: Tax identifier. Empty for splick.it orders.
          example: abc123
        taxName:
          type: string
          description: Tax name at the time of application.
          example: Smoke's Burgers
        percentage:
          type: string
          description: Tax percentage as a decimal string, for example "6.5".
          example: '8.25'
        amount:
          type: string
          description: Tax amount in US dollars, as a decimal string.
          example: '12.50'
    OrderDiscount:
      type: object
      description: A discount applied to an order line or modifier.
      properties:
        id:
          type: string
          description: Discount instance identifier. May repeat across levels.
          example: abc123
        discountId:
          type: string
          description: Discount type identifier.
          example: abc123
        discountName:
          type: string
          description: Discount name at the time of application.
          example: Smoke's Burgers
        createdAt:
          type: string
          format: date-time
          description: RFC 3339 timestamp when the discount was applied.
          example: '2025-03-15T14:30:00Z'
        amount:
          type: string
          description: Discount amount in US dollars, as a decimal string.
          example: '12.50'
    OrderGuest:
      type: object
      description: A guest on an order check.
      properties:
        name:
          type: string
          description: Guest name if available.
          example: Smoke's Burgers
        items:
          type: array
          description: Items ordered by the guest.
          items:
            $ref: '#/components/schemas/OrderMenuItem'
        voidedItems:
          type: array
          description: Items voided for the guest.
          items:
            $ref: '#/components/schemas/OrderMenuItem'
    OrderMenuItem:
      type: object
      description: A menu item line on an order check or guest.
      properties:
        menuItemId:
          type: string
          description: Menu item identifier.
          example: abc123
        name:
          type: string
          description: Item name at the time the order was placed.
          example: Smoke's Burgers
        createdAt:
          type: string
          format: date-time
          description: RFC 3339 timestamp when the item was added.
          example: '2025-03-15T14:30:00Z'
        quantity:
          type: string
          description: Decimal quantity as a string. Subitems show the parent quantity.
          example: example
        preDiscountsAmount:
          type: string
          description: Extended amount before discounts and taxes, as a decimal string.
          example: '12.50'
        discountsAmount:
          type: string
          description: Total applied discounts, as a decimal string.
          example: '12.50'
        postDiscountsAmount:
          type: string
          description: Amount after discounts and before taxes, as a decimal string.
          example: '12.50'
        taxesAmount:
          type: string
          description: Applied taxes, as a decimal string.
          example: '12.50'
        totalAmount:
          type: string
          description: Final amount after discounts and taxes, as a decimal string.
          example: '12.50'
        discounts:
          type: array
          description: Applied discount details.
          items:
            $ref: '#/components/schemas/OrderDiscount'
        taxes:
          type: array
          description: Applied tax details.
          items:
            $ref: '#/components/schemas/OrderTax'
        subItems:
          type: array
          description: Nested subitems.
          items:
            $ref: '#/components/schemas/OrderMenuItem'
        giftCardIssueReload:
          type: boolean
          description: Whether the line represents a gift card sale or reload.
          example: false
        modifiers:
          type: array
          description: Applied modifiers.
          items:
            $ref: '#/components/schemas/OrderModifier'
    OrderModifier:
      type: object
      description: A modifier applied to an ordered menu item.
      properties:
        modifierId:
          type: string
          description: Modifier identifier.
          example: abc123
        modifierOptionId:
          type: string
          description: Selected modifier option identifier.
          example: abc123
        text:
          type: string
          description: Combined display text for the modifier, for example "Extra Cheese".
          example: Extra Cheese
        preDiscountsAmount:
          type: string
          description: Extended amount before discounts and taxes, as a decimal string.
          example: '12.50'
        discountsAmount:
          type: string
          description: Applied discount portion, as a decimal string.
          example: '12.50'
        postDiscountsAmount:
          type: string
          description: Amount after discounts and before taxes, as a decimal string.
          example: '12.50'
        taxesAmount:
          type: string
          description: Applied taxes, as a decimal string.
          example: '12.50'
        totalAmount:
          type: string
          description: Final amount after discounts and taxes, as a decimal string.
          example: '12.50'
        discounts:
          type: array
          description: Distributed discount details.
          items:
            $ref: '#/components/schemas/OrderDiscount'
        taxes:
          type: array
          description: Applied tax details.
          items:
            $ref: '#/components/schemas/OrderTax'
    OrderCheck:
      type: object
      description: A check on an order, holding guests, payments, and surcharges.
      properties:
        gratuityAmount:
          type: string
          description: Applied auto-gratuity amount, as a decimal string.
          example: '12.50'
        totalAmount:
          type: string
          description: Final check total, as a decimal string.
          example: '12.50'
        paymentsAmount:
          type: string
          description: Total payments received, as a decimal string.
          example: '12.50'
        balanceAmount:
          type: string
          description: Remaining balance, as a decimal string.
          example: '12.50'
        guests:
          type: array
          description: Guests on the check.
          items:
            $ref: '#/components/schemas/OrderGuest'
        surcharges:
          type: array
          description: Check-level surcharges.
          items:
            $ref: '#/components/schemas/OrderSurcharge'
        payments:
          type: array
          description: Payment records.
          items:
            $ref: '#/components/schemas/OrderPayment'
        autoGratuityTaxes:
          type: array
          description: Taxes applied to the auto-gratuity.
          items:
            $ref: '#/components/schemas/OrderTax'
        items:
          type: array
          description: Items applied directly to the check, typically empty.
          items:
            $ref: '#/components/schemas/OrderMenuItem'
        voidedItems:
          type: array
          description: Voided items applied directly to the check.
          items:
            $ref: '#/components/schemas/OrderMenuItem'
    OwnerInfo:
      type: object
      description: Employee ownership details for an order.
      properties:
        employeeId:
          type: string
          description: Employee identifier.
          example: abc123
        employeeName:
          type: string
          description: Employee name.
          example: Smoke's Burgers
        jobPositionId:
          type: string
          description: Job position identifier held during ownership.
          example: abc123
    OrderPayment:
      type: object
      description: A payment recorded against an order check.
      properties:
        paymentOptionId:
          type: string
          description: Payment method identifier.
          example: abc123
        paymentName:
          type: string
          description: Payment method name at the time of application.
          example: Smoke's Burgers
        createdAt:
          type: string
          format: date-time
          description: RFC 3339 timestamp when the payment was applied.
          example: '2025-03-15T14:30:00Z'
        amount:
          type: string
          description: Payment amount in US dollars, as a decimal string.
          example: '12.50'
        surcharges:
          type: array
          description: Payment-level surcharges.
          items:
            $ref: '#/components/schemas/OrderSurcharge'
        surchargesAmount:
          type: integer
          format: int64
          description: Total surcharge amount.
          example: 0
        tipAmount:
          type: string
          description: Tip amount in US dollars, as a decimal string.
          example: '12.50'
        tipDeductionAmount:
          type: string
          description: Processing fee deduction from the tip, as a decimal string.
          example: '12.50'
        tipAppliedToEmployeeId:
          type: string
          description: Identifier of the employee the tip was applied to.
          example: abc123
        employeeId:
          type: string
          description: Identifier of the employee who processed the payment.
          example: abc123
        employeeName:
          type: string
          description: Name of the employee who processed the payment.
          example: Smoke's Burgers
        cardType:
          type: string
          description: The card type used for the payment.
          enum:
          - Unknown
          - Amex
          - Discover
          - Manual CC
          - Mastercard
          - Visa
          example: Unknown
        cardNumber:
          type: string
          description: Last four digits of the card, formatted as "...XXXX".
          example: '3'
        cardholderName:
          type: string
          description: Cardholder name.
          example: Smoke's Burgers
    Error:
      type: object
      description: A standard error response.
      properties:
        message:
          type: string
          description: A human-readable description of the error.
          example: example
        code:
          type: string
          description: A machine-readable error code.
          example: A1B2
    Order:
      type: object
      description: An order exported from the SpotOn Restaurant POS System.
      properties:
        id:
          type: string
          description: Unique order identifier.
          example: abc123
        name:
          type: string
          description: Order name.
          example: Smoke's Burgers
        deleted:
          type: boolean
          description: Whether the order is marked as deleted.
          example: false
        locationId:
          type: string
          description: Associated location identifier.
          example: abc123
        orderTypeId:
          type: string
          description: Order type identifier.
          example: abc123
        orderTypeName:
          type: string
          description: Order type name at the time of assignment.
          example: Smoke's Burgers
        createdByEmployeeId:
          type: string
          description: Identifier of the employee who created the order.
          example: abc123
        createdByEmployeeName:
          type: string
          description: Name of the employee who created the order.
          example: Smoke's Burgers
        createdAt:
          type: string
          format: date-time
          description: RFC 3339 creation timestamp.
          example: '2025-03-15T14:30:00Z'
        closedAt:
          type: string
          format: date-time
          description: RFC 3339 closure timestamp. Null if the order is open.
          nullable: true
          example: '2025-03-15T14:30:00Z'
        orderNumber:
          type: string
          description: Assigned order number. Empty if unassigned.
          example: '3'
        tableNumber:
          type: string
          description: Assigned table number. Empty if none.
          example: '3'
        scheduled:
          type: boolean
          description: Whether the order is scheduled for the future.
          example: false
        releasedAt:
          type: string
          format: date-time
          description: RFC 3339 kitchen release time for scheduled orders.
          nullable: true
          example: '2025-03-15T14:30:00Z'
        ownerInfo:
          $ref: '#/components/schemas/OwnerInfo'
        totalAmount:
          type: string
          description: Final total after discounts, taxes, and surcharges, as a decimal string.
          example: '12.50'
        balanceDueAmount:
          type: string
          description: Remaining balance due, as a decimal string.
          example: '12.50'
        checks:
          type: array
          description: Checks belonging to the order.
          items:
            $ref: '#/components/schemas/OrderCheck'
        updatedAt:
          type: string
          format: date-time
          description: RFC 3339 last update timestamp, including milliseconds.
          example: '2025-03-15T14:30:00Z'
    OrderSurcharge:
      type: object
      description: A surcharge applied to an order check or payment.
      properties:
        surchargeId:
          type: string
          description: Surcharge identifier.
          example: abc123
        surchargeName:
          type: string
          description: Surcharge name at the time of application.
          example: Smoke's Burgers
        createdAt:
          type: string
          format: date-time
          description: RFC 3339 timestamp when the surcharge was applied.
          example: '2025-03-15T14:30:00Z'
        amount:
          type: string
          description: Surcharge amount in US dollars, as a decimal string.
          example: '12.50'
        taxesAmount:
          type: string
          description: Applied tax amount, as a decimal string.
          example: '12.50'
        taxes:
          type: array
          description: Tax details.
          items:
            $ref: '#/components/schemas/OrderTax'
  responses:
    Forbidden:
      description: The API key does not have access to the requested location.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or violated a documented constraint such as the date range limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: An unexpected server error occurred.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    LocationId:
      name: locationId
      in: path
      required: true
      description: The unique identifier for the location.
      schema:
        type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key scoped to specific restaurants.