onlinebon API (2.0.0)

Download OpenAPI specification:

Onlinebon API allows consumers to manage their POS data of onlinebon.at.

API Versioning

The version of the endpoint you are requesting can be controlled by the api-version header:

api-version: 2
Version Released at
v1 01.03.2020
v2 01.01.2021

Test Environment

To test your implementation use the test environment at https://api-test.onlinebon.at

Authentication

Obtain and refresh access tokens

Exchange credentials for JWT

Request Body schema: application/json
required
username
required
string <email>
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "user@onlinebon.at",
  • "password": "your_password"
}

Response samples

Content type
application/json
{
  • "jwt": "eyJhbGciOiJIUzI1NiJ9.e30.XmNK3GpH3Ys_7wsYBfq4C3M6goz71I7dTgUkuIa5lyQ",
  • "expires_in": 300
}

Get SumUp access token

Returns a valid SumUp access token for the authenticated user's customer account. If the stored token is expired or about to expire (within 5 minutes), it is automatically refreshed using the stored refresh token.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "access_token": "sup_sk_abc123def456ghi789jkl012mno345pqr",
  • "expires_at": "2026-02-23T15:30:00.000Z"
}

User

User endpoints (v1 + v2)

Get logged-in user

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "status": true,
  • "email": "user@example.com",
  • "username": "string",
  • "role": "admin",
  • "created_at": "string",
  • "consents": [
    ],
  • "cashdesk": {
    },
  • "customer": {
    }
}

Get logged-in user

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "is_active": true,
  • "email": "user@example.com",
  • "username": "string",
  • "role": "admin",
  • "created_at": "string",
  • "active_session": {
    },
  • "sum_up": {
    },
  • "status": {
    },
  • "consents": [
    ],
  • "cashdesk": {
    },
  • "company": {
    }
}

Productgroups (v1)

v1 product group management

List product groups

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
parent
string
noparent
boolean
active
boolean
search
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product group

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
description
string
color
string
parent
string

Responses

Request samples

Content type
application/json
{
  • "name": "Arizona Cardinals",
  • "description": "string",
  • "color": "#cccccc",
  • "parent": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "sells": 0,
  • "color": "string",
  • "customer": {
    },
  • "parent": {
    }
}

Get product group count

Authorizations:
bearerAuth
query Parameters
parent
string
noparent
boolean
active
boolean
search
string

Responses

Response samples

Content type
application/json
0
0

Find product group by ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "sells": 0,
  • "color": "string",
  • "customer": {
    },
  • "parent": {
    }
}

Update a product group

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
name
string
active
boolean
description
string
color
string
parent
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "color": "string",
  • "parent": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "description": "string",
  • "active": true,
  • "sells": 0,
  • "color": "string",
  • "customer": {
    },
  • "parent": {
    }
}

List product groups (v2)

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
account
string

Account ID (admin only)

active
boolean
search
string
parent
string
noparent
boolean
business
string

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "count": 0,
  • "has_more": true,
  • "paginate": {
    }
}

Products

Product management (v1 + v2)

List products

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
productgroup
string
active
boolean
taxRate
number
quantityUnit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
Example: quantityUnit=pcs
search
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a product

Authorizations:
bearerAuth
Request Body schema: application/json
required
name
required
string
nominale
required
number
purchasePrice
number
productgroup
required
string
taxRate
required
number
ean
string
quantityUnit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
color
string
Array of objects (ProductConfiguration)
active
boolean
description
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "nominale": 0,
  • "purchasePrice": 0,
  • "productgroup": "string",
  • "taxRate": 0,
  • "ean": "string",
  • "quantityUnit": "pcs",
  • "color": "string",
  • "config": [
    ],
  • "active": true,
  • "description": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "nominale": 0,
  • "purchasePrice": 0,
  • "taxRate": 0,
  • "sells": 0,
  • "ean": "string",
  • "quantityUnit": "pcs",
  • "trackStock": true,
  • "stockCount": 0,
  • "config": [
    ],
  • "productgroup": {
    }
}

Get product count

