ready2order Public API (R2-2026.30.2)

Download OpenAPI specification:

License: proprietary

First Steps

Authorization

The 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.

Every API request to account data must include:

Authorization: Bearer <ACCOUNT_TOKEN>
Token Scope Lifetime
Developer Token Identifies your integration Permanent
Grant Access Token One-time permission request 10 minutes
Account Token Access to a ready2order account Until revoked

Setup

This is a one-time process per account you want to integrate with.

Step 1 — Get your Developer Token

Register at https://api.ready2order.com. Your Developer Token will be emailed to you.

Store it securely — it identifies your integration across all accounts.


Step 2 — Request a Grant Access Token

Call this endpoint using your Developer Token:

POST /v1/developerToken/grantAccessToken
Authorization: Bearer <DEVELOPER_TOKEN>
{
  "callbackUri": "https://your-app.com/callback"
}

callbackUri is optional but strongly recommended (see Step 3).

Response:

{
  "grantAccessToken": "...",
  "grantAccessUri": "https://app.ready2order.com/..."
}

Step 3 — Account owner approves access

Redirect the account owner to the grantAccessUri. They will log in to their ready2order account and click Approve.

With callbackUri — after approval, ready2order redirects the account owner back to your URL:

https://your-app.com/callback?accountToken=<ACCOUNT_TOKEN>&grantAccessToken=<GRANT_ACCESS_TOKEN>&status=approved

The accountToken in that redirect is what you store and use for all future requests.

Without callbackUri — poll for the result instead:

GET /v1/developerToken/grantAccessToken/{grantAccessToken}
Authorization: Bearer <DEVELOPER_TOKEN>

The response will include accountToken once the account owner has approved.

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.


Training Mode

Some 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.

When 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.


Error Responses

Status Likely cause
401 Unauthorized Wrong token type, or Authorization header missing
403 Forbidden Developer Token used where Account Token is required (or vice versa)
429 Too Many Requests Rate limit exceeded — max 60 requests per minute per Account Token

Product

Products are the items sold at the point of sale. Each product belongs to a product group and carries a price, a VAT rate, and a set of optional features such as stock tracking, variations, and ingredients.

Identifiers

A product supports three optional identifiers alongside its system product_id:

  • product_itemnumber: the merchant's own article number, used on labels, in exports, and for stock lookups
  • product_barcode: EAN or barcode for scanning at the POS
  • product_externalReference: for integrators to store their own system's ID, so you can map between your records and ready2order without storing product_id on your side

Pricing and VAT

product_price is the base price. Set product_priceIncludesVat to true (the default) if that figure is gross, or false if it is net. A VAT rate is required on creation — supply either product_vat as a percentage or product_vat_id referencing a VAT rate.

Customers and customer categories can have individual price overrides managed via the per-customer prices and per-category prices endpoints.

Custom price and quantity

Set product_customPrice: true to let the cashier enter the price manually at checkout, which is useful for open-price items. product_customQuantity: true does the same for the quantity.

Stock

Stock tracking is optional and configured per product. Set product_stock_enabled: true, then use product_stock_value for the current quantity, product_stock_safetyStock for the minimum threshold, and product_stock_reorderLevel for the point at which the system alerts about low inventory. Use the get stock and update stock endpoints to read or update stock figures without touching other product fields.

Product type

product_type is mainly relevant in gastro mode, where it drives printer routing (e.g. kitchen vs. bar). Available values: standard, food, drink, extra, sidedish, variation, ingredient. For standard retail products, use standard.

Variations and ingredients

Variations (selectable add-ons or modifications) and ingredients (component tracking for recipes and partial-unit sales) are enabled per product with product_variations_enabled and product_ingredients_enabled. Both require the corresponding feature to be active on the account.

Keeping a catalogue in sync

The recommended approach is to subscribe to webhooks for product.created and product.updated events. This avoids polling and ensures your system is updated in near real-time without unnecessary requests.

If webhooks are not an option, use the updatedAfter query parameter on list products to fetch only products changed since a given timestamp. Use batch create to create multiple products in one request.

Create products in bulk

Creates multiple products in a single request. Returns a result for each item along with a count of how many succeeded and how many failed.

Authorizations:
Bearer
Request Body schema: application/json
required
Array of objects

Responses

Request samples

Content type
application/json
{
  • "items": [
    ]
}

Response samples

Content type
application/json
{
  • "product_id": 9999,
  • "product_externalReference": "string",
  • "product_itemnumber": "string",
  • "product_barcode": "string",
  • "product_name": "string",
  • "product_description": "string",
  • "product_price": 0,
  • "product_priceIncludesVat": false,
  • "product_vat": 0,
  • "product_vat_id": 9999,
  • "product_customPrice": false,
  • "product_customQuantity": false,
  • "product_fav": false,
  • "product_highlight": false,
  • "product_expressMode": false,
  • "product_stock_enabled": false,
  • "product_ingredients_enabled": false,
  • "product_variations_enabled": false,
  • "product_stock_value": 0,
  • "product_stock_unit": "string",
  • "product_stock_reorderLevel": 0,
  • "product_stock_safetyStock": 0,
  • "product_sortIndex": 9999,
  • "product_soldOut": false,
  • "product_sideDishOrder": false,
  • "product_discountable": false,
  • "product_accountingCode": "string",
  • "product_colorClass": "string",
  • "productgroup_id": 9999,
  • "product_type_id": 9999,
  • "product_type": "string",
  • "product_created_at": "string",
  • "product_updated_at": "string",
  • "product_alternativeNameOnReceipts": "string",
  • "product_alternativeNameInPos": "string",
  • "productgroup": {
    },
  • "productvariation": [
    ],
  • "productingredient": [
    ],
  • "images": [
    ]
}

Update stock in bulk

Updates stock for multiple products in one request. Each item can be identified by either product_id or product_itemNumber.

Authorizations:
Bearer
Request Body schema: application/json
required
Array of objects

List of products

Responses

Request samples

Content type
application/json
{
  • "products": "List of products"
}

Response samples

Content type
application/json
{
  • "updatedIds": {
    },
  • "updatedItemNumbers": {
    }
}

List products

Returns a paginated list of products. Filter by product group, name, barcode, or item number. Use updatedAfter to fetch only products changed since a given timestamp.

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

productgroup_id
integer
Example: productgroup_id=1

get all products for this productgroup_id

itemNumber
string
Example: itemNumber=x-123

search for a product with the given product_itemNumber

name
string
Example: name=coca cola

search for a product with the given product_name

barcode
string
Example: barcode=1234567890

search for a product with the given product_barcode

q
string
Example: q=keyword

search for a product by keywords

includeProductGroup
boolean
Example: includeProductGroup=false

include product group information

includeProductVariations
boolean
Example: includeProductVariations=false

include product variations information

includeProductIngredients
boolean
Example: includeProductIngredients=false

include product variations information

updatedAfter
string
Example: updatedAfter=2021-12-29 04:18:00

Only return list of products which have been updated after a given timestamp

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product

Creates a new product.

Authorizations:
Bearer
Request Body schema: application/json
productgroup_id
integer

Product group id

product_name
required
string

Product name

product_price
required
string

Product price

product_vat
string

VAT-Rate in decimals. Provide either product_vat or product_vat_id

* Required if product_vat_id is not provided.

product_vat_id
integer

ID of VAT-rate (see /vat-rates). Provide either product_vat or product_vat_id

* Required if product_vat is not provided.

product_itemnumber
string

Item number

product_externalReference
string

External reference

product_barcode
string

Barcode

product_description
string

Optional description

product_priceIncludesVat
boolean

Whether price is provided included or excluding VAT

product_active
boolean

Is product active

product_discountable
boolean

Is product discountable

product_stock_enabled
boolean

Is stock for product enabled

product_stock_value
string

Product stock value

product_stock_reorderLevel
string

Product stock reorder level

product_stock_safetyStock
string

Product stock safety level

product_stock_unit
string

Product stock unit

product_sortIndex
integer

Product sort index

product_type
string

In case of adding new sidedishes or extras you need to provide the product_type. For example, if you're adding 'Fries' as a side you need to provide 'food'.

product_accountingCode
string

Product accounting code

product_accountingCodeName
string

Accounting code name

product_alternativeNameOnReceipts
string

Product alternative name on receipts

product_alternativeNameInPos
string

An alternative name shown on the POS screen instead of the regular product name. Useful when the shelf name differs from what staff should see at checkout.

product_ingredients_enabled
boolean

Enables ingredients for this product. Ingredients are used for recipe-based costing and partial-unit sales. Requires the ingredients feature to be active on the account.

product_variations_enabled
boolean

Enables variations for this product. Variations are selectable add-ons or modifications the cashier can apply at checkout. Requires the variations feature to be active on the account.

product_customPrice
boolean

Allows the cashier to enter the price freely at checkout instead of using the product's configured price. Useful for open-price items or when the price varies per transaction.

product_customQuantity
boolean

Allows the cashier to enter the quantity freely at checkout instead of incrementing by whole units.

product_soldOut
boolean

Is product sold out

product_expressMode
boolean

Enables express checkout for this product in the POS. When a cashier taps the product button, a bill is created and closed immediately — skipping the cart entirely. Useful for single-item, fixed-price sales such as a prepaid coffee or a parking ticket.

product_highlight
boolean

Highlights the product line on printed receipts and order tickets — the line is printed in red with a distinct fill character between the product name and price. Red colour output requires a printer that supports it.

product_sideDishOrder
boolean

Presents the sidedish list for this product in a fixed order. Only relevant when the product has sidedishes configured.

product_fav
boolean

Marks the product as a favourite in the POS, making it appear in the favourites section for quicker access.

object
object

Responses

Request samples

