Tables API 1.0.0

The Tables API exclusive to Dojo integrations

Servers

  • staging-api.dojo.dev/ws/v1/tables/eposwssstaging

    See the required headers to establish the websocket connection.

    Security:
    • HTTP API key
      • Name: Authorization
      • In: header
  • api.dojo.tech/ws/v1/tables/eposwssproduction

    See the required headers to establish the websocket connection.

    Security:
    • HTTP API key
      • Name: Authorization
      • In: header

Operations

  • SUB /ErrorNotification

    Message received from Dojo

    Accepts the following message:

    errorNotification

    A generic error notification.

    Error notification will be sent by Dojo whenever the message sent by the EPOS can't be read.

    object
    uid: errorNotification

    Error notification is used whenever the response received from the EPOS can't be read by Dojo.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "ErrorNotification"
    required
    object
    uid: errorDetails

    An object representing an error notification sent to EPOS

      Examples values:
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "ERROR_PARSE_ERROR"
    • "ERROR_INVALID_PARAM_ERROR"
    • "ERROR_INTERNAL_ERROR"
    • "ERROR_CONNECT_ERROR"
    • "ERROR_DEADLINE_EXCEEDED"
    • "ERROR_REQUEST_NOT_FOUND"
    errorReason
    string

    Human readable, arbitrary string describing the reason or details of the error, if applicable.

    id
    string

    ID of the original message to which the error is sent in response to

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "method": "ErrorNotification",
      "params": {
        "errorCode": "ERROR_PARSE_ERROR",
        "errorReason": "string",
        "id": "string"
      }
    }
    
    This example has been generated automatically.
  • PUB /Error

    Message to send from the EPOS

    Accepts the following message:

    errorResponse

    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

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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"
      }
    }
    
    This example has been generated automatically.
  • SUB /GetBillItems

    Message received from Dojo

    Accepts the following message:

    getBillItemsRequest

    Request Message for 'GetBillItems'

    A request from Dojo for bill items

    object
    uid: getBillItemsRequest

    A request for bill items.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetBillItems"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /GetBillItems

    Message to send from the EPOS

    Accepts the following message:

    getBillItemsResponse

    Successful Response Message for 'GetBillItems'

    A list of bill items from the EPOS.

    object
    uid: getBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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"
        }
      }
    }
    
    This example has been generated automatically.
  • SUB /GetFullBill

    Message received from Dojo

    Accepts the following message:

    getFullBillRequest

    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.

    object
    uid: getFullBillRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetFullBill"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getFullBillResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    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.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /GetFullBill

    Message to send from the EPOS

    Accepts the following message:

    getFullBillResponse

    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.

    object
    uid: getFullBillResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    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.

    Examples

    {
      "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"
                }
              }
            ]
          }
        }
      }
    }
    
    This example has been generated automatically.
  • SUB /GetSession

    Message received from Dojo

    Accepts the following message:

    getSessionRequest

    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.

    object
    uid: getSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    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.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /GetSession

    Message to send from the EPOS

    Accepts the following message:

    getSessionResponse

    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.

    object
    uid: getSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    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.

    Examples

    {
      "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"
          }
        }
      }
    }
    
    This example has been generated automatically.
  • SUB /GetTable

    Message received from Dojo

    Accepts the following message:

    getTableRequest

    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.

    object
    uid: getTableRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetTable"
    required
    object
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /GetTable

    Message to send from the EPOS

    Accepts the following message:

    getTableResponse

    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.

    oneOf
    object
    uid: getTableResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "result": {
        "table": {
          "name": "TBL 101",
          "maxCovers": 5,
          "status": "TABLE_STATUS_OCCUPIED"
        }
      }
    }
    
    This example has been generated automatically.
  • SUB /ListBillItems

    Message received from Dojo

    Accepts the following message:

    listBillItemsRequest

    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

    object
    uid: listBillItemsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListBillItems"
    required
    object
    required
    array<string>
    uid: uuid

    The ID of sessions to get bills for.

    Items:
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: billItems

    An array of objects representing BillItems requested.

    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /ListBillItems

    Message to send from the EPOS

    Accepts the following message:

    listBillItemsResponse

    Successful Response Message for 'ListBillItems'

    List of bills from a EPOS.

    object
    uid: listBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: billItems

    An array of objects representing BillItems requested.

    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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"
          }
        ]
      }
    }
    
    This example has been generated automatically.
  • SUB /ListSessions

    Message received from Dojo

    Accepts the following message:

    listSessionsRequest

    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.

    object
    uid: listSessionsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListSessions"
    required
    object
    isFinished
    boolean

    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.

    hasTable
    boolean

    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.

    isPayable
    boolean

    If set and true, the returned list of sessions should only be for sessions that can currently be paid

    array<any>

    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.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: session

    The session objects returned.

    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /ListSessions

    Message to send from the EPOS

    Accepts the following message:

    listSessionsResponse

    Response Message for 'ListSessions'

    A list of sessions from a EPOS.

    object
    uid: listSessionsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: session

    The session objects returned.

    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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"
            }
          }
        ]
      }
    }
    
    This example has been generated automatically.
  • SUB /ListTables

    Message received from Dojo

    Accepts the following message:

    listTablesRequest

    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.

    object
    uid: listTablesRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListTables"
    required
    object
    array<string>
    uid: tableStatus

    If set, the returned list of tables should only be for ones that have matching statuses using OR logic.

    Items:
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: table

    Array of objects representing Tables matching ListTables request.

    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /ListTables

    Message to send from the EPOS

    Accepts the following message:

    listTablesResponse

    Response Message for 'ListTables'

    A list of tables from a EPOS.

    object
    uid: listTablesResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: table

    Array of objects representing Tables matching ListTables request.

    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "result": {
        "tables": [
          {
            "name": "TBL 101",
            "maxCovers": 5,
            "status": "TABLE_STATUS_OCCUPIED"
          }
        ]
      }
    }
    
    This example has been generated automatically.
  • SUB /LockSession

    Message received from Dojo

    Accepts the following message:

    lockSessionRequest

    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.

    object
    uid: lockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "LockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: lockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /LockSession

    Message to send from the EPOS

    Accepts the following message:

    lockSessionResponse

    Successful Response Message for 'LockSession'

    Contains bill items for the session

    object
    uid: lockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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"
        }
      }
    }
    
    This example has been generated automatically.
  • SUB /RecordPayment

    Message received from Dojo

    Accepts the following message:

    recordPaymentRequest

    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.

    object
    uid: recordPaymentRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "RecordPayment"
    required
    object
    required
    object
    uid: payment

    An object representing a single payment

      Examples values:
    • {"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"}
    • {"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_REMOTE","remotePaymentInfo":{"authCode":"ABC123","card":{"scheme":"CARD_SCHEME_AMEX","last4PAN":"0123","expiryDate":{"month":12,"year":2032},"fundingType":"CARD_FUNDING_TYPE_CREDIT"},"remoteVerificationMethod":"REMOTE_VERIFICATION_METHOD_3DS2","merchantId":"12341234","acquirerTransactionId":"01234567-0123-0123-0123-0123456789ab"},"remotePaymentStatus":"REMOTE_PAYMENT_STATUS_SUCCESSFUL"},"attemptedAt":"2021-01-01T15:00:00.123+02:00"}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    baseAmount
    required
    integer

    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.

    gratuityAmount
    required
    integer

    The gratuity amount. Expression rules are the same as for base.

    cashbackAmount
    required
    integer

    The cashback amount. Expression rules are the same as for base.

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentSuccessful
    required
    boolean
    required
    oneOf

    Additional payment details dependent on the method.

    object
    required
    object
    uid: remotePayment

    An object representing a single payment performed remotely

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    remoteVerificationMethod
    required
    string

    Method used to verify that the person making the payment is the legitimate cardholder.

    Default value:
    "UNKNOWN"
    • Allowed values:
    • "REMOTE_VERIFICATION_METHOD_UNKNOWN"
    • "REMOTE_VERIFICATION_METHOD_3DS2"
    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_REMOTE"
    remotePaymentStatus
    required
    string
    • Allowed values:
    • "REMOTE_PAYMENT_STATUS_SUCCESSFUL"
    • "REMOTE_PAYMENT_STATUS_UNKNOWN"
    • "REMOTE_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    object
    required
    object
    uid: cardPresentPayment

    An object representing a single payment performed with a physical card

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    entryMode
    required
    string

    Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.

    Default value:
    "ENTRY_MODE_UNKNOWN"
    • Allowed values:
    • "ENTRY_MODE_UNKNOWN"
    • "ENTRY_MODE_MANUAL_ENTRY"
    • "ENTRY_MODE_MAGSTRIPE"
    • "ENTRY_MODE_CONTACT_CHIP"
    • "ENTRY_MODE_CONTACTLESS"
    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    cardholderVerificationMethod
    required
    string

    Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.

    Default value:
    "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • Allowed values:
    • "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • "CARDHOLDER_VERIFICATION_METHOD_NONE"
    • "CARDHOLDER_VERIFICATION_METHOD_SIGNATURE"
    • "CARDHOLDER_VERIFICATION_METHOD_DEVICE"
    • "CARDHOLDER_VERIFICATION_METHOD_PIN"
    terminalId
    required
    string

    Id of the payment acceptance device that was used to take this payment.

    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_CARD_PRESENT"
    cardPresentPaymentStatus
    required
    string
    • Allowed values:
    • "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL"
    • "CARD_PRESENT_PAYMENT_STATUS_UNKNOWN"
    • "CARD_PRESENT_PAYMENT_STATUS_DECLINED"
    • "CARD_PRESENT_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    attemptedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"

    Additional properties are NOT allowed.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: recordPaymentResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /RecordPayment

    Message to send from the EPOS

    Accepts the following message:

    recordPaymentResponse

    Response Message for 'RecordPayment' request

    Confirmation of a payment from a EPOS. An empty result indicates logical success of the request.

    object
    uid: recordPaymentResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "result": {}
    }
    
    This example has been generated automatically.
  • SUB /UnlockSession

    Message received from Dojo

    Accepts the following message:

    unlockSessionRequest

    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.

    object
    uid: unlockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "UnlockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: unlockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "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
          }
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /UnlockSession

    Message to send from the EPOS

    Accepts the following message:

    unlockSessionResponse

    Successful Response Message for 'UnlockSession'

    Confirmation of an unlocked session from a EPOS. An empty result indicates success.

    object
    uid: unlockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "result": {}
    }
    
    This example has been generated automatically.

