Ready2order Order API

The Order API from Ready2order — 2 operation(s) for order.

OpenAPI Specification

ready2order-order-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: ready2order Public Account Token Order API
  contact:
    name: support@ready2order.com
  license:
    name: proprietary
  version: R2-2026.30.2
  description: "# First Steps\n\n## Authorization\n\nThe ready2order API uses a three-token flow to grant your integration access to a ready2order account. Your integration identifies itself with a Developer Token, requests permission from the account owner, and receives a long-lived Account Token to use for all subsequent requests.\n\nEvery API request to account data must include:\n\n```http\nAuthorization: Bearer <ACCOUNT_TOKEN>\n```\n\n| Token | Scope | Lifetime |\n|-------|-------|----------|\n| **Developer Token** | Identifies your integration | Permanent |\n| **Grant Access Token** | One-time permission request | 10 minutes |\n| **Account Token** | Access to a ready2order account | Until revoked |\n\n---\n\n## Setup\n\nThis is a one-time process per account you want to integrate with.\n\n### Step 1 — Get your Developer Token\n\nRegister at [https://api.ready2order.com](https://api.ready2order.com). Your Developer Token will be emailed to you.\n\nStore it securely — it identifies your integration across all accounts.\n\n---\n\n### Step 2 — Request a Grant Access Token\n\nCall this endpoint using your Developer Token:\n\n```http\nPOST /v1/developerToken/grantAccessToken\nAuthorization: Bearer <DEVELOPER_TOKEN>\n```\n\n```json\n{\n  \"callbackUri\": \"https://your-app.com/callback\"\n}\n```\n\n`callbackUri` is optional but strongly recommended (see Step 3).\n\n**Response:**\n\n```json\n{\n  \"grantAccessToken\": \"...\",\n  \"grantAccessUri\": \"https://app.ready2order.com/...\"\n}\n```\n\n---\n\n### Step 3 — Account owner approves access\n\nRedirect the account owner to the `grantAccessUri`. They will log in to their ready2order account and click **Approve**.\n\n**With `callbackUri`** — after approval, ready2order redirects the account owner back to your URL:\n\n```\nhttps://your-app.com/callback?accountToken=<ACCOUNT_TOKEN>&grantAccessToken=<GRANT_ACCESS_TOKEN>&status=approved\n```\n\nThe `accountToken` in that redirect is what you store and use for all future requests.\n\n**Without `callbackUri`** — poll for the result instead:\n\n```http\nGET /v1/developerToken/grantAccessToken/{grantAccessToken}\nAuthorization: Bearer <DEVELOPER_TOKEN>\n```\n\nThe response will include `accountToken` once the account owner has approved.\n\n> The Grant Access Token expires after **10 minutes**. If the account owner does not approve in time, repeat Step 2 to generate a new one.\n\n---\n\n## Training Mode\n\nSome resources support a training mode that keeps test transactions separate from live data. It is handy for staff training and demos where test sales should not show up in reports or fiscal records.\n\nWhen a cashier puts the POS into training mode, all transactions in that session are flagged as training records and kept separate from live data. On the API side, the `trainingMode` field on a resource tells you whether it is a training record, and most list endpoints accept a `trainingMode` query parameter to filter by it.\n\n---\n\n## Error Responses\n\n| Status | Likely cause |\n|--------|-------------|\n| `401 Unauthorized` | Wrong token type, or `Authorization` header missing |\n| `403 Forbidden` | Developer Token used where Account Token is required (or vice versa) |\n| `429 Too Many Requests` | Rate limit exceeded — max 60 requests per minute per Account Token |\n"