Content type
application/json
{
  • "productgroup_id": 1,
  • "product_name": "Coca cola",
  • "product_price": 124.25,
  • "product_vat": 10.5,
  • "product_vat_id": 1234,
  • "product_itemnumber": "x-123",
  • "product_externalReference": "xxx-123",
  • "product_barcode": "12345678",
  • "product_description": "lorem ipsum dolor sit amet",
  • "product_priceIncludesVat": false,
  • "product_active": true,
  • "product_discountable": true,
  • "product_stock_enabled": true,
  • "product_stock_value": 10.5,
  • "product_stock_reorderLevel": 2.5,
  • "product_stock_safetyStock": 5.1,
  • "product_stock_unit": "Kg",
  • "product_sortIndex": 5,
  • "product_type": "food, drink or default",
  • "product_accountingCode": "XY124",
  • "product_accountingCodeName": "code-name-x",
  • "product_alternativeNameOnReceipts": "XXX Cola",
  • "product_alternativeNameInPos": "POS Cola",
  • "product_ingredients_enabled": true,
  • "product_variations_enabled": true,
  • "product_customPrice": true,
  • "product_customQuantity": true,
  • "product_soldOut": false,
  • "product_expressMode": true,
  • "product_highlight": true,
  • "product_sideDishOrder": true,
  • "product_fav": true,
  • "productgroup": {
    },
  • "product_base": {
    }
}

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_externalReference": "ref-1234",
  • "product_itemnumber": 1,
  • "product_barcode": "x400467508233",
  • "product_name": "coca cola",
  • "product_description": "coca cola - non-alcoholic drink",
  • "product_price": 10.5,
  • "product_priceIncludesVat": false,
  • "product_vat": 2,
  • "product_vat_id": 2,
  • "product_customPrice": true,
  • "product_customQuantity": true,
  • "product_fav": true,
  • "product_highlight": true,
  • "product_expressMode": true,
  • "product_stock_enabled": true,
  • "product_ingredients_enabled": true,
  • "product_variations_enabled": true,
  • "product_stock_value": 100,
  • "product_stock_unit": "kg",
  • "product_stock_reorderLevel": 10,
  • "product_stock_safetyStock": 20,
  • "product_sortIndex": 5,
  • "product_soldOut": true,
  • "product_sideDishOrder": true,
  • "product_discountable": true,
  • "product_accountingCode": 1000123,
  • "product_colorClass": "bgGreenYellow",
  • "productgroup_id": 1,
  • "product_type_id": 1,
  • "product_type": "standard",
  • "product_created_at": "2019-01-01 11:11:11",
  • "product_updated_at": "2019-01-01 11:11:11",
  • "product_alternativeNameOnReceipts": "xxx cola",
  • "product_alternativeNameInPos": "yyy cola",
  • "productgroup": {
    },
  • "productvariation": [
    ],
  • "productingredient": [
    ],
  • "images": []
}

Get a product

Returns a single product by ID.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Product ID to find

query Parameters
includeProductGroup
boolean
Example: includeProductGroup=false

include product group information

includeProductVariations
boolean
Example: includeProductVariations=false

include product variations information

includeProductIngredients
boolean
Example: includeProductIngredients=false

include product variations information

Responses

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_externalReference": "ref-1234",
  • "product_itemnumber": 1,
  • "product_barcode": "x400467508233",
  • "product_name": "coca cola",
  • "product_description": "coca cola - non-alcoholic drink",
  • "product_price": 10.5,
  • "product_priceIncludesVat": false,
  • "product_vat": 2,
  • "product_vat_id": 2,
  • "product_customPrice": true,
  • "product_customQuantity": true,
  • "product_fav": true,
  • "product_highlight": true,
  • "product_expressMode": true,
  • "product_stock_enabled": true,
  • "product_ingredients_enabled": true,
  • "product_variations_enabled": true,
  • "product_stock_value": 100,
  • "product_stock_unit": "kg",
  • "product_stock_reorderLevel": 10,
  • "product_stock_safetyStock": 20,
  • "product_sortIndex": 5,
  • "product_soldOut": true,
  • "product_sideDishOrder": true,
  • "product_discountable": true,
  • "product_accountingCode": 1000123,
  • "product_colorClass": "bgGreenYellow",
  • "productgroup_id": 1,
  • "product_type_id": 1,
  • "product_type": "standard",
  • "product_created_at": "2019-01-01 11:11:11",
  • "product_updated_at": "2019-01-01 11:11:11",
  • "product_alternativeNameOnReceipts": "xxx cola",
  • "product_alternativeNameInPos": "yyy cola",
  • "productgroup": {
    },
  • "productvariation": [
    ],
  • "productingredient": [
    ],
  • "images": []
}

Update a product

Updates an existing product. To update stock figures without changing other product data, use the update stock endpoint instead.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1001

product id

Request Body schema: application/json
product_vat
string

VAT-Rate in decimals. Provide either product_vat or product_vat_id

product_vat_id
integer

ID of VAT-rate (see /vat-rates). Provide either product_vat or product_vat_id

product_name
string

Product name

product_itemnumber
string

Item number

product_externalReference
string

External reference

product_barcode
string

Barcode

product_description
string

Optional description

product_price
string

Product price

product_priceIncludesVat
boolean

Whether price is provided included or excluding VAT

product_active
boolean

Is product active

product_discountable
boolean

Is product discountable

product_stock_enabled
boolean

Is stock for product enabled

product_stock_value
string

Product stock value

product_stock_reorderLevel
string

Product stock reorder level

product_stock_safetyStock
string

Product stock safety level

product_stock_unit
string

Product stock unit

product_sortIndex
integer

Product sort index

productgroup_id
integer

Product group id

product_type
string

In case of adding new sidedishes or extras you need to provide the product_type. For example, if you're adding 'Fries' as a side you need to provide 'food'.

product_accountingCode
string

Product accounting code

product_accountingCodeName
string

Accounting code name

product_alternativeNameOnReceipts
string

Product alternative name on receipts

product_alternativeNameInPos
string

An alternative name shown on the POS screen instead of the regular product name. Useful when the shelf name differs from what staff should see at checkout.

product_ingredients_enabled
boolean

Enables ingredients for this product. Ingredients are used for recipe-based costing and partial-unit sales. Requires the ingredients feature to be active on the account.

product_variations_enabled
boolean

Enables variations for this product. Variations are selectable add-ons or modifications the cashier can apply at checkout. Requires the variations feature to be active on the account.

product_customPrice
boolean

Allows the cashier to enter the price freely at checkout instead of using the product's configured price. Useful for open-price items or when the price varies per transaction.

product_customQuantity
boolean

Allows the cashier to enter the quantity freely at checkout instead of incrementing by whole units.

product_soldOut
boolean

Is product sold out

product_expressMode
boolean

Enables express checkout for this product in the POS. When a cashier taps the product button, a bill is created and closed immediately — skipping the cart entirely. Useful for single-item, fixed-price sales such as a prepaid coffee or a parking ticket.

product_highlight
boolean

Highlights the product line on printed receipts and order tickets — the line is printed in red with a distinct fill character between the product name and price. Red colour output requires a printer that supports it.

product_sideDishOrder
boolean

Presents the sidedish list for this product in a fixed order. Only relevant when the product has sidedishes configured.

product_fav
boolean

Marks the product as a favourite in the POS, making it appear in the favourites section for quicker access.

object
object

Responses

Request samples

Content type
application/json
{
  • "product_vat": 10.5,
  • "product_vat_id": 1234,
  • "product_name": "Coca cola",
  • "product_itemnumber": "x-123",
  • "product_externalReference": "xxx-123",
  • "product_barcode": "12345678",
  • "product_description": "lorem ipsum dolor sit amet",
  • "product_price": 124.25,
  • "product_priceIncludesVat": false,
  • "product_active": true,
  • "product_discountable": true,
  • "product_stock_enabled": true,
  • "product_stock_value": 10.5,
  • "product_stock_reorderLevel": 2.5,
  • "product_stock_safetyStock": 5.1,
  • "product_stock_unit": "Kg",
  • "product_sortIndex": 5,
  • "productgroup_id": 1,
  • "product_type": "food, drink or default",
  • "product_accountingCode": "XY124",
  • "product_accountingCodeName": "code-name-x",
  • "product_alternativeNameOnReceipts": "XXX Cola",
  • "product_alternativeNameInPos": "POS Cola",
  • "product_ingredients_enabled": true,
  • "product_variations_enabled": true,
  • "product_customPrice": true,
  • "product_customQuantity": true,
  • "product_soldOut": false,
  • "product_expressMode": true,
  • "product_highlight": true,
  • "product_sideDishOrder": true,
  • "product_fav": true,
  • "product_base": {
    },
  • "productgroup": {
    }
}

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_externalReference": "ref-1234",
  • "product_itemnumber": 1,
  • "product_barcode": "x400467508233",
  • "product_name": "coca cola",
  • "product_description": "coca cola - non-alcoholic drink",
  • "product_price": 10.5,
  • "product_priceIncludesVat": false,
  • "product_vat": 2,
  • "product_vat_id": 2,
  • "product_customPrice": true,
  • "product_customQuantity": true,
  • "product_fav": true,
  • "product_highlight": true,
  • "product_expressMode": true,
  • "product_stock_enabled": true,
  • "product_ingredients_enabled": true,
  • "product_variations_enabled": true,
  • "product_stock_value": 100,
  • "product_stock_unit": "kg",
  • "product_stock_reorderLevel": 10,
  • "product_stock_safetyStock": 20,
  • "product_sortIndex": 5,
  • "product_soldOut": true,
  • "product_sideDishOrder": true,
  • "product_discountable": true,
  • "product_accountingCode": 1000123,
  • "product_colorClass": "bgGreenYellow",
  • "productgroup_id": 1,
  • "product_type_id": 1,
  • "product_type": "standard",
  • "product_created_at": "2019-01-01 11:11:11",
  • "product_updated_at": "2019-01-01 11:11:11",
  • "product_alternativeNameOnReceipts": "xxx cola",
  • "product_alternativeNameInPos": "yyy cola",
  • "productgroup": {
    },
  • "productvariation": [
    ],
  • "productingredient": [
    ],
  • "images": []
}

Delete a product

Deletes a product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Product ID to delete

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Product was deleted successfully."
}

Get product stock by item number

Returns stock information for a product looked up by its item number rather than its ID.

Authorizations:
Bearer
path Parameters
itemNumber
required
string
Example: X-123

Product item number

Responses

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_stock": 10,
  • "product_reorderLevel": 5.2,
  • "product_safetyStock": 2.1,
  • "product_unit": "piece"
}

Get product stock

Returns the current stock level, safety stock, and reorder level for a product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Product ID

Responses

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_stock": 10,
  • "product_reorderLevel": 5.2,
  • "product_safetyStock": 2.1,
  • "product_unit": "piece"
}

Update product stock

Updates stock for a product. Use product_stock to set an absolute value or product_stockDelta to add or subtract from the current quantity.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Product ID

Request Body schema: application/json
product_stock
string
product_reorderLevel
string
product_safetyStock
string
product_stockDelta
string

Responses

Request samples

Content type
application/json
{
  • "product_stock": "string",
  • "product_reorderLevel": "string",
  • "product_safetyStock": "string",
  • "product_stockDelta": "string"
}

Response samples

Content type
application/json
{
  • "product_id": 1234,
  • "product_stock": 10,
  • "product_reorderLevel": 5.2,
  • "product_safetyStock": 2.1,
  • "product_unit": "piece"
}

List per-customer prices

Returns all per-customer price overrides for a product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Set per-customer price

Sets a price override for a specific customer on this product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
price_value
required
string
customer_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "price_value": "string",
  • "customer_id": 9999
}

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customer_id": 1
}

Get per-customer price

Returns the price override for a specific customer.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerId
required
integer
Example: 123456

Customer category ID to find

Responses

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customer_id": 1
}

Update per-customer price

Updates the price override for a specific customer on this product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerId
required
integer
Example: 1

customer id

Request Body schema: application/json
price_value
required
string

Responses

Request samples