Authorizations:
bearerAuth
query Parameters
productgroup
string
active
boolean
taxRate
number
customer
string
search
string

Responses

Response samples

Content type
application/json
0
0

Find product by ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "nominale": 0,
  • "purchasePrice": 0,
  • "taxRate": 0,
  • "sells": 0,
  • "ean": "string",
  • "quantityUnit": "pcs",
  • "trackStock": true,
  • "stockCount": 0,
  • "config": [
    ],
  • "productgroup": {
    }
}

Update a product

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
name
string
nominale
number
purchasePrice
number
ean
string
Array of objects (ProductConfiguration)
active
boolean
description
string
quantityUnit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
productgroup
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "nominale": 0,
  • "purchasePrice": 0,
  • "ean": "string",
  • "config": [
    ],
  • "active": true,
  • "description": "string",
  • "quantityUnit": "pcs",
  • "productgroup": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "name": "string",
  • "active": true,
  • "description": "string",
  • "nominale": 0,
  • "purchasePrice": 0,
  • "taxRate": 0,
  • "sells": 0,
  • "ean": "string",
  • "quantityUnit": "pcs",
  • "trackStock": true,
  • "stockCount": 0,
  • "config": [
    ],
  • "productgroup": {
    }
}

List products (v2)

Returns a paginated list of products with stock info if the stock-management feature is enabled.

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
account
string

Account ID (admin only)

active
boolean
search
string
productgroup
string
taxRate
number
quantityUnit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
Example: quantityUnit=pcs

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "count": 0,
  • "has_more": true,
  • "paginate": {
    }
}

Copy product catalog (admin only)

Copies the entire product catalog (productgroups and products) from one customer account to another. Admin-only.

Modes:

  • add: Merge catalogs – skip items that already exist in destination (idempotent)
  • clear: Replace catalog – delete ALL destination products before copying (destructive)
Authorizations:
bearerAuth
Request Body schema: application/json
required
sourceAccountId
required
string
destinationAccountId
required
string
mode
required
string
Enum: "add" "clear"

Responses

Request samples

Content type
application/json
{
  • "sourceAccountId": "string",
  • "destinationAccountId": "string",
  • "mode": "add"
}

Response samples

Content type
application/json
{
  • "success": true,
  • "summary": {
    },
  • "errors": [
    ],
  • "warnings": [
    ]
}

Payment Methods (v1)

v1 payment method listing

List payment methods

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Clients (v1)

v1 client management

List clients

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
firstname
string
lastname
string
email
string
company
string
active
boolean
city
string
country
string
plz
integer
search
string
search_email
string
name_exists
boolean

Find clients where both first- and lastname exist

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a client

Authorizations:
bearerAuth
Request Body schema: application/json
firstname
string
lastname
string
uid
string
email
string <email>
company
string
phone
string
prefix
string
birthday
string <date>
comments
string
street
string
plz
string
city
string
country
string

Responses

Request samples

Content type
application/json
{
  • "firstname": "string",
  • "lastname": "string",
  • "uid": "string",
  • "email": "user@example.com",
  • "company": "string",
  • "phone": "string",
  • "prefix": "string",
  • "birthday": "2019-08-24",
  • "comments": "string",
  • "street": "string",
  • "plz": "string",
  • "city": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "active": true,
  • "firstname": "string",
  • "lastname": "string",
  • "email": "user@example.com",
  • "company": "string",
  • "phone": "string",
  • "prefix": "string",
  • "uid": "string",
  • "birthday": "2019-08-24",
  • "comments": "string",
  • "address": {
    },
  • "customer": {
    }
}

Get client count

Authorizations:
bearerAuth
query Parameters
firstname
string
lastname
string
email
string
company
string
active
boolean
search
string

Responses

Response samples

Content type
application/json
0
0

Find client by ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "_id": "string",
  • "active": true,
  • "firstname": "string",
  • "lastname": "string",
  • "email": "user@example.com",
  • "company": "string",
  • "phone": "string",
  • "prefix": "string",
  • "uid": "string",
  • "birthday": "2019-08-24",
  • "comments": "string",
  • "address": {
    },
  • "customer": {
    }
}