Messages

  • #1errorNotification

    A generic error notification.

    Error notification will be sent by Dojo whenever the message sent by the EPOS can't be read.

    object
    uid: errorNotification

    Error notification is used whenever the response received from the EPOS can't be read by Dojo.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "ErrorNotification"
    required
    object
    uid: errorDetails

    An object representing an error notification sent to EPOS

      Examples values:
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "ERROR_PARSE_ERROR"
    • "ERROR_INVALID_PARAM_ERROR"
    • "ERROR_INTERNAL_ERROR"
    • "ERROR_CONNECT_ERROR"
    • "ERROR_DEADLINE_EXCEEDED"
    • "ERROR_REQUEST_NOT_FOUND"
    errorReason
    string

    Human readable, arbitrary string describing the reason or details of the error, if applicable.

    id
    string

    ID of the original message to which the error is sent in response to

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #2errorResponse

    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

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #3getBillItemsRequest

    Request Message for 'GetBillItems'

    A request from Dojo for bill items

    object
    uid: getBillItemsRequest

    A request for bill items.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetBillItems"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #4getBillItemsResponse

    Successful Response Message for 'GetBillItems'

    A list of bill items from the EPOS.

    object
    uid: getBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #5getFullBillRequest

    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.

    object
    uid: getFullBillRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetFullBill"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getFullBillResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    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.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #6getFullBillResponse

    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.

    object
    uid: getFullBillResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    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.

  • #7getSessionRequest

    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.

    object
    uid: getSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: getSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    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.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #8getSessionResponse

    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.

    object
    uid: getSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    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.

  • #9getTableRequest

    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.

    object
    uid: getTableRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetTable"
    required
    object
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #10getTableResponse

    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.

    oneOf
    object
    uid: getTableResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #11listBillItemsRequest

    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

    object
    uid: listBillItemsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListBillItems"
    required
    object
    required
    array<string>
    uid: uuid

    The ID of sessions to get bills for.

    Items:
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: billItems

    An array of objects representing BillItems requested.

    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #12listBillItemsResponse

    Successful Response Message for 'ListBillItems'

    List of bills from a EPOS.

    object
    uid: listBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: billItems

    An array of objects representing BillItems requested.

    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #13listSessionsRequest

    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.

    object
    uid: listSessionsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListSessions"
    required
    object
    isFinished
    boolean

    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.

    hasTable
    boolean

    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.

    isPayable
    boolean

    If set and true, the returned list of sessions should only be for sessions that can currently be paid

    array<any>

    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.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: session

    The session objects returned.

    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #14listSessionsResponse

    Response Message for 'ListSessions'

    A list of sessions from a EPOS.

    object
    uid: listSessionsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: session

    The session objects returned.

    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #15listTablesRequest

    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.

    object
    uid: listTablesRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListTables"
    required
    object
    array<string>
    uid: tableStatus

    If set, the returned list of tables should only be for ones that have matching statuses using OR logic.

    Items:
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: table

    Array of objects representing Tables matching ListTables request.

    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #16listTablesResponse

    Response Message for 'ListTables'

    A list of tables from a EPOS.

    object
    uid: listTablesResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: table

    Array of objects representing Tables matching ListTables request.

    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #17lockSessionRequest

    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.

    object
    uid: lockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "LockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: lockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #18lockSessionResponse

    Successful Response Message for 'LockSession'

    Contains bill items for the session

    object
    uid: lockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #19recordPaymentRequest

    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.

    object
    uid: recordPaymentRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "RecordPayment"
    required
    object
    required
    object
    uid: payment

    An object representing a single payment

      Examples values:
    • {"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"}
    • {"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_REMOTE","remotePaymentInfo":{"authCode":"ABC123","card":{"scheme":"CARD_SCHEME_AMEX","last4PAN":"0123","expiryDate":{"month":12,"year":2032},"fundingType":"CARD_FUNDING_TYPE_CREDIT"},"remoteVerificationMethod":"REMOTE_VERIFICATION_METHOD_3DS2","merchantId":"12341234","acquirerTransactionId":"01234567-0123-0123-0123-0123456789ab"},"remotePaymentStatus":"REMOTE_PAYMENT_STATUS_SUCCESSFUL"},"attemptedAt":"2021-01-01T15:00:00.123+02:00"}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    baseAmount
    required
    integer

    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.

    gratuityAmount
    required
    integer

    The gratuity amount. Expression rules are the same as for base.

    cashbackAmount
    required
    integer

    The cashback amount. Expression rules are the same as for base.

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentSuccessful
    required
    boolean
    required
    oneOf

    Additional payment details dependent on the method.

    object
    required
    object
    uid: remotePayment

    An object representing a single payment performed remotely

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    remoteVerificationMethod
    required
    string

    Method used to verify that the person making the payment is the legitimate cardholder.

    Default value:
    "UNKNOWN"
    • Allowed values:
    • "REMOTE_VERIFICATION_METHOD_UNKNOWN"
    • "REMOTE_VERIFICATION_METHOD_3DS2"
    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_REMOTE"
    remotePaymentStatus
    required
    string
    • Allowed values:
    • "REMOTE_PAYMENT_STATUS_SUCCESSFUL"
    • "REMOTE_PAYMENT_STATUS_UNKNOWN"
    • "REMOTE_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    object
    required
    object
    uid: cardPresentPayment

    An object representing a single payment performed with a physical card

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    entryMode
    required
    string

    Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.

    Default value:
    "ENTRY_MODE_UNKNOWN"
    • Allowed values:
    • "ENTRY_MODE_UNKNOWN"
    • "ENTRY_MODE_MANUAL_ENTRY"
    • "ENTRY_MODE_MAGSTRIPE"
    • "ENTRY_MODE_CONTACT_CHIP"
    • "ENTRY_MODE_CONTACTLESS"
    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    cardholderVerificationMethod
    required
    string

    Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.

    Default value:
    "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • Allowed values:
    • "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • "CARDHOLDER_VERIFICATION_METHOD_NONE"
    • "CARDHOLDER_VERIFICATION_METHOD_SIGNATURE"
    • "CARDHOLDER_VERIFICATION_METHOD_DEVICE"
    • "CARDHOLDER_VERIFICATION_METHOD_PIN"
    terminalId
    required
    string

    Id of the payment acceptance device that was used to take this payment.

    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_CARD_PRESENT"
    cardPresentPaymentStatus
    required
    string
    • Allowed values:
    • "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL"
    • "CARD_PRESENT_PAYMENT_STATUS_UNKNOWN"
    • "CARD_PRESENT_PAYMENT_STATUS_DECLINED"
    • "CARD_PRESENT_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    attemptedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"

    Additional properties are NOT allowed.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: recordPaymentResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #20recordPaymentResponse

    Response Message for 'RecordPayment' request

    Confirmation of a payment from a EPOS. An empty result indicates logical success of the request.

    object
    uid: recordPaymentResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • #21unlockSessionRequest

    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.

    object
    uid: unlockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "UnlockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

    object
    uid: unlockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #22unlockSessionResponse

    Successful Response Message for 'UnlockSession'

    Confirmation of an unlocked session from a EPOS. An empty result indicates success.

    object
    uid: unlockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

