Pay at Counter API 2.0.0

The Dojo Pay at Counter API payment is designed for managing in-person payments made at an EPOS.

Servers

  • staging-api.dojo.dev/ws/v2/pac/eposwsstest

    See the required headers to establish the WebSocket connection.

  • api.dojo.tech/ws/v2/pac/eposwssproduction

    See the required headers to establish the WebSocket connection.

Operations

  • PUB /CancelPayment

    Cancel the current payment.

    Request that the current payment is canceled. Only possible when the most recent TerminalNotification is PRESENT_CARD.

    Operation IDcancelPaymentRequest

    Accepts the following message:

    cancelPaymentRequest

    Request to cancel the current payment, only possible whilst the most recent TerminalNotification is PRESENT_CARD.

    object
    uid: cancelPaymentRequest

    Request to cancel the current payment, only possible whilst the most recent TerminalNotification is PRESENT_CARD.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CancelPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: cancelPaymentResponse

    Response that marks if the cancel was successful or not.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "CancelPayment",
      "params": {
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "terminalId": "01234567"
      }
    }
    
    This example has been generated automatically.
  • SUB /CancelPayment

    Cancel the current payment.

    Response that marks if the cancel was successful or not.

    Accepts the following message:

    cancelPaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    object
    uid: cancelPaymentResponse

    Response that marks if the cancel was successful or not.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "cancelling": true,
        "terminalId": "01234567",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • PUB /CapturePayment

    Capture a payment.

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is then added on top of the held amount.

    Operation IDcapturePaymentRequest

    Accepts the following message:

    capturePaymentRequest

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is a portion of the amount, not in addition to the amount. The total of the amount and gratuity must not exceed the currently held funds. To add gratuity for more than the held funds an updatePayment needs to be done first.

    object
    uid: capturePaymentRequest

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is then added on top of the held amount.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CapturePayment"
    required
    object
    baseAmount
    required
    integer
    >= 0

    Base amount of funds to capture as part of the held funds. This can be not be greater that the currently held amount, and any difference between this amount and the amount held will be released. The amount is expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity).

    gratuityAmount
    required
    integer

    The gratuity amount to capture as part of the held funds. Expression rules are the same as for base.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    baseCapturedAmount
    required
    integer

    The amount of captured funds expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    gratuityCapturedAmount
    required
    integer

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

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "CapturePayment",
      "params": {
        "baseAmount": 0,
        "gratuityAmount": 0,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /CapturePayment

    Capture a payment.

    Response that marks the capture has been successful and outlines how much was captured.

    Operation IDcapturePaymentResponse

    Accepts the following message:

    capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    object
    uid: capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    baseCapturedAmount
    required
    integer

    The amount of captured funds expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    gratuityCapturedAmount
    required
    integer

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

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "baseCapturedAmount": 0,
        "gratuityCapturedAmount": 0,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • PUB /ConnectedTerminals

    Request details about terminals.

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    Operation IDconnectedTerminalRequest

    Accepts the following message:

    connectedTerminalRequest

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    object
    uid: connectedTerminalRequest

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    • Allowed values:
    • "ConnectedTerminals"
    object
    status
    string

    Optional filter, to return terminals matching the current status. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"
    currency
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "ConnectedTerminals",
      "params": {
        "status": "AVAILABLE",
        "currency": "EUR"
      }
    }
    
    This example has been generated automatically.
  • SUB /ConnectedTerminals

    Request details about terminals.

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    Operation IDconnectedTerminalsResponse

    Accepts the following message:

    connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    object
    uid: connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": [
        {
          "terminalId": "01234567",
          "currency": "EUR",
          "status": "AVAILABLE"
        }
      ]
    }
    
    This example has been generated automatically.
  • PUB /CreatePayment

    Create a payment.

    The request for the creation of a payment, being a normal sale or pre-auth.

    Operation IDcreatePaymentRequest

    Accepts the following message:

    createPaymentRequest

    The request for creation of a payment, being a normal sale or pre-auth.

    object
    uid: createPaymentRequest

    The request for creation of a payment, being a normal sale or pre-auth.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreatePayment"
    required
    object
    baseAmount
    required
    integer

    The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: captureModeOptions

    The capture options for a create payment request, dependent on the selected CaptureMode will define the options. Currently, only auto capture has options for it.

    object
    cashbackAmount
    integer

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

    gratuityAmount
    integer

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

    Additional properties are allowed.

    Additional properties are NOT allowed.

    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    reference
    string
    uid: reference

    Optional field for additional details about the payment/refund.

      Examples values:
    • "Deposit for table 4 under Mr Jones"
    terminalId
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: createPaymentResponse

    Response that marks the payment has been successfully created and outlines when it will expire.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentTimesoutAt
    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.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "CreatePayment",
      "params": {
        "baseAmount": 0,
        "captureMode": "AUTO",
        "captureModeOptions": {
          "captureModeOptionsAuto": {
            "cashbackAmount": 0,
            "gratuityAmount": 0
          }
        },
        "cardHolderNotPresent": true,
        "currency": "EUR",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "reference": "Deposit for table 4 under Mr Jones",
        "terminalId": "string"
      }
    }
    
    This example has been generated automatically.
  • SUB /CreatePayment

    Create a payment.

    Response that marks the payment has been successfully created and outlines when it will expire.

    Operation IDcreatePaymentResponse

    Accepts the following message:

    createPaymentResponse

    Response that marks the payment has been successful created and outlines when it will expire.

    object
    uid: createPaymentResponse

    Response that marks the payment has been successfully created and outlines when it will expire.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentTimesoutAt
    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.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "paymentTimesoutAt": "2021-11-05T12:34:56.987654-05:00"
      }
    }
    
    This example has been generated automatically.
  • PUB /CreateRefund

    Create a refund.

    The request for the creation of a refund.

    Operation IDcreateRefundRequest

    Accepts the following message:

    createRefundRequest

    Request to begin a refund transaction.

    object
    uid: createRefundRequest

    Request to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreateRefund"
    required
    object
    amount
    required
    integer
    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: createRefundResponse

    Response to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    string
    Const:
    "CreateRefund"
    required
    object
    refundTimesoutAt
    required
    string

    The time when the EPOS can no longer expect a RecordRefund notification.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "CreateRefund",
      "params": {
        "amount": 0,
        "cardHolderNotPresent": true,
        "currency": "EUR",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "terminalId": "01234567"
      }
    }
    
    This example has been generated automatically.
  • SUB /CreateRefund

    Create a refund.

    Response that marks the refund has been successfully created and outlines when it will expire.

    Operation IDcreateRefundResponse

    Accepts the following message:

    createRefundResponse

    Response that marks if the refund has been successful created and outlines when it will be classed as timed out.

    object
    uid: createRefundResponse

    Response to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    string
    Const:
    "CreateRefund"
    required
    object
    refundTimesoutAt
    required
    string

    The time when the EPOS can no longer expect a RecordRefund notification.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "CreateRefund",
      "result": {
        "refundTimesoutAt": "string",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /Error

    Generic error messages.

    Error response is used whenever the operation cannot be performed due to various reasons.

    Operation IDerrorResponse

    Accepts the following message:

    errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "code": -32700,
        "message": "invalid accountName provided",
        "data": {
          "terminalId": "non_existent_terminal",
          "userMessage": "Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."
        }
      }
    }
    
    This example has been generated automatically.
  • PUB /GetPayment

    Message received from Dojo

    Operation IDgetPaymentRequest

    Accepts the following message:

    getPaymentRequest

    Retrieve payment details using your paymentId.

    object
    uid: getPaymentRequest

    Request to get a payment using a specific paymentID. If the payment has not TIMED_OUT or completed, the response will be a not found error. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "getPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "getPayment",
      "params": {
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /GetPayment

    Message to send from the EPOS

    Operation IDgetPaymentResponse

    Accepts the following message:

    getPaymentResponse

    The response includes detailed, timestamped details about a payment.

    object
    uid: getPaymentResponse

    A response message for a GetPayment request. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "baseCapturedAmount": 0,
        "baseHeldAmount": 0,
        "cashbackCapturedAmount": 0,
        "gratuityCapturedAmount": 0,
        "captureMode": "AUTO",
        "cardPresentPaymentInfo": {
          "acquirerPaymentId": "string",
          "authCode": "ABC123",
          "entryMode": "ENTRY_MODE_UNKNOWN",
          "card": {
            "expiryDate": "01/23",
            "fundingType": "CARD_FUNDING_TYPE_CREDIT",
            "last4PAN": 1125,
            "scheme": "CARD_SCHEME_AMEX"
          },
          "cardholderVerificationMethod": "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN",
          "terminalId": "01234567",
          "merchantId": "string"
        },
        "cardPresentPaymentStatus": "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL",
        "currency": "EUR",
        "expiresAt": "2021-11-05T12:34:56.987654-05:00",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "receiptLines": [
          {
            "value": "",
            "type": "TEXT",
            "format": [
              "BOLD"
            ]
          }
        ],
        "paymentSuccessful": true
      }
    }
    
    This example has been generated automatically.
  • SUB /RecordPayment

    Record payment request and response.

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    Operation IDrecordPaymentRequest

    Accepts the following message:

    recordPaymentRequest

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    object
    uid: recordPaymentRequest

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "RecordPayment"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "method": "RecordPayment",
      "id": 1,
      "params": {
        "baseCapturedAmount": 0,
        "baseHeldAmount": 0,
        "cashbackCapturedAmount": 0,
        "gratuityCapturedAmount": 0,
        "captureMode": "AUTO",
        "cardPresentPaymentInfo": {
          "acquirerPaymentId": "string",
          "authCode": "ABC123",
          "entryMode": "ENTRY_MODE_UNKNOWN",
          "card": {
            "expiryDate": "01/23",
            "fundingType": "CARD_FUNDING_TYPE_CREDIT",
            "last4PAN": 1125,
            "scheme": "CARD_SCHEME_AMEX"
          },
          "cardholderVerificationMethod": "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN",
          "terminalId": "01234567",
          "merchantId": "string"
        },
        "cardPresentPaymentStatus": "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL",
        "currency": "EUR",
        "expiresAt": "2021-11-05T12:34:56.987654-05:00",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "receiptLines": [
          {
            "value": "",
            "type": "TEXT",
            "format": [
              "BOLD"
            ]
          }
        ],
        "paymentSuccessful": true
      }
    }
    
    This example has been generated automatically.
  • PUB /RecordPayment

    Record payment request and response.

    Empty result indicates logical success of the request.

    Operation IDrecordPaymentResponse

    Accepts the following message:

    recordPaymentResponse

    The final message in a payment flow. The result object is an acknowledgement that the payment has been successfully recorded.

    object
    uid: recordPaymentResponse

    Empty result indicates logical success of the request.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    result
    required
    any

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": null
    }
    
    This example has been generated automatically.
  • SUB /RecordRefund

    Notification message for RecordRefund.

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    Operation IDrecordRefundRequest

    Accepts the following message:

    recordRefundRequest

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    object
    uid: recordRefundRequest

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "RecordRefund"
    required
    object
    uid: refund

    All the details regarding a refund from a specific paymentId.

    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"
    baseAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    gratuityAmount
    integer

    The amount of gratuity captured.

    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    merchantId
    required
    string

    A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.

    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    refundSuccessful
    required
    boolean

    If the refund has been fully processed, this will be true.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "RecordRefund",
      "params": {
        "attemptedAt": "2021-11-05T12:34:56.987654-05:00",
        "baseAmount": 0,
        "gratuityAmount": 0,
        "cardPresentPaymentInfo": {
          "acquirerPaymentId": "string",
          "authCode": "ABC123",
          "entryMode": "ENTRY_MODE_UNKNOWN",
          "card": {
            "expiryDate": "01/23",
            "fundingType": "CARD_FUNDING_TYPE_CREDIT",
            "last4PAN": 1125,
            "scheme": "CARD_SCHEME_AMEX"
          },
          "cardholderVerificationMethod": "CARDHOLDER_VERIFICATION_METHOD_UNKNOWN",
          "terminalId": "01234567",
          "merchantId": "string"
        },
        "cardPresentPaymentStatus": "CARD_PRESENT_PAYMENT_STATUS_SUCCESSFUL",
        "currency": "EUR",
        "merchantId": 12341234,
        "receiptLines": [
          {
            "value": "",
            "type": "TEXT",
            "format": [
              "BOLD"
            ]
          }
        ],
        "refundSuccessful": true,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "terminalId": "01234567"
      }
    }
    
    This example has been generated automatically.
  • PUB /RecordRefund

    Notification message for RecordRefund.

    Empty result indicates logical success of the request.

    Operation IDrecordRefundResponse

    Accepts the following message:

    recordRefundResponse

    Empty result indicates logical success of the request.

    object
    uid: recordRefundResponse

    The final message in a refund flow. The result object is an acknowledgement that the refund has been successfully recorded.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {}
    }
    
    This example has been generated automatically.
  • PUB /ReversePayment

    Reverse a payment.

    A request to reverse the authorization on currently held funds for a specific paymentID.

    Operation IDreversePaymentRequest

    Accepts the following message:

    reversePaymentRequest

    Request to reverse the authorization on currently held funds for a specific paymentID.

    object
    uid: reversePaymentRequest

    Request to reverse the authorization on currently held funds for a specific paymentID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "ReversePayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: reversePaymentResponse

    Response that marks the reversal has been successful.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "ReversePayment",
      "params": {
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /ReversePayment

    Reverse a payment.

    Response that marks the reversal has been successful.

    Operation IDreversePaymentResponse

    Accepts the following message:

    reversePaymentResponse

    Response that marks the reversal has been successful.

    object
    uid: reversePaymentResponse

    Response that marks the reversal has been successful.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /SignatureVerification

    Process signature-verified payments and refunds.

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    Operation IDsignatureVerificationRequest

    Accepts the following message:

    signatureVerificationRequest

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    object
    uid: signatureVerificationRequest

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "SignatureVerificationRequest"
    required
    object
    paymentId
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    timeout
    required
    integer

    The time the EPOS has to return a result before the signatureVerification is automatically accepted

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: signatureVerificationResponse

    Response to Dojo that shows the result of the signature verification.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    accepted
    required
    boolean

    True if the signature has been accepted, false if not accepted.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "SignatureVerificationRequest",
      "params": {
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002",
        "terminalId": "01234567",
        "timeout": 0
      }
    }
    
    This example has been generated automatically.
  • PUB /SignatureVerification

    Process signature-verified payments and refunds.

    Response to the interface that shows the result of the signature verification.

    Operation IDsignatureVerificationResponse

    Accepts the following message:

    signatureVerificationResponse

    Response Message for 'SignatureVerificationRequest'.

    object
    uid: signatureVerificationResponse

    Response to Dojo that shows the result of the signature verification.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    accepted
    required
    boolean

    True if the signature has been accepted, false if not accepted.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "accepted": true,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • PUB /TerminalDetails

    Terminal Details

    Request details of the terminal identified by the provided TID. The details include information about a terminal's currency and its current status.

    Operation IDterminalDetailsRequest

    Accepts the following message:

    terminalDetailsRequest

    Request details of the terminal identified by the provided TID. The details include information about a terminal's currency and its current status.

    object
    uid: terminalDetailsRequest

    Request details of the terminal identified by the provided terminalId. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalDetails"
    required
    object
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: terminalDetailsResponse

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string

    The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.

    • Allowed values:
    • "GBP"
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "TerminalDetails",
      "params": {
        "terminalId": "01234567"
      }
    }
    
    This example has been generated automatically.
  • SUB /TerminalDetails

    Terminal Details

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    Operation IDterminalDetailsResponse

    Accepts the following message:

    terminalDetailsResponse

    Request details of the terminal identified by the provided TID. The details include information about a terminal's currency and its current status.

    object
    uid: terminalDetailsResponse

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string

    The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.

    • Allowed values:
    • "GBP"
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": [
        {
          "terminalId": "01234567",
          "currency": "GBP",
          "status": "AVAILABLE"
        }
      ]
    }
    
    This example has been generated automatically.
  • SUB /TerminalNotification

    Terminal Notification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    Operation IDterminalNotification

    Accepts the following message:

    terminalNotification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    object
    uid: terminalNotification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalNotification"
    required
    object
    notificationValue
    required
    string
    uid: notificationValue

    The possible notification values that can be returned by the terminal.

    • Allowed values:
    • "APPROVED"
    • "ATTEMPTING_CANCEL"
    • "BAD_SWIPE"
    • "CANCELLING"
    • "CARD_ERROR"
    • "CARD_EXPIRED"
    • "CARD_NOT_SUPPORTED"
    • "CONNECTING"
    • "CONNECTION_MADE"
    • "DECLINED"
    • "DECLINED_BY_CARD"
    • "INSERT_CARD"
    • "PIN_ENTRY"
    • "PLEASE_WAIT"
    • "PRESENT_CARD"
    • "PRESENT_ONLY_ONE_CARD"
    • "PROCESSING_ERROR"
    • "REMOVE_CARD"
    • "RETRYING"
    • "REQUEST_SENT"
    • "RE_PRESENT_CARD"
    • "SIGNATURE_VERIFICATION"
    • "SIGNATURE_VERIFICATION_PROCESS_COMPLETED"
    • "SIGNATURE_VERIFICATION_PROCESS_COULD_NOT_BE_COMPLETED"
    • "SIGNATURE_VERIFICATION_IN_PROGRESS"
    • "SIGNATURE_VERIFICATION_TIMEOUT"
    • "TRANSACTION_FINISHED"
    • "TRANSACTION_STARTED"
    • "UNABLE_TO_CANCEL"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "TerminalNotification",
      "result": {
        "notificationValue": "APPROVED",
        "terminalId": "01234567",
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • PUB /UpdatePayment

    Update Payment

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    Operation IDupdatePaymentRequest

    Accepts the following message:

    updatePaymentRequest

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    object
    uid: updatePaymentRequest

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "UpdatePayment"
    required
    object
    amountTo
    required
    integer

    The new amount to set the payment to

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: updatePaymentResponse

    Response that marks the update has been successfully created and confirms what the new amount held is and how much it was increased by.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    updatedTo
    required
    integer

    The new amount of the payment

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "method": "UpdatePayment",
      "params": {
        "amountTo": 0,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.
  • SUB /UpdatePayment

    Update Payment

    Response that marks the update has been successful created and confirms what the new amount held is and how much it was increased by.

    Operation IDupdatePaymentResponse

    Accepts the following message:

    updatePaymentResponse

    Response that marks the update has been successful created and confirms what the new amount held is and how much it was increased by.

    object
    uid: updatePaymentResponse

    Response that marks the update has been successfully created and confirms what the new amount held is and how much it was increased by.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    updatedTo
    required
    integer

    The new amount of the payment

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    Examples

    {
      "jsonrpc": "2.0",
      "id": 1,
      "result": {
        "updatedTo": 0,
        "paymentId": "88884eaa-14dd-11ee-be56-0242ac120002"
      }
    }
    
    This example has been generated automatically.

Messages

  • #1cancelPaymentRequest

    Request to cancel the current payment, only possible whilst the most recent TerminalNotification is PRESENT_CARD.

    object
    uid: cancelPaymentRequest

    Request to cancel the current payment, only possible whilst the most recent TerminalNotification is PRESENT_CARD.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CancelPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: cancelPaymentResponse

    Response that marks if the cancel was successful or not.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #2cancelPaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    object
    uid: cancelPaymentResponse

    Response that marks if the cancel was successful or not.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #3capturePaymentRequest

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is a portion of the amount, not in addition to the amount. The total of the amount and gratuity must not exceed the currently held funds. To add gratuity for more than the held funds an updatePayment needs to be done first.

    object
    uid: capturePaymentRequest

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is then added on top of the held amount.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CapturePayment"
    required
    object
    baseAmount
    required
    integer
    >= 0

    Base amount of funds to capture as part of the held funds. This can be not be greater that the currently held amount, and any difference between this amount and the amount held will be released. The amount is expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity).

    gratuityAmount
    required
    integer

    The gratuity amount to capture as part of the held funds. Expression rules are the same as for base.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    baseCapturedAmount
    required
    integer

    The amount of captured funds expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    gratuityCapturedAmount
    required
    integer

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

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #4capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    object
    uid: capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    baseCapturedAmount
    required
    integer

    The amount of captured funds expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    gratuityCapturedAmount
    required
    integer

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

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #5connectedTerminalRequest

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    object
    uid: connectedTerminalRequest

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    • Allowed values:
    • "ConnectedTerminals"
    object
    status
    string

    Optional filter, to return terminals matching the current status. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"
    currency
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #6connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    object
    uid: connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

  • #7createPaymentRequest

    The request for creation of a payment, being a normal sale or pre-auth.

    object
    uid: createPaymentRequest

    The request for creation of a payment, being a normal sale or pre-auth.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreatePayment"
    required
    object
    baseAmount
    required
    integer

    The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: captureModeOptions

    The capture options for a create payment request, dependent on the selected CaptureMode will define the options. Currently, only auto capture has options for it.

    object
    cashbackAmount
    integer

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

    gratuityAmount
    integer

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

    Additional properties are allowed.

    Additional properties are NOT allowed.

    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    reference
    string
    uid: reference

    Optional field for additional details about the payment/refund.

      Examples values:
    • "Deposit for table 4 under Mr Jones"
    terminalId
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: createPaymentResponse

    Response that marks the payment has been successfully created and outlines when it will expire.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentTimesoutAt
    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.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #8createPaymentResponse

    Response that marks the payment has been successful created and outlines when it will expire.

    object
    uid: createPaymentResponse

    Response that marks the payment has been successfully created and outlines when it will expire.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentTimesoutAt
    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.

    Additional properties are NOT allowed.

  • #9createRefundRequest

    Request to begin a refund transaction.

    object
    uid: createRefundRequest

    Request to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreateRefund"
    required
    object
    amount
    required
    integer
    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: createRefundResponse

    Response to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    string
    Const:
    "CreateRefund"
    required
    object
    refundTimesoutAt
    required
    string

    The time when the EPOS can no longer expect a RecordRefund notification.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #10createRefundResponse

    Response that marks if the refund has been successful created and outlines when it will be classed as timed out.

    object
    uid: createRefundResponse

    Response to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    string
    Const:
    "CreateRefund"
    required
    object
    refundTimesoutAt
    required
    string

    The time when the EPOS can no longer expect a RecordRefund notification.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #11errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #12getPaymentRequest

    Retrieve payment details using your paymentId.

    object
    uid: getPaymentRequest

    Request to get a payment using a specific paymentID. If the payment has not TIMED_OUT or completed, the response will be a not found error. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "getPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #13getPaymentResponse

    The response includes detailed, timestamped details about a payment.

    object
    uid: getPaymentResponse

    A response message for a GetPayment request. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #14recordPaymentRequest

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    object
    uid: recordPaymentRequest

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "RecordPayment"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #15recordPaymentResponse

    The final message in a payment flow. The result object is an acknowledgement that the payment has been successfully recorded.

    object
    uid: recordPaymentResponse

    Empty result indicates logical success of the request.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    result
    required
    any

    Additional properties are NOT allowed.

  • #16recordRefundRequest

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    object
    uid: recordRefundRequest

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "RecordRefund"
    required
    object
    uid: refund

    All the details regarding a refund from a specific paymentId.

    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"
    baseAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    gratuityAmount
    integer

    The amount of gratuity captured.

    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    merchantId
    required
    string

    A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.

    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    refundSuccessful
    required
    boolean

    If the refund has been fully processed, this will be true.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #17recordRefundResponse

    Empty result indicates logical success of the request.

    object
    uid: recordRefundResponse

    The final message in a refund flow. The result object is an acknowledgement that the refund has been successfully recorded.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • #18signatureVerificationRequest

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    object
    uid: signatureVerificationRequest

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "SignatureVerificationRequest"
    required
    object
    paymentId
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    timeout
    required
    integer

    The time the EPOS has to return a result before the signatureVerification is automatically accepted

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: signatureVerificationResponse

    Response to Dojo that shows the result of the signature verification.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    accepted
    required
    boolean

    True if the signature has been accepted, false if not accepted.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #19reversePaymentRequest

    Request to reverse the authorization on currently held funds for a specific paymentID.

    object
    uid: reversePaymentRequest

    Request to reverse the authorization on currently held funds for a specific paymentID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "ReversePayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: reversePaymentResponse

    Response that marks the reversal has been successful.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #20reversePaymentResponse

    Response that marks the reversal has been successful.

    object
    uid: reversePaymentResponse

    Response that marks the reversal has been successful.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #21signatureVerificationResponse

    Response Message for 'SignatureVerificationRequest'.

    object
    uid: signatureVerificationResponse

    Response to Dojo that shows the result of the signature verification.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    accepted
    required
    boolean

    True if the signature has been accepted, false if not accepted.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #22terminalDetailsRequest

    Request details of the terminal identified by the provided TID. The details include information about a terminal's currency and its current status.

    object
    uid: terminalDetailsRequest

    Request details of the terminal identified by the provided terminalId. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalDetails"
    required
    object
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: terminalDetailsResponse

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string

    The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.

    • Allowed values:
    • "GBP"
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #23terminalDetailsResponse

    Request details of the terminal identified by the provided TID. The details include information about a terminal's currency and its current status.

    object
    uid: terminalDetailsResponse

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string

    The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.

    • Allowed values:
    • "GBP"
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

  • #24terminalNotification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    object
    uid: terminalNotification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalNotification"
    required
    object
    notificationValue
    required
    string
    uid: notificationValue

    The possible notification values that can be returned by the terminal.

    • Allowed values:
    • "APPROVED"
    • "ATTEMPTING_CANCEL"
    • "BAD_SWIPE"
    • "CANCELLING"
    • "CARD_ERROR"
    • "CARD_EXPIRED"
    • "CARD_NOT_SUPPORTED"
    • "CONNECTING"
    • "CONNECTION_MADE"
    • "DECLINED"
    • "DECLINED_BY_CARD"
    • "INSERT_CARD"
    • "PIN_ENTRY"
    • "PLEASE_WAIT"
    • "PRESENT_CARD"
    • "PRESENT_ONLY_ONE_CARD"
    • "PROCESSING_ERROR"
    • "REMOVE_CARD"
    • "RETRYING"
    • "REQUEST_SENT"
    • "RE_PRESENT_CARD"
    • "SIGNATURE_VERIFICATION"
    • "SIGNATURE_VERIFICATION_PROCESS_COMPLETED"
    • "SIGNATURE_VERIFICATION_PROCESS_COULD_NOT_BE_COMPLETED"
    • "SIGNATURE_VERIFICATION_IN_PROGRESS"
    • "SIGNATURE_VERIFICATION_TIMEOUT"
    • "TRANSACTION_FINISHED"
    • "TRANSACTION_STARTED"
    • "UNABLE_TO_CANCEL"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #25updatePaymentRequest

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    object
    uid: updatePaymentRequest

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "UpdatePayment"
    required
    object
    amountTo
    required
    integer

    The new amount to set the payment to

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: updatePaymentResponse

    Response that marks the update has been successfully created and confirms what the new amount held is and how much it was increased by.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    updatedTo
    required
    integer

    The new amount of the payment

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

    object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • #26updatePaymentResponse

    Response that marks the update has been successful created and confirms what the new amount held is and how much it was increased by.

    object
    uid: updatePaymentResponse

    Response that marks the update has been successfully created and confirms what the new amount held is and how much it was increased by.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    updatedTo
    required
    integer

    The new amount of the payment

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

Schemas

  • message-id
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

  • object
    uid: cancelPaymentRequest

    Request to cancel the current payment, only possible whilst the most recent TerminalNotification is PRESENT_CARD.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CancelPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: cancelPaymentResponse

    Response that marks if the cancel was successful or not.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: capturePaymentRequest

    Request to capture a set amount of funds up to and including the total amount currently held. Any difference will be released. Gratuity amount is then added on top of the held amount.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CapturePayment"
    required
    object
    baseAmount
    required
    integer
    >= 0

    Base amount of funds to capture as part of the held funds. This can be not be greater that the currently held amount, and any difference between this amount and the amount held will be released. The amount is expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity).

    gratuityAmount
    required
    integer

    The gratuity amount to capture as part of the held funds. Expression rules are the same as for base.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: capturePaymentResponse

    Response that marks the capture has been successful and outlines how much was captured.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    baseCapturedAmount
    required
    integer

    The amount of captured funds expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    gratuityCapturedAmount
    required
    integer

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

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: connectedTerminalRequest

    Request a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status. The list of terminals can be filtered by status and currency.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    • Allowed values:
    • "ConnectedTerminals"
    object
    status
    string

    Optional filter, to return terminals matching the current status. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"
    currency
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: connectedTerminalsResponse

    Provides a list of connected terminals and their details. The terminals are identified by their terminal identifier (TID), and the details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

  • object
    uid: createPaymentRequest

    The request for creation of a payment, being a normal sale or pre-auth.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreatePayment"
    required
    object
    baseAmount
    required
    integer

    The base amount expressed in ISO4217 minor units of the currency, not including any additional amounts (e.g. gratuity). For example, for £5.78 is expressed as 578.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: captureModeOptions

    The capture options for a create payment request, dependent on the selected CaptureMode will define the options. Currently, only auto capture has options for it.

    object
    cashbackAmount
    integer

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

    gratuityAmount
    integer

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

    Additional properties are allowed.

    Additional properties are NOT allowed.

    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    reference
    string
    uid: reference

    Optional field for additional details about the payment/refund.

      Examples values:
    • "Deposit for table 4 under Mr Jones"
    terminalId
    required
    string

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: createPaymentResponse

    Response that marks the payment has been successfully created and outlines when it will expire.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentTimesoutAt
    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.

    Additional properties are NOT allowed.

  • object
    uid: createRefundRequest

    Request to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "CreateRefund"
    required
    object
    amount
    required
    integer
    cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: createRefundResponse

    Response to begin a refund transaction.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    string
    Const:
    "CreateRefund"
    required
    object
    refundTimesoutAt
    required
    string

    The time when the EPOS can no longer expect a RecordRefund notification.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: errorResponse

    Error response is used whenever the operation cannot be performed due to various reasons. Please consult other messages descriptions to find out when to use the other certain error codes.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: error

    An object representing an error response to a request

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • jsonrpc-version
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
  • 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"
  • resellerId
    string
    uid: resellerId

    Identifies the reseller who sells software on behalf of 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.

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

  • eposId
    string
    uid: eposId

    Identifies the EPOS that is associated with the order. It should be unique for each EPOS.

  • object
    uid: recordPaymentRequest

    A request to inform the EPOS that a payment has happened. Once the EPOS has successfully recorded the payment, a recordPaymentResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    method
    required
    string
    Const:
    "RecordPayment"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

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

    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.

    epos-id
    required
    string
    uid: eposId

    Identifies the EPOS that is associated with the order. It should be unique for each EPOS.

    Additional properties are NOT allowed.

  • object
    uid: getPaymentRequest

    Request to get a payment using a specific paymentID. If the payment has not TIMED_OUT or completed, the response will be a not found error. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "getPayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: getPaymentResponse

    A response message for a GetPayment request. Payments are stored for 24 hours.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: recordPaymentResponse

    Empty result indicates logical success of the request.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    result
    required
    any

    Additional properties are NOT allowed.

  • object
    uid: recordRefundRequest

    A request to inform the EPOS that a refund has happened. Once the EPOS has successfully recorded the refund, a recordRefundResponse should be sent.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "RecordRefund"
    required
    object
    uid: refund

    All the details regarding a refund from a specific paymentId.

    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"
    baseAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    gratuityAmount
    integer

    The amount of gratuity captured.

    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    merchantId
    required
    string

    A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.

    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    refundSuccessful
    required
    boolean

    If the refund has been fully processed, this will be true.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: recordRefundResponse

    The final message in a refund flow. The result object is an acknowledgement that the refund has been successfully recorded.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • object
    uid: reversePaymentRequest

    Request to reverse the authorization on currently held funds for a specific paymentID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "ReversePayment"
    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: reversePaymentResponse

    Response that marks the reversal has been successful.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: signatureVerificationRequest

    Request to the EPOS to confirm whether the signature has been accepted or not in a payment that requires signature verification. This request must be replied to within a set period of time defined by the timeout property. If no reply to this request is received (i.e. no confirmation of acceptance), the signature will automatically be accepted.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "SignatureVerificationRequest"
    required
    object
    paymentId
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    timeout
    required
    integer

    The time the EPOS has to return a result before the signatureVerification is automatically accepted

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: signatureVerificationResponse

    Response to Dojo that shows the result of the signature verification.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    accepted
    required
    boolean

    True if the signature has been accepted, false if not accepted.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: terminalDetailsRequest

    Request details of the terminal identified by the provided terminalId. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalDetails"
    required
    object
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: terminalDetailsResponse

    Provides details of the requested terminal. The details include information about a terminal's currency and its current status.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    array<object>
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    currency
    required
    string

    The currency this terminal or request is using. If being used to set the currency code of a response message then it must be the same currency as the associated request message. The textual representation from ISO 4217 is used.

    • Allowed values:
    • "GBP"
    • "EUR"
    status
    required
    string

    The current status of a terminal. 'AVAILABLE' means the terminal is currently able to accept a request. 'BUSY' means the terminal is currently processing a request and so is unable to accept a new request.

    • Allowed values:
    • "AVAILABLE"
    • "BUSY"

    Additional properties are NOT allowed.

  • object
    uid: terminalNotification

    A notification providing the current state of the payment/refund being processed on the terminal with the stated TID.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "TerminalNotification"
    required
    object
    notificationValue
    required
    string
    uid: notificationValue

    The possible notification values that can be returned by the terminal.

    • Allowed values:
    • "APPROVED"
    • "ATTEMPTING_CANCEL"
    • "BAD_SWIPE"
    • "CANCELLING"
    • "CARD_ERROR"
    • "CARD_EXPIRED"
    • "CARD_NOT_SUPPORTED"
    • "CONNECTING"
    • "CONNECTION_MADE"
    • "DECLINED"
    • "DECLINED_BY_CARD"
    • "INSERT_CARD"
    • "PIN_ENTRY"
    • "PLEASE_WAIT"
    • "PRESENT_CARD"
    • "PRESENT_ONLY_ONE_CARD"
    • "PROCESSING_ERROR"
    • "REMOVE_CARD"
    • "RETRYING"
    • "REQUEST_SENT"
    • "RE_PRESENT_CARD"
    • "SIGNATURE_VERIFICATION"
    • "SIGNATURE_VERIFICATION_PROCESS_COMPLETED"
    • "SIGNATURE_VERIFICATION_PROCESS_COULD_NOT_BE_COMPLETED"
    • "SIGNATURE_VERIFICATION_IN_PROGRESS"
    • "SIGNATURE_VERIFICATION_TIMEOUT"
    • "TRANSACTION_FINISHED"
    • "TRANSACTION_STARTED"
    • "UNABLE_TO_CANCEL"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: updatePaymentRequest

    Request to increase the held amount for a manual capture payment, identified by paymentId.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    method
    required
    string
    Const:
    "UpdatePayment"
    required
    object
    amountTo
    required
    integer

    The new amount to set the payment to

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: updatePaymentResponse

    Response that marks the update has been successfully created and confirms what the new amount held is and how much it was increased by.

    jsonrpc
    required
    string
    uid: jsonrpc-version

    Identifies the JSON Remote Protocol version that this message uses.

    Const:
    "2.0"
    id
    required
    integer
    uid: message-id

    Used to identify this request message/ The same id will be used in the response message so that the response can be matched with the request.

    required
    object
    updatedTo
    required
    integer

    The new amount of the payment

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

    Additional properties are NOT allowed.

  • object
    uid: cancelResult

    An object representing the result of a cancel request for a payment/refund.

    cancelling
    required
    boolean
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"

    Additional properties are NOT allowed.

  • captureMode
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
  • object
    uid: captureModeOptions

    The capture options for a create payment request, dependent on the selected CaptureMode will define the options. Currently, only auto capture has options for it.

    object
    cashbackAmount
    integer

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

    gratuityAmount
    integer

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

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • object
    uid: card

    An object representing the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    Additional properties are NOT allowed.

  • cardHolderNotPresent
    boolean
    uid: cardHolderNotPresent

    Indicates whether this transaction should be completed as CNP (e.g. manual entry of card details). If the flag is true the card machine skips the 'Present Card' screen and goes directly into Key Card Number.

  • object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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 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

    code
    required
    integer

    The error code of the error. These categorize the type of error that has taken place. With standard JSON-RPC2 errors in the range [-32600, -32700] and Dojo-related errors in the range [-32070, -32090]. Unused numbers are reserved for future use.

    • Allowed values:
    • -32700
    • -32600
    • -32601
    • -32602
    • -32603
    • -32070
    • -32071
    • -32072
    • -32073
    • -32074
    • -32075
    • -32076
    message
    required
    string

    A short description of the error to help troubleshoot the problem.

      Examples values:
    • "invalid accountName provided"
    object

    Data related to the error that could help troubleshoot the problem.

      Examples values:
    • {"terminalId":"non_existent_terminal","userMessage":"Unavailable terminal or no data available for: 'non_existent_terminal'. Please check that the card machine is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the card machine and, if the problem persists, please contact support."}
    terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    userMessage
    string

    Human readable context about the error

    Additional properties are allowed.

    Additional properties are NOT allowed.

  • object
    uid: errorDetails

    An object representing an error notification sent to EPOS

    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.

      Examples values:
    • "invalid accountName provided"
    id
    string

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

    Additional properties are NOT allowed.

  • notificationValue
    string
    uid: notificationValue

    The possible notification values that can be returned by the terminal.

    • Allowed values:
    • "APPROVED"
    • "ATTEMPTING_CANCEL"
    • "BAD_SWIPE"
    • "CANCELLING"
    • "CARD_ERROR"
    • "CARD_EXPIRED"
    • "CARD_NOT_SUPPORTED"
    • "CONNECTING"
    • "CONNECTION_MADE"
    • "DECLINED"
    • "DECLINED_BY_CARD"
    • "INSERT_CARD"
    • "PIN_ENTRY"
    • "PLEASE_WAIT"
    • "PRESENT_CARD"
    • "PRESENT_ONLY_ONE_CARD"
    • "PROCESSING_ERROR"
    • "REMOVE_CARD"
    • "RETRYING"
    • "REQUEST_SENT"
    • "RE_PRESENT_CARD"
    • "SIGNATURE_VERIFICATION"
    • "SIGNATURE_VERIFICATION_PROCESS_COMPLETED"
    • "SIGNATURE_VERIFICATION_PROCESS_COULD_NOT_BE_COMPLETED"
    • "SIGNATURE_VERIFICATION_IN_PROGRESS"
    • "SIGNATURE_VERIFICATION_TIMEOUT"
    • "TRANSACTION_FINISHED"
    • "TRANSACTION_STARTED"
    • "UNABLE_TO_CANCEL"
  • object
    uid: payment

    All the details regarding a payment from a specific paymentId.

    baseCapturedAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    baseHeldAmount
    required
    integer

    The amount that was held before the capture/release, not including any additional amounts (e.g. gratuity, cashback).

    cashbackCapturedAmount
    integer

    The amount of cashback captured.

    gratuityCapturedAmount
    integer

    The amount of gratuity captured.

    captureMode
    required
    string
    uid: captureMode

    The method of capture, where auto will happen instantly, manual will need to be captured

    • Allowed values:
    • "AUTO"
    • "MANUAL"
    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    expiresAt
    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"
    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    paymentSuccessful
    required
    boolean

    Additional properties are NOT allowed.

  • paymentId
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
  • array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

  • reference
    string
    uid: reference

    Optional field for additional details about the payment/refund.

      Examples values:
    • "Deposit for table 4 under Mr Jones"
  • object
    uid: refund

    All the details regarding a refund from a specific paymentId.

    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"
    baseAmount
    required
    integer

    The amount captured, not including any additional amounts (e.g. gratuity, cashback).

    gratuityAmount
    integer

    The amount of gratuity captured.

    required
    object
    uid: cardPresentPaymentInfo

    An object representing a single payment performed with a physical card

    acquirerPaymentId
    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 the details of the physical card

    expiryDate
    required
    string

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

    Default value:
    ""
    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"
    last4PAN
    required
    string

    PAN (Primary Account Number) of the card used in the transaction. Only the last 4 digits of the number are provided.

    Default value:
    ""
    scheme
    required
    string

    Scheme of the card used in the transaction. The scheme controls the operation of payment transactions.

    Default value:
    ""

    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
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
    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.

    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"
    currency
    required
    string
    uid: currency

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

    • Allowed values:
    • "EUR"
    • "GBP"
      Examples values:
    • "EUR"
    merchantId
    required
    string

    A unique identifier for the merchant. A single merchant can be associated with multiple terminals, point-of-sale machines, and waiters.

    required
    array<anyOf>

    A receipt from the terminal defined by an ordered array of Receipt Line schemas.

    anyOf
    object

    A receipt line containing text that has optional formatting.

    value
    required
    string
    <= 24 characters

    This is the text to be printed for this line. The string can only contain ASCII characters 0x20-0x7E (inclusive), 0x80 (Euro Symbol) and 0xA3 (Pound Symbol). The maxLength of this string depends on the formatting options used.

    Default value:
    ""
    type
    required
    string

    Defines the type of the receipt line to be text.

    • Allowed values:
    • "TEXT"
    required
    array<string>
    <= 3 items

    Optional formatting for the printed text. If using DOUBLE_WIDTH the maximum length of the text reduces to 12 characters.

    Items:
    string
    • Allowed values:
    • "BOLD"
    • "DOUBLE_HEIGHT"
    • "DOUBLE_WIDTH"

    Additional properties are NOT allowed.

    object

    A receipt line containing a graphic.

    value
    required
    string

    If this is a receipt from a terminal, this will contain the text equivalent of the printed graphic object. If this is a receipt to be printed on a terminal, then this property must be an empty string.

    Default value:
    ""
    type
    required
    string

    Defines the type of graphic to be printed.

    • Allowed values:
    • "CARRIAGE_RETURN"
    • "LINE_SEPARATOR_DOUBLE"
    • "LINE_SEPARATOR_SINGLE"
    • "TICKET_FEED"
    required
    array<any>
    <= 0 items

    This property has no effect on this type of receipt line, which is why it should be passed as an empty list.

    Items:
    any

    Additional properties are NOT allowed.

    refundSuccessful
    required
    boolean

    If the refund has been fully processed, this will be true.

    paymentId
    required
    string
    uid: paymentId

    A unique identifier for the payment generated by the EPOS, it will be used to reference this payment in all operations. Recommendation is to use a UUID.

      Examples values:
    • "88884eaa-14dd-11ee-be56-0242ac120002"
    terminalId
    required
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"

    Additional properties are NOT allowed.

  • terminalId
    string
    uid: terminalId

    The ID of the terminal being used for the transaction

      Examples values:
    • "01234567"
  • 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"