Update a client

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
active
boolean
firstname
string
lastname
string
email
string <email>
company
string
phone
string
prefix
string
uid
string
birthday
string <date>
comments
string
street
string
plz
integer
city
string
country
string

Responses

Request samples

Content type
application/json
{
  • "active": true,
  • "firstname": "string",
  • "lastname": "string",
  • "email": "user@example.com",
  • "company": "string",
  • "phone": "string",
  • "prefix": "string",
  • "uid": "string",
  • "birthday": "2019-08-24",
  • "comments": "string",
  • "street": "string",
  • "plz": 0,
  • "city": "string",
  • "country": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "active": true,
  • "firstname": "string",
  • "lastname": "string",
  • "email": "user@example.com",
  • "company": "string",
  • "phone": "string",
  • "prefix": "string",
  • "uid": "string",
  • "birthday": "2019-08-24",
  • "comments": "string",
  • "address": {
    },
  • "customer": {
    }
}

Receipts (v2)

v2 receipt management

List receipts

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
search_serial
string
number
string
from
string <date>
until
string <date>
type
string
product_id
string
user_id
string

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "rows": [
    ],
  • "paginate": {
    }
}

Create a receipt

Creates a new receipt. When creating an ST (cancellation) receipt that references an original receipt with SumUp payments, the system will automatically attempt to refund all succeeded SumUp payment transactions.

Authorizations:
bearerAuth
Request Body schema: application/json
required
type
required
string
Enum: "RE" "ST" "KV"

RE=Invoice, ST=Cancellation (auto-refunds SumUp payments), KV=Cost estimation

client_id
string or null
required
object (ReceiptPaymentInput)
object (ReceiptDiscount)
required
Array of objects (ReceiptItemInput)
description
string
cancelled_receipt_id
string or null
object or null

Responses

Request samples

Content type
application/json
{
  • "type": "RE",
  • "client_id": "string",
  • "payment": {
    },
  • "discount": {
    },
  • "items": [
    ],
  • "description": "string",
  • "cancelled_receipt_id": "string",
  • "cost_estimation": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "RE_00000001",
  • "date": "string",
  • "description": "string",
  • "is_demo": true,
  • "rksv_id": 0,
  • "net": 0,
  • "gross": 0,
  • "type": {
    },
  • "created_by": {
    },
  • "discount": {
    },
  • "extras": {
    },
  • "payment": {
    },
  • "security": {
    },
  • "customer": {
    },
  • "invoicing_company": {
    },
  • "items": [
    ],
  • "taxes": [
    ],
  • "cost_estimation": {
    },
  • "cancelled_receipt": {
    }
}

Get receipt by ID

Authorizations:
bearerAuth
path Parameters
id
required
string
query Parameters
output
string
Default: "JSON"
Enum: "JSON" "HTML"

Response format: JSON or HTML

format
integer
Default: 58
Enum: 58 80

Receipt width in mm (58 or 80)

Responses

Response samples

Content type
{
  • "id": "string",
  • "number": "RE_00000001",
  • "date": "string",
  • "description": "string",
  • "is_demo": true,
  • "rksv_id": 0,
  • "net": 0,
  • "gross": 0,
  • "type": {
    },
  • "created_by": {
    },
  • "discount": {
    },
  • "extras": {
    },
  • "payment": {
    },
  • "security": {
    },
  • "customer": {
    },
  • "invoicing_company": {
    },
  • "items": [
    ],
  • "taxes": [
    ],
  • "cost_estimation": {
    },
  • "cancelled_receipt": {
    }
}

Cancel a receipt

Creates a cancellation (ST) receipt. Supports two modes:

  1. Automatic Refund (no payments body): mirrors original payments with negative amounts and auto-refunds via SumUp.
  2. Manual Refund (provide payments array): uses specified methods, skips SumUp auto-refund.
Authorizations:
bearerAuth
path Parameters
id
required
string
Example: 507f1f77bcf86cd799439011

The ID of the receipt to cancel

Request Body schema: application/json
required
Array of objects (CancellationPayment)