Content type
application/json
{
  • "price_value": "string"
}

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customer_id": 1
}

Remove per-customer price

Removes the price override for a customer, reverting to the product's base price or their category price if one is set.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerId
required
integer
Example: 123456

Customer category ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Product price was deleted successfully."
}

List customer category prices

Returns all customer category price overrides for a product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Set customer category price

Sets a price override for a customer category on this product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
price_value
required
string
customerCategory_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "price_value": "string",
  • "customerCategory_id": 9999
}

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customerCategory_id": 1
}

Get customer category price

Returns the price override for a specific customer category.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerCategoryId
required
integer
Example: 123456

Customer category ID to find

Responses

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customerCategory_id": 1
}

Update customer category price

Updates the price override for a customer category on this product.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerCategoryId
required
integer
Example: 1

customer category id

Request Body schema: application/json
price_value
required
string

Responses

Request samples

Content type
application/json
{
  • "price_value": "string"
}

Response samples

Content type
application/json
{
  • "price_id": 1234,
  • "price_value": 12.45,
  • "price_valueGross": 13.56,
  • "price_valueNet": 12.45,
  • "price_timestamp": 1234,
  • "product_id": 1234,
  • "customerCategory_id": 1
}

Remove customer category price

Removes the price override for a customer category, reverting to the product's base price.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

customerCategoryId
required
integer
Example: 123456

Customer category ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Product price was deleted successfully."
}

Product Group

List all Product Groups

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Product Group

Authorizations:
Bearer
Request Body schema: application/json
productgroup_name
required
string
productgroup_description
string
productgroup_shortcut
string
productgroup_active
boolean
productgroup_parent
integer
productgroup_sortIndex
integer
productgroup_accountingCode
string
productgroup_accountingCodeName
string
productgroup_accountingCodeVatRate
string



* Required when productgroup_accountingCodeName is provided.

productgroup_type_id
integer

Responses

Request samples

Content type
application/json
{
  • "productgroup_name": "string",
  • "productgroup_description": "string",
  • "productgroup_shortcut": "string",
  • "productgroup_active": false,
  • "productgroup_parent": 9999,
  • "productgroup_sortIndex": 9999,
  • "productgroup_accountingCode": "string",
  • "productgroup_accountingCodeName": "string",
  • "productgroup_accountingCodeVatRate": "string",
  • "productgroup_type_id": 9999
}

Response samples

Content type
application/json
{
  • "productgroup_id": 83012,
  • "productgroup_name": "Favorites",
  • "productgroup_description": "Just a description",
  • "productgroup_shortcut": "fav",
  • "productgroup_active": true,
  • "productgroup_sortIndex": -1,
  • "productgroup_created_at": "2019-07-29 08:26:18",
  • "productgroup_updated_at": "2019-07-29 08:26:18",
  • "productgroup_type_id": 2
}

Find Product Group by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "productgroup_id": 83012,
  • "productgroup_name": "Favorites",
  • "productgroup_description": "Just a description",
  • "productgroup_shortcut": "fav",
  • "productgroup_active": true,
  • "productgroup_sortIndex": -1,
  • "productgroup_created_at": "2019-07-29 08:26:18",
  • "productgroup_updated_at": "2019-07-29 08:26:18",
  • "productgroup_type_id": 2
}

Update Product Group by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
productgroup_name
string
productgroup_description
string
productgroup_shortcut
string
productgroup_active
boolean
productgroup_parent
integer
productgroup_sortIndex
integer
productgroup_accountingCode
string
productgroup_accountingCodeName
string
productgroup_accountingCodeVatRate
string



* Required when productgroup_accountingCodeName is provided.

productgroup_type_id
integer

Responses

Request samples

Content type
application/json
{
  • "productgroup_name": "string",
  • "productgroup_description": "string",
  • "productgroup_shortcut": "string",
  • "productgroup_active": false,
  • "productgroup_parent": 9999,
  • "productgroup_sortIndex": 9999,
  • "productgroup_accountingCode": "string",
  • "productgroup_accountingCodeName": "string",
  • "productgroup_accountingCodeVatRate": "string",
  • "productgroup_type_id": 9999
}

Response samples

Content type
application/json
{
  • "productgroup_id": 83012,
  • "productgroup_name": "Favorites",
  • "productgroup_description": "Just a description",
  • "productgroup_shortcut": "fav",
  • "productgroup_active": true,
  • "productgroup_sortIndex": -1,
  • "productgroup_created_at": "2019-07-29 08:26:18",
  • "productgroup_updated_at": "2019-07-29 08:26:18",
  • "productgroup_type_id": 2
}

Delete Product Group by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Productgroup was deleted successfully"
}

Find With Products By Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "productgroup_id": 83012,
  • "productgroup_name": "Favorites",
  • "productgroup_description": "Just a description",
  • "productgroup_shortcut": "fav",
  • "productgroup_active": true,
  • "productgroup_sortIndex": -1,
  • "productgroup_created_at": "2019-07-29 08:26:18",
  • "productgroup_updated_at": "2019-07-29 08:26:18",
  • "productgroup_type_id": 2
}

Bill

List all Bills

Authorizations:
Bearer
query Parameters
offset
integer
Example: offset=10

Offset

limit
integer
Example: limit=255

Items per page

query
string
Example: query=RG2018/1

Search query; the value to search by.

tableId
integer
Example: tableId=153311

Table-Id to filter by.

customerId
integer
Example: customerId=27268

Customer-Id to filter by.

dateField
string
Default: "daily_report"
Enum: "daily_report" "dr_startDate" "bill" "b_dateTime"
Example: dateField=daily_report

Date field the query should filter by.

Values
daily_report Filter by the start date of the related Daily Report
bill Filter by the bill’s creation date

dateFrom
string
Example: dateFrom=2024-10-23

Marks the start date for filtering. Can be a whole date (account's timestamp is used by default) or a datetime (ISO 8601).

2024-10-23 or 2023-12-31T13:00:00Z

dateTo
string
Example: dateTo=2024-11-21

Marks the end date for filtering. Can be a whole date (account's timestamp is used by default) or a datetime (ISO 8601).

2024-11-21 or 2023-12-31T13:00:00Z

testMode
boolean
Default: "false"
Example: testMode=false

Training mode on/off.

items
boolean
Default: "false"
Example: items=false

Include list of items.

discounts
boolean
Example: discounts=false

Include list of discounts.

payments
boolean
Example: payments=false

Include list of payments.

payment
boolean
Example: payment=false

[DEPRECATED] Include list of payments. (Default: false)

Alternative
payments

Responses

Response samples

Content type
application/json
{
  • "invoices": [
    ],
  • "count": 50,
  • "offset": 0,
  • "limit": 50,
  • "dateFrom": "2019-01-01",
  • "dateTo": "2019-12-31",
  • "query": "some-query"
}

Create Bill

Authorizations:
Bearer
Request Body schema: application/json
paymentMethod_id
required
integer

PaymentMethod ID. Whether the bill is marked as paid depends on the payment method type — payment methods with markAsPaid=true will automatically mark the bill as paid.

user_id
required
integer

User ID

Array of objects

List of part-payments to split the bill total into multiple payments

table_id
integer

Table ID

customer_id
integer

Customer ID

billType_id
integer

BillType ID

printer_id
integer

Printer ID on which the bill should be printed

printingProfile_id
integer

PrintingProfile ID on which the bill should be printed.

invoice_printCount
integer

Number of copies to be printed (where 1 is the original receipt)

invoice_textBeforeItemsTable
string

Text shown before items table on bill PDF

invoice_text
string

Text shown after items table on bill PDF

invoice_externalReferenceNumber
string

External reference number for the bill

invoice_totalTip
string

Total tip amount for the invoice.

invoice_priceBase
string
Enum: "gross" "net"

Pricebase

invoice_testMode
boolean

Trainingmode

createPDF
boolean

Whether to create and return PDF or not

pdfFormat
string

PDF format

invoice_showRecipient
boolean

Show additional lines on invoice receipt

invoice_dueDate
string

Due date

Array of objects

List of items

* Required if orderItem_ids is not provided.

orderItem_ids
Array of integers

List of orderItemIds to process the invoice for

* Required if items is not provided.

Array of objects

Address object

Array of objects

List of invoice-level discounts

order_enablePrinting
boolean

Whether to print the order receipts (foods, drinks) for the bill (if configured)

priceLevel_id
integer

PriceLevel ID

invoice_roundToSmallestCurrencyUnit
string

Rounding to 0.05 or 0.10 cents

Responses

Request samples

Content type
application/json
{
  • "paymentMethod_id": 123456,
  • "user_id": 123456,
  • "partPayments": [
    ],
  • "table_id": 4321,
  • "customer_id": 1024,
  • "billType_id": 1,
  • "printer_id": 1,
  • "printingProfile_id": 1,
  • "invoice_printCount": 2,
  • "invoice_textBeforeItemsTable": "Some text",
  • "invoice_text": "Some text",
  • "invoice_externalReferenceNumber": "REF-1234",
  • "invoice_totalTip": 1.5,
  • "invoice_priceBase": "gross or net",
  • "invoice_testMode": false,
  • "createPDF": false,
  • "pdfFormat": "A4, 80mm or 58mm",
  • "invoice_showRecipient": false,
  • "invoice_dueDate": "2019-01-15",
  • "items": [
    ],
  • "orderItem_ids": [
    ],
  • "address": [
    ],
  • "invoice_discounts": [
    ],
  • "order_enablePrinting": true,
  • "priceLevel_id": 255,
  • "invoice_roundToSmallestCurrencyUnit": "0.05, 0.1"
}

Response samples

Content type
application/json
{
  • "invoice_id": 1234,
  • "invoice_reference_id": 1233,
  • "invoice_timestamp": "2019-01-01 00:00:00",
  • "invoice_number": 1,
  • "invoice_numberFull": "RG2019/1",
  • "invoice_total": 12,
  • "invoice_totalNet": 10,
  • "invoice_totalVat": 2,
  • "invoice_totalTip": 0,
  • "invoice_address_company": "ready2order GmbH",
  • "invoice_address_vatId": "ATU12341234",
  • "invoice_address_salutation": "Mr/Ms",
  • "invoice_address_title": "Professor",
  • "invoice_address_firstName": "Chris",
  • "invoice_address_lastName": "Fox",
  • "invoice_address_street": "Hintere Zollamtsstraße 17",
  • "invoice_address_city": "Vienna",
  • "invoice_address_zip": 1030,
  • "invoice_address_country": "AT",
  • "invoice_address_email": "dux@fox.com",
  • "invoice_address_phone": "+43 664 1234 1234 1234",
  • "invoice_inPrinterQueue": false,
  • "invoice_priceBase": "brutto",
  • "invoice_deleted_at": "2019-01-01 00:00:00",
  • "invoice_deletedReason": "Some reason",
  • "invoice_pdf": "http://some.link",
  • "invoice_textBeforeItemsTable": "Some text",
  • "invoice_text": "Some text",
  • "invoice_locked": true,
  • "invoice_externalReferenceNumber": "REF-1234",
  • "invoice_internalInvoiceReferenceNumber": 1233,
  • "invoice_dueDate": "2019-01-05",
  • "invoice_deliveryDate": "2019-01-01",
  • "invoice_paid": true,
  • "invoice_paidDate": "2019-01-01",
  • "invoice_offlineTimestamp": "2019-01-01 00:00:00",
  • "invoice_offlineNumber": "2A26A8D9/1",
  • "invoice_testMode": true,
  • "invoice_formatVersion": 2,
  • "customer_id": 1234,
  • "customerCategory_id": 1023,
  • "table_id": 1234,
  • "tableArea_id": 67,
  • "paymentMethod_id": 1234,
  • "user_id": 1234,
  • "printer_id": 23,
  • "billType_id": 1,
  • "currency_id": 1,
  • "items": [
    ],
  • "address": {
    },
  • "type": {
    },
  • "payment": [
    ],
  • "transaction": {
    },
  • "discounts": [
    ]
}

Count All Bills

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "count": 1500
}

Find Bill by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Bill ID to find

Responses

Response samples

Content type
application/json
{
  • "invoice_id": 1234,
  • "invoice_reference_id": 1233,
  • "invoice_timestamp": "2019-01-01 00:00:00",
  • "invoice_number": 1,
  • "invoice_numberFull": "RG2019/1",
  • "invoice_total": 12,
  • "invoice_totalNet": 10,
  • "invoice_totalVat": 2,
  • "invoice_totalTip": 0,
  • "invoice_address_company": "ready2order GmbH",
  • "invoice_address_vatId": "ATU12341234",
  • "invoice_address_salutation": "Mr/Ms",
  • "invoice_address_title": "Professor",
  • "invoice_address_firstName": "Chris",
  • "invoice_address_lastName": "Fox",
  • "invoice_address_street": "Hintere Zollamtsstraße 17",
  • "invoice_address_city": "Vienna",
  • "invoice_address_zip": 1030,
  • "invoice_address_country": "AT",
  • "invoice_address_email": "dux@fox.com",
  • "invoice_address_phone": "+43 664 1234 1234 1234",
  • "invoice_inPrinterQueue": false,
  • "invoice_priceBase": "brutto",
  • "invoice_deleted_at": "2019-01-01 00:00:00",
  • "invoice_deletedReason": "Some reason",
  • "invoice_pdf": "http://some.link",
  • "invoice_textBeforeItemsTable": "Some text",
  • "invoice_text": "Some text",
  • "invoice_locked": true,
  • "invoice_externalReferenceNumber": "REF-1234",
  • "invoice_internalInvoiceReferenceNumber": 1233,
  • "invoice_dueDate": "2019-01-05",
  • "invoice_deliveryDate": "2019-01-01",
  • "invoice_paid": true,
  • "invoice_paidDate": "2019-01-01",
  • "invoice_offlineTimestamp": "2019-01-01 00:00:00",
  • "invoice_offlineNumber": "2A26A8D9/1",
  • "invoice_testMode": true,
  • "invoice_formatVersion": 2,
  • "customer_id": 1234,
  • "customerCategory_id": 1023,
  • "table_id": 1234,
  • "tableArea_id": 67,
  • "paymentMethod_id": 1234,
  • "user_id": 1234,
  • "printer_id": 23,
  • "billType_id": 1,
  • "currency_id": 1,
  • "items": [
    ],
  • "address": {
    },
  • "type": {
    },
  • "payment": [
    ],
  • "transaction": {
    },
  • "discounts": [
    ]
}

Cancel an invoice

Cancels an invoice by creating a cancellation (storno) bill that reverses its items and payments. By default the cancellation is paid back with the original invoice's payment method. An explicit paymentMethod_id and/or partPayments can be given to pay the cancellation back differently - see the description of those parameters for details.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID of the invoice that should be cancelled

Request Body schema: application/json
storno_id
required
integer

ID of the storno reason that justifies this cancellation. See GET /storno for the list of reasons.

storno_reason
required
string

Free-text comment explaining why this specific invoice was cancelled. Stored on the cancellation bill alongside the storno reason referenced by storno_id.

invoice_externalReferenceNumber
string

External reference number to store on the cancellation bill.

paymentMethod_id
integer

PaymentMethod ID to cancel the invoice with. If partPayments is also given, this payment method only covers the amount remaining after the part payments; otherwise it covers the entire cancellation amount. Defaults to the original invoice's payment method if not given.

Array of objects

List of part-payments to split the cancellation amount across multiple payment methods, analogous to partPayments on PUT /document/invoice. This defines a new payment breakdown for the cancellation and is independent of how the original invoice was actually paid - whenever partPayments and/or paymentMethod_id is given, the original invoice's payment breakdown is fully replaced. Any amount not covered by this list is cancelled with paymentMethod_id (or the original invoice's payment method, if paymentMethod_id is not given).