servers:
- url: https://api.ready2order.com/v1
tags:
- name: Order
paths:
  /orders:
    get:
      tags:
      - Order
      summary: List all Orders
      description: ''
      operationId: orderGetAllPaginated
      parameters:
      - name: page
        in: query
        description: Page you want to display
        required: false
        schema:
          type: integer
          example: 1
      - name: limit
        in: query
        description: Items per page
        required: false
        schema:
          type: integer
          example: 25
      - name: groupBy
        in: query
        description: 'allowed values: table_id or product_id or both'
        required: false
        schema:
          type: string
          enum:
          - table_id
          - product_id
          example: table_id
      - name: trainingsMode
        in: query
        description: retrieve results for trainingsMode or liveMode
        required: false
        schema:
          type: string
          enum:
          - '0'
          - '1'
          - 'true'
          - 'false'
          example: 'true'
      - name: table_id
        in: query
        description: table id
        required: false
        schema:
          type: integer
          example: 123
      - name: product_id
        in: query
        description: product id
        required: false
        schema:
          type: integer
          example: 123
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    order_id:
                      type: integer
                      example: 123
                    order_quantity:
                      type: string
                      example: 123
                    order_priceGross:
                      type: string
                      example: 123.12
                    order_priceNet:
                      type: string
                      example: 123.12
                    order_vat:
                      type: string
                      example: 10
                    order_discount_valueGross:
                      type: string
                      example: 10
                    order_discount_valueNet:
                      type: string
                      example: 10
                    order_vatRate:
                      type: string
                      example: 10
                    order_product_priceGrossPerUnit:
                      type: string
                      example: 123
                    order_product_priceNetPerUnit:
                      type: string
                      example: 123
                    order_discount_name:
                      type: string
                      example: discountA
                    order_discountable:
                      type: boolean
                      example: true
                    order_mergeable:
                      type: boolean
                      example: true
                    order_retour:
                      type: boolean
                      example: false
                    order_number:
                      type: integer
                      example: 123
                    order_group:
                      type: integer
                      example: 123
                    order_product_name:
                      type: string
                      example: productA
                    order_product_itemnumber:
                      type: string
                      example: 123
                    order_product_serialnumber:
                      type: string
                      example: 1231234
                    order_course:
                      type: integer
                      example: 1
                    order_status:
                      type: integer
                      example: 1
                    order_comment:
                      type: string
                      example: very long text
                    table_id:
                      type: integer
                      example: 123456
                    product_id:
                      type: integer
                      example: 123456
                    user_id:
                      type: integer
                      example: 123456
                    productgroup_type_id:
                      type: integer
                      example: 123456
                    order_created_at:
                      type: string
                      example: '2019-01-01'
                  type: object
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer: []
    post:
      tags:
      - Order
      summary: Create a new Order
      description: ''
      operationId: orderCreate
      requestBody:
        content:
          application/json:
            schema:
              required:
              - table_id
              - items
              properties:
                table_id:
                  description: Table on which the orders are booked
                  type: integer
                  example: 1234
                price_base:
                  description: '''gross'' or ''net'''
                  type: string
                  enum:
                  - '0'
                  - '1'
                  - brutto
                  - netto
                  - gross
                  - net
                  example: gross
                training_mode:
                  description: Whether to place the order in training- or normal-mode
                  type: boolean
                  example: false
                items:
                  description: List of items
                  type: array
                  items:
                    properties:
                      item_quantity:
                        description: Quantity
                        type: string
                        example: 3
                      item_price:
                        description: Price of product
                        type: string
                        example: 25.75
                      item_vatRate:
                        description: VAT-rate of product
                        type: string
                        example: 20
                      item_vatId:
                        type: integer
                      item_course:
                        description: Menu course
                        type: integer
                        example: 1
                      item_orderGroup:
                        description: Order group on the table to book on. Use this if multiple parties are sharing the same table.
                        type: integer
                        example: 1
                      item_discountable:
                        description: Whether the product should be applicable to apply discounts on it
                        type: boolean
                        example: true
                      item_mergeable:
                        description: Whether the product should be merged into one line on the final invoice.
                        type: boolean
                        example: true
                      product_id:
                        description: Id of product
                        type: integer
                        example: 4321
                      item_name:
                        description: Name of product (if different)
                        type: string
                        example: Some custom product name
                      item_comment:
                        description: Custom comment
                        type: string
                        example: An optional comment
                      item_variations:
                        description: List of product variations
                        type: array
                        items:
                          properties:
                            product_id:
                              description: Id of product variation
                              type: integer
                              example: 1
                            variation_name:
                              description: Product variation name
                              type: string
                              example: Schnitzel with chips and mayo
                            variation_price:
                              description: Product variation price
                              type: string
                              example: 15.2
                          type: object
                    type: object
                  example: []
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    order_id:
                      type: integer
                      example: 123
                    order_quantity:
                      type: string
                      example: 123
                    order_priceGross:
                      type: string
                      example: 123.12
                    order_priceNet:
                      type: string
                      example: 123.12
                    order_vat:
                      type: string
                      example: 10
                    order_discount_valueGross:
                      type: string
                      example: 10
                    order_discount_valueNet:
                      type: string
                      example: 10
                    order_vatRate:
                      type: string
                      example: 10
                    order_product_priceGrossPerUnit:
                      type: string
                      example: 123
                    order_product_priceNetPerUnit:
                      type: string
                      example: 123
                    order_discount_name:
                      type: string
                      example: discountA
                    order_discountable:
                      type: boolean
                      example: true
                    order_mergeable:
                      type: boolean
                      example: true
                    order_retour:
                      type: boolean
                      example: false
                    order_number:
                      type: integer
                      example: 123
                    order_group:
                      type: integer
                      example: 123
                    order_product_name:
                      type: string
                      example: productA
                    order_product_itemnumber:
                      type: string
                      example: 123
                    order_product_serialnumber:
                      type: string
                      example: 1231234
                    order_course:
                      type: integer
                      example: 1
                    order_status:
                      type: integer
                      example: 1
                    order_comment:
                      type: string
                      example: very long text
                    table_id:
                      type: integer
                      example: 123456
                    product_id:
                      type: integer
                      example: 123456
                    user_id:
                      type: integer
                      example: 123456
                    productgroup_type_id:
                      type: integer
                      example: 123456
                    order_created_at:
                      type: string
                      example: '2019-01-01'
                  type: object
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer: []
  /orders/transfer:
    post:
      tags:
      - Order
      summary: Transfer
      description: Transfers unbilled order items from one table to another.<br>Pass specific `order_ids` to transfer a subset, or omit the field to transfer all unbilled items on the source table.
      operationId: orderTransfer
      requestBody:
        content:
          application/json:
            schema:
              required:
              - source_table_id
              - target_table_id
              - target_order_group_id
              properties:
                source_table_id:
                  description: ID of the table to transfer order items from
                  type: integer
                  example: 10
                target_table_id:
                  description: ID of the table to transfer order items to
                  type: integer
                  example: 20
                target_order_group_id:
                  description: Order group on the target table to assign transferred items to
                  type: integer
                  example: 1
                target_order_group_name:
                  description: Name of the target order group (optional)
                  type: string
                  example: Group A
                order_ids:
                  description: IDs of the specific order items to transfer. Omit or pass an empty array to transfer every unbilled item on the source table.
                  type: array
                  items:
                    type: integer
                  example:
                  - 101
                  - 102
                  - 103
                training_mode:
                  description: Whether to operate in training mode
                  type: boolean
                  example: false
              type: object
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  properties:
                    order_id:
                      type: integer
                      example: 123
                    order_quantity:
                      type: string
                      example: 123
                    order_priceGross:
                      type: string
                      example: 123.12
                    order_priceNet:
                      type: string
                      example: 123.12
                    order_vat:
                      type: string
                      example: 10
                    order_discount_valueGross:
                      type: string
                      example: 10
                    order_discount_valueNet:
                      type: string
                      example: 10
                    order_vatRate:
                      type: string
                      example: 10
                    order_product_priceGrossPerUnit:
                      type: string
                      example: 123
                    order_product_priceNetPerUnit:
                      type: string
                      example: 123
                    order_discount_name:
                      type: string
                      example: discountA
                    order_discountable:
                      type: boolean
                      example: true
                    order_mergeable:
                      type: boolean
                      example: true
                    order_retour:
                      type: boolean
                      example: false
                    order_number:
                      type: integer
                      example: 123
                    order_group:
                      type: integer
                      example: 123
                    order_product_name:
                      type: string
                      example: productA
                    order_product_itemnumber:
                      type: string
                      example: 123
                    order_product_serialnumber:
                      type: string
                      example: 1231234
                    order_course:
                      type: integer
                      example: 1
                    order_status:
                      type: integer
                      example: 1
                    order_comment:
                      type: string
                      example: very long text
                    table_id:
                      type: integer
                      example: 123456
                    product_id:
                      type: integer
                      example: 123456
                    user_id:
                      type: integer
                      example: 123456
                    productgroup_type_id:
                      type: integer
                      example: 123456
                    order_created_at:
                      type: string
                      example: '2019-01-01'
                  type: object
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - Bearer: []
components:
  securitySchemes:
    Bearer:
      type: apiKey
      description: Account Token obtained after completing the authorization flow. See First Steps for details.
      name: Authorization
      in: header
x-tagGroups:
- name: Essentials
  tags:
  - Product
  - Product Group
  - Bill
  - Storno
  - Payment Method
  - Payment Method Type
  - Coupon
  - Coupon Category
  - Discount
  - Discount Group
  - Customer
- name: Gastro
  tags:
  - Order
  - Table
  - Table Area
- name: POS
  tags:
  - Printer
  - Printer Profile
  - Print Job
  - Terminal Transaction
  - User
  - User Roles
- name: Reporting
  tags:
  - Daily Report
  - Accounting Financial Year
  - Export
- name: Reference Data
  tags:
  - Bill Type
  - Customer Group
  - Currency
  - Country
  - Device
  - Language
  - Legal Form
  - Units
  - Vat Rate
- name: Integration
  tags:
  - Account Token
  - Grant Access Token
  - Developer Token
  - Webhook
  - Job Status
- name: Internal
  tags:
  - Account
  - Admin
  - CashboxRegistration
  - ConfirmableAction
  - Constant
  - Item
  - License
  - MobileConstant
  - ReadyPaySellRate
  - Signup
  - Tss