Omit for automatic refund. Provide for manual refund.

Responses

Request samples

Content type
application/json
Example
{ }

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "RE_00000001",
  • "date": "string",
  • "description": "string",
  • "is_demo": true,
  • "rksv_id": 0,
  • "net": 0,
  • "gross": 0,
  • "type": {
    },
  • "created_by": {
    },
  • "discount": {
    },
  • "extras": {
    },
  • "payment": {
    },
  • "security": {
    },
  • "customer": {
    },
  • "invoicing_company": {
    },
  • "items": [
    ],
  • "taxes": [
    ],
  • "cost_estimation": {
    },
  • "cancelled_receipt": {
    }
}

List differential tax items

Returns receipt items that have a purchase price (aw) set, used for differential taxation reporting.

Authorizations:
bearerAuth
query Parameters
from
string <date>
until
string <date>
cashdesk
string

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total": {
    }
}

Check receipt validity at BMF (admin only)

Verifies the receipt signature against the Austrian tax authority (BMF).

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "RE_00000001",
  • "date": "string",
  • "description": "string",
  • "is_demo": true,
  • "rksv_id": 0,
  • "net": 0,
  • "gross": 0,
  • "type": {
    },
  • "created_by": {
    },
  • "discount": {
    },
  • "extras": {
    },
  • "payment": {
    },
  • "security": {
    },
  • "customer": {
    },
  • "invoicing_company": {
    },
  • "items": [
    ],
  • "taxes": [
    ],
  • "cost_estimation": {
    },
  • "cancelled_receipt": {
    }
}

Send receipt via email

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
email
required
string <email>

Responses

Request samples

Content type
application/json
{
  • "email": "user@example.com"
}

Response samples

Content type
application/json
{
  • "success": true
}

Update a payment on a receipt

Authorizations:
bearerAuth
path Parameters
id
required
string
paymentId
required
string
Example: 507f1f77bcf86cd799439022
Request Body schema: application/json
status
string
info
string or null
deadline
integer or null

Responses

Request samples

Content type
application/json
{
  • "status": "string",
  • "info": "string",
  • "deadline": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "number": "RE_00000001",
  • "date": "string",
  • "description": "string",
  • "is_demo": true,
  • "rksv_id": 0,
  • "net": 0,
  • "gross": 0,
  • "type": {
    },
  • "created_by": {
    },
  • "discount": {
    },
  • "extras": {
    },
  • "payment": {
    },
  • "security": {
    },
  • "customer": {
    },
  • "invoicing_company": {
    },
  • "items": [
    ],
  • "taxes": [
    ],
  • "cost_estimation": {
    },
  • "cancelled_receipt": {
    }
}

Customers (v2)

v2 customer management

List customers

Authorizations:
bearerAuth
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
account
string

Account ID (admin only)

search
string
active
boolean

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "count": 0,
  • "has_more": true,
  • "paginate": {
    }
}

Get customer by ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "firstname": "string",
  • "lastname": "string",
  • "email": "user@example.com",
  • "active": true,
  • "company": "string",
  • "prefix": "string",
  • "phone": "string",
  • "address": {
    },
  • "birthday": "2019-08-24",
  • "receipt_count": 0,
  • "last_receipt": "2019-08-24T14:15:22Z",
  • "revenue": 0
}

Sessions (v2)

Cashdesk session management

List sessions

Authorizations:
bearerAuth
query Parameters
cashdesk
string

Cashdesk ID (required for admin users)

limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0
completion
string

Filter by completion status

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total_count": 0,
  • "has_more": true
}

Start a cashdesk session

Authorizations:
bearerAuth
Request Body schema: application/json
change_funds
integer

Change funds in eurocent

Responses

Request samples

Content type
application/json
{
  • "change_funds": 1000
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": true,
  • "started_at": "string",
  • "change_funds": 0,
  • "ended_at": "string",
  • "report_id": "string",
  • "user": {
    }
}

Get session by ID

Authorizations:
bearerAuth
path Parameters
id
required
string
query Parameters
output
string
Default: "JSON"
Enum: "JSON" "PDF" "FILE_URL"