Responses

Request samples

Content type
application/json
{
  • "storno_id": 9823,
  • "storno_reason": "Correction",
  • "invoice_externalReferenceNumber": "REF-1234",
  • "paymentMethod_id": 123456,
  • "partPayments": [
    ]
}

Response samples

Content type
application/json
{
  • "invoice_id": 1234,
  • "invoice_reference_id": 1233,
  • "invoice_timestamp": "2019-01-01 00:00:00",
  • "invoice_number": 1,
  • "invoice_numberFull": "RG2019/1",
  • "invoice_total": 12,
  • "invoice_totalNet": 10,
  • "invoice_totalVat": 2,
  • "invoice_totalTip": 0,
  • "invoice_address_company": "ready2order GmbH",
  • "invoice_address_vatId": "ATU12341234",
  • "invoice_address_salutation": "Mr/Ms",
  • "invoice_address_title": "Professor",
  • "invoice_address_firstName": "Chris",
  • "invoice_address_lastName": "Fox",
  • "invoice_address_street": "Hintere Zollamtsstraße 17",
  • "invoice_address_city": "Vienna",
  • "invoice_address_zip": 1030,
  • "invoice_address_country": "AT",
  • "invoice_address_email": "dux@fox.com",
  • "invoice_address_phone": "+43 664 1234 1234 1234",
  • "invoice_inPrinterQueue": false,
  • "invoice_priceBase": "brutto",
  • "invoice_deleted_at": "2019-01-01 00:00:00",
  • "invoice_deletedReason": "Some reason",
  • "invoice_pdf": "http://some.link",
  • "invoice_textBeforeItemsTable": "Some text",
  • "invoice_text": "Some text",
  • "invoice_locked": true,
  • "invoice_externalReferenceNumber": "REF-1234",
  • "invoice_internalInvoiceReferenceNumber": 1233,
  • "invoice_dueDate": "2019-01-05",
  • "invoice_deliveryDate": "2019-01-01",
  • "invoice_paid": true,
  • "invoice_paidDate": "2019-01-01",
  • "invoice_offlineTimestamp": "2019-01-01 00:00:00",
  • "invoice_offlineNumber": "2A26A8D9/1",
  • "invoice_testMode": true,
  • "invoice_formatVersion": 2,
  • "customer_id": 1234,
  • "customerCategory_id": 1023,
  • "table_id": 1234,
  • "tableArea_id": 67,
  • "paymentMethod_id": 1234,
  • "user_id": 1234,
  • "printer_id": 23,
  • "billType_id": 1,
  • "currency_id": 1,
  • "items": [
    ],
  • "address": {
    },
  • "type": {
    },
  • "payment": [
    ],
  • "transaction": {
    },
  • "discounts": [
    ]
}

Print a bill

Add bill to printer queue for specific printer

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Bill ID to find

Request Body schema: application/json
printer_id
integer

Printer ID where to print the bill

* Required if none of printingProfile_id are provided.

printingProfile_id
integer

PrintingProfile ID on which the bill should be printed.

* Required if none of printer_id are provided.

Responses

Request samples

Content type
application/json
{
  • "printer_id": 2394,
  • "printingProfile_id": 1
}

Response samples

Content type
application/json
{
  • "error": false,
  • "msg": "Bill was added to printer queue"
}

Create PDF for bill

Returns signed S3 URL. Optionally regenerates pdf if regeneratePDF is set to true

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

User ID to delete

query Parameters
regeneratePDF
boolean
Example: regeneratePDF=true

Regenerate an existing PDF

format
string
Default: "A4"
Example: format=A4, 80mm or 58mm

PDF Format

Responses

Response samples

Content type
application/json
{}

Storno

List all Stornos

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Storno

Authorizations:
Bearer
Request Body schema: application/json
storno_name
required
string

Storno name

storno_description
string

Storno description

Responses

Request samples

Content type
application/json
{
  • "storno_name": "cancellation",
  • "storno_description": "storno reason 1234"
}

Response samples

Content type
application/json
{
  • "storno_id": 1234,
  • "storno_name": "cancellation",
  • "storno_description": "storno reason 1234",
  • "storno_created_at": "2019-01-01 12:00:00"
}

Find Storno by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "storno_id": 1234,
  • "storno_name": "cancellation",
  • "storno_description": "storno reason 1234",
  • "storno_created_at": "2019-01-01 12:00:00"
}

Update Storno by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1234

storno id

Request Body schema: application/json
storno_name
required
string

Storno name

storno_description
string

Storno description

Responses

Request samples

Content type
application/json
{
  • "storno_name": "cancellation",
  • "storno_description": "storno reason 1234"
}

Response samples

Content type
application/json
{
  • "storno_id": 1234,
  • "storno_name": "cancellation",
  • "storno_description": "storno reason 1234",
  • "storno_created_at": "2019-01-01 12:00:00"
}

Delete Storno by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Storno was successfully deleted!"
}

Payment Method

List all Payment Methods

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Payment Method

Authorizations:
Bearer
Request Body schema: application/json
payment_description
string

The description of the payment method

payment_markAsPaid
boolean

Mark payment method as paid

paymentType_id
required
integer

The payment type id of the payment method

payment_accountingCode
string

The accounting code of the payment method

payment_name
required
string

The name of the payment method

Responses

Request samples

Content type
application/json
{
  • "payment_description": "Paying in cash",
  • "payment_markAsPaid": true,
  • "paymentType_id": 1,
  • "payment_accountingCode": 1234,
  • "payment_name": "Barzahlung"
}

Response samples

Content type
application/json
{
  • "payment_id": 74890,
  • "payment_name": "Barzahlung",
  • "payment_description": "just a description",
  • "payment_accountingCode": 2700,
  • "payment_markAsPaid": true,
  • "paymentType_id": 1
}

Find Payment Method by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "payment_id": 74890,
  • "payment_name": "Barzahlung",
  • "payment_description": "just a description",
  • "payment_accountingCode": 2700,
  • "payment_markAsPaid": true,
  • "paymentType_id": 1
}