Schemas

  • authorization
    string
    uid: authorization

    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.

      Examples values:
    • "Basic $authToken"
  • object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

  • object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

  • object
    uid: cardPresentPayment

    An object representing a single payment performed with a physical card

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    entryMode
    required
    string

    Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.

    Default value:
    "ENTRY_MODE_UNKNOWN"
    • Allowed values:
    • "ENTRY_MODE_UNKNOWN"
    • "ENTRY_MODE_MANUAL_ENTRY"
    • "ENTRY_MODE_MAGSTRIPE"
    • "ENTRY_MODE_CONTACT_CHIP"
    • "ENTRY_MODE_CONTACTLESS"
    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    cardholderVerificationMethod
    required
    string

    Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.

    Default value:
    "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • Allowed values:
    • "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • "CARDHOLDER_VERIFICATION_METHOD_NONE"
    • "CARDHOLDER_VERIFICATION_METHOD_SIGNATURE"
    • "CARDHOLDER_VERIFICATION_METHOD_DEVICE"
    • "CARDHOLDER_VERIFICATION_METHOD_PIN"
    terminalId
    required
    string

    Id of the payment acceptance device that was used to take this payment.

    merchantId
    required
    string

    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.

  • currency
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
  • datetime
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
  • object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

  • object
    uid: errorDetails

    An object representing an error notification sent to EPOS

      Examples values:
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "ERROR_PARSE_ERROR"
    • "ERROR_INVALID_PARAM_ERROR"
    • "ERROR_INTERNAL_ERROR"
    • "ERROR_CONNECT_ERROR"
    • "ERROR_DEADLINE_EXCEEDED"
    • "ERROR_REQUEST_NOT_FOUND"
    errorReason
    string

    Human readable, arbitrary string describing the reason or details of the error, if applicable.

    id
    string

    ID of the original message to which the error is sent in response to

    Additional properties are NOT allowed.

  • object
    uid: errorNotification

    Error notification is used whenever the response received from the EPOS can't be read by Dojo.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "ErrorNotification"
    required
    object
    uid: errorDetails

    An object representing an error notification sent to EPOS

      Examples values:
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "ERROR_PARSE_ERROR"
    • "ERROR_INVALID_PARAM_ERROR"
    • "ERROR_INTERNAL_ERROR"
    • "ERROR_CONNECT_ERROR"
    • "ERROR_DEADLINE_EXCEEDED"
    • "ERROR_REQUEST_NOT_FOUND"
    errorReason
    string

    Human readable, arbitrary string describing the reason or details of the error, if applicable.

    id
    string

    ID of the original message to which the error is sent in response to

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: errorResponse

    A generic error notification.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    uid: error

    An object representing an error response to a request

      Examples values:
    • {"errorCode":"SESSION_ALREADY_LOCKED","errorReason":"Session already locked at 2022-01-02T10:05:48.365Z by TID 123456789"}
    • {"errorCode":"SESSION_NO_SUCH_SESSION"}
    errorCode
    required
    string

    Machine-usable code describing an error.

    • Allowed values:
    • "SESSION_NO_SUCH_SESSION"
    • "SESSION_NOT_LOCKED"
    • "SESSION_ALREADY_LOCKED"
    • "SESSION_UNABLE_TO_UNLOCK"
    • "PAYMENT_NOT_RECORDED"
    • "PAYMENT_ALREADY_RECORDED"
    • "ERROR_PARSE_ERROR"
    • "ERROR_INTERNAL_POS_ERROR"
    • "TABLE_NO_SUCH_TABLE"
    • "BILL_NO_SUCH_BILL"
    • "WAITER_INCORRECT_WAITER_ID"
    errorReason
    string

    Human readable, arbitrary string describing the reason of the error, if applicable.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

  • object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: getBillItemsRequest

    A request for bill items.

    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetBillItems"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: getBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: getFullBillRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetFullBill"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: getFullBillResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: fullBill

    An object representing an itemised bill, along with header and footer information from the EPOS, to be printed or displayed on a payment device.

      Examples values:
    • {"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"}}]}}
    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    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.

  • object
    uid: getSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: getSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    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.

  • object
    uid: getTableRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "GetTable"
    required
    object
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: getTableResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: headers
    Authorization
    required
    string
    uid: authorization

    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.

      Examples values:
    • "Basic $authToken"
    reseller-id
    required
    string
    uid: resellerId

    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.

      Examples values:
    • "R19Q52QL"
    software-house-id
    required
    string
    uid: softwareHouseId

    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.

      Examples values:
    • "A67D20HG"

    Additional properties are NOT allowed.

  • object
    uid: item

    An object representing a single item for the consumer to pay for.

      Examples values:
    • {"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":"0987654321","name":"Peroni","category":["drinks","alcohol","lager"],"quantity":5,"amountPerItem":500,"lastOrderedAt":"2021-01-01T15:00:00.123+02:00"}
    • {"id":"0987654321","name":"10% Drink Voucher","category":["vouchers","drinks"],"quantity":1,"amountPerItem":-150,"lastOrderedAt":"2021-01-01T15:00:00.123+02:00"}
    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

  • jsonRpcVersion
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
  • object
    uid: listBillItemsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListBillItems"
    required
    object
    required
    array<string>
    uid: uuid

    The ID of sessions to get bills for.

    Items:
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: listBillItemsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: billItems

    An array of objects representing BillItems requested.

    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: listSessionsRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListSessions"
    required
    object
    isFinished
    boolean

    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.

    hasTable
    boolean

    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.

    isPayable
    boolean

    If set and true, the returned list of sessions should only be for sessions that can currently be paid

    array<any>

    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.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: listSessionsResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: session

    The session objects returned.

    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: listTablesRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "ListTables"
    required
    object
    array<string>
    uid: tableStatus

    If set, the returned list of tables should only be for ones that have matching statuses using OR logic.

    Items:
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: listTablesResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    array<object>
    uid: table

    Array of objects representing Tables matching ListTables request.

    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: lockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "LockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: lockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object
    required
    object
    uid: billItems

    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.

      Examples values:
    • {"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"}
    totalAmount
    required
    integer

    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.

    serviceCharge
    integer

    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.

    taxAmount
    required
    integer

    Amount of tax included in the totalAmount. Must be specified in the lowest available denominator for the currency. This must not decrease with payments.

    paidAmount
    required
    integer

    Amount already paid by the customer. Must be specified in the lowest available denominator for the currency

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    required
    array<object>
    uid: item

    A list of items the consumer is paying for.

    id
    required
    string

    An id of an item. Should be unique at EPOS level e.g. the PLU/SKU of an item.

    name
    required
    string

    A human readable name of the item.

    required
    array<string>

    An item category hierarchy - from more general to specific categories.

    Items:
    string
    quantity
    required
    integer
    >= 1

    How many times this item is included in the bill.

    amountPerItem
    required
    integer

    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.

    lastOrderedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    array<object>
    uid: modifier

    A list of modifiers applied to a given item.

    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

    note
    string

    An arbitrary string describing the context of amounts in the bill.

    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • messageId
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
  • object
    uid: modifier

    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.

      Examples values:
    • {"id":"mod-123456789","name":"Free Burger","amountPerModifier":-1500,"quantity":1}
    • {"id":"mod-987654321","name":"Extra Cheddar Cheese","amountPerModifier":100,"quantity":3}
    • {"id":"mod-111114321","name":"No Cheddar Cheese","amountPerModifier":-100,"quantity":1}
    id
    required
    string

    An id of a modifier. Should be unique at EPOS level

    name
    required
    string

    A human readable name of the modifier.

    amountPerModifier
    required
    integer

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

    quantity
    required
    integer
    >= 1

    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.

  • object
    uid: payment

    An object representing a single payment

      Examples values:
    • {"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"}
    • {"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_REMOTE","remotePaymentInfo":{"authCode":"ABC123","card":{"scheme":"CARD_SCHEME_AMEX","last4PAN":"0123","expiryDate":{"month":12,"year":2032},"fundingType":"CARD_FUNDING_TYPE_CREDIT"},"remoteVerificationMethod":"REMOTE_VERIFICATION_METHOD_3DS2","merchantId":"12341234","acquirerTransactionId":"01234567-0123-0123-0123-0123456789ab"},"remotePaymentStatus":"REMOTE_PAYMENT_STATUS_SUCCESSFUL"},"attemptedAt":"2021-01-01T15:00:00.123+02:00"}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    baseAmount
    required
    integer

    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.

    gratuityAmount
    required
    integer

    The gratuity amount. Expression rules are the same as for base.

    cashbackAmount
    required
    integer

    The cashback amount. Expression rules are the same as for base.

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentSuccessful
    required
    boolean
    required
    oneOf

    Additional payment details dependent on the method.

    object
    required
    object
    uid: remotePayment

    An object representing a single payment performed remotely

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    remoteVerificationMethod
    required
    string

    Method used to verify that the person making the payment is the legitimate cardholder.

    Default value:
    "UNKNOWN"
    • Allowed values:
    • "REMOTE_VERIFICATION_METHOD_UNKNOWN"
    • "REMOTE_VERIFICATION_METHOD_3DS2"
    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_REMOTE"
    remotePaymentStatus
    required
    string
    • Allowed values:
    • "REMOTE_PAYMENT_STATUS_SUCCESSFUL"
    • "REMOTE_PAYMENT_STATUS_UNKNOWN"
    • "REMOTE_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    object
    required
    object
    uid: cardPresentPayment

    An object representing a single payment performed with a physical card

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    entryMode
    required
    string

    Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.

    Default value:
    "ENTRY_MODE_UNKNOWN"
    • Allowed values:
    • "ENTRY_MODE_UNKNOWN"
    • "ENTRY_MODE_MANUAL_ENTRY"
    • "ENTRY_MODE_MAGSTRIPE"
    • "ENTRY_MODE_CONTACT_CHIP"
    • "ENTRY_MODE_CONTACTLESS"
    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    cardholderVerificationMethod
    required
    string

    Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.

    Default value:
    "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • Allowed values:
    • "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • "CARDHOLDER_VERIFICATION_METHOD_NONE"
    • "CARDHOLDER_VERIFICATION_METHOD_SIGNATURE"
    • "CARDHOLDER_VERIFICATION_METHOD_DEVICE"
    • "CARDHOLDER_VERIFICATION_METHOD_PIN"
    terminalId
    required
    string

    Id of the payment acceptance device that was used to take this payment.

    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_CARD_PRESENT"
    cardPresentPaymentStatus
    required
    string
    • Allowed values:
    • "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL"
    • "CARD_PRESENT_PAYMENT_STATUS_UNKNOWN"
    • "CARD_PRESENT_PAYMENT_STATUS_DECLINED"
    • "CARD_PRESENT_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    attemptedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"

    Additional properties are NOT allowed.

  • object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

  • object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

  • object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

  • object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

  • object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

  • object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

  • object
    uid: receiptSection

    An object representing either a header or footer on a BillReceipt

      Examples values:
    • {"receiptLines":[{"receiptLineType":"RECEIPT_LINE_TYPE_MERCHANT_NAME","receiptMerchantName":{"merchantName":"Bob's Shop"}},{"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"}},{"receiptLineType":"RECEIPT_LINE_TYPE_LOGO","receiptLogo":{"svgImage":"<svg width=\"213\" height=\"95\" viewBox=\"0 0 213 95\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_322_311)\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M137.895 21.0028V67.3838L137.89 67.3831L137.883 68.1021C137.518 80.5852 129.007 90.999 117.543 94.0882L117.544 79.6753C121.744 77.2168 124.58 72.6375 124.622 67.3845L124.561 67.3838V21.0028H137.895ZM90 21.0028C105.212 21.0028 117.544 33.352 117.544 48.5855C117.544 63.8189 105.212 76.1681 90 76.1681C74.7879 76.1681 62.4561 63.8189 62.4561 48.5855C62.4561 33.352 74.7879 21.0028 90 21.0028ZM172.456 21.0028C187.668 21.0028 200 33.352 200 48.5855C200 63.8189 187.668 76.1681 172.456 76.1681C157.244 76.1681 144.912 63.8189 144.912 48.5855C144.912 33.352 157.244 21.0028 172.456 21.0028ZM55.0877 0.623291V48.7611L55.0826 48.7604L55.0768 49.3708C54.6616 64.2411 42.4936 76.1681 27.5439 76.1681C12.3318 76.1681 0 63.8189 0 48.5855C0 33.352 12.3318 21.0028 27.5439 21.0028C32.7433 21.0028 37.6062 22.4455 41.7552 24.9529L41.7544 0.623291H55.0877ZM90 34.3493C82.1486 34.3493 75.7838 40.723 75.7838 48.5855C75.7838 56.4479 82.1486 62.8217 90 62.8217C97.8514 62.8217 104.216 56.4479 104.216 48.5855C104.216 40.723 97.8514 34.3493 90 34.3493ZM172.456 34.3493C164.605 34.3493 158.24 40.723 158.24 48.5855C158.24 56.4479 164.605 62.8217 172.456 62.8217C180.308 62.8217 186.672 56.4479 186.672 48.5855C186.672 40.723 180.308 34.3493 172.456 34.3493ZM27.5439 34.3493C19.6925 34.3493 13.3277 40.723 13.3277 48.5855C13.3277 56.4479 19.6925 62.8217 27.5439 62.8217C35.3366 62.8217 41.6648 56.5428 41.759 48.7615L41.7544 48.7611L41.7523 48.331L41.7462 47.9513C41.4149 40.3831 35.183 34.3493 27.5439 34.3493ZM131.228 0.623291C134.91 0.623291 137.895 3.61226 137.895 7.29934C137.895 10.9864 134.91 13.9754 131.228 13.9754C127.546 13.9754 124.561 10.9864 124.561 7.29934C124.561 3.61226 127.546 0.623291 131.228 0.623291Z\" fill=\"#262626\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M206.759 75.6857C210.206 75.6857 213.001 72.8913 213.001 69.4442C213.001 65.9971 210.206 63.2026 206.759 63.2026C203.312 63.2026 200.518 65.9971 200.518 69.4442C200.518 72.8913 203.312 75.6857 206.759 75.6857ZM206.759 74.1259C209.344 74.1259 211.44 72.0301 211.44 69.4448C211.44 66.8595 209.344 64.7637 206.759 64.7637C204.174 64.7637 202.078 66.8595 202.078 69.4448C202.078 72.0301 204.174 74.1259 206.759 74.1259ZM205.785 72.0629C205.747 72.1004 205.699 72.1191 205.64 72.1191H204.902C204.849 72.1191 204.803 72.1004 204.766 72.0629C204.728 72.0255 204.709 71.98 204.709 71.9265V66.7023C204.709 66.6435 204.727 66.5953 204.762 66.5579C204.796 66.5204 204.843 66.5017 204.902 66.5017H206.98C207.639 66.5017 208.153 66.6542 208.525 66.9591C208.897 67.2641 209.083 67.6974 209.083 68.2592C209.083 68.6497 208.989 68.9774 208.802 69.2422C208.615 69.507 208.353 69.6983 208.016 69.816L209.179 71.8623C209.195 71.8944 209.203 71.9238 209.203 71.9506C209.203 71.9987 209.186 72.0388 209.151 72.0709C209.116 72.103 209.078 72.1191 209.035 72.1191H208.297C208.211 72.1191 208.144 72.099 208.096 72.0589C208.048 72.0188 208.005 71.9666 207.968 71.9024L206.94 70.0005H205.841V71.9265C205.841 71.98 205.822 72.0255 205.785 72.0629ZM205.843 69.0857H206.958C207.279 69.0857 207.52 69.0149 207.681 68.8731C207.841 68.7313 207.921 68.524 207.921 68.2512C207.921 67.9783 207.841 67.7683 207.681 67.6212C207.52 67.4741 207.279 67.4005 206.958 67.4005H205.843V69.0857Z\" fill=\"#262626\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_322_311\">\n<rect width=\"213.001\" height=\"95\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n"}}]}
    • {"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"}}]}
    array<oneOf>
    oneOf
    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_TEXT"
    required
    object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_IMAGE"
    required
    object
    uid: receiptImage

    A receipt line containing an image.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    align
    string

    How the image should be aligned on the receipt.

    Default value:
    "ALIGN_CENTER"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_LOGO"
    required
    object
    uid: receiptLogo

    A predefined receipt field, containing a logo. This will appear at the top of the receipt.

    svgImage
    required
    string
    uid: svgImage

    SVG representation of an image

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_HORIZONTAL_LINE"
    required
    object
    uid: receiptHorizontalLine

    A receipt line containing a horizontal line

      Examples values:
    • {"type":"HORIZONTAL_LINE_SINGLE"}
    type
    required
    string

    Defines the type of the receipt horizontal line.

    • Allowed values:
    • "HORIZONTAL_LINE_SINGLE"
    • "HORIZONTAL_LINE_DOUBLE"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_URL"
    required
    object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_ADDRESS"
    required
    object
    uid: receiptMerchantAddress

    A predefined receipt field, containing an address. This will be pre-formatted in the receipt.

      Examples values:
    • {"addressLines":["1","High Street","London"],"postcode":"ABC 123"}
    required
    array<string>

    Lines of address

    Items:
    string
    postcode
    required
    string

    Postcode formatted in a human readable form

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_NAME"
    required
    object
    uid: receiptMerchantName

    A predefined receipt field, containing the merchants name. This will be pre-formatted in the receipt.

      Examples values:
    • {"merchantName":"Bob's Shop"}
    merchantName
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_VAT_NUMBER"
    required
    object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_PHONE_NUMBER"
    required
    object
    uid: receiptMerchantPhoneNumber

    A predefined receipt field, containing the merchants contact phone number. This will be pre-formatted in the receipt.

      Examples values:
    • {"phoneNumber":"01234567890"}
    phoneNumber
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    receiptLineType
    required
    string
    Const:
    "RECEIPT_LINE_TYPE_MERCHANT_EMAIL_ADDRESS"
    required
    object
    uid: receiptMerchantEmailAddress

    A predefined receipt field, containing the merchants contact email address. This will be pre-formatted in the receipt.

      Examples values:
    • {"emailAddress":"info@bobsshop.com"}
    emailAddress
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: receiptText

    A receipt line containing text, with optional conditional formatting.

      Examples values:
    • {"value":"Bob's Shop","size":"SIZE_HEADER_1","emphasisBold":true,"align":"ALIGN_CENTER"}
    value
    required
    string

    This is the text to be printed for this line. The maxLength of this string depends on the size options used.

    size
    required
    string

    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.

    • Allowed values:
    • "SIZE_HEADER_1"
    • "SIZE_HEADER_2"
    • "SIZE_BODY"
    emphasisBold
    boolean

    Set this to true if you want the text to be bold. Compatible with all other emphasis flags.

    Default value:
    align
    string

    How the text should be aligned on the receipt.

    Default value:
    "ALIGN_LEFT"
    • Allowed values:
    • "ALIGN_LEFT"
    • "ALIGN_RIGHT"
    • "ALIGN_CENTER"

    Additional properties are NOT allowed.

  • object
    uid: receiptURL

    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.

      Examples values:
    • {"description":"Voucher code!","showQR":true,"showURL":true,"url":"https://bobs-shop.com/voucher-link"}
    description
    string
    <= 28 characters

    Textual description of the URL, will be displayed if set.

    showQR
    boolean

    If a QR code should be shown on the receipt.

    Default value:
    showURL
    boolean

    If the URL should be shown on the receipt.

    Default value:
    url
    required
    string

    The URL for the link

    Additional properties are NOT allowed.

  • object
    uid: receiptVATNumber

    A predefined receipt field, containing the merchants VAT number. This will be pre-formatted in the receipt, and shown at the bottom

      Examples values:
    • {"vatNumber":"123 456 7890"}
    vatNumber
    required
    string

    Additional properties are NOT allowed.

  • object
    uid: recordPaymentRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "RecordPayment"
    required
    object
    required
    object
    uid: payment

    An object representing a single payment

      Examples values:
    • {"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"}
    • {"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_REMOTE","remotePaymentInfo":{"authCode":"ABC123","card":{"scheme":"CARD_SCHEME_AMEX","last4PAN":"0123","expiryDate":{"month":12,"year":2032},"fundingType":"CARD_FUNDING_TYPE_CREDIT"},"remoteVerificationMethod":"REMOTE_VERIFICATION_METHOD_3DS2","merchantId":"12341234","acquirerTransactionId":"01234567-0123-0123-0123-0123456789ab"},"remotePaymentStatus":"REMOTE_PAYMENT_STATUS_SUCCESSFUL"},"attemptedAt":"2021-01-01T15:00:00.123+02:00"}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    baseAmount
    required
    integer

    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.

    gratuityAmount
    required
    integer

    The gratuity amount. Expression rules are the same as for base.

    cashbackAmount
    required
    integer

    The cashback amount. Expression rules are the same as for base.

    currency
    required
    string
    uid: currency

    The three-letter currency code as specified in ISO 4217. Check enum values to see which are supported.

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentSuccessful
    required
    boolean
    required
    oneOf

    Additional payment details dependent on the method.

    object
    required
    object
    uid: remotePayment

    An object representing a single payment performed remotely

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    remoteVerificationMethod
    required
    string

    Method used to verify that the person making the payment is the legitimate cardholder.

    Default value:
    "UNKNOWN"
    • Allowed values:
    • "REMOTE_VERIFICATION_METHOD_UNKNOWN"
    • "REMOTE_VERIFICATION_METHOD_3DS2"
    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_REMOTE"
    remotePaymentStatus
    required
    string
    • Allowed values:
    • "REMOTE_PAYMENT_STATUS_SUCCESSFUL"
    • "REMOTE_PAYMENT_STATUS_UNKNOWN"
    • "REMOTE_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    object
    required
    object
    uid: cardPresentPayment

    An object representing a single payment performed with a physical card

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    entryMode
    required
    string

    Method by which the card details have been entered into the payment acceptance device, usually from a physical card or other consumer payment device.

    Default value:
    "ENTRY_MODE_UNKNOWN"
    • Allowed values:
    • "ENTRY_MODE_UNKNOWN"
    • "ENTRY_MODE_MANUAL_ENTRY"
    • "ENTRY_MODE_MAGSTRIPE"
    • "ENTRY_MODE_CONTACT_CHIP"
    • "ENTRY_MODE_CONTACTLESS"
    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    cardholderVerificationMethod
    required
    string

    Method used to verify that the person presenting the card is the legitimate cardholder. The most common verification methods are PIN and signature.

    Default value:
    "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • Allowed values:
    • "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN"
    • "CARDHOLDER_VERIFICATION_METHOD_NONE"
    • "CARDHOLDER_VERIFICATION_METHOD_SIGNATURE"
    • "CARDHOLDER_VERIFICATION_METHOD_DEVICE"
    • "CARDHOLDER_VERIFICATION_METHOD_PIN"
    terminalId
    required
    string

    Id of the payment acceptance device that was used to take this payment.

    merchantId
    required
    string

    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.

    method
    required
    string
    Const:
    "PAYMENT_METHOD_CARD_PRESENT"
    cardPresentPaymentStatus
    required
    string
    • Allowed values:
    • "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL"
    • "CARD_PRESENT_PAYMENT_STATUS_UNKNOWN"
    • "CARD_PRESENT_PAYMENT_STATUS_DECLINED"
    • "CARD_PRESENT_PAYMENT_STATUS_CANCELLED"

    Additional properties are NOT allowed.

    attemptedAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"

    Additional properties are NOT allowed.

    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: recordPaymentResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • object
    uid: remotePayment

    An object representing a single payment performed remotely

    acquirerTransactionId
    required
    string

    Payment Id from the acquirer.

    authCode
    required
    string

    Authorization code provided by the bank to approve the payment.

    required
    object
    uid: card

    An object representing card used for a payment

    scheme
    required
    string

    The scheme under which this card was issued. The card scheme routes transactions and moves money between acquirers and banks issuing payment cards.

    • Allowed values:
    • "CARD_SCHEME_UNKNOWN"
    • "CARD_SCHEME_VISA"
    • "CARD_SCHEME_MASTERCARD"
    • "CARD_SCHEME_MAESTRO"
    • "CARD_SCHEME_AMEX"
    • "CARD_SCHEME_DINERS"
    • "CARD_SCHEME_DISCOVER"
    • "CARD_SCHEME_UNIONPAY"
    last4PAN
    required
    string
    must match: ^[0-9]{4}$

    Last 4 digits of the Primary Account Number (e.g. the long card number)

    required
    object
    uid: expiryDate

    If available, the expiry date of the card in the format 'MM/YY'.

    month
    required
    integer
    [ 1 .. 12 ]

    Expiration month

    year
    required
    integer
    [ 1990 .. 9999 ]

    Expiration year. Should be a fully qualified YYYY year, so 2021 for 2021 (and not 21).

    Additional properties are NOT allowed.

    fundingType
    required
    string

    Funding type of the card.

    • Allowed values:
    • "CARD_FUNDING_TYPE_UNKNOWN"
    • "CARD_FUNDING_TYPE_DEBIT"
    • "CARD_FUNDING_TYPE_CREDIT"
    • "CARD_FUNDING_TYPE_CHARGE"
    • "CARD_FUNDING_TYPE_PREPAID"

    Additional properties are NOT allowed.

    remoteVerificationMethod
    required
    string

    Method used to verify that the person making the payment is the legitimate cardholder.

    Default value:
    "UNKNOWN"
    • Allowed values:
    • "REMOTE_VERIFICATION_METHOD_UNKNOWN"
    • "REMOTE_VERIFICATION_METHOD_3DS2"
    merchantId
    required
    string

    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.

  • object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Additional properties are allowed.

  • resellerId
    string
    uid: resellerId

    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.

      Examples values:
    • "R19Q52QL"
  • object
    uid: session

    Details for a group of customers order/cover.

      Examples values:
    • {"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"}}
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    name
    required
    string

    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.

    tableName
    string

    If the session has a table, it should be identified here. The table name should be unique on the EPOS.

    object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

    numberOfCovers
    integer
    >= 1

    Number of customers this session is for.

    createdAt
    required
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    finishedAt
    string
    must match: ^(\d{4})-(0[1-9]|1[0-2]|[1-9])-([12]\d|0[1-9]|3[01])[tT\s]([01]\d|2[0-3]):([0-5]\d):([0-5]\d)([.,]\d+)?([zZ]|([+-])([01]\d|2[0-3]):([0-5]\d))$uid: datetime

    'ISO 8601, extended time, 4-digit year datetime with TZ info. Format: YYYY-mm-ddTHH:MM:ss.fff(Z|+HH:MM|-HH:MM)'

      Examples values:
    • "2021-11-05T12:34:56.987654-05:00"
    isPayable
    required
    boolean

    Whether or not payments for this session can be taken.

    Additional properties are NOT allowed.

  • softwareHouseId
    string
    uid: softwareHouseId

    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.

      Examples values:
    • "A67D20HG"
  • svgImage
    string
    uid: svgImage

    SVG representation of an image

  • object
    uid: table

    An object representing a physical table

      Examples values:
    • {"name":"TBL 101","maxCovers":5,"status":"TABLE_STATUS_OCCUPIED"}
    name
    required
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
    maxCovers
    required
    integer

    Maximum number of people that may be seated at the table

    status
    required
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"

    Additional properties are NOT allowed.

  • tableName
    string
    non-emptyuid: tableName

    A human readable, EPOS-level unique table name. The table name MUST NOT include this sequence of characters: ' - ' (whitespace hyphen whitespace)

      Examples values:
    • "TBL 101"
    • "Table_SW_Corner"
  • tableStatus
    string
    uid: tableStatus

    Current status of the table. May be one of predefined strings.

    • Allowed values:
    • "TABLE_STATUS_NOT_IN_USE"
    • "TABLE_STATUS_PENDING_AVAILABLE"
    • "TABLE_STATUS_AVAILABLE"
    • "TABLE_STATUS_OCCUPIED"
      Examples values:
    • "TABLE_STATUS_AVAILABLE"
  • object
    uid: unlockSessionRequest
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    method
    required
    string
    Const:
    "UnlockSession"
    required
    object
    sessionId
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object oneOf
    uid: requestorInfo

    An object providing information on the requesting device or service

      Examples values:
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123","waiterId":1}}
    • {"requestorType":"REQUESTOR_TYPE_CARD_MACHINE","cardMachineRequestorInfo":{"terminalId":"123123"}}
    • {"requestorType":"REQUESTOR_TYPE_CONSUMER_DEVICE","consumerDeviceRequestorInfo":{}}
    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    Additional request details depending on requestor type.

    terminalId
    required
    string

    Id uniquely identifying the terminal.

    waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    requestorType
    required
    string

    The type of the requesting device or service

    required
    object

    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.

  • object
    uid: unlockSessionResponse
    jsonrpc
    required
    string
    uid: jsonRpcVersion

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • uuid
    string
    must match: ^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$[ 32 .. 36 ] charactersuid: uuid

    A universally unique identifier

      Examples values:
    • "123e4567-e89b-12d3-a456-426614174000"
  • object
    uid: waiter

    An object representing a waiter.

      Examples values:
    • {"id":1,"name":"John Smith"}
    • {"id":2}
    id
    required
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080
    name
    string

    An optional human readable name of the waiter.

    Additional properties are NOT allowed.

  • waiterId
    integer
    <= 99999999uid: waiterId

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

      Examples values:
    • 1
    • 2
    • 99999999
    • 50607080