Response format: JSON, PDF, or FILE_URL

Responses

Response samples

Content type
Example
{
  • "id": "string",
  • "active": true,
  • "started_at": "string",
  • "change_funds": 0,
  • "ended_at": "string",
  • "report_id": "string",
  • "user": {
    }
}

End a cashdesk session

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
end_session
required
boolean

Responses

Request samples

Content type
application/json
{
  • "end_session": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "active": true,
  • "started_at": "string",
  • "change_funds": 0,
  • "ended_at": "string",
  • "report_id": "string",
  • "user": {
    }
}

Orders (v2)

v2 order management

Create an order

Creates a new order with items and payments. The order is automatically executed and a receipt is generated.

Authorizations:
bearerAuth
Request Body schema: application/json
required
cashdesk_id
string or null

Required for admin users

client_id
string or null
required
Array of objects (OrderItem)
required
Array of objects (OrderPayment)

Responses

Request samples

Content type
application/json
{
  • "cashdesk_id": "507f1f77bcf86cd799439011",
  • "items": [
    ],
  • "payments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Get an order by ID

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Update an order

Update description, client, items, or add payments. Tracks changes in the order changelog.

  • Payments can only be added if the order has no existing payments.
  • When items is provided, it replaces all existing items.
Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
client_id
string or null
description
string or null
status
string
Enum: "payment_pending" "aborted"
Array of objects (OrderItem)
Array of objects (OrderPayment)

Responses

Request samples

Content type
application/json
{
  • "client_id": "string",
  • "description": "string",
  • "status": "payment_pending",
  • "items": [
    ],
  • "payments": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Add item to order

Adds a new item. Tracked in changelog with action='item_added'.

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
amount
required
number

Quantity with 2 decimal precision

amount_unit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
text
required
string
gross
required
integer

Gross price in eurocent

tax_rate
required
number
product_id
string or null
Array of objects or null (ItemDiscount)
aw
number or null

Purchase price / Wareneinsatz in eurocent

serial
string or null
infos
string or null
has_ura
boolean or null

Responses

Request samples

Content type
application/json
{
  • "amount": 3,
  • "amount_unit": "pcs",
  • "text": "New Product",
  • "gross": 2990,
  • "tax_rate": 20,
  • "product_id": "507f1f77bcf86cd799439013"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Update order item

Updates fields of an existing item. Tracked in changelog with action='item_updated'.

Authorizations:
bearerAuth
path Parameters
id
required
string
itemId
required
string
Example: 507f1f77bcf86cd799439016
Request Body schema: application/json
quantity
number
quantity_unit
string (QuantityUnit)
Enum: "kg" "g" "l" "ml" "m" "mm" "pcs" "km" "min"
name
string
gross
integer
tax_rate
number
product_id
string or null
Array of objects or null (ItemDiscountUpdate)
aw
number or null
serial
string or null
infos
string or null
has_ura
boolean or null

Responses

Request samples

Content type
application/json
{
  • "quantity": 0,
  • "quantity_unit": "pcs",
  • "name": "string",
  • "gross": 0,
  • "tax_rate": 0,
  • "product_id": "string",
  • "discounts": [
    ],
  • "aw": 0,
  • "serial": "string",
  • "infos": "string",
  • "has_ura": true
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Remove item from order

Removes an item. Tracked in changelog with action='item_removed'.

Authorizations:
bearerAuth
path Parameters
id
required
string
itemId
required
string
Example: 507f1f77bcf86cd799439016

Responses

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Add payment to order

Adds a payment. Tracked in changelog with action='payment_added'. Supports SumUp integration.

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
value
required
integer

Payment amount in cents

payment_method_id
required
string
due_days
integer or null
status
string (PaymentStatus)
Enum: "open" "processing" "succeeded" "failed" "aborted" "refunded"
info
string or null
provider
string or null
Value: "sumup"
object (SumUpPaymentData)

Responses

Request samples

Content type
application/json
{
  • "value": 5000,
  • "payment_method_id": "507f1f77bcf86cd799439015",
  • "due_days": 0,
  • "status": "open",
  • "info": "string",
  • "provider": "sumup",
  • "sumup": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Update payment in order

Updates an existing payment. Tracked in changelog with action='payment_updated'.

Authorizations:
bearerAuth
path Parameters
id
required
string
paymentId
required
string
Example: 507f1f77bcf86cd799439022
Request Body schema: application/json
value
integer
due_days
integer
status
string (PaymentStatus)
Enum: "open" "processing" "succeeded" "failed" "aborted" "refunded"
info
string
object (SumUpPaymentData)

Responses

Request samples

Content type
application/json
{
  • "value": 0,
  • "due_days": 0,
  • "status": "open",
  • "info": "string",
  • "sumup": {
    }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "receipt": {
    },
  • "status": "pending",
  • "reader_status": {
    },
  • "items": [
    ],
  • "payments": [
    ]
}

Menu Items (v2)

Navigation menu items

Get menu items for user

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "label": "string",
  • "accessableBy": [
    ],
  • "link": "string",
  • "children": [
    ]
}

Cashbooks (v2)

Cashbook management

Get cashbook balance

Authorizations:
bearerAuth
path Parameters
id
required
string

Responses

Response samples

Content type
application/json
{
  • "balance": 0,
  • "daily": 0
}

List cashbook entries

Authorizations:
bearerAuth
path Parameters
id
required
string
query Parameters
limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total_count": 0,
  • "has_more": true
}

Create a cashbook entry

Authorizations:
bearerAuth
path Parameters
id
required
string
Request Body schema: application/json
required
required
Array of objects
description
string or null
type
string
Enum: "betrieblich" "privat"
invoice
string or null
supplier
string or null

Responses

Request samples

Content type
application/json
{
  • "positions": [
    ],
  • "description": "string",
  • "type": "betrieblich",
  • "invoice": "string",
  • "supplier": "string"
}

Response samples

Content type
application/json
{
  • "_id": "string",
  • "number": 0,
  • "typ": "betrieblich",
  • "date": "2019-08-24T14:15:22Z",
  • "amount": 0,
  • "description": "string",
  • "balance": 0,
  • "createdBy": {
    }
}

Export cashbook entries

Returns a CSV or PDF export of cashbook entries for the given date range.

Authorizations:
bearerAuth
path Parameters
id
required
string
query Parameters
from
string <date>
until
string <date>
format
string
Default: "csv"
Enum: "csv" "pdf"

Responses

Response samples

Content type
application/json
{
  • "statusCode": 400,
  • "error": "Bad Request",
  • "message": "string"
}

Month Reports (v2)

Month report management

List month reports

Authorizations:
bearerAuth
query Parameters
cashdesk
string

Cashdesk ID (required for admin users)

limit
integer [ 1 .. 100 ]
Default: 20
offset
integer >= 0
Default: 0

Responses

Response samples

Content type
application/json
{
  • "rows": [
    ],
  • "total_count": 0,
  • "has_more": true
}

Create a month report

Authorizations:
bearerAuth
Request Body schema: application/json
required
month
required
integer [ 1 .. 12 ]
year
required
integer
cashdesk
string

Cashdesk ID (admin only)

Responses

Request samples

Content type
application/json
{
  • "month": 3,
  • "year": 2026,
  • "cashdesk": "string"
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "start": "2026-03-01 00:00:00",
  • "end": "2026-03-31 23:59:59",
  • "month": "2026-03",
  • "revenue": 0,
  • "createdAt": "2026-04-01 08:30:00"
}

Get month report by ID

Authorizations:
bearerAuth
path Parameters
id
required
string
query Parameters
output
string
Default: "JSON"
Enum: "JSON" "PDF" "FILE_URL"

Response format: JSON, PDF, or FILE_URL

Responses

Response samples

Content type
Example
{
  • "id": "string",
  • "start": "2026-03-01 00:00:00",
  • "end": "2026-03-31 23:59:59",
  • "month": "2026-03",
  • "revenue": 0,
  • "createdAt": "2026-04-01 08:30:00"
}