Update Payment Method

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
payment_description
string

The description of the payment method

payment_markAsPaid
boolean

Mark payment method as paid

paymentType_id
integer

The payment type id of the payment method

payment_accountingCode
string

The accounting code of the payment method

payment_name
string

The name of the payment method

Responses

Request samples

Content type
application/json
{
  • "payment_description": "Paying in cash",
  • "payment_markAsPaid": true,
  • "paymentType_id": 1,
  • "payment_accountingCode": 1234,
  • "payment_name": "Barzahlung"
}

Response samples

Content type
application/json
{
  • "payment_id": 74890,
  • "payment_name": "Barzahlung",
  • "payment_description": "just a description",
  • "payment_accountingCode": 2700,
  • "payment_markAsPaid": true,
  • "paymentType_id": 1
}

Delete Payment Method

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "PaymentMethod was successfully deleted."
}

Payment Method Type

List all Payment Method Types

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Payment Method Type by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "paymentType_id": 1,
  • "paymentType_identifier": "cash",
  • "paymentType_name": "Bargeld"
}

Coupon

Coupons are gift cards and vouchers that merchants sell and later accept as payment at the point of sale. The coupon_value field always holds the current remaining balance.

Balance and Lifecycle

You create a coupon with an initial value. From there you can charge it (add value) or redeem it (deduct value). Partial redemptions work fine; the coupon stays active until the balance reaches zero.

Coupon Purpose

coupon_purpose determines when VAT is due. We distinguish between two voucher types:

Purpose When VAT is due coupon_containsVat
single At issuance (place of supply and tax rate are known at creation) The applicable rate, e.g. 20
multi At redemption (the POS applies the right rate per item) Must be 0

Single-purpose suits vouchers for specific goods at a fixed rate, such as a drink voucher tied to a particular product.
Multi-purpose fits general gift cards redeemable for anything or across multiple locations.

Check with your tax advisor which type applies to your situation.

Identifier

coupon_identifier is the numeric code printed on physical voucher cards. If you leave it out, an EAN-13 code is generated automatically. Pass it as the identifier query parameter on GET /coupons to look up a coupon by barcode scan.

List coupons

Returns a paginated list of coupons. Filter by identifier to look up a coupon by its code (e.g. scanned from a barcode).

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

identifier
string
Example: identifier=9995071228303

Identifier/Code of coupon

trainingMode
boolean
Example: trainingMode=false

Trainingmode

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a coupon

Creates a new coupon. coupon_identifier is auto-generated as an EAN-13 code if omitted. Set coupon_purpose to "single" or "multi" to control when VAT is due: at issuance or at redemption.

Authorizations:
Bearer
Request Body schema: application/json
coupon_name
required
string
coupon_value
required
string
couponCategory_id
integer
coupon_containsVat
string
customer_id
integer
coupon_type
string
Value: "coupon"
coupon_purpose
string
Enum: "single" "multi"
coupon_validUntil
string
coupon_issuedAt
string
coupon_testMode
boolean
coupon_identifier
string

Responses

Request samples

Content type
application/json
{
  • "coupon_name": "MyCoupon",
  • "coupon_value": 5,
  • "couponCategory_id": 123,
  • "coupon_containsVat": 3,
  • "customer_id": 450,
  • "coupon_type": "coupon",
  • "coupon_purpose": "single|multi",
  • "coupon_validUntil": "2030-01-02",
  • "coupon_issuedAt": "2025-01-02",
  • "coupon_testMode": false,
  • "coupon_identifier": "AABBCC"
}

Response samples

Content type
application/json
{
  • "coupon_id": 1234,
  • "coupon_name": "Christmas Coupon",
  • "coupon_containsVat": 20,
  • "coupon_purpose": "single|multi",
  • "coupon_identifier": 9995071228303,
  • "coupon_testMode": true,
  • "coupon_validUntil": "2020-01-31 00:49:39",
  • "coupon_issuedAt": "2018-01-31 00:49:39",
  • "couponCategory_id": 4,
  • "vat_id": 1234,
  • "product_id": 1234,
  • "customer_id": 7455,
  • "coupon_created_at": "2018-01-31 00:49:39",
  • "coupon_updated_at": "2018-01-31 04:49:39"
}

Get a coupon

Returns a single coupon by its ID, including its current balance in coupon_value.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Coupon ID to find

Responses

Response samples

Content type
application/json
{
  • "coupon_id": 1234,
  • "coupon_name": "Christmas Coupon",
  • "coupon_containsVat": 20,
  • "coupon_purpose": "single|multi",
  • "coupon_identifier": 9995071228303,
  • "coupon_testMode": true,
  • "coupon_validUntil": "2020-01-31 00:49:39",
  • "coupon_issuedAt": "2018-01-31 00:49:39",
  • "couponCategory_id": 4,
  • "vat_id": 1234,
  • "product_id": 1234,
  • "customer_id": 7455,
  • "coupon_created_at": "2018-01-31 00:49:39",
  • "coupon_updated_at": "2018-01-31 04:49:39"
}

Update a coupon

Updates coupon metadata such as name, validity dates, category, or customer assignment. To adjust the balance, use the charge or redeem endpoints instead.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Coupon ID to update

Request Body schema: application/json
coupon_name
string
coupon_value
string
couponCategory_id
integer
coupon_containsVat
string
customer_id
integer
coupon_type
string
Value: "coupon"
coupon_purpose
string
Enum: "single" "multi"
coupon_validUntil
string
coupon_issuedAt
string
coupon_testMode
boolean
coupon_identifier
string

Responses

Request samples

Content type
application/json
{
  • "coupon_name": "MyCoupon",
  • "coupon_value": 5,
  • "couponCategory_id": 123,
  • "coupon_containsVat": 3,
  • "customer_id": 450,
  • "coupon_type": "coupon",
  • "coupon_purpose": "single|multi",
  • "coupon_validUntil": "2030-01-02",
  • "coupon_issuedAt": "2025-01-02",
  • "coupon_testMode": false,
  • "coupon_identifier": "AABBCC"
}

Response samples

Content type
application/json
{
  • "coupon_id": 1234,
  • "coupon_name": "Christmas Coupon",
  • "coupon_containsVat": 20,
  • "coupon_purpose": "single|multi",
  • "coupon_identifier": 9995071228303,
  • "coupon_testMode": true,
  • "coupon_validUntil": "2020-01-31 00:49:39",
  • "coupon_issuedAt": "2018-01-31 00:49:39",
  • "couponCategory_id": 4,
  • "vat_id": 1234,
  • "product_id": 1234,
  • "customer_id": 7455,
  • "coupon_created_at": "2018-01-31 00:49:39",
  • "coupon_updated_at": "2018-01-31 04:49:39"
}

Delete a coupon

Deletes a coupon.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Coupon ID to delete

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Coupon was successfully deleted!"
}

Charge a coupon

Adds value to an existing coupon's balance, for example when a customer tops up a voucher card.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1234

Coupon ID to charge

Request Body schema: application/json
value
required
string

Charge value

Responses

Request samples

Content type
application/json
{
  • "value": 12
}

Response samples

Content type
application/json
{
  • "coupon_id": 1234,
  • "coupon_name": "Christmas Coupon",
  • "coupon_containsVat": 20,
  • "coupon_purpose": "single|multi",
  • "coupon_identifier": 9995071228303,
  • "coupon_testMode": true,
  • "coupon_validUntil": "2020-01-31 00:49:39",
  • "coupon_issuedAt": "2018-01-31 00:49:39",
  • "couponCategory_id": 4,
  • "vat_id": 1234,
  • "product_id": 1234,
  • "customer_id": 7455,
  • "coupon_created_at": "2018-01-31 00:49:39",
  • "coupon_updated_at": "2018-01-31 04:49:39"
}

Redeem a coupon

Deducts the specified value from the coupon's balance. Partial redemptions are supported. Returns the updated coupon with the new balance in coupon_value.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1234

Coupon ID to redeem

Request Body schema: application/json
value
required
string

Redemption value

Responses

Request samples

Content type
application/json
{
  • "value": 12
}

Response samples

Content type
application/json
{
  • "coupon_id": 1234,
  • "coupon_name": "Christmas Coupon",
  • "coupon_containsVat": 20,
  • "coupon_purpose": "single|multi",
  • "coupon_identifier": 9995071228303,
  • "coupon_testMode": true,
  • "coupon_validUntil": "2020-01-31 00:49:39",
  • "coupon_issuedAt": "2018-01-31 00:49:39",
  • "couponCategory_id": 4,
  • "vat_id": 1234,
  • "product_id": 1234,
  • "customer_id": 7455,
  • "coupon_created_at": "2018-01-31 00:49:39",
  • "coupon_updated_at": "2018-01-31 04:49:39"
}

Coupon Category

Coupon categories let you group coupons under a shared label. The category has no effect on coupon behaviour or tax treatment.

To assign a coupon to a category, set couponCategory_id when creating or updating the coupon. You cannot delete a category that still has coupons assigned to it.

List coupon categories

Returns a paginated list of coupon categories for the authenticated account.

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a coupon category

Creates a new coupon category. Categories are used to organise coupons and have no effect on coupon behaviour or fiscal treatment.

Authorizations:
Bearer
Request Body schema: application/json
couponCategory_name
required
string
couponCategory_description
string

Responses

Request samples

Content type
application/json
{
  • "couponCategory_name": "string",
  • "couponCategory_description": "string"
}

Response samples

Content type
application/json
{
  • "couponCategory_id": 123,
  • "couponCategory_name": "my coupon category",
  • "couponCategory_description": "my great coupon category"
}

Get a coupon category

Returns a single coupon category by its ID.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Coupon Category ID to find

Responses

Response samples

Content type
application/json
{
  • "couponCategory_id": 123,
  • "couponCategory_name": "my coupon category",
  • "couponCategory_description": "my great coupon category"
}

Update a coupon category

Updates the name and description of an existing coupon category.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Coupon Category ID to update

Request Body schema: application/json
couponCategory_name
required
string
couponCategory_description
string

Responses

Request samples

Content type
application/json
{
  • "couponCategory_name": "string",
  • "couponCategory_description": "string"
}

Response samples

Content type
application/json
{
  • "couponCategory_id": 123,
  • "couponCategory_name": "my coupon category",
  • "couponCategory_description": "my great coupon category"
}

Delete a coupon category

Deletes a coupon category. Fails if coupons are still assigned to it; reassign or delete those coupons first.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Coupon Category ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Coupon Category was successfully deleted!"
}

Discount

Discounts are preset price reductions that cashiers can apply at the point of sale. Unlike coupons, they are not financial instruments; they simply reduce the sale price, with VAT calculated on the reduced amount.

Every discount belongs to a group via discountGroup_id. The group determines how discounts are organised and presented at the POS. You need at least one discount group before you can create a discount.

Discount unit

discount_unit controls how the reduction is calculated:

Unit Behaviour discount_value
percent Reduces the price by a percentage 0–100
currency Reduces the price by a fixed amount Any positive number
custom The cashier enters the amount at checkout Not required

Visibility and ordering

Set discount_active to false to hide a discount at the POS without deleting it. discount_order controls the position in the list shown to cashiers.

List discounts

Returns all discounts for the account, including inactive ones.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a discount

Creates a new discount.

Authorizations:
Bearer
Request Body schema: application/json
discount_name
required
string

The name of the discount

discountGroup_id
required
integer

The id of the discount group

discount_unit
required
string
Enum: "percent" "currency" "custom"

The unit of the discount

discount_order
integer

The order of the discount

discount_description
string

The description of the discount

discount_active
boolean

Whether the discount is active or not

discount_value
required
string

The value of the discount

Responses

Request samples

Content type
application/json
{
  • "discount_name": "Discount",
  • "discountGroup_id": 116,
  • "discount_unit": "custom",
  • "discount_order": 9999,
  • "discount_description": "A discount description",
  • "discount_active": true,
  • "discount_value": 30
}

Response samples

Content type
application/json
{
  • "discount_id": 123,
  • "discount_name": "Discount",
  • "discount_description": "A discount description",
  • "discount_value": 30,
  • "discount_unit": "custom",
  • "discount_active": true,
  • "discount_order": 0,
  • "discountGroup_id": 116,
  • "discount_created_at": "2018-12-20 11:00:00",
  • "discount_updated_at": "2018-12-20 11:15:00"
}

Get a discount

Returns a single discount by its ID.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "discount_id": 123,
  • "discount_name": "Discount",
  • "discount_description": "A discount description",
  • "discount_value": 30,
  • "discount_unit": "custom",
  • "discount_active": true,
  • "discount_order": 0,
  • "discountGroup_id": 116,
  • "discount_created_at": "2018-12-20 11:00:00",
  • "discount_updated_at": "2018-12-20 11:15:00"
}

Update a discount

Updates an existing discount.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
discount_name
string

The name of the discount

discountGroup_id
integer

The id of the discount group

discount_unit
string
Enum: "percent" "currency" "custom"

The unit of the discount

discount_order
integer

The order of the discount

discount_description
string

The description of the discount

discount_active
boolean

Whether the discount is active or not

discount_value
string

The value of the discount

Responses

Request samples

Content type
application/json
{
  • "discount_name": "Discount",
  • "discountGroup_id": 116,
  • "discount_unit": "custom",
  • "discount_order": 9999,
  • "discount_description": "A discount description",
  • "discount_active": true,
  • "discount_value": 30
}

Response samples

Content type
application/json
{
  • "discount_id": 123,
  • "discount_name": "Discount",
  • "discount_description": "A discount description",
  • "discount_value": 30,
  • "discount_unit": "custom",
  • "discount_active": true,
  • "discount_order": 0,
  • "discountGroup_id": 116,
  • "discount_created_at": "2018-12-20 11:00:00",
  • "discount_updated_at": "2018-12-20 11:15:00"
}

Delete a discount

Deletes a discount.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Discount was successfully deleted!"
}

Discount Group

Discount groups organise discounts into named collections. Every discount must belong to a group, so you need at least one group before you can create discounts.

Setting discountGroup_active to false hides all discounts in the group at the POS, which is useful for seasonal or temporarily suspended promotions.

A group cannot be deleted while it still contains discounts. Delete or move the discounts out of the group first.

List discount groups

Returns all discount groups for the account, including inactive ones.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a discount group

Creates a new discount group. You need at least one group before you can create discounts.

Authorizations:
Bearer
Request Body schema: application/json
discountGroup_description
string

The description of the discount group

discountGroup_active
boolean

Whether the discount group is active or not

discountGroup_name
required
string

The name of the discount group

Responses

Request samples

Content type
application/json
{
  • "discountGroup_description": "description example",
  • "discountGroup_active": true,
  • "discountGroup_name": "Sales"
}

Response samples

Content type
application/json
{
  • "discountGroup_id": 74890,
  • "discountGroup_name": "Barzahlung",
  • "discountGroup_description": "just a description",
  • "discountGroup_active": true
}

Get a discount group

Returns a single discount group by its ID.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "discountGroup_id": 74890,
  • "discountGroup_name": "Barzahlung",
  • "discountGroup_description": "just a description",
  • "discountGroup_active": true
}

Update a discount group

Updates an existing discount group.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
discountGroup_description
string

The description of the discount group

discountGroup_active
boolean

Whether the discount group is active or not

discountGroup_name
string

The name of the discount group

Responses

Request samples

Content type
application/json
{
  • "discountGroup_description": "description example",
  • "discountGroup_active": true,
  • "discountGroup_name": "Sales"
}

Response samples

Content type
application/json
{
  • "discountGroup_id": 74890,
  • "discountGroup_name": "Barzahlung",
  • "discountGroup_description": "just a description",
  • "discountGroup_active": true
}

Delete a discount group

Deletes a discount group. Fails if the group still contains discounts; delete or reassign those first.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "DiscountGroup was successfully deleted!"
}

Customer

List all Customers

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Customer

Authorizations:
Bearer
Request Body schema: application/json
customerCategory_id
required
integer
birthday
string
city
string
company
string
email
string
firstName
string
lastName
string
customer_name
string
notes
string
customer_number
integer
phone
string
salutation
string
street
string
title
string
uid
string
zip
string
Array of items

Responses

Request samples

Content type
application/json
{
  • "customerCategory_id": 1126,
  • "birthday": "1991-09-20",
  • "city": "Wien",
  • "company": "Maxi Gmbh",
  • "email": "example@ready2order.com",
  • "firstName": "Max",
  • "lastName": "Muster",
  • "customer_name": "string",
  • "notes": "Some custom notes",
  • "customer_number": 9999,
  • "phone": "+43 12345678",
  • "salutation": "Herr",
  • "street": "Straße 1",
  • "title": "Herr",
  • "uid": "ATU1234567",
  • "zip": 1030,
  • "address": [
    ]
}

Response samples

Content type
application/json
{
  • "customer_id": 9999,
  • "customer_number": 9999,
  • "customer_name": "Maxi's custom name",
  • "vatId": "ATU1234567",
  • "customer_notes": "Some custom notes",
  • "customerCategory_id": 9999,
  • "customer_birthday": "1991-09-20",
  • "address": [
    ]
}

Find Customer by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Customer ID to find

Responses

Response samples

Content type
application/json
{
  • "customer_id": 9999,
  • "customer_number": 9999,
  • "customer_name": "Maxi's custom name",
  • "vatId": "ATU1234567",
  • "customer_notes": "Some custom notes",
  • "customerCategory_id": 9999,
  • "customer_birthday": "1991-09-20",
  • "address": [
    ]
}

Update Customer by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Customer ID to update

Request Body schema: application/json
customerCategory_id
integer
birthday
string
city
string
company
string
email
string
firstName
string
lastName
string
customer_name
string
notes
string
customer_number
integer
phone
string
salutation
string
street
string
title
string
uid
string
zip
string
Array of items

Responses

Request samples

Content type
application/json
{
  • "customerCategory_id": 1126,
  • "birthday": "1991-09-20",
  • "city": "Wien",
  • "company": "Maxi Gmbh",
  • "email": "example@ready2order.com",
  • "firstName": "Max",
  • "lastName": "Muster",
  • "customer_name": "string",
  • "notes": "Some custom notes",
  • "customer_number": 9999,
  • "phone": "+43 12345678",
  • "salutation": "Herr",
  • "street": "Straße 1",
  • "title": "Herr",
  • "uid": "ATU1234567",
  • "zip": 1030,
  • "address": [
    ]
}

Response samples

Content type
application/json
{
  • "customer_id": 9999,
  • "customer_number": 9999,
  • "customer_name": "Maxi's custom name",
  • "vatId": "ATU1234567",
  • "customer_notes": "Some custom notes",
  • "customerCategory_id": 9999,
  • "customer_birthday": "1991-09-20",
  • "address": [
    ]
}

Delete Customer by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Customer ID to delete

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Customer was successfully deleted!"
}

Merge Customers

Authorizations:
Bearer
Request Body schema: application/json
masterCustomer
required
integer

Customer into which the list of customerIds should be merged into.

customerIds
required
Array of integers

List of customers which shall be merged into masterCustomer.

Responses

Request samples

Content type
application/json
{
  • "masterCustomer": 5924,
  • "customerIds": [
    ]
}

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Merged successfully!"
}

Order

List all Orders

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

groupBy
string
Enum: "table_id" "product_id"
Example: groupBy=table_id

allowed values: table_id or product_id or both

trainingsMode
string
Enum: "0" "1" "true" "false"
Example: trainingsMode=true

retrieve results for trainingsMode or liveMode

table_id
integer
Example: table_id=123

table id

product_id
integer
Example: product_id=123

product id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Order

Authorizations:
Bearer
Request Body schema: application/json
table_id
required
integer

Table on which the orders are booked

price_base
string
Enum: "0" "1" "brutto" "netto" "gross" "net"

'gross' or 'net'

training_mode
boolean

Whether to place the order in training- or normal-mode

required
Array of objects

List of items

Responses

Request samples

Content type
application/json
{
  • "table_id": 1234,
  • "price_base": "gross",
  • "training_mode": false,
  • "items": [ ]
}

Response samples

Content type
application/json
[
  • {
    }
]

Transfer

Transfers unbilled order items from one table to another.
Pass specific order_ids to transfer a subset, or omit the field to transfer all unbilled items on the source table.

Authorizations:
Bearer
Request Body schema: application/json
source_table_id
required
integer

ID of the table to transfer order items from

target_table_id
required
integer

ID of the table to transfer order items to

target_order_group_id
required
integer

Order group on the target table to assign transferred items to

target_order_group_name
string

Name of the target order group (optional)

order_ids
Array of integers

IDs of the specific order items to transfer. Omit or pass an empty array to transfer every unbilled item on the source table.

training_mode
boolean

Whether to operate in training mode

Responses

Request samples

Content type
application/json
{
  • "source_table_id": 10,
  • "target_table_id": 20,
  • "target_order_group_id": 1,
  • "target_order_group_name": "Group A",
  • "order_ids": [
    ],
  • "training_mode": false
}

Response samples

Content type
application/json
[
  • {
    }
]

Table

List all Tables

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Table

Authorizations:
Bearer
Request Body schema: application/json
table_name
required
string
table_isTemporay
boolean
table_checkoutMode
boolean
table_order
integer
table_description
string
tableArea_id
integer

Responses

Request samples

Content type
application/json
{
  • "table_name": 1234,
  • "table_isTemporay": true,
  • "table_checkoutMode": false,
  • "table_order": 1,
  • "table_description": 1234,
  • "tableArea_id": 1
}

Response samples

