Connected Molecules Api API Reference
Welcome to the Connected Molecules API reference. The Connected Molecules API is organized around the
                  REST methodology, and it uses resource-oriented URLs, and common HTTP response codes to indicate API errors. All requests are authenticated using an access_token which can be obtained by calling POST /auth/login.
API Endpoint
https://api.connectedmolecules.com/Contact: partnerservice@connectedmolecules.com
Schemes: https
Version: 1.0.0
Authentication
bearerAuth
User
User Api
Login
It generates new access and refresh tokens for the user
- username: string
- password: string
Request Content-Types: application/json
Request Example
{
  "username": "string",
  "password": "string"
}
Successful operation
Missing parameters
Unauthorized. Returned when e-mail address is not confirmed
Response Content-Types: application/json
Response Example (201 Created)
{
  "access_token": "string",
  "refresh_token": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get authenticated user
Get the information of the current logged-in user.
successful operation
Unauthorized
Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer",
  "username": "string",
  "email": "string",
  "language": {
    "id": "integer",
    "name": "string",
    "address": "string",
    "postcode": "string",
    "city": "string",
    "country": "string",
    "activeShift": "integer",
    "latitude": "string",
    "longitude": "string",
    "placeId": "string",
    "timeZone": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  },
  "userGroup": {
    "id": "integer",
    "name": "string",
    "parent": "integer",
    "admin": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  },
  "createdAt": "string",
  "updatedAt": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Set new password
Set a new password after resetting it.
- token: string
- 
                        The token retrieved from the reset password email. 
- password: string
- 
                        The new password for the user. 
Request Content-Types: application/json
Request Example
{
  "token": "string",
  "password": "string"
}
Successful operation
Missing parameter
Response Content-Types: application/json
Response Example (200 OK)
{
  "access_token": "string",
  "refresh_token": "string"
}
Reset password
Reset password of user, request will also returned successful if user is not found.
- username: string
- email: string
Request Content-Types: application/json
Request Example
{
  "username": "string",
  "email": "string"
}
Successful operation
Missing parameter
Confirm/activate user
Activate and confirm the email-address of the user.
- token: string
- 
                        The token from the activation email. 
- password: string
- 
                        The new password of the user 
Request Content-Types: application/json
Request Example
{
  "token": "string",
  "password": "string"
}
Successful operation
Missing/invalid token or invalid password
Refresh access token
Refresh an expired access token.
- refresh_token: string
Request Content-Types: application/json
Request Example
{
  "refresh_token": "string"
}
Successful operation
Missing parameters
Unauthorized
NotFound
Response Content-Types: application/json
Response Example (200 OK)
{
  "access_token": "string",
  "refresh_token": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Check token
Verify if the access token is still valid
Successful operation
Missing parameter
Unauthorized
Response Content-Types: application/json
Response Example (200 OK)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new user
User object that needs to be added to the store
- username: string
- email: integer
- userGroup: integer
- language: integer
Request Content-Types: application/json
Request Example
{
  "username": "string",
  "email": "integer",
  "userGroup": "integer",
  "language": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find users
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "integer",
    "username": "string",
    "email": "string",
    "language": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of users
Response Content-Types: application/json
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one user
ID of the user
Successful operation
Bad Request
Unauthorized
Not Found
Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "integer",
  "username": "string",
  "email": "string",
  "language": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update user
User object that needs to be updated in the store
- username: string
- email: integer
- userGroup: integer
- language: integer
ID of the user
Request Content-Types: application/json
Request Example
{
  "username": "string",
  "email": "integer",
  "userGroup": "integer",
  "language": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove user
ID of the user
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate user's associations/collections
ID of user
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Content-Types: application/json
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Login as another user
The ID of the user to login as
successful operation
Missing parameter
Unauthorized
Response Content-Types: application/json
Response Example (200 OK)
{
  "access_token": "string",
  "refresh_token": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
User group
The user groups
Count the number of user groups
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find user groups
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "parent": "integer",
    "admin": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new user group
User group object that needs to be added to the store
- name: string
- parent: integer
- locations: integer[]
- 
                        integer 
- locationGroups: integer[]
- 
                        integer 
Request Example
{
  "name": "string",
  "parent": "integer",
  "locations": [
    "integer"
  ],
  "locationGroups": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove user group
ID of the user group
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one user group
ID of the user group
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "parent": "integer",
  "admin": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a user group
User group object that needs to be updated in the store
- name: string
- parent: integer
- locations: integer[]
- 
                        integer 
- locationGroups: integer[]
- 
                        integer 
ID of the user group
Request Example
{
  "name": "string",
  "parent": "integer",
  "locations": [
    "integer"
  ],
  "locationGroups": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the user groups this user group could be moved to
ID of user group
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "parent": "integer",
    "admin": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate user group's associations/collections
ID of user group
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine
The machines
Update houdini config
Houdini config that needt to be stored
- config: string
Request Example
{
  "config": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update all machines' configuration for the given filter
Update all machines' configuration for the given filter
- config: object
- 
                        - config: string
 
- wlan: object
- 
                        - mode: string
- ssid: string
- encryption: string
- encryptionKey: string
 
- apn: object
- 
                        - apn: string
 
- sharing: object
- 
                        - sharing: string
 
Request Example
{
  "config": {
    "config": "string"
  },
  "wlan": {
    "mode": "string",
    "ssid": "string",
    "encryption": "string",
    "encryptionKey": "string"
  },
  "apn": {
    "apn": "string"
  },
  "sharing": {
    "sharing": "string"
  }
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of machines
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine and group them per location
Get machine and group them per location
Successful operation
Unauthorized
Response Example (200 OK)
{
  "name": "string",
  "address": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "activeShift": "number",
  "latitude": "string",
  "longitude": "string",
  "placeId": "string",
  "timeZone": "string",
  "id": "number",
  "machines": [
    {
      "id": "integer",
      "name": "string",
      "hostname": "string",
      "gateway": "integer",
      "location": "integer",
      "machineModel": "integer",
      "machineType": "integer",
      "manufacturer": "integer",
      "lastRevenuetransaction": "integer",
      "lastLog": "integer",
      "lastIotevent": "integer",
      "tag": "string",
      "notes": "string",
      "virtualPrices": "integer",
      "active": "integer",
      "currency": "integer",
      "debtor": "integer",
      "logSynced": "integer",
      "revenuetransactionSynced": "integer",
      "ioteventSynced": "integer",
      "ruleSet": "string",
      "createdAt": "string (date-time-utc)",
      "updatedAt": "string (date-time-utc)"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Validate hostname
Check if the hostname is valid and is available.
(no description)
Successful operation
Unauthorized
Response Example (200 OK)
{
  "available": "boolean",
  "friendlyname": "string|undefined"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get alert observer's machines
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "hostname": "string",
    "gateway": "integer",
    "location": "integer",
    "machineModel": "integer",
    "machineType": "integer",
    "manufacturer": "integer",
    "lastRevenuetransaction": "integer",
    "lastLog": "integer",
    "lastIotevent": "integer",
    "tag": "string",
    "notes": "string",
    "virtualPrices": "integer",
    "active": "integer",
    "currency": "integer",
    "debtor": "integer",
    "logSynced": "integer",
    "revenuetransactionSynced": "integer",
    "ioteventSynced": "integer",
    "ruleSet": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get alertobservers based on widget id and status
The id of the widget
The status to find
Successful operation
Unauthorized
Not Found
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "error": "integer",
    "observer": "string",
    "occurs": "integer",
    "timer": "integer",
    "timerType": "integer",
    "alertGroup": "integer",
    "sentAt": "string (date-time)",
    "type": "string",
    "paymentMethod": "string",
    "openingHours": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine count(s) grouped by status for a given machineStatus widget
The id of the widget
The status to find
Successful operation
Unauthorized
Not Found
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "hostname": "string",
    "gateway": "integer",
    "location": "integer",
    "machineModel": "integer",
    "machineType": "integer",
    "manufacturer": "integer",
    "lastRevenuetransaction": "integer",
    "lastLog": "integer",
    "lastIotevent": "integer",
    "tag": "string",
    "notes": "string",
    "virtualPrices": "integer",
    "active": "integer",
    "currency": "integer",
    "debtor": "integer",
    "logSynced": "integer",
    "revenuetransactionSynced": "integer",
    "ioteventSynced": "integer",
    "ruleSet": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine count(s) grouped by status for a given machineStatus widget
The id of the widget
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "status": "string",
    "count": "integer"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the machines the user has access to, including the alert observers observing them
The id of the widget
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "status": "string",
    "count": "integer"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the number of machines/alertobserver the user has access to
The id of the widget
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of alertobservers on a machine
The id of the machine
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get alert observers
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "error": "integer",
    "observer": "string",
    "occurs": "integer",
    "timer": "integer",
    "timerType": "integer",
    "alertGroup": "integer",
    "sentAt": "string (date-time)",
    "type": "string",
    "paymentMethod": "string",
    "openingHours": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find machine
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "hostname": "string",
    "gateway": "integer",
    "location": "integer",
    "machineModel": "integer",
    "machineType": "integer",
    "manufacturer": "integer",
    "lastRevenuetransaction": "integer",
    "lastLog": "integer",
    "lastIotevent": "integer",
    "tag": "string",
    "notes": "string",
    "virtualPrices": "integer",
    "active": "integer",
    "currency": "integer",
    "debtor": "integer",
    "logSynced": "integer",
    "revenuetransactionSynced": "integer",
    "ioteventSynced": "integer",
    "ruleSet": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new machine or copy machine if source query params is passed
Machine object that needs to be added to the store
- name: string
- hostname: string
- location: integer
- machineModel: integer
- machineType: integer
- manufacturer: integer
- currency: integer
- debtor: integer
- tag: string
- virtualPrices: boolean
- active: boolean
- machineGroups: array
The id of the source machine to be copied (fields and assortment)
Request Example
{
  "name": "string",
  "hostname": "string",
  "location": "integer",
  "machineModel": "integer",
  "machineType": "integer",
  "manufacturer": "integer",
  "currency": "integer",
  "debtor": "integer",
  "tag": "string",
  "virtualPrices": "boolean",
  "active": "boolean",
  "machineGroups": "array"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one machine
ID of the machine
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "hostname": "string",
  "gateway": "integer",
  "location": "integer",
  "machineModel": "integer",
  "machineType": "integer",
  "manufacturer": "integer",
  "lastRevenuetransaction": "integer",
  "lastLog": "integer",
  "lastIotevent": "integer",
  "tag": "string",
  "notes": "string",
  "virtualPrices": "integer",
  "active": "integer",
  "currency": "integer",
  "debtor": "integer",
  "logSynced": "integer",
  "revenuetransactionSynced": "integer",
  "ioteventSynced": "integer",
  "ruleSet": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a machine
Machine object that needs to be updated
- name: string
- location: integer
- machineModel: integer
- machineType: integer
- manufacturer: integer
- currency: integer
- debtor: integer
- tag: string
- virtualPrices: boolean
- active: boolean
- machineGroups: integer[]
- 
                        integer 
ID of the machine
Request Example
{
  "name": "string",
  "location": "integer",
  "machineModel": "integer",
  "machineType": "integer",
  "manufacturer": "integer",
  "currency": "integer",
  "debtor": "integer",
  "tag": "string",
  "virtualPrices": "boolean",
  "active": "boolean",
  "machineGroups": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Sync one machine
ID of the machine
Successful operation
Bad Request
Unauthorized
Not Found
Service unavailable
Response Example (200 OK)
{
  "processed": "boolean",
  "details": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count unmapped error codes
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find unmapped error codes
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "errorProfile": "number",
  "code": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find unmapped error codes by machine
ID of the machine
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "errorProfile": "number",
  "code": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate machine's associations/collections
ID of machine
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find machines by user group
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "hostname": "string",
    "gateway": "integer",
    "location": "integer",
    "machineModel": "integer",
    "machineType": "integer",
    "manufacturer": "integer",
    "lastRevenuetransaction": "integer",
    "lastLog": "integer",
    "lastIotevent": "integer",
    "tag": "string",
    "notes": "string",
    "virtualPrices": "integer",
    "active": "integer",
    "currency": "integer",
    "debtor": "integer",
    "logSynced": "integer",
    "revenuetransactionSynced": "integer",
    "ioteventSynced": "integer",
    "ruleSet": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count vouchers
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine model
The machine models
Count the number of machine models
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find machine models
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "manufacturer": "integer",
    "machineType": "integer",
    "errorProfile": "integer",
    "image": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new machine model
Machine model object that needs to be added to the store
- name: string
- manufacturer: integer
- errorProfile: integer
- machineType: integer
Request Example
{
  "name": "string",
  "manufacturer": "integer",
  "errorProfile": "integer",
  "machineType": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one machine model
ID of the machine model
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "manufacturer": "integer",
  "machineType": "integer",
  "errorProfile": "integer",
  "image": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a machine model
Machine model object that needs to be updated in the store
- name: string
- manufacturer: integer
- errorProfile: integer
- machineType: integer
ID of the machine model
Request Example
{
  "name": "string",
  "manufacturer": "integer",
  "errorProfile": "integer",
  "machineType": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate machine model's associations/collections
ID of machine model
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine type
The machine types
Count the number of machine types
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find machine types
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "image": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new machine type
Machine type object that needs to be added to the store
- name: string
Request Example
{
  "name": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one machine type
ID of the machine type
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "image": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a machine type
Machine type object that needs to be updated in the store
- name: string
ID of the machine type
Request Example
{
  "name": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate machine type's associations/collections
ID of machine type
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Manufacturer
The manufacturers
Count the number of manufacturers
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find manufacturers
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new manufacturer
Manufacturer object that needs to be added to the store
- name: string
- machineTypes: integer[]
- 
                        integer 
Request Example
{
  "name": "string",
  "machineTypes": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one manufacturer
ID of the manufacturer
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a manufacturer
Manufacturer object that needs to be updated in the store
- name: string
- machineTypes: integer[]
- 
                        integer 
ID of the manufacturer
Request Example
{
  "name": "string",
  "machineTypes": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate manufacturer's associations/collections
ID of manufacturer
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine group
Organizes the machines into groups
Count the number of machine groups
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find machine groups
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new machine group
Machine group object that needs to be added to the store
- name: string
- machines: integer[]
- 
                        integer 
Request Example
{
  "name": "string",
  "machines": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one machine group
ID of the machine group
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a machine group
Machine group object that needs to be updated in the store
- name: string
- machines: integer[]
- 
                        integer 
ID of the machine group
Request Example
{
  "name": "string",
  "machines": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete a machine group
ID of the machine group
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate machine group's associations/collections
ID of machine group
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine config
The machines' gateway configuration
Update machine config
Config object that needs to be saved for the gateway
- config: string
Request Example
{
  "config": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update WLAN machine config
WLAN config object that needs to be saved for the gateway
- ssid: string
- wlanenc: string psk2+ccmp, psk, none
- wlankey: string
- wlanmode: string ap, sta
Request Example
{
  "ssid": "string",
  "wlanenc": "string",
  "wlankey": "string",
  "wlanmode": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update APN machine config
APN config object that needs to be saved for the gateway
- apn: string
Request Example
{
  "apn": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update sharing machine config
Sharing config object that needs to be saved for the gateway
- share: string none, 3g, wifi, net
Request Example
{
  "share": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update logo machine config
Upload a printer logo for the gateway
- image: string
Request Example
{
  "image": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Install printer drivers machine config
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Reboot the gateway
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Updates the software on the gateway
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Updates the software on the gateway to the current test version
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine config by hostname
Get the configiration of the machine
(no description)
Successful operation
Unauthorized
Response Example (200 OK)
{
  "name": "string",
  "apn": "string",
  "config": "string",
  "sharing": "string",
  "mode": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "ssid": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine config templates
Get the configiration of the machine
(no description)
Successful operation
Unauthorized
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "apn": "string",
  "config": "string",
  "sharing": "string",
  "mode": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "ssid": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new machine config template
Machine config template object that needs to be added to the store
- name: string
- apn: string
- config: string
- sharing: string
- mode: string
- encryption: string
- encryptionKey: string
- ssid: string
Request Example
{
  "name": "string",
  "apn": "string",
  "config": "string",
  "sharing": "string",
  "mode": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "ssid": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of machine config templates
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update machine configuration template
Update the machine configuration template
- name: string
- config: string
- mode: string
- ssid: string
- encryption: string
- encryptionKey: string
- apn: string
- sharing: string
The id of the template
Request Example
{
  "name": "string",
  "config": "string",
  "mode": "string",
  "ssid": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "apn": "string",
  "sharing": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete a machine config template
ID of the machine config template
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find a machine config template
ID of machine config template
Successful operation
Unauthorized
Not Found
Response Example (200 OK)
{
  "name": "string",
  "config": "string",
  "mode": "string",
  "ssid": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "apn": "string",
  "sharing": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get machine config hostname
Get the configuration of the machine
(no description)
Successful operation
Unauthorized
Response Example (200 OK)
{
  "apn": "string",
  "config": "string",
  "sharing": "string",
  "wlan": {
    "device": "string",
    "network": "string",
    "mode": "string",
    "encryption": "string",
    "key": "string",
    "ssid": "string"
  }
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update machine's configuration
Update the configuration of the machine
- config: string
- mode: string
- ssid: string
- encryption: string
- encryptionKey: string
- apn: string
- sharing: string
- machine: integer
The id of the machine
Request Example
{
  "config": "string",
  "mode": "string",
  "ssid": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "apn": "string",
  "sharing": "string",
  "machine": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Location
The locations where the machines are physically placed
Count the number of locations
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find locations
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "address": "string",
    "postcode": "string",
    "city": "string",
    "country": "string",
    "activeShift": "integer",
    "latitude": "string",
    "longitude": "string",
    "placeId": "string",
    "timeZone": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new location
location object that needs to be added to the store
- name: string
- address: string
- postcode: string
- city: string
- country: string
- latitude: number
- longitude: number
- placeId: string
- locationGroups: integer[]
- 
                        integer 
Request Example
{
  "name": "string",
  "address": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "latitude": "number",
  "longitude": "number",
  "placeId": "string",
  "locationGroups": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one location
ID of the location
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "address": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "activeShift": "integer",
  "latitude": "string",
  "longitude": "string",
  "placeId": "string",
  "timeZone": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a location
location object that needs to be updated in the store
- name: string
- address: string
- postcode: string
- city: string
- country: string
- latitude: integer
- longitude: integer
- placeId: string
- locationGroups: integer[]
- 
                        integer 
ID of the location
Request Example
{
  "name": "string",
  "address": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "latitude": "integer",
  "longitude": "integer",
  "placeId": "string",
  "locationGroups": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete a location
ID of the location
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate location's associations/collections
ID of location
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
[
  "object"
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Location group
Used to group locations
Count the number of location groups
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find location groups
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new location group
Location group object that needs to be added to the store
- name: string
- locations: integer[]
- 
                        integer 
Request Example
{
  "name": "string",
  "locations": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one location group
ID of the location group
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a location group
Location group object that needs to be updated in the store
- name: string
- locations: integer[]
- 
                        integer 
ID of the location group
Request Example
{
  "name": "string",
  "locations": [
    "integer"
  ]
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete a location group
ID of the location group
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate location group's associations/collections
ID of locationgroup
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Location shift
The locations' shift
Count the number of shifts
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate report's associations/collections
ID of report
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Close a new shift and open a new one
- location: integer
Request Example
{
  "location": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer",
  "location": "integer",
  "firstTransaction": "integer",
  "lastTransaction": "integer",
  "previousShift": "integer",
  "closed": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find shifts
Response Example (200 OK)
[
  {
    "id": "integer",
    "location": "integer",
    "firstTransaction": "integer",
    "lastTransaction": "integer",
    "previousShift": "integer",
    "closed": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one shift
ID of the shift
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "location": "integer",
  "firstTransaction": "integer",
  "lastTransaction": "integer",
  "previousShift": "integer",
  "closed": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate shift's associations/collections
ID of shift
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find aggregated payment transaction
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "amount": "integer",
    "quantity": "integer",
    "currency": "string",
    "paymentType": "string",
    "reportGroup": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get sum
Get the sum of aggregated payment transactions grouped by currency.
The id of the shift
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "amount": "integer",
    "quantity": "integer",
    "currency": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find aggregated revenue transaction
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "amount": "integer",
    "quantity": "integer",
    "name": "string",
    "price": "integer",
    "barcode": "string",
    "currency": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get sum
Get the sum of aggregated revenue transactions grouped by currency.
The id of the shift
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "amount": "integer",
    "quantity": "integer",
    "currency": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of aggregated revenue transactions in a shift
The id of the shift
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of aggregated payment transactions in a shift
The id of the shift
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Opening hour
Manage opening hours of: machines, machine groups, locations or location groups
Set opening hours
Set the opening hours of a machine through a parent resource. Example: updating the opening hours of a location will override all the open hours of the machines that are part of that location.
- day: integer
- startTime: string
- endTime: string
(no description)
The ID of the resource
Request Example
[
  {
    "day": 1,
    "startTime": "09:15:00",
    "endTime": "10:00:00"
  }
]
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get openinghours
Get the openinghours of a certain machine.
The id of the machine
Successful operation
Missing parameter
Unauthorized
Response Example (200 OK)
{
  "day": "integer",
  "startTime": "string",
  "endTime": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Revenue transaction
The transactions registered on the machines
Count the number of revenue transactions
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find revenue transactions
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
It will use archived data in combination with the last data available. If True: only limit and where are used. limit becomes mandatory, max limit is 1000 and where accepts only a machine id (mandatory) and id with > operator (optional. Defaults to: where.id > -1)
Successful operation
Unauthorized
Forbidden. Sent when the limit provided or the results size is greater than the max limit allowed
Response Example (200 OK)
[
  {
    "id": 3184234,
    "product": 1,
    "name": "Kaffee klein",
    "internalRef": "KAF-KL",
    "machine": 80,
    "location": 2,
    "occurredAt": "2019-02-06T07:06:17+01:00",
    "timeZone": "Europe/Amsterdam",
    "originalPrice": 0,
    "price": 10,
    "barcode": null,
    "currency": "EUR",
    "timestamp": 1549433177,
    "token": "^^C:R/-0",
    "salestype": 0,
    "numPaymentTransactions": 1,
    "remote": 40314354,
    "pricelist": 0,
    "usergroup": 0,
    "createdAt": "2019-02-06T06:12:16Z",
    "updatedAt": "2019-02-06T06:12:16Z"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one revenue transaction
ID of the revenue transaction
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": 3184234,
  "product": 1,
  "name": "Kaffee klein",
  "internalRef": "KAF-KL",
  "machine": 80,
  "location": 2,
  "occurredAt": "2019-02-06T07:06:17+01:00",
  "timeZone": "Europe/Amsterdam",
  "originalPrice": 0,
  "price": 10,
  "barcode": null,
  "currency": "EUR",
  "timestamp": 1549433177,
  "token": "^^C:R/-0",
  "salestype": 0,
  "numPaymentTransactions": 1,
  "remote": 40314354,
  "pricelist": 0,
  "usergroup": 0,
  "createdAt": "2019-02-06T06:12:16Z",
  "updatedAt": "2019-02-06T06:12:16Z"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate revenue transaction's associations/collections
ID of revenue transaction
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Summary all products
Get a summary of revenue grouped by currency and date.
(no description)
(no description)
Limit the results based on machines ids
Limit the results based on location ids
Successful operation
Missing parameter
Unauthorized
Response Example (200 OK)
{
  "<$currency>": [
    {
      "currency": "string",
      "currencyRate": "float",
      "date": "string",
      "orginalValue": "integer",
      "value": "integer"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Top products
Get the best selling product for each day grouped by product.
(no description)
(no description)
Limit the results based on machines ids
Limit the results based on location ids
Amount of products, defaults to 10
Successful operation
Missing parameter
Unauthorized
Response Example (200 OK)
[
  {
    "name": "string",
    "values": [
      {
        "date": "string",
        "value": "integer"
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Total revenue summary
The revenue summary and the amount of products sold for various periods grouped by currency
Limit the results based on machines ids
Limit the results based on location ids
Successful operation
Unauthorized
Response Example (200 OK)
{
  "<$currency>": [
    {
      "day": {
        "currency": "string",
        "products": "integer",
        "revenue": "integer"
      },
      "month": {
        "currency": "string",
        "products": "integer",
        "revenue": "integer"
      },
      "week": {
        "currency": "string",
        "products": "integer",
        "revenue": "integer"
      },
      "year": {
        "currency": "string",
        "products": "integer",
        "revenue": "integer"
      }
    }
  ]
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Revenue distribution
Contains data of the last three months grouped by hour and day.
Limit the results based on machines ids
Limit the results based on location ids
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "day": "integer",
    "hour": "integer",
    "count": "integer",
    "total": "integer"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Payment transaction
The payments contained in the revenue transactions
Count the number of payment transactions
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find payment transactions
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
It will use archived data in combination with the last data available. If True: only limit and where are used. limit becomes mandatory, max limit is 1000 and where accepts only a machine id (mandatory) and id with > operator (optional. Defaults to: where.id > -1)
Successful operation
Unauthorized
Forbidden. Sent when the limit provided or the results size is greater than the max limit allowed
Response Example (200 OK)
[
  {
    "id": 3287746,
    "revenuetransaction": 3184234,
    "machine": 80,
    "location": 2,
    "occurredAt": "2019-02-06T07:06:17+01:00",
    "timeZone": "Europe/Amsterdam",
    "method": "virtual",
    "type": "virtual",
    "price": 10,
    "currency": "EUR",
    "exclude": 0,
    "reportGroup": null,
    "createdAt": "2019-02-06T06:12:16Z",
    "updatedAt": "2019-02-06T06:12:16Z"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one payment transaction
ID of the payment transaction
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": 3287746,
  "revenuetransaction": 3184234,
  "machine": 80,
  "location": 2,
  "occurredAt": "2019-02-06T07:06:17+01:00",
  "timeZone": "Europe/Amsterdam",
  "method": "virtual",
  "type": "virtual",
  "price": 10,
  "currency": "EUR",
  "exclude": 0,
  "reportGroup": null,
  "createdAt": "2019-02-06T06:12:16Z",
  "updatedAt": "2019-02-06T06:12:16Z"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate payment transaction's associations/collections
ID of payment transaction
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Log
Events generated by machines
Count the number of logs
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of raw logs
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find logs
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
It will use archived data in combination with the last data available. If True: only limit and where are used. limit becomes mandatory, max limit is 1000 and where accepts only a machine id (mandatory) and id with > operator (optional. Defaults to: where.id > -1)
Successful operation
Unauthorized
Forbidden. Sent when the limit provided or the results size is greater than the max limit allowed
Response Example (200 OK)
[
  {
    "id": 5801104,
    "remote": 89773649,
    "machine": 80,
    "location": 2,
    "code": "CM_REBOOT",
    "errorIdentity": 3,
    "type": 1,
    "isResolvable": false,
    "occurredAt": "2019-03-12T05:36:58+01:00",
    "timeZone": "Europe/Amsterdam",
    "duration": null,
    "extraData": "{\"uptime\": 67}",
    "date": 1552365418,
    "timestamp": 1552365418,
    "resolvedAt": null,
    "state": null,
    "createdAt": "2019-03-12T04:36:59Z"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one log
ID of the log
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": 5801104,
  "remote": 89773649,
  "machine": 80,
  "location": 2,
  "code": "CM_REBOOT",
  "errorIdentity": 3,
  "type": 1,
  "isResolvable": false,
  "occurredAt": "2019-03-12T05:36:58+01:00",
  "timeZone": "Europe/Amsterdam",
  "duration": null,
  "extraData": "{\"uptime\": 67}",
  "date": 1552365418,
  "timestamp": 1552365418,
  "resolvedAt": null,
  "state": null,
  "createdAt": "2019-03-12T04:36:59Z"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find raw logs
Response Example (200 OK)
[
  null
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find log status
The id of the machine
Response Example (200 OK)
[
  {
    "id": 5801104,
    "remote": 89773649,
    "machine": 80,
    "location": 2,
    "code": "CM_REBOOT",
    "errorIdentity": 3,
    "type": 1,
    "isResolvable": false,
    "occurredAt": "2019-03-12T05:36:58+01:00",
    "timeZone": "Europe/Amsterdam",
    "duration": null,
    "extraData": "{\"uptime\": 67}",
    "date": 1552365418,
    "timestamp": 1552365418,
    "resolvedAt": null,
    "state": null,
    "createdAt": "2019-03-12T04:36:59Z"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Top log events
Returns a list of (translated) events and the amount of concurrences.
Limit the results based on machines ids
Limit the results based on location ids
Limit the results, defaults to 10, max 30
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "code": "string",
    "error": "string",
    "summary": "integer"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate log's associations/collections
ID of log
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Report
Reports based on revenue transactions, payment transactions, logs or shifts
Get the logs resolution report
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "data": [
      {
        "code": "ED017",
        "erroridentity": 34,
        "error": "ED017",
        "quantity": 518,
        "duration": 2987
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 214,
        "duration": 6629
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "code": "ED017",
        "erroridentity": 34,
        "error": "ED017",
        "quantity": 23,
        "duration": 342
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 57,
        "duration": 567
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the logs frequency report
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "data": [
      {
        "code": "CM_OFFLINE",
        "erroridentity": 1,
        "error": "CM_OFFLINE",
        "quantity": 220
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 152
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "code": "CM_OFFLINE",
        "erroridentity": 1,
        "quantity": 357,
        "error": "CM_OFFLINE"
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 45
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the report revenuetransaction
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "data": [
      {
        "productId": 1,
        "name": "Kaffee klein",
        "internalRef": "KAF-KL",
        "revenue": 7080,
        "quantity": 906,
        "currency": "EUR"
      },
      {
        "productId": 2,
        "name": "Capuccino",
        "internalRef": "CAP",
        "revenue": 5500,
        "quantity": 700,
        "currency": "EUR"
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "productId": 1,
        "name": "Kaffee klein",
        "revenue": 7080,
        "quantity": 906,
        "currency": "EUR"
      },
      {
        "productId": 4,
        "name": "Capuccino klein",
        "revenue": 7000,
        "quantity": 750,
        "currency": "EUR"
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the report paymenttransaction
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "data": [
      {
        "type": "card",
        "quantity": 49,
        "revenue": 81000,
        "reportGroup": null,
        "currency": "AMD"
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the payments generated by the shifts closed within the provided time periods
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "startDate": "string",
    "endDate": "string",
    "data": [
      {
        "location": "string",
        "payment": "string",
        "quantity": "integer",
        "reportGroup": "string",
        "revenue": "integer",
        "shift": "integer",
        "type": "string"
      }
    ]
  },
  "period2": {
    "startDate": "string",
    "endDate": "string",
    "data": [
      {
        "location": "string",
        "payment": "string",
        "quantity": "integer",
        "reportGroup": "string",
        "revenue": "integer",
        "shift": "integer",
        "type": "string"
      }
    ]
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the revenue generated by the shifts closed within the provided time periods
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
successful operation
BadRequest
Unauthorized
Response Example (200 OK)
{
  "period1": {
    "startDate": "string",
    "endDate": "string",
    "data": [
      {
        "shift": "integer",
        "productId": "integer",
        "name": "string",
        "barcode": "string",
        "reportName": "string",
        "quantity": "integer",
        "revenue": "integer",
        "sum": "integer",
        "currency": "string"
      }
    ]
  },
  "period2": {
    "startDate": "string",
    "endDate": "string",
    "data": [
      {
        "shift": "integer",
        "productId": "integer",
        "name": "string",
        "barcode": "string",
        "reportName": "string",
        "quantity": "integer",
        "revenue": "integer",
        "sum": "integer",
        "currency": "string"
      }
    ]
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Download raw transactions
Get a CSV file containing the raw transactions on which a report is based, the date-range must be within 6 months of the current date
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find own reports
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "period1": "integer",
    "period2": "integer",
    "user": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create report
- name: string
- period1: object
- 
                        - startDate: string
- endDate: string
- type: fixed date
 
- period2: object
- 
                        Optional period 
- 
                        - startDate: string
- endDate: string
- type: fixed date
 
- locationGroup: array
- 
                        Optional filter 
- locations: array
- 
                        Optional filter 
- machineGroups: array
- 
                        Optional filter 
- machines: array
- 
                        Optional filter 
Request Example
{
  "name": "string",
  "period1": {
    "startDate": "string",
    "endDate": "string",
    "type": "fixed date"
  },
  "period2": {
    "startDate": "string",
    "endDate": "string",
    "type": "fixed date"
  },
  "locationGroup": "array",
  "locations": "array",
  "machineGroups": "array",
  "machines": "array"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete report
The id of the report
Successful operation
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one report
The id of the report
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "period1": "integer",
  "period2": "integer",
  "user": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update report
Update a report. All properties in the request body are optional.
- name: string
- period1: object
- 
                        - startDate: string
- endDate: string
- type: fixed date
 
- period2: object
- 
                        - startDate: string
- endDate: string
- type: fixed date
 
- locationGroup: array
- locations: array
- machineGroups: array
- machineModels: array
- machineTypes: array
- machines: array
- manufactures: array
The id of the report
Request Example
{
  "name": "string",
  "period1": {
    "startDate": "string",
    "endDate": "string",
    "type": "fixed date"
  },
  "period2": {
    "startDate": "string",
    "endDate": "string",
    "type": "fixed date"
  },
  "locationGroup": "array",
  "locations": "array",
  "machineGroups": "array",
  "machineModels": "array",
  "machineTypes": "array",
  "machines": "array",
  "manufactures": "array"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add associations
ID of report
Resource to add
ID of the association to add
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove associations
ID of report
Resource to remove
ID of the association to remove
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
User report
User reports
Create a new user report for the authenticated user
- name: string
Request Example
{
  "name": "string"
}
successful operation
BadRequest
Unauthorized
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Returns the user reports of the authenticated user
Filter by draft userreports
successful operation
Response Example (200 OK)
[
  {
    "id": "integer",
    "user": "integer",
    "name": "string",
    "createAt": "string (date-time-utc)",
    "updateAt": "string (date-time-utc)"
  }
]
Returns a single user report
ID of the user report
successful operation
Unauthorized
Forbidden
NotFound
Response Example (200 OK)
{
  "id": "integer",
  "user": "integer",
  "name": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create a new user report for the authenticated user
- name: string
ID of the user report
Request Example
{
  "name": "string"
}
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create a new user report for the authenticated user
ID of the user report
successful operation
Unauthorized
Forbidden
NotFound
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create a new default chart in a user report
- name: string
- type: DefaultChartTypes
- criteria: ChartCriteria
- position: integer
ID of user report
Request Example
{
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "position": "integer"
}
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Gets the chart data for a user report
ID of user report
successful operation
successful operation
Unauthorized
Forbidden
NotFound
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "type": "string",
    "criteria": {
      "select": [
        {
          "expr": "string",
          "op": "string",
          "as": "string"
        }
      ],
      "from": "string",
      "where": [
        {
          "field": "string",
          "op": "string",
          "value": "string"
        }
      ],
      "orderBy": [
        "string"
      ],
      "timeFrames": {
        "items": {
          "type": "string",
          "viewType": "string",
          "startAt": "date-time",
          "endAt": "date-time",
          "hoursToSub": "integer",
          "column": "string",
          "description": "string"
        }
      }
    },
    "report": "integer",
    "reportType": "string",
    "createAt": "string (date-time-utc)",
    "updateAt": "string (date-time-utc)"
  }
]
Response Example (201 Created)
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "report": "integer",
  "reportType": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create a new user report for the authenticated user
The name of the new user report
- name: string
The id of the user report to duplicate
Request Example
{
  "name": "string"
}
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get a chart or a Chart field
ID of the chart
Field of the chart to be returned
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "report": "integer",
  "reportType": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a chart. If status=inProgress, the chart results will be recalculated
undefined
ID of user report
Request Example
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "report": "integer",
  "reportType": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get a chart
ID of user report
successful operation
BadRequest
Unauthorized
Forbidden
NotFound
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
User report chart
User Report charts
Chart template
Chart templates
Returns the chart templates
successful operation
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "type": "string",
    "criteria": {
      "select": [
        {
          "expr": "string",
          "op": "string",
          "as": "string"
        }
      ],
      "from": "string",
      "where": [
        {
          "field": "string",
          "op": "string",
          "value": "string"
        }
      ],
      "orderBy": [
        "string"
      ],
      "timeFrames": {
        "items": {
          "type": "string",
          "viewType": "string",
          "startAt": "date-time",
          "endAt": "date-time",
          "hoursToSub": "integer",
          "column": "string",
          "description": "string"
        }
      }
    },
    "createAt": "string (date-time-utc)",
    "updateAt": "string (date-time-utc)"
  }
]
Count the number of chart templates
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Returns a single chart template
ID of the chart template
successful operation
Unauthorized
Forbidden
NotFound
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Alert observer
Describes the criteria that to generate alert
Count the number of alert observers
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find alert observers
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "error": "integer",
    "observer": "string",
    "occurs": "integer",
    "timer": "integer",
    "timerType": "integer",
    "alertGroup": "integer",
    "sentAt": "string (date-time)",
    "type": "string",
    "paymentMethod": "string",
    "openingHours": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new alert observer
Alert observer object that needs to be added to the store
- name: string
- type: string event, transaction
- observer: string occurrence, non_resolution, non_occurrence
- timer: integer
- timerType: integer 1, 2, 3, 4
- alertGroup: integer
- error: integer
- occurs: integer
- paymentMethod: string cash, card, code, virtual, token
- machines: integer[]
- 
                        integer 
- openingHours: boolean
Request Example
{
  "name": "string",
  "type": "string",
  "observer": "string",
  "timer": "integer",
  "timerType": "integer",
  "alertGroup": "integer",
  "error": "integer",
  "occurs": "integer",
  "paymentMethod": "string",
  "machines": [
    "integer"
  ],
  "openingHours": "boolean"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove an alert observer
ID of the alert observer
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one alert observer
ID of the alert observer
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "error": "integer",
  "observer": "string",
  "occurs": "integer",
  "timer": "integer",
  "timerType": "integer",
  "alertGroup": "integer",
  "sentAt": "string (date-time)",
  "type": "string",
  "paymentMethod": "string",
  "openingHours": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an alert observer
Alert observer object that needs to be updated in the store
- name: string
- type: string event, transaction
- observer: string occurrence, non_resolution, non_occurrence
- timer: integer
- timerType: integer 1, 2, 3, 4
- alertGroup: integer
- error: integer
- occurs: integer
- paymentMethod: string cash, card, code, virtual, token
- machines: integer[]
- 
                        integer 
- openingHours: boolean
ID of the alert observer
Request Example
{
  "name": "string",
  "type": "string",
  "observer": "string",
  "timer": "integer",
  "timerType": "integer",
  "alertGroup": "integer",
  "error": "integer",
  "occurs": "integer",
  "paymentMethod": "string",
  "machines": [
    "integer"
  ],
  "openingHours": "boolean"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Reset the occurrence counter of the given alert observer
ID of the machine
ID of the alert observer
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate alert observer's associations/collections
ID of alert observer
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Alert group
Group of alert recipients
Count the number of alert groups
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find alert groups
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new alert group
Alert group object that needs to be added to the store
- name: string
Request Example
{
  "name": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find an alert group
ID of alert group
Successful operation
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an alert group
Alert group object that needs to be updated
- name: string
ID of alert group
Request Example
{
  "name": "string"
}
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (204 No Content)
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate alert group's associations/collections
ID of alert group
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Alert recipient
Recipient to warn in case of alert
Find alert recipients
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "email": "string",
    "active": "integer",
    "language": "integer",
    "alertGroup": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new alert recipient
Alert recipient object that needs to be added to the store
- name: string
- email: string
- language: integer
- alertGroup: integer
- active: boolean
Request Example
{
  "name": "string",
  "email": "string",
  "language": "integer",
  "alertGroup": "integer",
  "active": "boolean"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of alert recipients
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one alert recipient
ID of the alert recipient
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "email": "string",
  "alertGroup": "integer",
  "language": "integer",
  "active": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an alert recipient
Alert recipient object that needs to be updated in the store
- name: string
- email: string
- language: integer
- alertGroup: integer
- active: boolean
ID of the alert recipient
Request Example
{
  "name": "string",
  "email": "string",
  "language": "integer",
  "alertGroup": "integer",
  "active": "boolean"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove an alert observer
ID of the alert recipient
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate alert recipient's associations/collections
ID of alert recipient
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Product
Products served by machines
Add a new flavour to a assortment
- name: string
- reportName: string
- price: integer
- plu: integer
ID of the machine
Request Example
{
  "name": "string",
  "reportName": "string",
  "price": "integer",
  "plu": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the flavours of an assortment
ID of the machine
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the quantity of flavours of an assortment
ID of the machine
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an existing flavour
- name: string
- reportName: string
- price: integer
ID of the machine
ID of the flavour
Request Example
{
  "name": "string",
  "reportName": "string",
  "price": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete a flavour
ID of the machine
ID of the flavour
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new extra product to a assortment
- name: string
- reportName: string
- price: integer
- plu: integer
ID of the machine
Request Example
{
  "name": "string",
  "reportName": "string",
  "price": "integer",
  "plu": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the extra products of an assortment
ID of the machine
Successful operation
Bad Request
Response Example (200 OK)
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Get the amount of extra products
ID of the machine
Successful operation
Bad Request
Response Example (200 OK)
{
  "count": "integer"
}
Delete an extra product
ID of the machine
ID of the extra product
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
FInd products
Get the product of a certain machine.
The id of the machine
Successful operation
Missing parameter
Unauthorized
Response Example (200 OK)
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new product
Product object that needs to be added to the store
- name: string
- machine: integer
- plu: integer
- price: number
- reportName: string
- barcode: string
ID of the machine
Request Example
{
  "name": "string",
  "machine": "integer",
  "plu": "integer",
  "price": "number",
  "reportName": "string",
  "barcode": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a product
Product object that needs to be updated in the store
- name: string
- machine: integer
- plu: integer
- price: number
- reportName: string
- barcode: string
ID of the machine
ID of the product
Request Example
{
  "name": "string",
  "machine": "integer",
  "plu": "integer",
  "price": "number",
  "reportName": "string",
  "barcode": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove a product
ID of the machine
ID of the product
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of product on a machine
The id of the machine
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Assortment
The machines' product assortment
Convert assortment preview
Returns current and the formatted assorment
- flavourPLU: integer
- extraProductPLU: integer
The ID of the machine
Request Example
{
  "flavourPLU": "integer",
  "extraProductPLU": "integer"
}
successful operation
Missing parameter
Unauthorized
Response Example (200 OK)
{
  "baseProducts": [
    {
      "id": "integer",
      "plu": "integer",
      "name": "string",
      "price": "string",
      "barcode": "string",
      "machine": "integer",
      "reportName": "string",
      "createdAt": "string (date-time-utc)",
      "updatedAt": "string (date-time-utc)"
    }
  ],
  "productFlavours": [
    {
      "id": "integer",
      "plu": "integer",
      "name": "string",
      "price": "string",
      "barcode": "string",
      "machine": "integer",
      "reportName": "string",
      "createdAt": "string (date-time-utc)",
      "updatedAt": "string (date-time-utc)"
    }
  ],
  "extraProducts": [
    {
      "id": "integer",
      "plu": "integer",
      "name": "string",
      "price": "string",
      "barcode": "string",
      "machine": "integer",
      "reportName": "string",
      "createdAt": "string (date-time-utc)",
      "updatedAt": "string (date-time-utc)"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Convert assorment
Convert the current assortment into a new format, see convert preview
- flavourPLU: integer
- extraProductPLU: integer
The ID of the machine
Request Example
{
  "flavourPLU": "integer",
  "extraProductPLU": "integer"
}
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Import assortment
Override assortment with given products
- plu: integer
- name: string
- reportName: string
- price: integer
- barcode: string
The ID of the machine
Request Example
[
  {
    "plu": "integer",
    "name": "string",
    "reportName": "string",
    "price": "integer",
    "barcode": "string"
  }
]
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Copy assortment
Copy the assortment of a machine to a given group of machines
Machine ID
Machine group ID
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Error profile
Machine error profiles
Count the number of error profiles
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find error profiles
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "machineType": "integer",
    "manufacturer": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new error profile
Error profile object that needs to be added to the store
- name: string
- machineType: integer
- manufacturer: integer
Request Example
{
  "name": "string",
  "machineType": "integer",
  "manufacturer": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one error profile
ID of the error profile
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "machineType": "integer",
  "manufacturer": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an error profile
Error profile object that needs to be updated in the store
- name: string
- machineType: integer
- manufacturer: integer
ID of the error profile
Request Example
{
  "name": "string",
  "machineType": "integer",
  "manufacturer": "integer"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate error profile's associations/collections
ID of error profile
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove associations
ID of error profile
Resource to remove
ID of the association to remove
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add associations
ID of error profile
Resource to add
ID of the association to add
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create new transaction profile
Transaction profile object to be added
- id: integer
- reportRule: string first_letter, first_block
- paymentTypesMap: object
- 
                        It contains pairs of payment method -> payment type. See [GET /transactionprofile/paymenttypes] for more details 
Request Example
{
  "id": "integer",
  "reportRule": "string",
  "paymentTypesMap": "object"
}
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (204 No Content)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Error identity
Normalized errors/events descriptions
Count the number of error identities
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find error identities
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "error": "string",
    "machineType": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new error identity
Error identity object that needs to be added to the store
- machineType: integer
- error: string
Request Example
{
  "machineType": "integer",
  "error": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one error identity
ID of the error identity
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "error": "string",
  "machineType": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an error identity
Error identity object that needs to be updated in the store
- machineType: integer
- error: string
ID of the error identity
Request Example
{
  "machineType": "integer",
  "error": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate error identity's associations/collections
ID of error identity
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove associations
ID of error identity
Resource to remove
ID of the association to remove
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add associations
ID of error identity
Resource to add
ID of the association to add
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Error code
Mapping between error profile and error identity
Find error codes
Response Example (200 OK)
[
  {
    "id": "integer",
    "code": "string",
    "errorIdentity": "integer",
    "errorProfile": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new error code
Error code object that needs to be added to the store
- errorIdentity: integer
- errorProfile: integer
- code: string
Request Example
{
  "errorIdentity": "integer",
  "errorProfile": "integer",
  "code": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove an error code
ID of the error code
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one error code
ID of the error code
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "code": "string",
  "errorIdentity": "integer",
  "errorProfile": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an error code
Error code object that needs to be updated in the store
- errorIdentity: integer
- errorProfile: integer
- code: string
ID of the error code
Request Example
{
  "errorIdentity": "integer",
  "errorProfile": "integer",
  "code": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate error code's associations/collections
ID of error code
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Transaction profile
Machine transaction profiles
Create new transaction profile
Transaction profile object to be added
- reportRule: string first_letter, first_block
- paymentTypesMap: object
- 
                        It contains pairs of payment method -> payment type. See [GET /transactionprofile/paymenttypes] for more details 
Request Example
{
  "reportRule": "string",
  "paymentTypesMap": "object"
}
Successful operation
Bad Request
Unauthorized
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Returns the supported report rules
Successful operation
Response Example (200 OK)
[
  "string"
]
Returns the supported payment types
Successful operation
Response Example (200 OK)
[
  "string"
]
Returns the default transaction profile values
Successful operation
Response Example (200 OK)
{
  "reportRule": "string",
  "paymentTypesMap": "object"
}
Returns the transaction profile with the provided ID
Successful operation
Response Example (200 OK)
{
  "id": "integer",
  "reportRule": "string",
  "paymentTypesMap": "object"
}
Dashboard
User dashboards
Find user's dashboards
ID of the dashboard
Response Example (200 OK)
[
  {
    "id": "integer",
    "user": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get dashboard's widgets
ID of the dashboard
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "widgetType": "integer",
    "dashboard": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new widget dashboard
Widget object that needs to be added to the store
- name: string
- widgetType: number
ID of the dashboard
Request Example
{
  "name": "string",
  "widgetType": "number"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update widget's settings
Widget object that needs to be updated
- settings: string
ID of widget
Request Example
{
  "settings": "string"
}
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the current widget's settings
ID of the widget
Successful operation
Unauthorized
Response Example (200 OK)
"array"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get widget types
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "configurable": "boolean",
    "defaultApp": "boolean",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove a widget
ID of the widget
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a widget
Widget object that needs to be updated
- name: string
- dashboard: integer
- widgetType: integer
ID of widget
Request Example
{
  "name": "string",
  "dashboard": "integer",
  "widgetType": "integer"
}
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (204 No Content)
{
  "id": "integer",
  "name": "string",
  "widgetType": "integer",
  "dashboard": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one widget
ID of the widget
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "widgetType": "integer",
  "dashboard": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Export
Endpoints to export certain resources' data
CSV export
CSV export the requested resource.
(no description)
The columns to export. format: [{property: string, alias: 'name in csv'}]
The criteria object, machine property is required
The sort column e.g. {name: 'ASC}
Fallbacks to export
The timezone of the user (for returning the correct datetime in datetime columns)
Export all product combinations
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Download raw transactions
Get a CSV file containing the raw transactions on which a report is based, the date-range must be within 6 months of the current date
Report request object
Request Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Image
The images
Find images
Response Example (200 OK)
[
  {
    "id": "integer",
    "thumbnail": "string",
    "original": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new image
Image object that needs to be added to the store
- thumbnail: string
- original: string
Request Example
{
  "thumbnail": "string",
  "original": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Remove an image
ID of the image
Successful operation
Unauthorized
Not Found
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one image
ID of the image
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "thumbnail": "string",
  "original": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an image
Image object that needs to be updated in the store
- thumbnail: string
- original: string
ID of the image
Request Example
{
  "thumbnail": "string",
  "original": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Language
Supported languages
Count the number of languages
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find languages
Response Example (200 OK)
[
  {
    "id": "integer",
    "name": "string",
    "language": "string",
    "locale": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new language
Language object that needs to be added to the store
- name: string
- language: string
- locale: string
Request Example
{
  "name": "string",
  "language": "string",
  "locale": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one language
ID of the language
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "language": "string",
  "locale": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a language
Language object that needs to be updated in the store
- name: string
- language: string
- locale: string
ID of the language
Request Example
{
  "name": "string",
  "language": "string",
  "locale": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Currency
Supporetd currencies
Count the number of currencies
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find currencies
Response Example (200 OK)
[
  {
    "id": "integer",
    "code": "string",
    "rate": "number",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Permission
Group permissions
Translation
The translations
Find translations
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "key": "string",
    "value": "string",
    "language": "integer",
    "userGroup": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new translation
Translation object that needs to be added to the store
- key: string
- language: integer
- value: string
Request Example
{
  "key": "string",
  "language": "integer",
  "value": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one translation
ID of the translation
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "key": "string",
  "value": "string",
  "language": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a translation
Translation object that needs to be updated in the store
- key: string
- language: integer
- value: string
ID of the translation
Request Example
{
  "key": "string",
  "language": "integer",
  "value": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Populate translation's associations/collections
ID of translation
Resource to populate
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
"object"
Response Example (401 Unauthorized)
{
  "message": "string"
}
Campaign
Create a new user campaign for the user group of the authenticated user
- name: string
- totalVouchers: integer
- type: enum discount, gift, dynamic
- valueType: enum cents cents
- redemptionLimit: integer
- resetFrequency: enum day, week, month, never
- expiresOn: date
- timeZone: string Europe/Amsterdam
Request Example
{
  "name": "string",
  "totalVouchers": "integer",
  "type": "enum",
  "valueType": "enum",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "timeZone": "string"
}
successful operation
BadRequest
Unauthorized
Forbidden
Response Example (201 Created)
{
  "id": "integer"
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get campaigns
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
successful operation
Unauthorized
Forbidden
Response Example (200 OK)
[
  {
    "name": "string",
    "totalVouchers": "integer",
    "type": "enum",
    "valueType": "enum",
    "voucherValue": "integer",
    "redemptionLimit": "integer",
    "resetFrequency": "enum",
    "expiresOn": "date",
    "currency": "string",
    "timeZone": "string",
    "status": "enum",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Count the number of campaigns the user has access to (=the number of campaigns the usergroup has)
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get campaign by Id
The id of the campaign
Response Example (200 OK)
{
  "name": "string",
  "totalVouchers": "integer",
  "type": "enum",
  "valueType": "enum",
  "voucherValue": "integer",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "currency": "string",
  "timeZone": "string",
  "status": "enum",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update campaign
- name: string
- valueType: enum cents cents
- redemptionLimit: integer
- resetFrequency: enum day, week, month, never
- expiresOn: date
- currency: string EUR
- timeZone: string Europe/Amsterdam
The id of the campaign
Request Example
{
  "name": "string",
  "valueType": "enum",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "currency": "string",
  "timeZone": "string"
}
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete campaign
The id of the campaign
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get campaign validation rules
The id of the campaign
Successful operation
Unauthorized
Forbidden
Response Example (200 OK)
[
  {
    "field": "string",
    "value": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update campaign validation rules
The id of the campaign
Request Example
[
  {
    "field": "string",
    "value": "string"
  }
]
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get campaign stats
The id of the campaign
Successful operation
Unauthorized
Forbidden
Response Example (200 OK)
{
  "totalVouchers": "integer",
  "redemptionCount": "integer",
  "voucherValue": "integer",
  "redemptionCost": "integer",
  "totalRevenue": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Campaign Voucher
Return the vouchers of a campaign
The id of the campaign
successful operation
Unauthorized
Forbidden
Response Example (200 OK)
[
  {
    "id": "string",
    "code": "string",
    "campaign": "integer",
    "type": "string",
    "value": "integer",
    "valueType": "string",
    "currency": "string",
    "initialValue": "integer",
    "redemptionLimit": "integer",
    "redemptionCount": "integer",
    "totalRedemptionCount": "integer",
    "lastRedemptionAt": "string (date-time-utc)",
    "lastRedemptionLocation": "string",
    "prefix": "string",
    "resetFrequency": "string",
    "lastResetAt": "string (date-time-utc)",
    "expiresOn": "string (date-time-utc)",
    "timeZone": "string",
    "lockOwner": "string",
    "lockedTill": "string (date-time-utc)",
    "status": "string",
    "amountRedeemed": "integer",
    "totalAmountRedeemed": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the number of vouchers a campaign
The id of the campaign
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the number of active vouchers a campaign
The id of the campaign
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Campaign Voucher pdf
Triggers the generation of the campaign vouchers as a PDF file
The id of the campaign
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Returns the campaign vouchers as a PDF file
The id of the campaign
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Triggers the generation of specific voucher from campaign as a PDF file
The id of the campaign
The id of the voucher
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Returns single voucher as a PDF file
The id of the campaign
The id of the voucher
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Debtor
Count the number of debtors
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find debtors
Response Example (200 OK)
[
  {
    "id": "integer",
    "externalId": "integer",
    "name": "string",
    "description": "string",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new debtor
Debtor object that needs to be added to the store, with a unique externalId and name
- externalId: integer
- name: string
- description: string
Request Example
{
  "externalId": "integer",
  "name": "string",
  "description": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one debtor
ID of the debtor
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "externalId": "integer",
  "name": "string",
  "description": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update a debtor
Debtor object that needs to be updated in the store, with a unique externalId and name
- externalId: integer
- name: string
- description: string
ID of the debtor
Request Example
{
  "externalId": "integer",
  "name": "string",
  "description": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Gateway
Get the available software versions for Houdini gateways
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
[
  {
    "name": "string",
    "description": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Execute a Gateway command
Parameters of the command
- params: array
Hostname of the machine
Command to execute
Request Example
{
  "params": "array"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Execute a command on multiple Gateways
Parameters of the command
- params: array
Command to execute
Request Example
{
  "params": "array"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Integration
Count the number of integrations owned by the user's user group
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find base details of integrations owned by the user's user group
Successful operation
Unauthorized
Response Example (200 OK)
[
  {
    "id": "integer",
    "type": "string",
    "name": "string",
    "active": "boolean",
    "state": "string",
    "throttle": "integer",
    "maxRetries": "integer",
    "retryThrottle": "integer",
    "stopOnFailure": "boolean",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Add a new integration
Integration object that needs to be added to the store, with a unique name within the user's user group
- externalId: integer
- name: string
- description: string
Request Example
{
  "externalId": "integer",
  "name": "string",
  "description": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (200 OK)
{
  "id": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find one integration
ID of the integration
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "type": "string",
  "name": "string",
  "active": "boolean",
  "state": "string",
  "throttle": "integer",
  "maxRetries": "integer",
  "retryThrottle": "integer",
  "stopOnFailure": "boolean",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update an integration
Integration object that needs to be updated in the store, with a unique name within the user's user group
- externalId: integer
- name: string
- description: string
ID of the integration
Request Example
{
  "externalId": "integer",
  "name": "string",
  "description": "string"
}
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Delete an integration and all of its logged errors
ID of the integration
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the number of errors of one integration
ID of the integration
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get the errors of one integration
ID of the integration
Successful operation
Bad Request
Unauthorized
Not Found
Response Example (200 OK)
{
  "id": "integer",
  "state": "string",
  "machine": "integer",
  "revenuetransaction": "integer",
  "message": "string",
  "details": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Trigger an integration, like when in the failed state if an integration is configured to stop on errors
ID of the integration
Successful operation
Bad Request
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Invoice
Count the number of invoices
Response Example (200 OK)
{
  "count": "integer"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find invoices
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
Request Example
"integer"
Successful operation
Unauthorized
Forbidden. Sent when the limit provided or the results size is greater than the max limit allowed
Response Example (200 OK)
[
  {
    "id": "integer",
    "remote": "integer",
    "price": "integer",
    "occurredAt": "string (date-time-utc)",
    "machine": "integer",
    "location": "integer",
    "timestamp": "integer",
    "currency": "string",
    "timezone": "string",
    "name": "string",
    "token": "string",
    "salestype": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Machine state
Returns a machine state
ID of the machine
Successful operation
Unauthorized
Response Example (200 OK)
{
  "machineId": "integer",
  "state": "object"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Navigation history
Voucher
Validates a voucher
- deviceId: string
- 
                        Id of the device that wants to validate the voucher 
- lockDuration: number
- 
                        Lock time in seconds. If provided an the campaign where the voucher belongs has a redemptionLimit(vouchers are not unlimitted), it reserves the usage of the voucher to 'deviceId' during the amount of seconds provided. If the campaign has noredemptionLimit,lockDurationwill be ignored. During the lock period, only the deviceId that owns the lock can release it explicitly. There are 3 ways a lock can be released: a) set 'lockDuration' to 0 or null by re-validating the voucher from the device that owns lock. b) redeemed the voucher from the device that owns lock. c) wait till the lock expires. If 'lockDuration' is not provided, the voucher won't be reserved to 'deviceId'.
- demand: object
- 
                        Used on 'gift' vouchers only. If the campaign is type 'gift', and 'demand' is not provided, the current voucher balance will be returned as 'discount.amountOff' 
- 
                        - amount: integer
- 
                              Amount to subtract from the voucher value. 
 
Code of the voucher. Codes are unique per campaign, but they can't identify a Voucher.
Request Example
{
  "deviceId": "string",
  "lockDuration": "number",
  "demand": {
    "amount": "integer"
  }
}
Successful operation
Unauthorized
Response Example (200 OK)
{
  "code": "string",
  "campaignType": "string",
  "voucherId": "string",
  "valid": "boolean",
  "reason": "string",
  "discount": {
    "type": "string"
  },
  "validFor": {
    "products": "object",
    "productsRegExp": "string"
  }
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Redeems a voucher
- deviceId: string
- 
                        Id of the device that wants to validate the voucher 
- order: object
- 
                        - id: string
- 
                              Id of the order/transaction where the code's redemption's been applied. 
- amount: integer
- items: object[]
- 
                              object - productId: string
- 
                                        Id of the product. In case the campaign accepts specific products, this value will be checked at the code redemption. 
- quantity: integer
- 
                                        Number of products with id=productId in this order 
- price: integer
- 
                                        Price in cents of one product unit 
 
 
- demand: object
- 
                        Mandatory if it's a 'gift' voucher. Otherwise, it's not used. 
- 
                        - amount: integer
- 
                              Amount to subtract from the voucher value. 
 
Code of the voucher. Codes are unique per campaign, but they can't identify a Voucher.
Request Example
{
  "deviceId": "string",
  "order": {
    "id": "string",
    "amount": "integer",
    "items": [
      {
        "productId": "string",
        "quantity": "integer",
        "price": "integer"
      }
    ]
  },
  "demand": {
    "amount": "integer"
  }
}
Successful operation
Unauthorized
Response Example (200 OK)
{
  "code": "string",
  "campaignType": "string",
  "voucherId": "string",
  "redeemed": "boolean",
  "reason": "string",
  "discount": {
    "type": "string",
    "amountOff": "integer"
  }
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Create a new voucher
- campaign: integer
- 
                        Id of the campaign where the voucher will be created. 
- type: enum discount, gift, inherit
- 
                        Type of voucher. If type=inherit, 'value' and the rest of the properties are inherited from the campaign. 
- value: integer
- 
                        Value of the voucher in the units specified by 'valueType'. If voucher type is 'discount' or 'gift', it's a required field. Not applicable to vouchers of type 'inherit'. 
- valueType: enum cents cents
- 
                        Not applicable to vouchers of type 'inherit' 
- code: string
- 
                        Code (optional) - custom voucher code (usually printed as QR on a coupon) used as an identifier between client (scanner) and the voucher system. If empty, random alphanumeric code will be generated. 
- prefix: string 00000
- 
                        The prefix of the code of the voucher. I.e. prefix 'ABC' would generate a code with the following structure: 'ABC-{CODE}'. Validations: Pattern = [A-Z], Max length = 5 
- redemptionLimit: integer
- 
                        Number of times a voucher can be redeemed. Not applicable to vouchers of type 'inherit' 
- resetFrequency: enum day, week, month, never never
- 
                        How frequent the voucher counters (and value in case of gift vouchers) will be reset. Not applicable to vouchers of type 'inherit' 
- expiresOn: date
- 
                        Not applicable to vouchers of type 'inherit' 
- timeZone: string Europe/Amsterdam
- 
                        Used by 'expiresOn' and 'resetFrequency'. Not applicable to vouchers of type 'inherit' 
- validationRules: object[]
- 
                        It contains voucher validation rules. For instance: {field: 'location', value: '10'} would enable the voucher to be used in all gateways in location with id '10'. {field: 'locationExternalRef', value: 'xyz_123'} would enable the voucher to be used in all gateways with location external ref 'xyz_123'. [{field: 'product', value: '5'}, {field: 'product', value: '7'}] would allow the voucher to be used for buying products with PLU (or product ID on the client side) 5 or 7. These client-side validations rules are returned as response to '/voucher/{code}/validate' 
- 
                        object - field: enum location, locationExternalRef, machine, product
- value: string
 
- count: integer 1
- 
                        Number of vouchers with the provided properties to be created. Voucher creation is an atomic operation. If the total amount of vouchers requested can't be created, no voucher will be created. If count > 1 the response body will be empty. Max value: 5000 
- text1: string
- 
                        Text line 1 to be rendered in the pdf 
- text2: string
- 
                        Text line 2 to be rendered in the pdf 
- text3: string
- 
                        Text line 3 to be rendered in the pdf 
- text4: string
- 
                        Text line 4 to be rendered in the pdf 
- style: string
- 
                        Css style to be used when rendering the pdf. I.e.: {"voucherText1Lbl": {"fontSize": "28px"}, "voucherText2Lbl": {"fontSize": "24px"}, "voucherText3Lbl": {"fontSize": "18px"}}. Notice the html elements sensitive to be customized are: voucherText1Lbl, voucherText2Lbl, voucherText3Lbl 
Request Example
{
  "campaign": "integer",
  "type": "enum",
  "value": "integer",
  "valueType": "enum",
  "code": "string",
  "prefix": "string",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "timeZone": "string",
  "validationRules": [
    {
      "field": "enum",
      "value": "string"
    }
  ],
  "count": "integer",
  "text1": "string",
  "text2": "string",
  "text3": "string",
  "text4": "string",
  "style": "string"
}
Successful operation (only if the total amount of vouchers could be created)
BadRequest
Unauthorized
Forbidden
Response Example (201 Created)
{
  "id": "string",
  "code": "string",
  "campaign": "integer",
  "type": "string",
  "value": "integer",
  "valueType": "string",
  "currency": "string",
  "initialValue": "integer",
  "redemptionLimit": "integer",
  "redemptionCount": "integer",
  "totalRedemptionCount": "integer",
  "lastRedemptionAt": "string (date-time-utc)",
  "lastRedemptionLocation": "string",
  "prefix": "string",
  "resetFrequency": "string",
  "lastResetAt": "string (date-time-utc)",
  "expiresOn": "string (date-time-utc)",
  "timeZone": "string",
  "lockOwner": "string",
  "lockedTill": "string (date-time-utc)",
  "status": "string",
  "amountRedeemed": "integer",
  "totalAmountRedeemed": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Find voucher
Limit the number of logs returned
Skips the first 'N' items of the results
Filter criteria. It supports multiple values: e.g. where[occurredAt][>]=2018-05-15T00:00:00&where[machine]=1094
The sort column e.g. sort[occurredAt]=desc
Response Example (200 OK)
[
  {
    "id": "string",
    "code": "string",
    "campaign": "integer",
    "type": "string",
    "value": "integer",
    "valueType": "string",
    "currency": "string",
    "initialValue": "integer",
    "redemptionLimit": "integer",
    "redemptionCount": "integer",
    "totalRedemptionCount": "integer",
    "lastRedemptionAt": "string (date-time-utc)",
    "lastRedemptionLocation": "string",
    "prefix": "string",
    "resetFrequency": "string",
    "lastResetAt": "string (date-time-utc)",
    "expiresOn": "string (date-time-utc)",
    "timeZone": "string",
    "lockOwner": "string",
    "lockedTill": "string (date-time-utc)",
    "status": "string",
    "amountRedeemed": "integer",
    "totalAmountRedeemed": "integer",
    "createdAt": "string (date-time-utc)",
    "updatedAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Update the given voucher
- campaign: integer
- 
                        Id of the campaign where the voucher will be created. 
- type: enum discount, gift
- 
                        Type of voucher. 
- value: integer
- 
                        Value of the voucher in the units specified by 'valueType'. 
- valueType: enum cents cents
- 
                        Value type description 
- redemptionLimit: integer
- 
                        Number of times a voucher can be redeemed. Not applicable to vouchers of type 'inherit' 
- resetFrequency: enum day, week, month, never never
- 
                        How frequent the voucher counters (and value in case of gift vouchers) will be reset. 
- expiresOn: date
- timeZone: string Europe/Amsterdam
- 
                        Used by 'expiresOn' and 'resetFrequency'. 
- validationRules: object[]
- 
                        It contains voucher validation rules. For instance: {field: 'location', value: '10'} would enable the voucher to be used in all gateways in location with id '10'. {field: 'locationExternalRef', value: 'xyz_123'} would enable the voucher to be used in all gateways with location external ref 'xyz_123'. [{field: 'product', value: '5'}, {field: 'product', value: '7'}] would allow the voucher to be used for buying products with PLU (or product ID on the client side) 5 or 7. These client-side validations rules are returned as response to '/voucher/{code}/validate' 
- 
                        object - field: enum location, locationExternalRef, machine, product
- value: string
 
- text1: string
- 
                        Text line 1 to be rendered in the pdf 
- text2: string
- 
                        Text line 2 to be rendered in the pdf 
- text3: string
- 
                        Text line 3 to be rendered in the pdf 
- text4: string
- 
                        Text line 4 to be rendered in the pdf 
- voucherComments: string
- 
                        Note about this voucher 
- style: string
- 
                        Css style to be used when rendering the pdf. I.e.: {"voucherText1Lbl": {"fontSize": "28px"}, "voucherText2Lbl": {"fontSize": "24px"}, "voucherText3Lbl": {"fontSize": "18px"}}. Notice the html elements sensitive to be customized are: voucherText1Lbl, voucherText2Lbl, voucherText3Lbl 
The id of the voucher
Request Example
{
  "campaign": "integer",
  "type": "enum",
  "value": "integer",
  "valueType": "enum",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "timeZone": "string",
  "validationRules": [
    {
      "field": "enum",
      "value": "string"
    }
  ],
  "text1": "string",
  "text2": "string",
  "text3": "string",
  "text4": "string",
  "voucherComments": "string",
  "style": "string"
}
Successful operation
BadRequest
Unauthorized
Forbidden
Response Example (400 Bad Request)
{
  "message": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get Voucher
The id of the voucher
Response Example (200 OK)
{
  "id": "string",
  "code": "string",
  "campaign": "integer",
  "type": "string",
  "value": "integer",
  "valueType": "string",
  "currency": "string",
  "initialValue": "integer",
  "redemptionLimit": "integer",
  "redemptionCount": "integer",
  "totalRedemptionCount": "integer",
  "lastRedemptionAt": "string (date-time-utc)",
  "lastRedemptionLocation": "string",
  "prefix": "string",
  "resetFrequency": "string",
  "lastResetAt": "string (date-time-utc)",
  "expiresOn": "string (date-time-utc)",
  "timeZone": "string",
  "lockOwner": "string",
  "lockedTill": "string (date-time-utc)",
  "status": "string",
  "amountRedeemed": "integer",
  "totalAmountRedeemed": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Deletes a voucher
The id of the voucher
Successful operation
Unauthorized
Forbidden
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get Voucher history (validate, redeem, delete)
The id of the voucher
successful operation
Unauthorized
Forbidden
Response Example (200 OK)
[
  {
    "id": "integer",
    "voucher": "string",
    "requester": "string",
    "requesterLocation": "string",
    "action": "enum",
    "success": "boolean",
    "request": "string (json)",
    "response": "string (json)",
    "currency": "string",
    "createdAt": "string (date-time-utc)"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get voucher validation rules
The id of the voucher
Successful operation
Unauthorized
Forbidden
Response Example (200 OK)
[
  {
    "field": "string",
    "value": "string"
  }
]
Response Example (401 Unauthorized)
{
  "message": "string"
}
Get Voucher with logoImg populated as the proper img url
The id of the voucher
Response Example (200 OK)
{
  "id": "string",
  "code": "string",
  "campaign": "integer",
  "type": "string",
  "value": "integer",
  "valueType": "string",
  "currency": "string",
  "initialValue": "integer",
  "redemptionLimit": "integer",
  "redemptionCount": "integer",
  "totalRedemptionCount": "integer",
  "lastRedemptionAt": "string (date-time-utc)",
  "lastRedemptionLocation": "string",
  "prefix": "string",
  "resetFrequency": "string",
  "lastResetAt": "string (date-time-utc)",
  "expiresOn": "string (date-time-utc)",
  "timeZone": "string",
  "lockOwner": "string",
  "lockedTill": "string (date-time-utc)",
  "status": "string",
  "amountRedeemed": "integer",
  "totalAmountRedeemed": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Response Example (401 Unauthorized)
{
  "message": "string"
}
Voucher Export
Voucher CSV export
CSV export vouchers.
The columns to export. format: [{property: string, alias: 'name in csv'}]
The criteria object
The sort column e.g. {name: 'ASC}
successful operation
Missing parameter
Unauthorized
Response Example (401 Unauthorized)
{
  "message": "string"
}
Schema Definitions
AggregatedPaymentTransaction: object
- payment: string
- location: integer
- shift: integer
- amount: integer
- currency: string
- quantity: integer
- paymentType: string
- reportGroup: string
- id: integer
- createdAt: string
- updatedAt: string
Example
{
  "payment": "string",
  "location": "integer",
  "shift": "integer",
  "amount": "integer",
  "currency": "string",
  "quantity": "integer",
  "paymentType": "string",
  "reportGroup": "string",
  "id": "integer",
  "createdAt": "string",
  "updatedAt": "string"
}
AggregatedRevenueTransaction: object
- name: string
- barcode: string
- price: integer
- productId: integer
- location: integer
- shift: integer
- amount: integer
- currency: string
- quantity: integer
- id: integer
- createdAt: string
- updatedAt: string
Example
{
  "name": "string",
  "barcode": "string",
  "price": "integer",
  "productId": "integer",
  "location": "integer",
  "shift": "integer",
  "amount": "integer",
  "currency": "string",
  "quantity": "integer",
  "id": "integer",
  "createdAt": "string",
  "updatedAt": "string"
}
AlertGroup: object
- id: integer
- name: string
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
AlertObserver: object
- id: integer
- name: string
- error: integer
- observer: string
- occurs: integer
- timer: integer
- timerType: integer
- alertGroup: integer
- sentAt: string (date-time)
- type: string
- paymentMethod: string
- openingHours: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "error": "integer",
  "observer": "string",
  "occurs": "integer",
  "timer": "integer",
  "timerType": "integer",
  "alertGroup": "integer",
  "sentAt": "string (date-time)",
  "type": "string",
  "paymentMethod": "string",
  "openingHours": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
AlertRecipient: object
- id: integer
- name: string
- email: string
- alertGroup: integer
- language: integer
- active: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "email": "string",
  "alertGroup": "integer",
  "language": "integer",
  "active": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Debtor: object
- id: integer
- externalId: integer
- name: string
- description: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "externalId": "integer",
  "name": "string",
  "description": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Currency: object
- id: integer
- code: string
- rate: number
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "code": "string",
  "rate": "number",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ErrorCode: object
- id: integer
- code: string
- errorIdentity: integer
- errorProfile: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "code": "string",
  "errorIdentity": "integer",
  "errorProfile": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ErrorIdentity: object
- id: integer
- error: string
- machineType: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "error": "string",
  "machineType": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ErrorProfile: object
- id: integer
- name: string
- machineType: integer
- manufacturer: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "machineType": "integer",
  "manufacturer": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Image: object
- id: integer
- thumbnail: string
- original: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "thumbnail": "string",
  "original": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Integration: object
- id: integer
- type: string httptransactions, mplusinvoices
- name: string
- active: boolean
- 
                      Whether the integration is enabled to run 
- state: string idle, syncing, pendingRetry, failed
- 
                      The state of the integration 
- throttle: integer
- 
                      The time (ms) between handling two records 
- maxRetries: integer
- 
                      The maximum number of retries in case of an error 
- retryThrottle: integer
- 
                      The minimum time between two retries (ms; exponential) 
- stopOnFailure: boolean
- 
                      Whether handling of subsequent records should pause if one record failed 
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "type": "string",
  "name": "string",
  "active": "boolean",
  "state": "string",
  "throttle": "integer",
  "maxRetries": "integer",
  "retryThrottle": "integer",
  "stopOnFailure": "boolean",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
IntegrationError: object
- id: integer
- state: string failed, pendingRetry, resolved
- 
                      The state of the integration error 
- machine: integer
- 
                      The machine for which the error occurred 
- revenuetransaction: integer
- 
                      The revenue transaction for which the error occurred 
- message: string
- 
                      The error message 
- details: string
- 
                      Any additional details, like possibly the message that was sent to the remote server 
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "state": "string",
  "machine": "integer",
  "revenuetransaction": "integer",
  "message": "string",
  "details": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Language: object
- id: integer
- name: string
- language: string
- locale: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "language": "string",
  "locale": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Location: object
- id: integer
- name: string
- address: string
- postcode: string
- city: string
- country: string
- activeShift: integer
- latitude: string
- longitude: string
- placeId: string
- timeZone: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "address": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "activeShift": "integer",
  "latitude": "string",
  "longitude": "string",
  "placeId": "string",
  "timeZone": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
LocationGroup: object
- id: integer
- name: string
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Log: object
- id: integer
- 
                      Id of the log 
- remote: integer
- 
                      Reserved. Internal use only 
- machine: integer
- 
                      Id of the machine that generated the transaction 
- location: integer
- 
                      Id of the machine location 
- code: string
- errorIdentity: integer
- 
                      Id of the event identity mapping this code 
- type: integer 1 = Occurrence, 2 = Resolution
- 
                      Type of log 
- isResolvable: boolean
- 
                      True if this event can be resolved. False otherwise 
- occurredAt: string (date-time-iso)
- 
                      Local time of the transaction. It is based on the location of the machine at the moment of the transaction 
- timeZone: string
- 
                      Time zone of the machine at the moment of the transaction. It's based on the machine location 
- duration: integer
- 
                      In case of a resolution, it contains the time in seconds between the first occurrence after the previous resolution and this resolution 
- extraData: string
- 
                      Option Json string containing extra data attached to the log 
- date: integer
- 
                      Reserved. Internal use only 
- timestamp: integer
- 
                      Reserved. Internal use only 
- resolvedAt: string
- 
                      Deprecated 
- state: string
- 
                      Deprecated 
- createdAt: string (date-time-utc)
- 
                      Moment when this log was registered in Alchemy 
Example
{
  "id": 5801104,
  "remote": 89773649,
  "machine": 80,
  "location": 2,
  "code": "CM_REBOOT",
  "errorIdentity": 3,
  "type": 1,
  "isResolvable": false,
  "occurredAt": "2019-03-12T05:36:58+01:00",
  "timeZone": "Europe/Amsterdam",
  "duration": null,
  "extraData": "{\"uptime\": 67}",
  "date": 1552365418,
  "timestamp": 1552365418,
  "resolvedAt": null,
  "state": null,
  "createdAt": "2019-03-12T04:36:59Z"
}
RawLog: object
- remote: integer
- timestamp: integer
- date: integer
- state: string
- code: string
- mode: string
- extraData: string
- timeflag: number
- machine: integer
- location: integer
- occurredAt: string (date-time)
Example
Gateway: object
- id: integer
- hostname: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "hostname": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
GatewayVersion: object
- name: string
- description: string
Example
{
  "name": "string",
  "description": "string"
}
Machine: object
- id: integer
- name: string
- hostname: string
- gateway: integer
- location: integer
- machineModel: integer
- machineType: integer
- manufacturer: integer
- lastRevenuetransaction: integer
- lastLog: integer
- lastIotevent: integer
- tag: string
- notes: string
- virtualPrices: integer
- active: integer
- currency: integer
- debtor: integer
- logSynced: integer
- revenuetransactionSynced: integer
- ioteventSynced: integer
- ruleSet: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "hostname": "string",
  "gateway": "integer",
  "location": "integer",
  "machineModel": "integer",
  "machineType": "integer",
  "manufacturer": "integer",
  "lastRevenuetransaction": "integer",
  "lastLog": "integer",
  "lastIotevent": "integer",
  "tag": "string",
  "notes": "string",
  "virtualPrices": "integer",
  "active": "integer",
  "currency": "integer",
  "debtor": "integer",
  "logSynced": "integer",
  "revenuetransactionSynced": "integer",
  "ioteventSynced": "integer",
  "ruleSet": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
MachineConfigTemplate: object
- id: integer
- name: string
- apn: string
- config: string
- sharing: string
- mode: string
- encryption: string
- encryptionKey: string
- ssid: string
Example
{
  "id": "integer",
  "name": "string",
  "apn": "string",
  "config": "string",
  "sharing": "string",
  "mode": "string",
  "encryption": "string",
  "encryptionKey": "string",
  "ssid": "string"
}
MachineGroup: object
- id: integer
- name: string
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
MachineModel: object
- id: integer
- name: string
- manufacturer: integer
- machineType: integer
- errorProfile: integer
- image: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "manufacturer": "integer",
  "machineType": "integer",
  "errorProfile": "integer",
  "image": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
MachineType: object
- id: integer
- name: string
- image: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "image": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Manufacturer: object
- id: integer
- name: string
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
OpeningHour: object
- day: integer
- startTime: string
- endTime: string
Example
{
  "day": "integer",
  "startTime": "string",
  "endTime": "string"
}
Invoice: object
- id: integer
- remote: integer
- price: integer
- occurredAt: string (date-time-utc)
- machine: integer
- location: integer
- timestamp: integer
- currency: string
- timezone: string
- name: string
- token: string
- salestype: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "remote": "integer",
  "price": "integer",
  "occurredAt": "string (date-time-utc)",
  "machine": "integer",
  "location": "integer",
  "timestamp": "integer",
  "currency": "string",
  "timezone": "string",
  "name": "string",
  "token": "string",
  "salestype": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
PaymentTransaction: object
- id: integer
- 
                      Id of the payment transaction 
- revenuetransaction: integer
- 
                      Id of the revenue transaction this payment belongs to 
- machine: integer
- 
                      Id of the machine that generated the transaction 
- location: integer
- 
                      Id of the machine location 
- occurredAt: string (date-time-iso)
- 
                      Local time of the transaction. It is based on the location of the machine at the moment of the transaction 
- timeZone: string
- 
                      Time zone of the machine at the moment of the transaction. It's based on the machine location 
- method: string
- 
                      Payment method. It is used to determine the payment type 
- type: string cash, card, card1, card2, code, virtual, test
- 
                      Payment type 
- price: integer
- 
                      Amount of the payment 
- currency: integer
- 
                      Currency of the payment 
- exclude: integer
- 
                      Reserved. Internal use only 
- reportGroup: string
- 
                      Reserved. Internal use only 
- createdAt: string (date-time-utc)
- 
                      Moment when this transaction was registered in Alchemy 
- updatedAt: string (date-time-utc)
- 
                      Moment when this transaction was updated in Alchemy (createdAt = updatedAt) 
Example
{
  "id": 3287746,
  "revenuetransaction": 3184234,
  "machine": 80,
  "location": 2,
  "occurredAt": "2019-02-06T07:06:17+01:00",
  "timeZone": "Europe/Amsterdam",
  "method": "virtual",
  "type": "virtual",
  "price": 10,
  "currency": "EUR",
  "exclude": 0,
  "reportGroup": null,
  "createdAt": "2019-02-06T06:12:16Z",
  "updatedAt": "2019-02-06T06:12:16Z"
}
Permission: object
- id: integer
- action: string
- model: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "action": "string",
  "model": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Product: object
- id: integer
- plu: integer
- name: string
- price: string
- barcode: string
- machine: integer
- reportName: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ProductExtra: object
- id: integer
- plu: integer
- name: string
- price: string
- barcode: string
- machine: integer
- reportName: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ProductFlavour: object
- id: integer
- plu: integer
- name: string
- price: string
- barcode: string
- machine: integer
- reportName: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "plu": "integer",
  "name": "string",
  "price": "string",
  "barcode": "string",
  "machine": "integer",
  "reportName": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Recipient: object
- id: integer
- name: string
- email: string
- active: integer
- language: integer
- alertGroup: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "email": "string",
  "active": "integer",
  "language": "integer",
  "alertGroup": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Report: object
- id: integer
- 
                      Id of the report 
- name: string
- 
                      Name of the report 
- period1: integer
- 
                      Id of the report period 1 
- period2: integer
- 
                      Id of the report period 2 
- user: integer
- 
                      Id of the user who created the report 
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "period1": "integer",
  "period2": "integer",
  "user": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
ReportRequest: object
- machines: integer[]
- 
                      integer 
- locations: integer[]
- 
                      integer 
- machineGroups: integer[]
- 
                      integer 
- locationGroups: integer[]
- 
                      integer 
- period1: object
- 
                      - referenceDate: string (date-time-iso)
- 
                            The date of the user with timezone offset 
- startDate: ReportRequestDate
- endDate: ReportRequestDate
 
- period2: object
- 
                      - referenceDate: string (date-time-iso)
- 
                            The date of the user with timezone offset 
- startDate: ReportRequestDate
- endDate: ReportRequestDate
 
Example
{
  "machines": [
    87,
    94,
    80
  ],
  "period1": {
    "referenceDate": "2019-03-11T11:40:43+01:00",
    "startDate": {
      "year": 0,
      "month": 1,
      "day": 1,
      "week": null,
      "hour": 0,
      "minute": 0,
      "second": 0
    },
    "endDate": {
      "year": 0,
      "month": 0,
      "day": 0,
      "week": null,
      "hour": 23,
      "minute": 59,
      "second": 59
    }
  }
}
ReportRequestDate: object
- year: integer
- 
                      If > 0, it overwrites the year of the referenceDate 
- month: integer
- 
                      If > 0, it overwrites the month of the referenceDate. 'week' and 'month' are mutually exclusive 
- week: integer
- 
                      If > 0, it overwrites the week of the year (weeks of the year start with 0). 'week' and 'month' are mutually exclusive 
- day: integer
- 
                      If > 0, it adds the given number of days to the resulting reference date (year-month OR year-weekOfYear) 
- hour: integer
- 
                      It overwrites the hour of the referenceDate 
- minute: integer
- 
                      It overwrites the minute of the referenceDate 
- second: integer
- 
                      It overwrites the second of the referenceDate 
Example
{
  "year": 0,
  "month": 1,
  "day": 1,
  "week": null,
  "hour": 0,
  "minute": 0,
  "second": 0
}
LogsResolutionReport: object
- period1: object
- 
                      - startDate: string (date-time)
- endDate: string (date-time)
- data: array
- items: object
- 
                            - code: string
- 
                                  Log code 
- erroridentity: integer
- 
                                  Id of the event identity mapping this code 
- error: string
- 
                                  Event name 
- quantity: integer
- 
                                  Number of resolved logs with this code 
- duration: integer
- 
                                  Average resolution time (in seconds) 
 
 
- period2: object
- 
                      - startDate: string (date-time)
- endDate: string (date-time)
- data: object[]
- 
                            object - code: string
- 
                                      Log code 
- erroridentity: integer
- 
                                      Id of the event identity mapping this code 
- error: string
- 
                                      Event name 
- quantity: integer
- 
                                      Number of resolved logs with this code 
- duration: integer
- 
                                      Average resolution time (in seconds) 
 
 
Example
{
  "period1": {
    "data": [
      {
        "code": "ED017",
        "erroridentity": 34,
        "error": "ED017",
        "quantity": 518,
        "duration": 2987
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 214,
        "duration": 6629
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "code": "ED017",
        "erroridentity": 34,
        "error": "ED017",
        "quantity": 23,
        "duration": 342
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 57,
        "duration": 567
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
LogsFrequencyReport: object
- period1: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - code: string
- 
                                      Log code 
- erroridentity: integer
- 
                                      Id of the event identity mapping this code 
- error: string
- 
                                      Event name 
- quantity: integer
- 
                                      Number of logs with this code 
 
 
- period2: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - code: string
- 
                                      Log code 
- erroridentity: integer
- 
                                      Id of the event identity mapping this code 
- error: string
- 
                                      Event name 
- quantity: integer
- 
                                      Number of logs with this code 
 
 
Example
{
  "period1": {
    "data": [
      {
        "code": "CM_OFFLINE",
        "erroridentity": 1,
        "error": "CM_OFFLINE",
        "quantity": 220
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 152
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "code": "CM_OFFLINE",
        "erroridentity": 1,
        "quantity": 357,
        "error": "CM_OFFLINE"
      },
      {
        "code": "ED014",
        "erroridentity": 31,
        "error": "ED014",
        "quantity": 45
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
RevenueTransactionsReport: object
- period1: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - productId: integer
- 
                                      PLU of the product 
- name: string
- 
                                      Name of the product 
- internalRef: string
- 
                                      Internal reference of the product 
- revenue: integer
- 
                                      Total revenue of this product 
- quantity: integer
- 
                                      Number of transactions of this product 
- currency: string
- 
                                      Currency used in this transactions group 
 
 
- period2: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - productId: integer
- 
                                      PLU of the product 
- name: string
- 
                                      Name of the product 
- internalRef: string
- 
                                      Internal reference of the product 
- revenue: integer
- 
                                      Total revenue of this product 
- quantity: integer
- 
                                      Number of transactions of this product 
- currency: string
- 
                                      Currency used in this transactions group 
 
 
Example
{
  "period1": {
    "data": [
      {
        "productId": 1,
        "name": "Kaffee klein",
        "internalRef": "KAF-KL",
        "revenue": 7080,
        "quantity": 906,
        "currency": "EUR"
      },
      {
        "productId": 2,
        "name": "Capuccino",
        "internalRef": "CAP",
        "revenue": 5500,
        "quantity": 700,
        "currency": "EUR"
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  },
  "period2": {
    "data": [
      {
        "productId": 1,
        "name": "Kaffee klein",
        "revenue": 7080,
        "quantity": 906,
        "currency": "EUR"
      },
      {
        "productId": 4,
        "name": "Capuccino klein",
        "revenue": 7000,
        "quantity": 750,
        "currency": "EUR"
      }
    ],
    "endDate": "2018-03-11 23:59:59",
    "startDate": "2018-01-01 00:00:00"
  }
}
PaymentTransactionsReport: object
- period1: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - type: string
- 
                                      Type of payment transaction 
- quantity: integer
- 
                                      Number of payment transactions of this type 
- revenue: integer
- 
                                      Total revenue of payment transactions of this type 
- reportGroup: string
- 
                                      Report group of the transactions 
- currency: string
- 
                                      Currency used in this transactions group 
 
 
- period2: object
- 
                      - startDate: string
- endDate: string
- data: object[]
- 
                            object - type: string
- 
                                      Type of payment transaction 
- quantity: integer
- 
                                      Number of payment transactions of this type 
- revenue: integer
- 
                                      Total revenue of payment transactions of this type 
- reportGroup: string
- 
                                      Report group of the transactions 
- currency: string
- 
                                      Currency used in this transactions group 
 
 
Example
{
  "period1": {
    "data": [
      {
        "type": "card",
        "quantity": 49,
        "revenue": 81000,
        "reportGroup": null,
        "currency": "AMD"
      }
    ],
    "endDate": "2019-03-11 23:59:59",
    "startDate": "2019-01-01 00:00:00"
  }
}
RevenueTransaction: object
- id: integer
- 
                      Id of the transaction 
- product: integer
- 
                      PLU of the product 
- name: string
- 
                      Name of the product 
- internalRef: string
- 
                      Internal reference of the product (if defined) 
- machine: integer
- 
                      Id of the machine that generated the transaction 
- location: integer
- 
                      Id of the machine location 
- occurredAt: string (date-time-iso)
- 
                      Local time of the transaction. It is based on the location of the machine at the moment of the transaction 
- timeZone: string
- 
                      Time zone of the machine at the moment of the transaction. It's based on the machine location 
- originalPrice: integer
- 
                      Price of the product set in the machine 
- price: integer
- 
                      Price of the product set in Alchemy 
- barcode: string
- 
                      Barcode of the product 
- currency: string
- 
                      Currency in which the product was payed 
- timestamp: integer
- 
                      Timestamp in seconds of transaction 
- token: string
- 
                      Token if this transaction (if any) 
- salestype: integer
- 
                      If 1, it's a test transaction 
- numPaymentTransactions: integer
- 
                      Amount of payments contained in this transaction 
- remote: integer
- 
                      Reserved. Internal use only 
- pricelist: integer
- 
                      Reserved. Internal use only 
- userGroup: integer
- 
                      Reserved. Internal use only 
- createdAt: string (date-time-utc)
- 
                      Moment when this transaction was registered in Alchemy 
- updatedAt: string (date-time-utc)
- 
                      Moment when this transaction was updated in Alchemy (createdAt = updatedAt) 
Example
{
  "id": 3184234,
  "product": 1,
  "name": "Kaffee klein",
  "internalRef": "KAF-KL",
  "machine": 80,
  "location": 2,
  "occurredAt": "2019-02-06T07:06:17+01:00",
  "timeZone": "Europe/Amsterdam",
  "originalPrice": 0,
  "price": 10,
  "barcode": null,
  "currency": "EUR",
  "timestamp": 1549433177,
  "token": "^^C:R/-0",
  "salestype": 0,
  "numPaymentTransactions": 1,
  "remote": 40314354,
  "pricelist": 0,
  "usergroup": 0,
  "createdAt": "2019-02-06T06:12:16Z",
  "updatedAt": "2019-02-06T06:12:16Z"
}
Shift: object
- id: integer
- location: integer
- firstTransaction: integer
- lastTransaction: integer
- previousShift: integer
- closed: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "location": "integer",
  "firstTransaction": "integer",
  "lastTransaction": "integer",
  "previousShift": "integer",
  "closed": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Translation: object
- id: integer
- key: string
- value: string
- language: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "key": "string",
  "value": "string",
  "language": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
UnmappedErrorCode: object
- id: integer
- errorProfile: number
- code: string
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "errorProfile": "number",
  "code": "string",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
User: object
- id: integer
- username: string
- email: string
- language: integer
- userGroup: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "username": "string",
  "email": "string",
  "language": "integer",
  "userGroup": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
UserGroup: object
- id: integer
- name: string
- parent: integer
- admin: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "parent": "integer",
  "admin": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Dashboard: object
- id: integer
- user: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "user": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Widget: object
- id: integer
- name: string
- widgetType: integer
- dashboard: integer
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "widgetType": "integer",
  "dashboard": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
WidgetType: object
- id: integer
- name: string
- configurable: boolean
- defaultApp: boolean
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "configurable": "boolean",
  "defaultApp": "boolean",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
UserReport: object
- id: integer
- user: integer
- name: string
- createAt: string (date-time-utc)
- updateAt: string (date-time-utc)
Example
{
  "id": "integer",
  "user": "integer",
  "name": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Chart: object
- id: integer
- name: string
- type: string
- criteria: ChartCriteria
- report: integer
- reportType: string
- createAt: string (date-time-utc)
- updateAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "report": "integer",
  "reportType": "string",
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
ChartCriteria: object
- select: object[]
- 
                      object - expr: string
- op: string
- as: string
 
- from: string
- where: object[]
- 
                      object - field: string
- op: string
- value: string
 
- orderBy: string[]
- 
                      string 
- timeFrames: array
Example
{
  "select": [
    {
      "expr": "string",
      "op": "string",
      "as": "string"
    }
  ],
  "from": "string",
  "where": [
    {
      "field": "string",
      "op": "string",
      "value": "string"
    }
  ],
  "orderBy": [
    "string"
  ],
  "timeFrames": {
    "items": {
      "type": "string",
      "viewType": "string",
      "startAt": "date-time",
      "endAt": "date-time",
      "hoursToSub": "integer",
      "column": "string",
      "description": "string"
    }
  }
}
ChartTemplate: object
- id: integer
- name: string
- type: string
- criteria: ChartCriteria
- createAt: string (date-time-utc)
- updateAt: string (date-time-utc)
Example
{
  "id": "integer",
  "name": "string",
  "type": "string",
  "criteria": {
    "select": [
      {
        "expr": "string",
        "op": "string",
        "as": "string"
      }
    ],
    "from": "string",
    "where": [
      {
        "field": "string",
        "op": "string",
        "value": "string"
      }
    ],
    "orderBy": [
      "string"
    ],
    "timeFrames": {
      "items": {
        "type": "string",
        "viewType": "string",
        "startAt": "date-time",
        "endAt": "date-time",
        "hoursToSub": "integer",
        "column": "string",
        "description": "string"
      }
    }
  },
  "createAt": "string (date-time-utc)",
  "updateAt": "string (date-time-utc)"
}
Campaign: object
- name: string
- totalVouchers: integer
- type: enum
- valueType: enum cents cents
- voucherValue: integer
- redemptionLimit: integer
- resetFrequency: enum day, week, month, never
- expiresOn: date
- currency: string EUR
- timeZone: string Europe/Amsterdam
- status: enum creating, active, inactive, expired, deleting
- createdAt: string (date-time-utc)
- updatedAt: string (date-time-utc)
Example
{
  "name": "string",
  "totalVouchers": "integer",
  "type": "enum",
  "valueType": "enum",
  "voucherValue": "integer",
  "redemptionLimit": "integer",
  "resetFrequency": "enum",
  "expiresOn": "date",
  "currency": "string",
  "timeZone": "string",
  "status": "enum",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
Voucher: object
- id: string
- 
                      Id of the voucher. It's unique in the system. 
- code: string
- 
                      Code of the voucher. This field is the one that will be represented as QR code in a voucher. Codes are unique per campaign, but they can't identify a Voucher. 
- campaign: integer
- 
                      Id of the campaign the voucher belongs to 
- type: string discount, gift, inherit
- 
                      Type of voucher. Discount vouchers have a fixed value, and each redemption gives the same discount. Gift vouchers instead act as a wallet, where each redemption will subtract a determined amount from the voucher value. 
- value: integer
- 
                      Value of the voucher in the unit specified by 'valueType' 
- valueType: string cents
- 
                      Unit of the voucher value 
- currency: string
- 
                      Internal property. It's set when the voucher is redeemed for the first time. The currency assigned is the one of the gateway where voucher's been redeemed. If the voucher already has a currency set and a new redemption has been exected from a machine with a different currency, the voucher currency becomes '*' and can't be reverted. 
- initialValue: integer
- 
                      Internal property. Initial value of the voucher. Set automatically when creating a gift voucher via POST /voucher. Used to reset the value of the voucher when it's reset (see resetFrequency). 
- redemptionLimit: integer
- 
                      Max. times the voucher can be redeemed. 
- redemptionCount: integer
- 
                      Internal property. Number of times the voucher has been redeemed since its creation or last reset. 
- totalRedemptionCount: integer
- 
                      Internal property. Total number of times the voucher has been redeemed. 
- lastRedemptionAt: string (date-time-utc)
- 
                      Internal property. Timestamp of the voucher last redemption. 
- lastRedemptionLocation: string
- 
                      Internal property. Location where the voucher was redeemed the last time. 
- prefix: string
- 
                      Prefix used to generate the voucher code 
- resetFrequency: string day, week, month, never
- 
                      When the voucher counters are reset. If 'daily', counters are reset when a new day starts (hour 00:00). If 'week', counters are reset when a new week starts (Monday 00:00). If 'month', counters are reset when a new month starts (1st 00:00). The voucher counters reset are: redemptionCount, amountRedeemed, value (if a gift voucher) 
- lastResetAt: string (date-time-utc)
- 
                      Internal property. Timestamp of the voucher last reset. 
- expiresOn: string (date-time-utc)
- 
                      Expiration date of the voucher with a precision of days. 
- timeZone: string
- 
                      Timezone used when resetting voucher counters and maintain their status (check 'resetFrequency' and 'status') 
- lockOwner: string
- 
                      Internal property. 
- lockedTill: string (date-time-utc)
- 
                      Internal property. 
- status: string active, inactive, expired, deleted
- 
                      Current status of the voucher. 
- amountRedeemed: integer
- 
                      Internal property. Total amount redeemed since the voucher creation or last reset. 
- totalAmountRedeemed: integer
- 
                      Internal property. Total amount redeemed since the voucher creation. 
- createdAt: string (date-time-utc)
- 
                      Internal property. 
- updatedAt: string (date-time-utc)
- 
                      Internal property. 
Example
{
  "id": "string",
  "code": "string",
  "campaign": "integer",
  "type": "string",
  "value": "integer",
  "valueType": "string",
  "currency": "string",
  "initialValue": "integer",
  "redemptionLimit": "integer",
  "redemptionCount": "integer",
  "totalRedemptionCount": "integer",
  "lastRedemptionAt": "string (date-time-utc)",
  "lastRedemptionLocation": "string",
  "prefix": "string",
  "resetFrequency": "string",
  "lastResetAt": "string (date-time-utc)",
  "expiresOn": "string (date-time-utc)",
  "timeZone": "string",
  "lockOwner": "string",
  "lockedTill": "string (date-time-utc)",
  "status": "string",
  "amountRedeemed": "integer",
  "totalAmountRedeemed": "integer",
  "createdAt": "string (date-time-utc)",
  "updatedAt": "string (date-time-utc)"
}
VoucherValidateResponse: object
- code: string
- 
                      Code of the voucher. Codes are unique per campaign, but they can't identify a Voucher. 
- campaignType: string
- 
                      Type of campaign of this voucher (for hybrid campaigns, it will show the voucher type instead) 
- voucherId: string
- 
                      Id of the voucher linked to the provided code. Returned only if the Code is valid 
- valid: boolean
- 
                      If true, the voucher is valid. Otherwise the voucher is not valid. 
- reason: string
- 
                      Set only when valid=false. It explains the reason why the voucher is not valid. 
- discount: object
- 
                      - type: string cents
 
- validFor: object
- 
                      It contains extra voucher validations to be checked at the client side. At the moment the entity those validations can apply to is 'product'. Besides the validation made by the client, the server will also check that the voucher is valid for the items in the redemption order. For example, if a voucher is valid for product with id '5' only (Id of the product on machine/device), at the time of redemption the 'order.items' must contain the product with id '5' only. 
- 
                      - products: object
- 
                            Hashmap containing <Product PLU/Client Product ID>: as : indicating weather a product is valid or not for this voucher. If the object is not provided, this voucher should be accepted by the client to buy any product. I.e.: { '5': true, '7': true } would indicate the voucher is valid to be redeemed for products 5 AND 7 only. 
- productsRegExp: string
- 
                            Regular expression representation of the 'products'. I.e.: { '5': true, '7': true } => '5|7'. If 'products' is not provided, its value is: '.*' 
 
Example
{
  "code": "string",
  "campaignType": "string",
  "voucherId": "string",
  "valid": "boolean",
  "reason": "string",
  "discount": {
    "type": "string"
  },
  "validFor": {
    "products": "object",
    "productsRegExp": "string"
  }
}
VoucherRedeemResponse: object
- code: string
- 
                      Code of the voucher. Codes are unique per campaign, but they can't identify a Voucher. 
- campaignType: string
- 
                      Type of campaign of this voucher (for hybrid campaigns, it will show the voucher type instead) 
- voucherId: string
- 
                      Id of the voucher linked to the provided code. Returned only if the Code's been redeemed 
- redeemed: boolean
- 
                      If true, the voucher has been redeemed. Otherwise the voucher could not be redeemed. 
- reason: string
- 
                      Set only when redeemed=false. It explains the reason why the voucher could not be redeemed. 
- discount: object
- 
                      - type: string cents
- amountOff: integer
 
Example
{
  "code": "string",
  "campaignType": "string",
  "voucherId": "string",
  "redeemed": "boolean",
  "reason": "string",
  "discount": {
    "type": "string",
    "amountOff": "integer"
  }
}
MachineState: object
- machineId: integer
- state: object
Example
{
  "machineId": "integer",
  "state": "object"
}