See the required headers to establish the websocket connection.
See the required headers to establish the websocket connection.
Message received from Dojo
Accepts the following message:
A generic error notification.
Error notification will be sent by Dojo whenever the message sent by the EPOS can't be read.
Error notification is used whenever the response received from the EPOS can't be read by Dojo.
Identifies the JSON Remote Protocol version that this message uses.
An object representing an error notification sent to EPOS
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason or details of the error, if applicable.
ID of the original message to which the error is sent in response to
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"method": "ErrorNotification",
"params": {
"errorCode": "ERROR_PARSE_ERROR",
"errorReason": "string",
"id": "string"
}
}
Message to send from the EPOS
Accepts the following message:
A generic error response.
Error response is used whenever the operation cannot be performed due to various reasons. General errors include ERROR_PARSE_ERROR, ERROR_INTERNAL_POS_ERROR and WAITER_INCORRECT_WAITER_ID. Please consult other messages descriptions to find out when to use the other certain error codes
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"errorCode": "SESSION_ALREADY_LOCKED",
"errorReason": "Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'GetBillItems'
A request from Dojo for bill items
A request for bill items.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "GetBillItems",
"params": {
"sessionId": "123e4567-e89b-12d3-a456-426614174000",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'GetBillItems'
A list of bill items from the EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"billItems": {
"totalAmount": 950,
"paidAmount": 100,
"taxAmount": 190,
"currency": "GBP",
"items": [
{
"id": "123456789",
"name": "Classic Burger",
"category": [
"mains",
"burgers"
],
"quantity": 1,
"amountPerItem": 1000,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-987654321",
"name": "Extra Cheddar Cheese",
"amountPerModifier": 100,
"quantity": 3
}
]
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 450,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 0,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-123123",
"name": "Buy 1 get 1 free!",
"amountPerModifier": -450,
"quantity": 1
}
]
},
{
"id": "00000001",
"name": "£5 Voucher",
"category": [
"discounts",
"vouchers"
],
"quantity": 1,
"amountPerItem": -500,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
}
],
"sessionId": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'GetFullBill'
A request from Dojo for an itemised bill receipt. If the session does not exist, the EPOS should return SESSION_NO_SUCH_SESSION error. If the bill does not exist, the EPOS should return a BILL_NO_SUCH_BILL error. Otherwise, the EPOS should return a GetFullBill response for the session.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "GetFullBill",
"params": {
"sessionId": "123e4567-e89b-12d3-a456-426614174000",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'GetFullBill'
An itemised bill receipt from the EPOS. This should return a graphical bill receipt to be printed on the card machine (incl. logos/QR codes etc)
See the following example to see how the formatting is handled by a Dojo terminal.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"fullBill": {
"header": {
"receiptLines": [
{
"receiptLineType": "RECEIPT_LINE_TYPE_LOGO",
"receiptLogo": {
"svgImage": "<path d=\\\"M127.230822,29.0095321 L127.230822,44.8571699 L127.228945,44.857 L127.226632,45.0782852 C127.101225,49.363888 124.174005,52.9391141 120.231189,53.999935 L120.230818,49.0517119 C121.686353,48.2013585 122.665635,46.6119543 122.665635,44.7915457 L122.665595,29.0095321 L127.230822,29.0095321 Z M98.8846365,22 L98.8846365,38.4687967 C98.8846365,43.6902675 94.6571667,47.923106 89.4423183,47.923106 C84.2274699,47.923106 80,43.6902675 80,38.4687967 C80,33.2473259 84.2274699,29.0144875 89.4423183,29.0144875 C91.2255567,29.0144875 92.8933384,29.5094441 94.3161065,30.3696359 L94.3157729,22 L98.8846365,22 Z M150.711618,43.6154088 C151.890535,43.6154088 152.846235,44.5711098 152.846235,45.7500266 C152.846235,46.9289435 151.890535,47.8846444 150.711618,47.8846444 C149.532701,47.8846444 148.577,46.9289435 148.577,45.7500266 C148.577,44.5711098 149.532701,43.6154088 150.711618,43.6154088 Z M139.134682,29.0000078 C144.34953,29.0000078 148.577,33.2274777 148.577,38.4423261 C148.577,43.6571745 144.34953,47.8846444 139.134682,47.8846444 C133.919833,47.8846444 129.692363,43.6571745 129.692363,38.4423261 C129.692363,33.2274777 133.919833,29.0000078 139.134682,29.0000078 Z M110.788496,29.0000078 C116.003344,29.0000078 120.230814,33.2274777 120.230814,38.4423261 C120.230814,43.6571745 116.003344,47.8846444 110.788496,47.8846444 C105.573648,47.8846444 101.346178,43.6571745 101.346178,38.4423261 C101.346178,33.2274777 105.573648,29.0000078 110.788496,29.0000078 Z M150.711618,44.1490633 C149.82743,44.1490633 149.110654,44.865839 149.110654,45.7500266 C149.110654,46.6342142 149.82743,47.3509899 150.711618,47.3509899 C151.595805,47.3509899 152.312581,46.6342142 152.312581,45.7500266 C152.312581,44.865839 151.595805,44.1490633 150.711618,44.1490633 Z M150.787549,44.7437068 L150.916706,44.7499643 C151.081083,44.7666509 151.214137,44.8167107 151.315867,44.9001438 C151.443029,45.0044351 151.50661,45.1526386 151.50661,45.3447542 C151.50661,45.4783203 151.474591,45.5903877 151.410553,45.6809565 C151.346514,45.7715253 151.25686,45.8369361 151.141591,45.8771888 L151.141591,45.8771888 L151.539544,46.5770385 L151.54572,46.5928195 L151.54572,46.5928195 L151.547778,46.6072281 C151.547778,46.6236952 151.541832,46.6374177 151.529939,46.6483958 C151.518046,46.6593738 151.504781,46.6648628 151.490143,46.6648628 L151.490143,46.6648628 L151.237649,46.6648628 L151.198539,46.6597169 L151.198539,46.6597169 L151.169036,46.644279 C151.152569,46.6305564 151.137931,46.6127171 151.125124,46.5907611 L151.125124,46.5907611 L150.773827,45.9403125 L150.397829,45.9403125 L150.397829,46.5989946 L150.393026,46.6243813 L150.393026,46.6243813 L150.378617,46.6456512 C150.36581,46.658459 150.349343,46.6648628 150.329216,46.6648628 L150.329216,46.6648628 L150.076721,46.6648628 L150.051335,46.6600599 L150.051335,46.6600599 L150.030065,46.6456512 C150.017257,46.6328435 150.010853,46.6172913 150.010853,46.5989946 L150.010853,46.5989946 L150.010853,44.8123195 L150.015313,44.7848744 L150.015313,44.7848744 L150.028692,44.7629184 C150.040585,44.7501107 150.056595,44.7437068 150.076721,44.7437068 L150.076721,44.7437068 L150.787549,44.7437068 Z M150.779316,45.0510918 L150.397829,45.0510918 L150.397829,45.6274386 L150.779316,45.6274386 C150.889096,45.6274386 150.971431,45.6031954 151.026321,45.5547091 C151.081212,45.5062228 151.108657,45.435323 151.108657,45.3420097 C151.108657,45.2486964 151.081212,45.1768817 151.026321,45.1265658 C150.971431,45.0762498 150.889096,45.0510918 150.779316,45.0510918 L150.779316,45.0510918 Z M89.4423183,33.5891533 C86.7507836,33.5891533 84.5688637,35.7738441 84.5688637,38.4687967 C84.5688637,41.1637494 86.7507836,43.3484402 89.4423183,43.3484402 C92.1338529,43.3484402 94.3157729,41.1637494 94.3157729,38.4687967 C94.3157729,35.7738441 92.1338529,33.5891533 89.4423183,33.5891533 Z M139.134682,33.5688715 C136.443147,33.5688715 134.261227,35.7507915 134.261227,38.4423261 C134.261227,41.1338608 136.443147,43.3157807 139.134682,43.3157807 C141.826216,43.3157807 144.008136,41.1338608 144.008136,38.4423261 C144.008136,35.7507915 141.826216,33.5688715 139.134682,33.5688715 Z M110.788496,33.5688715 C108.096961,33.5688715 105.915041,35.7507915 105.915041,38.4423261 C105.915041,41.1338608 108.096961,43.3157807 110.788496,43.3157807 C113.480031,43.3157807 115.661951,41.1338608 115.661951,38.4423261 C115.661951,35.7507915 113.480031,33.5688715 110.788496,33.5688715 Z M124.948209,22 C126.208861,22 127.230822,23.0233504 127.230822,24.285717 C127.230822,25.5480836 126.208861,26.571434 124.948209,26.571434 C123.687556,26.571434 122.665595,25.5480836 122.665595,24.285717 C122.665595,23.0233504 123.687556,22 124.948209,22 Z\\\" id=\\\"Combined-Shape-Copy-87\\\"></path>\n"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_MERCHANT_NAME",
"receiptMerchantName": {
"merchantName": "Bob's Shop"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER",
"receiptMerchantPhoneNumber": {
"phoneNumber": "01234567890"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS",
"receiptMerchantEmailAddress": {
"emailAddress": "info@bobsshop.com"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS",
"receiptMerchantAddress": {
"addressLines": [
"1",
"High Street",
"London"
],
"postcode": "ABC 123"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_TEXT",
"receiptText": {
"value": "Here is your bill",
"size": "SIZE_HEADER_2",
"align": "ALIGN_CENTER"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_HORIZONTAL_LINE",
"receiptHorizontalLine": {
"type": "HORIZONTAL_LINE_SINGLE"
}
}
]
},
"billItems": {
"totalAmount": 950,
"paidAmount": 100,
"taxAmount": 190,
"currency": "GBP",
"items": [
{
"id": "123456789",
"name": "Classic Burger",
"category": [
"mains",
"burgers"
],
"quantity": 1,
"amountPerItem": 1000,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-987654321",
"name": "Extra Cheddar Cheese",
"amountPerModifier": 100,
"quantity": 3
}
]
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 450,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 0,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-123123",
"name": "Buy 1 get 1 free!",
"amountPerModifier": -450,
"quantity": 1
}
]
},
{
"id": "00000001",
"name": "£5 Voucher",
"category": [
"discounts",
"vouchers"
],
"quantity": 1,
"amountPerItem": -500,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
}
],
"sessionId": "123e4567-e89b-12d3-a456-426614174000"
},
"footer": {
"receiptLines": [
{
"receiptLineType": "RECEIPT_LINE_TYPE_HORIZONTAL_LINE",
"receiptHorizontalLine": {
"type": "HORIZONTAL_LINE_DOUBLE"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_TEXT",
"receiptText": {
"value": "Thanks for dining with us!",
"size": "SIZE_BODY",
"align": "ALIGN_CENTER"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_TEXT",
"receiptText": {
"value": "Scan below to enter a survey",
"size": "SIZE_BODY",
"align": "ALIGN_CENTER"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_URL",
"receiptURL": {
"description": "Voucher code!",
"showQR": true,
"url": "https://bobs-shop.com/voucher-link"
}
},
{
"receiptLineType": "RECEIPT_LINE_TYPE_VAT_NUMBER",
"receiptVATNumber": {
"vatNumber": "123456789"
}
}
]
}
}
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'GetSession'
A request from Dojo for a session. If the session does not exist, return SESSION_NO_SUCH_SESSION error message, otherwise return a GetSession response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "GetSession",
"params": {
"sessionId": "123e4567-e89b-12d3-a456-426614174000",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful response Message for 'GetSession'
A session from a EPOS. If the session does not exist, the EPOS should return a SESSION_NO_SUCH_SESSION error message.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"session": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "John's party",
"tableName": "TBL 101",
"numberOfCovers": 15,
"createdAt": "2021-01-01T15:00:00.123+02:00",
"isPayable": false,
"waiter": {
"id": 1,
"name": "John Smith"
}
}
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'GetTable'
A request from Dojo for a table. If the table doesn't exist, the EPOS should return a SESSION_NO_SUCH_SESSION error message instead, otherwise return a GetTable response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "GetTable",
"params": {
"name": "TBL 101",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'GetTable'
A table from an EPOS. If the table doesn't exist, the EPOS should return a TABLE_NO_SUCH_TABLE error message instead.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"table": {
"name": "TBL 101",
"maxCovers": 5,
"status": "TABLE_STATUS_OCCUPIED"
}
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'ListBillItems'
A request from Dojo for multiple bills. The EPOS should return a list of the bills for sessions specified. If no bills can be found, or the specified sessions don't exist, the EPOS should return a ListBillItems response with no bill itms. Omitting sessionIds returns all bill items
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The ID of sessions to get bills for.
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An array of objects representing BillItems requested.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "ListBillItems",
"params": {
"sessionIds": [
"123e4567-e89b-12d3-a456-426614174000"
],
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'ListBillItems'
List of bills from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An array of objects representing BillItems requested.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"billItems": [
{
"totalAmount": 950,
"paidAmount": 100,
"taxAmount": 190,
"currency": "GBP",
"items": [
{
"id": "123456789",
"name": "Classic Burger",
"category": [
"mains",
"burgers"
],
"quantity": 1,
"amountPerItem": 1000,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-987654321",
"name": "Extra Cheddar Cheese",
"amountPerModifier": 100,
"quantity": 3
}
]
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 450,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 0,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-123123",
"name": "Buy 1 get 1 free!",
"amountPerModifier": -450,
"quantity": 1
}
]
},
{
"id": "00000001",
"name": "£5 Voucher",
"category": [
"discounts",
"vouchers"
],
"quantity": 1,
"amountPerItem": -500,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
}
],
"sessionId": "123e4567-e89b-12d3-a456-426614174000"
}
]
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'ListSessions'
A request from Dojo for a list of sessions. If there are filtering params specified, the response from the EPOS should contain only sessions matching all of the filters. If no sessions match the filters, the EPOS should return a ListSessions response with no sessions.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set and true, the returned list of sessions should only be for sessions that are finished. If false, only for sessions that are not finished.
If set and true, the returned list of sessions should only be for sessions that have a table. If false, only for sessions without a table.
If set and true, the returned list of sessions should only be for sessions that can currently be paid
If not empty, the returned list of sessions MUST only contain sessions linked to the tables with tableName from this list. If empty, this field MUST be ignored.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The session objects returned.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "ListSessions",
"params": {
"isFinished": true,
"hasTable": true,
"isPayable": true,
"tableNames": [],
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Response Message for 'ListSessions'
A list of sessions from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The session objects returned.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"sessions": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"name": "John's party",
"tableName": "TBL 101",
"numberOfCovers": 15,
"createdAt": "2021-01-01T15:00:00.123+02:00",
"isPayable": false,
"waiter": {
"id": 1,
"name": "John Smith"
}
}
]
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'ListTables'
A request for a list of tables. If there are params set, the ListTables response should contain only tables matching all of the filters using AND logic.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set, the returned list of tables should only be for ones that have matching statuses using OR logic.
Current status of the table. May be one of predefined strings.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Array of objects representing Tables matching ListTables request.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "ListTables",
"params": {
"statuses": [
"TABLE_STATUS_AVAILABLE"
],
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Response Message for 'ListTables'
A list of tables from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Array of objects representing Tables matching ListTables request.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"tables": [
{
"name": "TBL 101",
"maxCovers": 5,
"status": "TABLE_STATUS_OCCUPIED"
}
]
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'LockSession'
A request from Dojo to lock a specific session. If the session does not exist, the EPOS should return SESSION_NO_SUCH_SESSION error. If it is already locked, the EPOS should return SESSION_ALREADY_LOCKED error. Otherwise, the EPOS should return a LockSession response for the session.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "LockSession",
"params": {
"sessionId": "123e4567-e89b-12d3-a456-426614174000",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'LockSession'
Contains bill items for the session
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {
"billItems": {
"totalAmount": 950,
"paidAmount": 100,
"taxAmount": 190,
"currency": "GBP",
"items": [
{
"id": "123456789",
"name": "Classic Burger",
"category": [
"mains",
"burgers"
],
"quantity": 1,
"amountPerItem": 1000,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-987654321",
"name": "Extra Cheddar Cheese",
"amountPerModifier": 100,
"quantity": 3
}
]
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 450,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
},
{
"id": "987654321",
"name": "Peroni",
"category": [
"drinks",
"beer",
"lager"
],
"quantity": 1,
"amountPerItem": 0,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00",
"modifiers": [
{
"id": "mod-123123",
"name": "Buy 1 get 1 free!",
"amountPerModifier": -450,
"quantity": 1
}
]
},
{
"id": "00000001",
"name": "£5 Voucher",
"category": [
"discounts",
"vouchers"
],
"quantity": 1,
"amountPerItem": -500,
"lastOrderedAt": "2021-01-01T15:00:00.123+02:00"
}
],
"sessionId": "123e4567-e89b-12d3-a456-426614174000"
}
}
}
Message received from Dojo
Accepts the following message:
Request Message for 'RecordPayment'
A request from Dojo to record a payment. If the session does not exist, the EPOS should return a SESSION_NO_SUCH_SESSION error. If the session connected to the payment is not locked, the EPOS should return a SESSION_NOT_LOCKED error. If this particular payment has already been recorded, the EPOS should return a PAYMENT_ALREADY_RECORDED error. If the EPOS cannot record the payment for internal reasons, return a PAYMENT_NOT_RECORDED error. If the request is successful, the EPOS should return a RecordPayment response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a single payment
A universally unique identifier
A universally unique identifier
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity, cashback). For example, for £5.78 is expressed as 578.
The gratuity amount. Expression rules are the same as for base.
The cashback amount. Expression rules are the same as for base.
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
Additional payment details dependent on the method.
An object representing a single payment performed remotely
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person making the payment is the legitimate cardholder.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a single payment performed with a physical card
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.
Id of the payment acceptance device that was used to take this payment.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Additional properties are NOT allowed.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "RecordPayment",
"params": {
"payment": {
"id": "01234567-0123-0123-0123-0123456789ab",
"sessionId": "01234567-0123-0123-0123-0123456789af",
"waiterId": 1,
"currency": "GBP",
"baseAmount": 100,
"gratuityAmount": 200,
"cashbackAmount": 300,
"paymentSuccessful": true,
"methodDetails": {
"method": "PAYMENT_METHOD_CARD_PRESENT",
"cardPresentPaymentInfo": {
"authCode": "ABC123",
"entryMode": "ENTRY_MODE_CONTACTLESS",
"card": {
"scheme": "CARD_SCHEME_AMEX",
"last4PAN": "0123",
"expiryDate": {
"month": 12,
"year": 2032
},
"fundingType": "CARD_FUNDING_TYPE_CREDIT"
},
"cardholderVerificationMethod": "CARDHOLDER_VERIFICATION_METHOD_PIN",
"terminalId": "12345678",
"merchantId": "12341234",
"acquirerTransactionId": "01234567-0123-0123-0123-0123456789ab"
},
"cardPresentPaymentStatus": "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL"
},
"attemptedAt": "2021-01-01T15:00:00.123+02:00"
},
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Response Message for 'RecordPayment' request
Confirmation of a payment from a EPOS. An empty result indicates logical success of the request.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {}
}
Message received from Dojo
Accepts the following message:
Request Message for 'UnlockSession'
A request from Dojo to unlock a locked session. If the session is not locked, the EPOS should return SESSION_NOT_LOCKED error. If the EPOS cannot unlock the session due to internal reasons, it should return a SESSION_UNABLE_TO_UNLOCK error. Otherwise, the EPOS should return an UnlockSession response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"method": "UnlockSession",
"params": {
"sessionId": "123e4567-e89b-12d3-a456-426614174000",
"requestorInfo": {
"requestorType": "REQUESTOR_TYPE_CARD_MACHINE",
"cardMachineRequestorInfo": {
"terminalId": "123123",
"waiterId": 1
}
}
}
}
Message to send from the EPOS
Accepts the following message:
Successful Response Message for 'UnlockSession'
Confirmation of an unlocked session from a EPOS. An empty result indicates success.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
{
"jsonrpc": "2.0",
"id": "123e4567-e89b-12d3-a456-426614174000",
"result": {}
}
A generic error notification.
Error notification will be sent by Dojo whenever the message sent by the EPOS can't be read.
Error notification is used whenever the response received from the EPOS can't be read by Dojo.
Identifies the JSON Remote Protocol version that this message uses.
An object representing an error notification sent to EPOS
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason or details of the error, if applicable.
ID of the original message to which the error is sent in response to
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error response.
Error response is used whenever the operation cannot be performed due to various reasons. General errors include ERROR_PARSE_ERROR, ERROR_INTERNAL_POS_ERROR and WAITER_INCORRECT_WAITER_ID. Please consult other messages descriptions to find out when to use the other certain error codes
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'GetBillItems'
A request from Dojo for bill items
A request for bill items.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'GetBillItems'
A list of bill items from the EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'GetFullBill'
A request from Dojo for an itemised bill receipt. If the session does not exist, the EPOS should return SESSION_NO_SUCH_SESSION error. If the bill does not exist, the EPOS should return a BILL_NO_SUCH_BILL error. Otherwise, the EPOS should return a GetFullBill response for the session.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'GetFullBill'
An itemised bill receipt from the EPOS. This should return a graphical bill receipt to be printed on the card machine (incl. logos/QR codes etc)
See the following example to see how the formatting is handled by a Dojo terminal.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'GetSession'
A request from Dojo for a session. If the session does not exist, return SESSION_NO_SUCH_SESSION error message, otherwise return a GetSession response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful response Message for 'GetSession'
A session from a EPOS. If the session does not exist, the EPOS should return a SESSION_NO_SUCH_SESSION error message.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'GetTable'
A request from Dojo for a table. If the table doesn't exist, the EPOS should return a SESSION_NO_SUCH_SESSION error message instead, otherwise return a GetTable response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'GetTable'
A table from an EPOS. If the table doesn't exist, the EPOS should return a TABLE_NO_SUCH_TABLE error message instead.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'ListBillItems'
A request from Dojo for multiple bills. The EPOS should return a list of the bills for sessions specified. If no bills can be found, or the specified sessions don't exist, the EPOS should return a ListBillItems response with no bill itms. Omitting sessionIds returns all bill items
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The ID of sessions to get bills for.
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An array of objects representing BillItems requested.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'ListBillItems'
List of bills from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An array of objects representing BillItems requested.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'ListSessions'
A request from Dojo for a list of sessions. If there are filtering params specified, the response from the EPOS should contain only sessions matching all of the filters. If no sessions match the filters, the EPOS should return a ListSessions response with no sessions.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set and true, the returned list of sessions should only be for sessions that are finished. If false, only for sessions that are not finished.
If set and true, the returned list of sessions should only be for sessions that have a table. If false, only for sessions without a table.
If set and true, the returned list of sessions should only be for sessions that can currently be paid
If not empty, the returned list of sessions MUST only contain sessions linked to the tables with tableName from this list. If empty, this field MUST be ignored.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The session objects returned.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Response Message for 'ListSessions'
A list of sessions from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The session objects returned.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'ListTables'
A request for a list of tables. If there are params set, the ListTables response should contain only tables matching all of the filters using AND logic.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set, the returned list of tables should only be for ones that have matching statuses using OR logic.
Current status of the table. May be one of predefined strings.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Array of objects representing Tables matching ListTables request.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Response Message for 'ListTables'
A list of tables from a EPOS.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Array of objects representing Tables matching ListTables request.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'LockSession'
A request from Dojo to lock a specific session. If the session does not exist, the EPOS should return SESSION_NO_SUCH_SESSION error. If it is already locked, the EPOS should return SESSION_ALREADY_LOCKED error. Otherwise, the EPOS should return a LockSession response for the session.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'LockSession'
Contains bill items for the session
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Request Message for 'RecordPayment'
A request from Dojo to record a payment. If the session does not exist, the EPOS should return a SESSION_NO_SUCH_SESSION error. If the session connected to the payment is not locked, the EPOS should return a SESSION_NOT_LOCKED error. If this particular payment has already been recorded, the EPOS should return a PAYMENT_ALREADY_RECORDED error. If the EPOS cannot record the payment for internal reasons, return a PAYMENT_NOT_RECORDED error. If the request is successful, the EPOS should return a RecordPayment response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a single payment
A universally unique identifier
A universally unique identifier
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity, cashback). For example, for £5.78 is expressed as 578.
The gratuity amount. Expression rules are the same as for base.
The cashback amount. Expression rules are the same as for base.
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
Additional payment details dependent on the method.
An object representing a single payment performed remotely
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person making the payment is the legitimate cardholder.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a single payment performed with a physical card
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.
Id of the payment acceptance device that was used to take this payment.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Additional properties are NOT allowed.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Response Message for 'RecordPayment' request
Confirmation of a payment from a EPOS. An empty result indicates logical success of the request.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
Request Message for 'UnlockSession'
A request from Dojo to unlock a locked session. If the session is not locked, the EPOS should return SESSION_NOT_LOCKED error. If the EPOS cannot unlock the session due to internal reasons, it should return a SESSION_UNABLE_TO_UNLOCK error. Otherwise, the EPOS should return an UnlockSession response.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Successful Response Message for 'UnlockSession'
Confirmation of an unlocked session from a EPOS. An empty result indicates success.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
Used to authenticate your requests to the API. The authToken is formed from base64 encoding your accountName (first string in the URL for existing integrations) and apiKey. The two values should be seperated by a colon with no spaces e.g. base64("abcdef0000000:7d4773f2-367f-406c-881a-b4cb854971f3"). The values will be provided by Dojo.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
An object representing a single payment performed with a physical card
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.
Id of the payment acceptance device that was used to take this payment.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
An object representing an error notification sent to EPOS
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason or details of the error, if applicable.
ID of the original message to which the error is sent in response to
Additional properties are NOT allowed.
Error notification is used whenever the response received from the EPOS can't be read by Dojo.
Identifies the JSON Remote Protocol version that this message uses.
An object representing an error notification sent to EPOS
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason or details of the error, if applicable.
ID of the original message to which the error is sent in response to
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A generic error notification.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an error response to a request
Machine-usable code describing an error.
Human readable, arbitrary string describing the reason of the error, if applicable.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A request for bill items.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Used to authenticate your requests to the API. The authToken is formed from base64 encoding your accountName (first string in the URL for existing integrations) and apiKey. The two values should be seperated by a colon with no spaces e.g. base64("abcdef0000000:7d4773f2-367f-406c-881a-b4cb854971f3"). The values will be provided by Dojo.
Identifies the reseller who sells software on behalf od the EPoS company. This value should be configurable as this will be unique for each reseller. The value will be provided by Dojo to the reseller.
Identifies the EPoS company whose software is generating the request. This value should not be configurable as it will remain the same for all customers using particular EPoS software. The value will be provided by Dojo.
Additional properties are NOT allowed.
An object representing a single item for the consumer to pay for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The ID of sessions to get bills for.
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An array of objects representing BillItems requested.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set and true, the returned list of sessions should only be for sessions that are finished. If false, only for sessions that are not finished.
If set and true, the returned list of sessions should only be for sessions that have a table. If false, only for sessions without a table.
If set and true, the returned list of sessions should only be for sessions that can currently be paid
If not empty, the returned list of sessions MUST only contain sessions linked to the tables with tableName from this list. If empty, this field MUST be ignored.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
The session objects returned.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
If set, the returned list of tables should only be for ones that have matching statuses using OR logic.
Current status of the table. May be one of predefined strings.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Array of objects representing Tables matching ListTables request.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a bill with items the consumer needs to pay for, including any additional charges or discounts. This will be used to help a consumer calculate how much to pay, and so should be accurate and have amounts set as the EPOS would expect.
Amount to be paid in total, including any additional charges or discounts. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of service charge included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.
Amount already paid by the customer. Must be specified in the lowest available denominator for the currency
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
A list of items the consumer is paying for.
An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.
A human readable name of the item.
An item category hierarchy - from more general to specific categories.
How many times this item is included in the bill.
Amount to be paid for 1 of this item, including any modifiers. For example, if 2 items are ordered totalling £2.00 (of which 25p per item is for a modifier), the amountPerItem must be for 1 and therefore would be 100. If the item is free, put in a 0.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
A list of modifiers applied to a given item.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
An arbitrary string describing the context of amounts in the bill.
A universally unique identifier
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A universally unique identifier
Modifiers affect how the bill is calculated and therefore change the bill total. Common examples are Buy One, Get One Free deals, or concessionary discounts for students or senior citizens.
An id of a modifier. Should be unique at EPOS level
A human readable name of the modifier.
Amount to be paid for 1 of this modifier. Positive if it's an additional charge, negative if that's a discount. Note this modifier price should be included in the parent amountPerModifier (ie this is for display only).
How many times this modifier is applied to the item. Please note that this amount is per single item, so if a customer orders two burgers each with double extra cheese, the quantity should be 2, not 4.
Additional properties are NOT allowed.
An object representing a single payment
A universally unique identifier
A universally unique identifier
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity, cashback). For example, for £5.78 is expressed as 578.
The gratuity amount. Expression rules are the same as for base.
The cashback amount. Expression rules are the same as for base.
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
Additional payment details dependent on the method.
An object representing a single payment performed remotely
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person making the payment is the legitimate cardholder.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a single payment performed with a physical card
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.
Id of the payment acceptance device that was used to take this payment.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
An object representing either a header or footer on a BillReceipt
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing an image.
SVG representation of an image
How the image should be aligned on the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing a logo. This will appear at the top of the receipt.
SVG representation of an image
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a horizontal line
Defines the type of the receipt horizontal line.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing an address. This will be pre-formatted in the receipt.
Lines of address
Postcode formatted in a human readable form
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
A receipt line containing text, with optional conditional formatting.
This is the text to be printed for this line. The maxLength of this string depends on the size options used.
The size of the characters. Each size has a different max number of characters, anything over this limit will be clipped. SIZE_BODY max: 28, SIZE_HEADER_2 max: 24, SIZE_HEADER_1 max: 20.
Set this to true if you want the text to be bold. Compatible with all other emphasis flags.
How the text should be aligned on the receipt.
Additional properties are NOT allowed.
A receipt line containing a URL. This can be printed as a QR code on receipts, or a hyperlink with the text as the description in digital formats.
Textual description of the URL, will be displayed if set.
If a QR code should be shown on the receipt.
If the URL should be shown on the receipt.
The URL for the link
Additional properties are NOT allowed.
A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
An object representing a single payment
A universally unique identifier
A universally unique identifier
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity, cashback). For example, for £5.78 is expressed as 578.
The gratuity amount. Expression rules are the same as for base.
The cashback amount. Expression rules are the same as for base.
The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.
Additional payment details dependent on the method.
An object representing a single payment performed remotely
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person making the payment is the legitimate cardholder.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
An object representing a single payment performed with a physical card
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.
Id of the payment acceptance device that was used to take this payment.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Additional properties are NOT allowed.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
An object representing a single payment performed remotely
Payment Id from the acquirer.
Authorization code provided by the bank to approve the payment.
An object representing card used for a payment
The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.
Last 4 digits of the Primary Account Number (e.g. the long card number)
If available, the expiry date of the card in the format 'MM/YY'.
Expiration month
Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).
Additional properties are NOT allowed.
Funding type of the card.
Additional properties are NOT allowed.
Method used to verify that the person making the payment is the legitimate cardholder.
A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.
Additional properties are NOT allowed.
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Identifies the reseller who sells software on behalf od the EPoS company. This value should be configurable as this will be unique for each reseller. The value will be provided by Dojo to the reseller.
Details for a group of customers order/cover.
A universally unique identifier
Human readable name to display to merchants. The session name MUST be unique in the table scope, if the session has a table. The session name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace). We advise against using amounts as it may induce the sessionName clash, but it's not prohibited.
If the session has a table, it should be identified here. The table name should be unique on the EPOS.
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Number of customers this session is for.
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'
Whether or not payments for this session can be taken.
Additional properties are NOT allowed.
Identifies the EPoS company whose software is generating the request. This value should not be configurable as it will remain the same for all customers using particular EPoS software. The value will be provided by Dojo.
SVG representation of an image
An object representing a physical table
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Maximum number of people that may be seated at the table
Current status of the table. May be one of predefined strings.
Additional properties are NOT allowed.
A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)
Current status of the table. May be one of predefined strings.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
A universally unique identifier
An object providing information on the requesting device or service
The type of the requesting device or service
Additional request details depending on requestor type.
Id uniquely identifying the terminal.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
Additional properties are NOT allowed.
Additional properties are NOT allowed.
The type of the requesting device or service
Additional request details depending on requestor type.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Additional properties are allowed.
Additional properties are NOT allowed.
Additional properties are NOT allowed.
Identifies the JSON Remote Protocol version that this message uses.
A universally unique identifier
Additional properties are allowed.
Additional properties are NOT allowed.
A universally unique identifier
An object representing a waiter.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).
An optional human readable name of the waiter.
Additional properties are NOT allowed.
Id uniquely identifying the waiter. If no name is set, the Id will be displayed anywhere the waiter is referenced. Should be a positive integer, no larger than 99999999 (A maximum of 8 digits).