Content type
application/json
{
  • "table_id": 1234,
  • "table_name": 1234,
  • "table_description": 1234,
  • "table_isTemporay": true,
  • "table_order": 1,
  • "table_checkoutMode": false,
  • "tableArea_id": 1,
  • "table_created_at": "2019-01-01 12:12:12",
  • "table_updated_at": "2019-01-01 12:12:12"
}

Find Table by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "table_id": 1234,
  • "table_name": 1234,
  • "table_description": 1234,
  • "table_isTemporay": true,
  • "table_order": 1,
  • "table_checkoutMode": false,
  • "tableArea_id": 1,
  • "table_created_at": "2019-01-01 12:12:12",
  • "table_updated_at": "2019-01-01 12:12:12"
}

Update Table by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
table_name
string
table_isTemporay
boolean
table_checkoutMode
boolean
table_order
integer
table_description
string
tableArea_id
integer

Responses

Request samples

Content type
application/json
{
  • "table_name": 1234,
  • "table_isTemporay": true,
  • "table_checkoutMode": false,
  • "table_order": 1,
  • "table_description": 1234,
  • "tableArea_id": 1
}

Response samples

Content type
application/json
{
  • "table_id": 1234,
  • "table_name": 1234,
  • "table_description": 1234,
  • "table_isTemporay": true,
  • "table_order": 1,
  • "table_checkoutMode": false,
  • "tableArea_id": 1,
  • "table_created_at": "2019-01-01 12:12:12",
  • "table_updated_at": "2019-01-01 12:12:12"
}

Delete Table by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Table was deleted successfully."
}

Table Area

List all Table Areas

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Table Area

Authorizations:
Bearer
Request Body schema: application/json
tableArea_name
required
string

Table name

tableArea_shortName
string

Table area short name

tableArea_order
string

Table area order number (sorting)

tableArea_allowTemporaryTables
boolean

Allow temporary tables

tableArea_active
boolean

Table is active

Responses

Request samples

Content type
application/json
{
  • "tableArea_name": "innen 1",
  • "tableArea_shortName": "IN-1",
  • "tableArea_order": 1,
  • "tableArea_allowTemporaryTables": true,
  • "tableArea_active": true
}

Response samples

Content type
application/json
{
  • "tableArea_id": 1234,
  • "tableArea_name": "innen 1",
  • "tableArea_shortName": "IN-1",
  • "tableArea_order": 1,
  • "tableArea_allowTemporaryTables": true,
  • "tableArea_active": true,
  • "tableArea_intelligentFavourites": 1
}

Find Table Area by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "tableArea_id": 1234,
  • "tableArea_name": "innen 1",
  • "tableArea_shortName": "IN-1",
  • "tableArea_order": 1,
  • "tableArea_allowTemporaryTables": true,
  • "tableArea_active": true,
  • "tableArea_intelligentFavourites": 1
}

Update Table Area by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Request Body schema: application/json
tableArea_name
required
string

Table name

tableArea_shortName
string

Table area short name

tableArea_order
string

Table area order number (sorting)

tableArea_allowTemporaryTables
boolean

Allow temporary tables

tableArea_active
boolean

Table is active

Responses

Request samples

Content type
application/json
{
  • "tableArea_name": "innen 1",
  • "tableArea_shortName": "IN-1",
  • "tableArea_order": 1,
  • "tableArea_allowTemporaryTables": true,
  • "tableArea_active": true
}

Response samples

Content type
application/json
{
  • "tableArea_id": 1234,
  • "tableArea_name": "innen 1",
  • "tableArea_shortName": "IN-1",
  • "tableArea_order": 1,
  • "tableArea_allowTemporaryTables": true,
  • "tableArea_active": true,
  • "tableArea_intelligentFavourites": 1
}

Delete Table Area by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "TableArea was successfully deleted!"
}

Printer

Printers represent the physical printing devices registered to an account — including receipt printers, mobile printers, and all-in-one terminals. They are configured through the ready2order POS or dashboard; the public API is read-only except for triggering a test print.

Fields

Field Description
printer_id System-assigned unique identifier for the printer
printer_name The name assigned to the printer in the account settings
printer_description Optional free-text description
printer_deviceName The OS-level device name used to address the printer
printer_model The hardware model, for example TM-T20II or mC-Print3
printer_manufacturer The manufacturer, for example epson or star
printer_ipAddress Deprecated. The connection address for the printer: an IP address for network printers, a MAC address for Bluetooth, a device path (e.g. /dev/usb/lp0) for USB, or ready2print for OS-managed printers. null if not yet configured
printer_characters The number of characters per printed line, which determines print width
printer_doubleHeight Whether characters are printed at double height
printer_createdAt Timestamp when the printer record was created

Printer profiles

A printer profile (see Printer Profile) is a named logical slot that sits between your POS configuration and a physical printer. Assigning print jobs to a profile rather than to a printer directly means you can swap out hardware without reconfiguring the rest of the system. Each profile lists the physical printer IDs it currently maps to in printingProfile_associatedPhysicalPrinterIds.

Cash drawer

Some printers support opening a connected cash drawer via an RJ11 kick signal. This is configured per printer in the account settings. See the create bill endpoint for how to trigger it via the API.

List printers

Returns all printers registered to the account.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a printer

Returns a single printer by its ID.

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Printer ID to find

Responses

Response samples

Content type
application/json
{
  • "printer_id": 123,
  • "printer_name": "kitchen printer",
  • "printer_description": "kitchen printer",
  • "printer_deviceName": "EPSON-TM-T88V",
  • "printer_model": "TM-T20II",
  • "printer_manufacturer": "EPSON",
  • "printer_ipAddress": "192.168.0.1",
  • "printer_characters": 42,
  • "printer_doubleHeight": true,
  • "printer_createdAt": "2019-01-01 11:11:11"
}

Send a test print

Sends a test page to the account's configured default printer. If no default printer is configured, the test is sent to all printers on the account.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": true,
  • "success": false,
  • "msg": "Printer not found"
}

Printer Profile

A printer profile is a named stand-in for a physical printer. The POS targets profiles by name rather than by hardware ID, so you can replace a physical printer in the account settings without any change to your POS configuration.

Each profile can be linked to one or more physical printers. When a job targets a profile, all linked printers receive it simultaneously. The IDs of the linked printers are returned in printingProfile_associatedPhysicalPrinterIds.

Fields

Field Description
printingProfile_id System-assigned unique identifier for the printer profile
printingProfile_name The name assigned to this profile, for example Kitchen or Bar
printingProfile_associatedPhysicalPrinterIds The physical printers currently linked to this profile

List printer profiles

Returns all printer profiles for the account, including the IDs of the physical printers currently assigned to each profile.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Print Job

Get Not Printed

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new Print Job

Authorizations:
Bearer
Request Body schema: application/json
printJob_content
string
printJob_imageURL
string
printJob_printLogo
required
boolean
printer_id
integer

Responses

Request samples

Content type
application/json
{
  • "printJob_content": "string",
  • "printJob_imageURL": "string",
  • "printJob_printLogo": false,
  • "printer_id": 9999
}

Response samples

Content type
application/json
{
  • "printJob_id": 9999,
  • "printer_id": 9999,
  • "printJob_imageURL": "string",
  • "printJob_printLogo": false,
  • "printJob_createdAt": "string",
  • "printJob_printedAt": "string",
  • "printJob_content": "string"
}

Delete Print Job by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Customer ID to find

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Customer was successfully deleted!"
}

Terminal Transaction

Init

Authorizations:
Bearer
path Parameters
identifier
required
string
Value: "readyPay"
Example: readyPay

Unique identifier for the terminal transaction

Request Body schema: application/json
invoiceData
required
string
paymentDeviceId
required
integer

Responses

Request samples

Content type
application/json
{
  • "invoiceData": "string",
  • "paymentDeviceId": 9999
}

Response samples

Content type
application/json
{
  • "txId": "87419301-3532-416a-8252-1ad700e7b34d",
  • "status": "processing",
  • "result": "success",
  • "amount": 230,
  • "billId": 4231
}

Trigger Bill Creation

Authorizations:
Bearer
path Parameters
txId
required
string
Example: 87419301-3532-416a-8252-1ad700e7b34d

UUID of the terminal transaction

Responses

Response samples

Content type
application/json
{
  • "txId": "87419301-3532-416a-8252-1ad700e7b34d",
  • "status": "processing",
  • "result": "success",
  • "amount": 230,
  • "billId": 4231
}

Status

Authorizations:
Bearer
path Parameters
txId
required
string
Example: 87419301-3532-416a-8252-1ad700e7b34d

UUID of the terminal transaction

Responses

Response samples

Content type
application/json
{
  • "txId": "87419301-3532-416a-8252-1ad700e7b34d",
  • "status": "processing",
  • "result": "success",
  • "amount": 230,
  • "billId": 4231
}

Abort

Authorizations:
Bearer
path Parameters
txId
required
string
Example: 87419301-3532-416a-8252-1ad700e7b34d

ID of the terminal transaction to abort

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Cancelled successfully",
  • "result": "aborted-while-waiting"
}

User

List all Users

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a new User

Authorizations:
Bearer
Request Body schema: application/json
user_username
required
string
user_password
required
string
user_firstName
string
user_lastName
string
user_trainingsMode
boolean
user_printer
integer
user_printAccess
integer
right_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "user_username": "christoph@email.com",
  • "user_password": "StrongPassword123!",
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_trainingsMode": true,
  • "user_printer": 123,
  • "user_printAccess": 2457,
  • "right_id": 1234
}

Response samples

Content type
application/json
{
  • "user_id": 1234,
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_username": "christoph@some-email.com",
  • "user_printAccess": 1234,
  • "user_printer": 15,
  • "user_lastActionAt": "2018-11-05 01:23:45",
  • "user_lastLoginAt": "2018-11-05 01:23:45",
  • "user_trainingsMode": true,
  • "right_id": 1234
}

Find User by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

User ID to find

Responses

Response samples

Content type
application/json
{
  • "user_id": 1234,
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_username": "christoph@some-email.com",
  • "user_printAccess": 1234,
  • "user_printer": 15,
  • "user_lastActionAt": "2018-11-05 01:23:45",
  • "user_lastLoginAt": "2018-11-05 01:23:45",
  • "user_trainingsMode": true,
  • "right_id": 1234
}

Update User by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

User ID to update

Request Body schema: application/json
user_username
string
user_password
string
user_firstName
string
user_lastName
string
user_trainingsMode
boolean
user_printer
integer
user_printAccess
integer
right_id
required
integer

Responses

Request samples

Content type
application/json
{
  • "user_username": "christoph@email.com",
  • "user_password": "StrongPassword123!",
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_trainingsMode": true,
  • "user_printer": 123,
  • "user_printAccess": 2457,
  • "right_id": 1234
}

Response samples

Content type
application/json
{
  • "user_id": 1234,
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_username": "christoph@some-email.com",
  • "user_printAccess": 1234,
  • "user_printer": 15,
  • "user_lastActionAt": "2018-11-05 01:23:45",
  • "user_lastLoginAt": "2018-11-05 01:23:45",
  • "user_trainingsMode": true,
  • "right_id": 1234
}

Delete User by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

User ID to delete

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "User was successfully deleted!"
}

Update Password By Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1234

User ID to update password

Request Body schema: application/json
user_password
required
string

Responses

Request samples

Content type
application/json
{
  • "user_password": "StrongPassword123!"
}

Response samples

Content type
application/json
{
  • "user_id": 1234,
  • "user_firstName": "Christoph",
  • "user_lastName": "Müller",
  • "user_username": "christoph@some-email.com",
  • "user_printAccess": 1234,
  • "user_printer": 15,
  • "user_lastActionAt": "2018-11-05 01:23:45",
  • "user_lastLoginAt": "2018-11-05 01:23:45",
  • "user_trainingsMode": true,
  • "right_id": 1234
}

Get Sign In Token

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

User ID to generate token

query Parameters
expiresIn
integer
Example: expiresIn=60

Life-time of token (seconds)

Request Body schema: application/json
crmUserId
string

Responses

Request samples

Content type
application/json
{
  • "crmUserId": "string"
}

Response samples

Content type
application/json
{}

User Roles

List all User Roles

Authorizations:
Bearer
query Parameters
page
integer
Example: page=1

Page you want to display

limit
integer
Example: limit=25

Items per page

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Daily Report

A daily report represents a business day at the point of sale. Opening one starts a new sales period; closing it finalises the day's transactions and triggers the end-of-day summary.

Only one daily report can be open at a time. Closing is required before the next day can be opened.

Open daily report

Opens a new daily report. Fails if one is already open.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Day was opened successfully."
}

Close daily report

Closes the currently open daily report and finalises the day's transactions. Fails if no report is open.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Day was closed successfully."
}

Get daily report status

Returns whether a daily report is currently open.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "success",
  • "status": "open"
}

Accounting Financial Year

List all Accounting Financial Years

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Accounting Financial Year by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1

ID to find

Responses

Response samples

Content type
application/json
{
  • "accountingFinancialYear_id": 1,
  • "accountingFinancialYear_number": 477415141,
  • "accountingFinancialYear_active": false,
  • "accountingFinancialYear_trunkYear": false
}

Export

Export Cashbook

Authorizations:
Bearer
query Parameters
dateFrom
required
string
Example: dateFrom=2021-08-01
dateTo
required
string
Example: dateTo=2021-08-31
fileFormat
required
string
Enum: "excel" "pdf"
Example: fileFormat=pdf

Responses

Response samples

Content type
application/json
{
  • "jobStatus_id": 123,
  • "jobStatus_status": "finished",
  • "jobStatus_startedAt": "2019-08-02 08:08:13",
  • "jobStatus_finishedAt": "2019-08-02 08:08:14"
}

Export Accountancy

Authorizations:
Bearer
query Parameters
format
required
string
Example: format=datev

Use one of the possible export formats: bmd, bmd-ntcs, datev, sap, rzl

year
integer
Example: year=2019

Year for which the export should be generated (optional)

month
integer
Example: month=1

Month for which the export should be generated (optional)

day
integer
Example: day=31

Day for which the export should be generated (optional)

exportCashbook
boolean
Example: exportCashbook=true

Whether to include cashbook transactions in the export

dataSource
required
string
Example: dataSource=invoice

Type of data-aggregation to use. Possible value are: invoice, eachItem, dailyReport_productGroups, dailyReport_accountingCode

financialYear
integer
Example: financialYear=2019

If format is datev the number of the financialYear has to be provided. See GET /accounting/financialYears

* Required when format is datev.

from
string
Example: from=2019-01-01

If format is datev the start date of the financialYear has to be provided. See GET /accounting/financialYears

* Required when financialYear is provided.

to
string
Example: to=2019-12-31

If format is datev the end date of the financialYear has to be provided. See GET /accounting/financialYears

* Required when financialYear is provided.

Responses

Response samples

Content type
application/json
{}

Export Cashbook

Authorizations:
Bearer
query Parameters
year
integer
Example: year=2019
month
integer
Example: month=1
day
integer
Example: day=31
dateFrom
string
Example: dateFrom=2021-08-01



* Required when dateTo is provided.

dateTo
string
Example: dateTo=2021-08-31



* Required when dateFrom is provided.

Responses

Response samples

Content type
application/json
{}

Export Sales

Authorizations:
Bearer
Request Body schema: application/json
month
required
integer
year
required
integer
filter
Array of integers

Filter your data

Responses

Request samples

Content type
application/json
{
  • "month": 1,
  • "year": 2019,
  • "filter": [
    ]
}

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "success",
  • "jobStatus_id": 123
}

Bill Type

List all Bill Types

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Bill Type by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "billType_id": 1,
  • "billType_name": "Rechnung",
  • "billType_symbol": "RG"
}

Customer Group

Get All Customer Groups

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create Customer Group

Authorizations:
Bearer
Request Body schema: application/json
customerCategory_name
required
string
customerCategory_description
string

Responses

Request samples

Content type
application/json
{
  • "customerCategory_name": "string",
  • "customerCategory_description": "string"
}

Response samples

Content type
application/json
{
  • "customerCategory_id": 123,
  • "customerCategory_name": "a customer group",
  • "customerCategory_description": "a customer group description"
}

Get Customer Group By Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

Customer Group ID to find

Responses

Response samples

Content type
application/json
{
  • "customerCategory_id": 123,
  • "customerCategory_name": "a customer group",
  • "customerCategory_description": "a customer group description"
}

Update Customer Group

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Customer Group ID to update

Request Body schema: application/json
customerCategory_name
required
string
customerCategory_description
string

Responses

Request samples

Content type
application/json
{
  • "customerCategory_name": "string",
  • "customerCategory_description": "string"
}

Response samples

Content type
application/json
{
  • "customerCategory_id": 123,
  • "customerCategory_name": "a customer group",
  • "customerCategory_description": "a customer group description"
}

Delete Customer Group

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 12345

Customer Group ID to delete

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "CustomerCategory was successfully deleted."
}

Currency

Get Currencies

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get Currency

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123

Currency ID to find

Responses

Response samples

Content type
application/json
{
  • "currency_id": 1,
  • "currency_name": "Euro",
  • "currency_short": "EUR"
}

Country

List all Countries

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Country by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123

Country id to find

Responses

Response samples

Content type
application/json
{
  • "country_id": 123,
  • "country_code": "AT",
  • "country_name": "Austria"
}

Device

Device

List

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "id": 9999,
  • "name": "string",
  • "configuredForReadyPayCloudPayments": false
}

Language

List all Languages

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Language by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1

Language ID to find

Responses

Response samples

Content type
application/json
{
  • "language_id": 1,
  • "language_name": "label_en",
  • "language_code": "en",
  • "language_locale": "en_US"
}

Legal Form

List all Legal Forms

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Find Legal Form by Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 1

Legal Form ID to find

Responses

Response samples

Content type
application/json
{
  • "legalForm_id": 1,
  • "legalForm_name": "GmbH",
  • "legalForm_identifier": "gmbh",
  • "legalForm_country_id": 1
}

Units

Units

List all Units

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Vat Rate

VAT rates define the tax percentages available for the account. When creating or updating a product, you can reference a VAT rate by its vat_id via product_vat_id, or pass the percentage directly as product_vat.

List VAT rates

Returns all VAT rates configured for the account.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Account Token

Account Token

Revoke Account Token

This endpoint can be used to revoke the currently used API Account Token.

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "error": false,
  • "success": true,
  • "msg": "Access was revoked successfully"
}

Grant Access Token

Create Grant Access Token

Authorizations:
Bearer
Request Body schema: application/json
authorizationCallbackUri
string

The callback to which the merchant will be redirected if access will be granted.

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get Grant Access Token Status

Authorizations:
Bearer
path Parameters
token
required
string
Example: your-token-to-check

Grant-access token

Responses

Response samples

Content type
application/json
{
  • "status": "pending, expired, granted, denied"
}

Webhook

Webhooks push events to your application automatically — no polling required.

Available Events

Event Description Payload
coupon.created A new voucher or gift card is issued Full object
coupon.updated A voucher's properties change (value, validity, linked customer, etc.) Full object
couponTransaction.created A transaction is recorded on a voucher (charge, redeem, correction, bonus, payout) Full transaction object
customer.created A new customer profile is added to the account Full object
customer.updated A customer profile's details are updated (name, address, contact info, etc.) Full object
customer.deleted A customer profile is deleted from the account Resource ID
invoice.created An invoice or receipt is finalised — also fires for the storno document when an invoice is cancelled Full object
invoice.cancelled Fired for the original invoice when it is cancelled — use this to mark the original as cancelled in your system; use invoice.created to receive the storno document Full object
orderItem.created One or more items are placed on an open table order Resource IDs
orderItem.cancelled One or more open table order items are voided before billing Resource IDs
orderItem.transferred Open table order items are moved from one table to another Transfer metadata (source/target table, order IDs)
product.created A new product is added to the catalogue Full object
product.updated A product's details change — not triggered by product_sortIndex updates Full object
product.deleted A product is removed from the catalogue Resource ID
productGroup.created A new product category is created Full object
productGroup.updated A product category's properties change (name, description, sort order, etc.) Full object
productGroup.deleted A product category is removed Resource ID

Processing Webhooks

Respond to webhook requests with HTTP 202 and process the payload asynchronously in a background worker. This keeps your endpoint fast and avoids delivery failures from timeouts, which may trigger retries.

Setup

  1. Register your webhook URL
  2. Subscribe to events

Find

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{}

Update Webhook Url

Authorizations:
Bearer
Request Body schema: application/json
webhookUrl
required
string

Responses

Request samples

Content type
application/json
{
  • "webhookUrl": "string"
}

Response samples

Content type
application/json
{}

Find Webhook Events

Authorizations:
Bearer

Responses

Response samples

Content type
application/json
{
  • "activeEvents": "invoice.created",
  • "availableEvents": "[product.created, product.updated]"
}

Update Webhook Event

Authorizations:
Bearer
Request Body schema: application/json
addEvent
string



* Required if removeEvent is not provided.

removeEvent
string



* Required if addEvent is not provided.

Responses

Request samples

Content type
application/json
{
  • "addEvent": "string",
  • "removeEvent": "string"
}

Response samples

Content type
application/json
{
  • "error": true,
  • "success": false,
  • "msg": "Your now receiving webhooks for the event <name>"
}

Job Status

Get Status By Id

Authorizations:
Bearer
path Parameters
id
required
integer
Example: 123456

ID to find

Responses

Response samples

Content type
application/json
{
  • "jobStatus_id": 123,
  • "jobStatus_status": "finished",
  • "jobStatus_startedAt": "2019-08-02 08:08:13",
  • "jobStatus_finishedAt": "2019-08-02 08:08:14"
}