Nexi POS REST API

Download OpenAPI specification (YAML)

Download OpenAPI specification (JSON)

Transactions

Operations where the main object to be managed is a transaction.

The transaction object contains all the information about the current state of a single transaction. A transaction is updated multiple times during its lifecycle, which means the transaction object is a snapshot of the transaction at a specific point in time.

Identifiers explains the primary transaction identifiers.

Transaction

schema

  • created_at string - required

    Time when the transaction was created.

    • Format: date-time
    • Length: 20 characters
    • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
  • external_id string - required

    Client provided identifier for the transaction, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • id string - required

    Internal identifier for the transaction, see Id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • state string - required

    State of the transaction, see Transaction flow.

    ValueDescription
    AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
    AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
    PROCESSINGTransaction is being processed
    CONFIRMEDTransaction has been confirmed as successful or failed
    COMMITTEDTransaction result has been committed and cannot be changed
  • terminal_id string - required

    Identifier of the terminal that processed the transaction, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • type string - required

    Transaction type.

    ValueDescription
    ACCOUNT_CHECKAccount check transaction to check if card is valid
    PURCHASEPurchase transaction to charge customer for goods
    REFUNDRefund transaction to return money to customer
    UNKNOWNTransaction type not known, or not representable in this enumeration
  • updated_at string - required

    Time when the transaction was last updated.

    • Format: date-time
    • Length: 20 characters
    • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
  • authorized_amount integer - optional

    Amount that was authorized by the acquirer, see Authorized amount.

    • Range: 0-999999999999
  • captured_amount integer - optional

    Amount that was captured from customer account, see Captured amount.

    • Range: 0-999999999999
  • cashback_amount integer - optional

    Amount of cashback given to the customer, see Cashback amount.

    • Range: 0-999999999999
  • confirmed_at string - optional

    Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

    • Format: date-time
    • Length: 20 characters
    • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
  • currency string - optional

    Currency of the transaction, see Currency.

    • Length: 3 characters
    • Pattern: ^[A-Z]{3}$
  • customer_identity object - optional

    Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

    • computop object - optional

      Computop specific customer identity information.

      • card_token string - optional

        Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

        • Length: 16 characters
        • Pattern: ^[0-9]{16}$
    • par object - optional

      Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

      • par_value string - optional

        Payment account reference (PAR) as read from the payment instrument.

        • Length: 29 characters
        • Pattern: ^[0-9A-Z]{29}$
  • customer_not_present boolean - optional

    Indicator that the transaction was done without the customer being present at the terminal.

  • dcc object - optional

    Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

    • customer_amount integer - optional

      Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

      • Range: 0-999999999999
    • customer_currency string - optional

      Currency that customer paid in, see Currency.

      • Length: 3 characters
      • Pattern: ^[A-Z]{3}$
    • exchange_rate integer - optional

      Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

      • Minimum: 0
    • exchange_rate_date string - optional

      Date when the exchange rate was obtained from the provider.

      • Format: date
      • Length: 1-10 characters
      • Pattern: ^\d{4}-\d{2}-\d{2}$
    • exchange_rate_provider string - optional

      Exchange rate provider that was used for the transaction.

      • Length: 1-63 characters
      • Pattern: ^[\x20-\x7E]{1,63}$
    • markup_fee integer - optional

      Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

      • Range: 0-10000
    • provider string - optional

      DCC provider that was used for the transaction.

      • Length: 1-63 characters
      • Pattern: ^[\x20-\x7E]{1,63}$
  • metadata object - optional

    Client provided transaction metadata, see Metadata.

  • original_purchase_external_id string - optional

    Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • original_purchase_id string - optional

    Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • original_purchase_terminal_id string - optional

    Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • payment_method_details - optional

    Payment method specific information

    • One of the objects below will be in the payload

      • When payment_method is CARD

          • payment_method string - required
            CARD
          • acquirer_reference string - optional

            Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

            • Length: 12 characters
            • Pattern: ^[0-9]{12}$
          • acquirer_terminal_id string - optional

            Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

            • Length: 8 characters
            • Pattern: ^[0-9A-Z]{8}$
          • acquirer_timestamp string - optional

            Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

            • Length: 12 characters
            • Pattern: ^[0-9]{12}$
          • application_identifier string - optional

            Application identifier (AID) of the selected card application.

            • Length: 10-32 characters
            • Pattern: ^[0-9A-F]{10,32}$
          • application_name string - optional

            Name of the selected card application.

            • Length: 1-16 characters
            • Pattern: ^[\x20-\x7E]{1,16}$
          • authorization_code string - optional

            Authorization code for the transaction, if received from the acquirer.

            • Length: 6 characters
            • Pattern: ^[0-9A-Z]{6}$
          • authorization_response_code string - optional

            Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

            • Length: 2 characters
            • Pattern: ^[0-9A-Z]{2}$
          • card_entry_mode string - optional

            Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

            ValueDescription
            CONTACT_EMVCard was inserted into the terminal and the chip was read
            CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
            MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
            MANUALCard number was typed in manually on the terminal
          • card_number_customer string - optional

            Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

            • Length: 13-19 characters
            • Pattern: ^[0-9*]{13,19}$
          • card_number_merchant string - optional

            Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

            • Length: 13-19 characters
            • Pattern: ^[0-9*]{13,19}$
          • card_scheme string - optional

            Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

            AMEX
            BANKAXEPT
            DANKORT
            DINERS_CLUB
            GIROCARD
            JCB
            MASTERCARD
            UNIONPAY
            VISA
            UNKNOWN
          • card_sequence_number string - optional

            Sequence number for multiple cards with the same card number. Required to be printed on receipts.

            • Length: 2 characters
            • Pattern: ^[0-9]{2}$
          • cardholder_verification string - optional

            Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

            ValueDescription
            NONECardholder has not been verified
            SIGNATURECardholder has given their signature
            PINCardholder typed in a PIN code
            PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
            CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
  • receipt_details_customer string - optional

    Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

    • Length: 1-1023 characters
    • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
  • receipt_details_merchant string - optional

    Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

    • Length: 1-1023 characters
    • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
  • reference string - optional

    Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

    • Length: 1-63 characters
    • Pattern: ^[0-9-]{1,63}$
  • refundable_amount integer - optional

    The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

    • Range: 0-999999999999
  • requested_amount integer - optional

    Amount that was requested for the transaction, see Requested amount.

    • Range: 0-999999999999
  • result_code string - optional

    Result of the transaction, see Results and errors.

    • Length: 1-255 characters
    • Pattern: ^[0-9A-Z_]{1,255}$
  • result_description string - optional

    English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

    • Length: 1-255 characters
    • Pattern: ^[\x20-\x7E]{1,255}$
  • surcharge_amount integer - optional

    Amount of surcharge that was added to the transaction, see Surcharge amount.

    • Range: 0-999999999999
  • tip_amount integer - optional

    Amount of tip that was added to the transaction, see Tip amount.

    • Range: 0-999999999999
  • total_amount integer - optional

    Current total amount for transaction, see Total amount

    • Range: 0-999999999999
Example
{
  "authorized_amount": 1000,
  "captured_amount": 1000,
  "cashback_amount": 1000,
  "confirmed_at": "2024-11-07T05:25:55Z",
  "created_at": "2024-11-07T05:25:55Z",
  "currency": "EUR",
  "customer_identity": {
    "computop": {
      "card_token": "1234567890123456"
    },
    "par": {
      "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
    }
  },
  "customer_not_present": true,
  "dcc": {
    "customer_amount": 1000,
    "customer_currency": "EUR",
    "exchange_rate": 42,
    "exchange_rate_date": "2024-11-07",
    "exchange_rate_provider": "ECB",
    "markup_fee": 500,
    "provider": "Nets"
  },
  "external_id": "123",
  "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "original_purchase_external_id": "123",
  "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
  "original_purchase_terminal_id": "t-12345678",
  "payment_method_details": {
    "acquirer_reference": "241128113112",
    "acquirer_terminal_id": "A1234567",
    "acquirer_timestamp": "241128113123",
    "application_identifier": "string",
    "application_name": "string",
    "authorization_code": "123ABC",
    "authorization_response_code": "00",
    "card_entry_mode": "string",
    "card_number_customer": "************2454",
    "card_number_merchant": "400770******2454",
    "card_scheme": "string",
    "card_sequence_number": "01",
    "cardholder_verification": "string",
    "payment_method": "string"
  },
  "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
  "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
  "reference": "250404123456-01234567",
  "refundable_amount": 1000,
  "requested_amount": 1000,
  "result_code": "SUCCESS",
  "result_description": "The amount given was negative.",
  "state": "CONFIRMED",
  "surcharge_amount": 1000,
  "terminal_id": "t-12345678",
  "tip_amount": 1000,
  "total_amount": 1000,
  "type": "string",
  "updated_at": "2024-11-07T05:25:55Z"
}

Create purchase transaction

POST /transaction/purchase

Starts the processing of a new purchase transaction.

Request body

  • currency string - required

    Currency of the transaction, see Currency.

    • Length: 3 characters
    • Pattern: ^[A-Z]{3}$
  • external_id string - required

    Client provided identifier for the purchase transaction, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • requested_amount integer - required

    Amount to request from the customer, see Requested amount.

    • Range: 0-999999999999
  • terminal_id string - required

    Identifier of the terminal that should perform the purchase, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • cashback_amount integer - optional

    Amount of cashback that should be given to the customer, see Cashback amount.

    • Range: 0-999999999999
  • metadata object - optional

    Client provided transaction metadata, see Metadata.

  • options object - optional

    Modify the behaviour of the server side request and transaction handling.

    • on_customer_identified - optional

      Action to be performed when the customer has been identified by their payment instrument but before the actual payment is done, see Pausing a transaction. The field customer_identity is present in the transaction when this action runs, if the customer was identified.

      • One of the objects below will be in the payload

        • Pause

            • pause boolean - optional

              Whether to pause the transaction. If true, the transaction will be paused at this point and the client will need to call /transactions/continue to resume the transaction processing.

    • wait_seconds number - optional

      How many seconds the server should wait for transaction state to change before responding, see Long polling. Will respond immediately if set to 0 or if transaction state is not PROCESSING.

      • Range: 0-180
Example
{
  "cashback_amount": 1000,
  "currency": "EUR",
  "external_id": "123",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "options": {
    "on_customer_identified": {
      "pause": true
    },
    "wait_seconds": 60
  },
  "requested_amount": 1000,
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transaction object - required

      Current state of the transaction after creation.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "transaction": {
    "authorized_amount": 1000,
    "captured_amount": 1000,
    "cashback_amount": 1000,
    "confirmed_at": "2024-11-07T05:25:55Z",
    "created_at": "2024-11-07T05:25:55Z",
    "currency": "EUR",
    "customer_identity": {
      "computop": {
        "card_token": "1234567890123456"
      },
      "par": {
        "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
      }
    },
    "customer_not_present": true,
    "dcc": {
      "customer_amount": 1000,
      "customer_currency": "EUR",
      "exchange_rate": 42,
      "exchange_rate_date": "2024-11-07",
      "exchange_rate_provider": "ECB",
      "markup_fee": 500,
      "provider": "Nets"
    },
    "external_id": "123",
    "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "original_purchase_external_id": "123",
    "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "original_purchase_terminal_id": "t-12345678",
    "payment_method_details": {
      "acquirer_reference": "241128113112",
      "acquirer_terminal_id": "A1234567",
      "acquirer_timestamp": "241128113123",
      "application_identifier": "string",
      "application_name": "string",
      "authorization_code": "123ABC",
      "authorization_response_code": "00",
      "card_entry_mode": "string",
      "card_number_customer": "************2454",
      "card_number_merchant": "400770******2454",
      "card_scheme": "string",
      "card_sequence_number": "01",
      "cardholder_verification": "string",
      "payment_method": "string"
    },
    "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "reference": "250404123456-01234567",
    "refundable_amount": 1000,
    "requested_amount": 1000,
    "result_code": "SUCCESS",
    "result_description": "The amount given was negative.",
    "state": "CONFIRMED",
    "surcharge_amount": 1000,
    "terminal_id": "t-12345678",
    "tip_amount": 1000,
    "total_amount": 1000,
    "type": "string",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Create refund transaction

POST /transaction/refund

Starts the processing of a new refund transaction.

Request body

  • currency string - required

    Currency of the transaction, see Currency.

    • Length: 3 characters
    • Pattern: ^[A-Z]{3}$
  • external_id string - required

    Client provided identifier for the refund transaction, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • requested_amount integer - required

    Amount that should be refunded from the customer, see Requested amount.

    • Range: 0-999999999999
  • terminal_id string - required

    Identifier of the terminal that should perform the refund, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • customer_not_present boolean - optional

    Whether the customer is present at the terminal during the refund transaction. If the customer is present and the refund refers to an original purchase, they will be asked to present the same payment instrument that was used for the original purchase, and the refund will be authorized.

  • metadata object - optional

    Client provided transaction metadata, see Metadata.

  • options object - optional

    Modify the behaviour of the server side request and transaction handling.

    • on_customer_identified - optional

      Action to be performed when the customer has been identified by their payment instrument but before the actual payment is done, see Pausing a transaction. The field customer_identity is present in the transaction when this action runs, if the customer was identified.

      • One of the objects below will be in the payload

        • Pause

            • pause boolean - optional

              Whether to pause the transaction. If true, the transaction will be paused at this point and the client will need to call /transactions/continue to resume the transaction processing.

    • wait_seconds number - optional

      How many seconds the server should wait for transaction state to change before responding, see Long polling. Will respond immediately if set to 0 or if transaction state is not PROCESSING.

      • Range: 0-180
  • original_purchase_external_id string - optional

    Original purchase transaction’s external_id, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • original_purchase_terminal_id string - optional

    Original purchase transaction’s terminal_id, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
Example
{
  "currency": "EUR",
  "customer_not_present": true,
  "external_id": "123",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "options": {
    "on_customer_identified": {
      "pause": true
    },
    "wait_seconds": 60
  },
  "original_purchase_external_id": "123",
  "original_purchase_terminal_id": "t-12345678",
  "requested_amount": 1000,
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transaction object - required

      Current state of the transaction after creation.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "transaction": {
    "authorized_amount": 1000,
    "captured_amount": 1000,
    "cashback_amount": 1000,
    "confirmed_at": "2024-11-07T05:25:55Z",
    "created_at": "2024-11-07T05:25:55Z",
    "currency": "EUR",
    "customer_identity": {
      "computop": {
        "card_token": "1234567890123456"
      },
      "par": {
        "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
      }
    },
    "customer_not_present": true,
    "dcc": {
      "customer_amount": 1000,
      "customer_currency": "EUR",
      "exchange_rate": 42,
      "exchange_rate_date": "2024-11-07",
      "exchange_rate_provider": "ECB",
      "markup_fee": 500,
      "provider": "Nets"
    },
    "external_id": "123",
    "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "original_purchase_external_id": "123",
    "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "original_purchase_terminal_id": "t-12345678",
    "payment_method_details": {
      "acquirer_reference": "241128113112",
      "acquirer_terminal_id": "A1234567",
      "acquirer_timestamp": "241128113123",
      "application_identifier": "string",
      "application_name": "string",
      "authorization_code": "123ABC",
      "authorization_response_code": "00",
      "card_entry_mode": "string",
      "card_number_customer": "************2454",
      "card_number_merchant": "400770******2454",
      "card_scheme": "string",
      "card_sequence_number": "01",
      "cardholder_verification": "string",
      "payment_method": "string"
    },
    "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "reference": "250404123456-01234567",
    "refundable_amount": 1000,
    "requested_amount": 1000,
    "result_code": "SUCCESS",
    "result_description": "The amount given was negative.",
    "state": "CONFIRMED",
    "surcharge_amount": 1000,
    "terminal_id": "t-12345678",
    "tip_amount": 1000,
    "total_amount": 1000,
    "type": "string",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Confirm transaction

POST /transaction/confirm

Confirms a transaction that is awaiting confirmation, see transactional reliability. The body of the request specifies if the transaction is to be confirmed as successful or failed.

  • Only transactions that are currently awaiting confirmation as success can be confirmed to success.
  • All transactions can be confirmed as failed.

If the confirmation as failed arrives for a transaction the server has not seen, a new transaction will be created.

Request body

  • external_id string - required

    Client provided identifier for the transaction that should be confirmed, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • result_code string - required

    Error code, see Results and errors.

    • Length: 1-255 characters
    • Pattern: ^[0-9A-Z_]{1,255}$
  • terminal_id string - required

    Identifier of the terminal of the transaction that should be confirmed, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • captured_amount integer - optional

    Amount to capture from customer account, see Captured amount.

    • Range: 0-999999999999
  • metadata object - optional

    Client provided transaction metadata, see Metadata. Will be merged with any metadata transaction already has.

  • result_description string - optional

    Human readable description, only relevant if result_code is not SUCCESS.

    • Length: 1-255 characters
    • Pattern: ^[\x20-\x7E]{1,255}$
Example
{
  "captured_amount": 1000,
  "external_id": "123",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "result_code": "SUCCESS",
  "result_description": "The amount given was negative.",
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transaction object - required

      Current state of the transaction after confirmation.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "transaction": {
    "authorized_amount": 1000,
    "captured_amount": 1000,
    "cashback_amount": 1000,
    "confirmed_at": "2024-11-07T05:25:55Z",
    "created_at": "2024-11-07T05:25:55Z",
    "currency": "EUR",
    "customer_identity": {
      "computop": {
        "card_token": "1234567890123456"
      },
      "par": {
        "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
      }
    },
    "customer_not_present": true,
    "dcc": {
      "customer_amount": 1000,
      "customer_currency": "EUR",
      "exchange_rate": 42,
      "exchange_rate_date": "2024-11-07",
      "exchange_rate_provider": "ECB",
      "markup_fee": 500,
      "provider": "Nets"
    },
    "external_id": "123",
    "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "original_purchase_external_id": "123",
    "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "original_purchase_terminal_id": "t-12345678",
    "payment_method_details": {
      "acquirer_reference": "241128113112",
      "acquirer_terminal_id": "A1234567",
      "acquirer_timestamp": "241128113123",
      "application_identifier": "string",
      "application_name": "string",
      "authorization_code": "123ABC",
      "authorization_response_code": "00",
      "card_entry_mode": "string",
      "card_number_customer": "************2454",
      "card_number_merchant": "400770******2454",
      "card_scheme": "string",
      "card_sequence_number": "01",
      "cardholder_verification": "string",
      "payment_method": "string"
    },
    "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "reference": "250404123456-01234567",
    "refundable_amount": 1000,
    "requested_amount": 1000,
    "result_code": "SUCCESS",
    "result_description": "The amount given was negative.",
    "state": "CONFIRMED",
    "surcharge_amount": 1000,
    "terminal_id": "t-12345678",
    "tip_amount": 1000,
    "total_amount": 1000,
    "type": "string",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Get transaction

POST /transaction/get

Returns the transaction object for a specific transaction. A transaction is updated multiple times during its lifecycle, which means the transaction object is a snapshot of the transaction at a specific point in time.

Request body

  • external_id string - required

    External id of the transaction, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • terminal_id string - required

    Terminal id of the transaction, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • options object - optional

    Modify the behaviour of the server side request handling.

    • wait_seconds number - optional

      How many seconds the server should wait for transaction state to change before responding, see Long polling. Will respond immediately if set to 0 or if transaction state is not PROCESSING.

      • Range: 0-180
Example
{
  "external_id": "123",
  "options": {
    "wait_seconds": 60
  },
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transaction object - required

      Current state of the transaction.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 404 Not Found
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
404
500
{
  "transaction": {
    "authorized_amount": 1000,
    "captured_amount": 1000,
    "cashback_amount": 1000,
    "confirmed_at": "2024-11-07T05:25:55Z",
    "created_at": "2024-11-07T05:25:55Z",
    "currency": "EUR",
    "customer_identity": {
      "computop": {
        "card_token": "1234567890123456"
      },
      "par": {
        "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
      }
    },
    "customer_not_present": true,
    "dcc": {
      "customer_amount": 1000,
      "customer_currency": "EUR",
      "exchange_rate": 42,
      "exchange_rate_date": "2024-11-07",
      "exchange_rate_provider": "ECB",
      "markup_fee": 500,
      "provider": "Nets"
    },
    "external_id": "123",
    "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "original_purchase_external_id": "123",
    "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "original_purchase_terminal_id": "t-12345678",
    "payment_method_details": {
      "acquirer_reference": "241128113112",
      "acquirer_terminal_id": "A1234567",
      "acquirer_timestamp": "241128113123",
      "application_identifier": "string",
      "application_name": "string",
      "authorization_code": "123ABC",
      "authorization_response_code": "00",
      "card_entry_mode": "string",
      "card_number_customer": "************2454",
      "card_number_merchant": "400770******2454",
      "card_scheme": "string",
      "card_sequence_number": "01",
      "cardholder_verification": "string",
      "payment_method": "string"
    },
    "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "reference": "250404123456-01234567",
    "refundable_amount": 1000,
    "requested_amount": 1000,
    "result_code": "SUCCESS",
    "result_description": "The amount given was negative.",
    "state": "CONFIRMED",
    "surcharge_amount": 1000,
    "terminal_id": "t-12345678",
    "tip_amount": 1000,
    "total_amount": 1000,
    "type": "string",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Continue transaction

POST /transaction/continue

Continues a transaction that is currently waiting for the client to send a continue message, see Pausing a transaction. The body of the request can specify an updated requested_amount for the transaction. Only transactions that are currently waiting for the client to send a continue message can be continued.

Request body

  • external_id string - required

    Client provided identifier for the transaction that should be continued, see External id.

    • Length: 1-63 characters
    • Pattern: ^[\x21-\x7E]{1,63}$
  • terminal_id string - required

    Identifier of the terminal of the transaction that should be continued, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • metadata object - optional

    Client provided transaction metadata, see Metadata. Will be merged with any metadata transaction already has.

  • options object - optional

    Modify the behaviour of the server side request handling.

    • wait_seconds number - optional

      How many seconds the server should wait for transaction state to change before responding, see Long polling. Will respond immediately if set to 0 or if transaction state is not PROCESSING.

      • Range: 0-180
  • requested_amount integer - optional

    Override the requested amount of the transaction, changing the amount that the transaction is going to be processed with.

    • Range: 0-999999999999
Example
{
  "external_id": "123",
  "metadata": {
    "key1": "value1",
    "key2": "value2"
  },
  "options": {
    "wait_seconds": 60
  },
  "requested_amount": 1000,
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transaction object - required

      Current state of the transaction after continuing.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "transaction": {
    "authorized_amount": 1000,
    "captured_amount": 1000,
    "cashback_amount": 1000,
    "confirmed_at": "2024-11-07T05:25:55Z",
    "created_at": "2024-11-07T05:25:55Z",
    "currency": "EUR",
    "customer_identity": {
      "computop": {
        "card_token": "1234567890123456"
      },
      "par": {
        "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
      }
    },
    "customer_not_present": true,
    "dcc": {
      "customer_amount": 1000,
      "customer_currency": "EUR",
      "exchange_rate": 42,
      "exchange_rate_date": "2024-11-07",
      "exchange_rate_provider": "ECB",
      "markup_fee": 500,
      "provider": "Nets"
    },
    "external_id": "123",
    "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "metadata": {
      "key1": "value1",
      "key2": "value2"
    },
    "original_purchase_external_id": "123",
    "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
    "original_purchase_terminal_id": "t-12345678",
    "payment_method_details": {
      "acquirer_reference": "241128113112",
      "acquirer_terminal_id": "A1234567",
      "acquirer_timestamp": "241128113123",
      "application_identifier": "string",
      "application_name": "string",
      "authorization_code": "123ABC",
      "authorization_response_code": "00",
      "card_entry_mode": "string",
      "card_number_customer": "************2454",
      "card_number_merchant": "400770******2454",
      "card_scheme": "string",
      "card_sequence_number": "01",
      "cardholder_verification": "string",
      "payment_method": "string"
    },
    "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
    "reference": "250404123456-01234567",
    "refundable_amount": 1000,
    "requested_amount": 1000,
    "result_code": "SUCCESS",
    "result_description": "The amount given was negative.",
    "state": "CONFIRMED",
    "surcharge_amount": 1000,
    "terminal_id": "t-12345678",
    "tip_amount": 1000,
    "total_amount": 1000,
    "type": "string",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Get unconfirmed transactions

POST /transaction/unconfirmed

Get a list of unconfirmed transactions for a terminal.

This operation is meant only for development and recovering from lost transaction identifiers. See transactional reliability.

Request body

  • terminal_id string - required

    Identifier of the terminal for which to list the unconfirmed transactions, see Terminal id.

    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
Example
{
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • transactions array - required

      Current state of the transactions for the specified terminal.

      • created_at string - required

        Time when the transaction was created.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • external_id string - required

        Client provided identifier for the transaction, see External id.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • id string - required

        Internal identifier for the transaction, see Id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • state string - required

        State of the transaction, see Transaction flow.

        ValueDescription
        AWAITING_CONFIRMNeeds client to send 'confirm' message to continue processing
        AWAITING_CONTINUENeeds client to send 'continue' message to continue processing
        PROCESSINGTransaction is being processed
        CONFIRMEDTransaction has been confirmed as successful or failed
        COMMITTEDTransaction result has been committed and cannot be changed
      • terminal_id string - required

        Identifier of the terminal that processed the transaction, see Terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • type string - required

        Transaction type.

        ValueDescription
        ACCOUNT_CHECKAccount check transaction to check if card is valid
        PURCHASEPurchase transaction to charge customer for goods
        REFUNDRefund transaction to return money to customer
        UNKNOWNTransaction type not known, or not representable in this enumeration
      • updated_at string - required

        Time when the transaction was last updated.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • authorized_amount integer - optional

        Amount that was authorized by the acquirer, see Authorized amount.

        • Range: 0-999999999999
      • captured_amount integer - optional

        Amount that was captured from customer account, see Captured amount.

        • Range: 0-999999999999
      • cashback_amount integer - optional

        Amount of cashback given to the customer, see Cashback amount.

        • Range: 0-999999999999
      • confirmed_at string - optional

        Time when the transaction was confirmed. Missing if the transaction hasn’t been confirmed yet.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
      • currency string - optional

        Currency of the transaction, see Currency.

        • Length: 3 characters
        • Pattern: ^[A-Z]{3}$
      • customer_identity object - optional

        Customer identity information. If the customer was identified somehow by their payment instrument, this information is available in the transaction details. There can be multiple ways utilized at the same time for a single transaction, so this object will contain data for the methods that were used for this transaction.

        • computop object - optional

          Computop specific customer identity information.

          • card_token string - optional

            Computop specific card token. This is a unique identifier for the card that can be used to identify the card in future transactions.

            • Length: 16 characters
            • Pattern: ^[0-9]{16}$
        • par object - optional

          Payment account reference (PAR) as provided by the payment instrument. This is a unique identifier for the card that can be used to identify the card in future transactions.

          • par_value string - optional

            Payment account reference (PAR) as read from the payment instrument.

            • Length: 29 characters
            • Pattern: ^[0-9A-Z]{29}$
      • customer_not_present boolean - optional

        Indicator that the transaction was done without the customer being present at the terminal.

      • dcc object - optional

        Details of a currency conversion, see DCC. This element only present if the transaction was processed in a different currency for the customer than the one in currency field.

        • customer_amount integer - optional

          Amount that the customer paid in their own currency. This amount is in the currency listed in customer_currency.

          • Range: 0-999999999999
        • customer_currency string - optional

          Currency that customer paid in, see Currency.

          • Length: 3 characters
          • Pattern: ^[A-Z]{3}$
        • exchange_rate integer - optional

          Exchange rate that was used for the DCC transaction. The value is expressed as an integer with exactly four decimal places. That means that a value of 10000 is equal to 1:1 exchange rate.

          • Minimum: 0
        • exchange_rate_date string - optional

          Date when the exchange rate was obtained from the provider.

          • Format: date
          • Length: 1-10 characters
          • Pattern: ^\d{4}-\d{2}-\d{2}$
        • exchange_rate_provider string - optional

          Exchange rate provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
        • markup_fee integer - optional

          Mark-up fee that was charged for the DCC transaction. The value is expressed as an integer in one hundredth of percents, so 100 means a mark-up of 1 %.

          • Range: 0-10000
        • provider string - optional

          DCC provider that was used for the transaction.

          • Length: 1-63 characters
          • Pattern: ^[\x20-\x7E]{1,63}$
      • metadata object - optional

        Client provided transaction metadata, see Metadata.

      • original_purchase_external_id string - optional

        Original purchase transaction’s external_id, see External id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[\x21-\x7E]{1,63}$
      • original_purchase_id string - optional

        Original purchase transaction’s id, see Id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • original_purchase_terminal_id string - optional

        Original purchase transaction’s terminal_id, see Terminal id. Only relevant when type is REFUND.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • payment_method_details - optional

        Payment method specific information

        • One of the objects below will be in the payload

          • When payment_method is CARD

              • payment_method string - required
                CARD
              • acquirer_reference string - optional

                Transaction reference number in format YYMMDDNNNNNN. It is set by the terminal at the time the transaction is created and guaranteed to be unique within the terminal. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • acquirer_terminal_id string - optional

                Terminal identifier that is used towards the acquirer. It often matches the transaction terminal id, but some acquirers have special rules and limitations that require it to be different.

                • Length: 8 characters
                • Pattern: ^[0-9A-Z]{8}$
              • acquirer_timestamp string - optional

                Local transaction time in format YYMMDDHHMMSS. It is set by the terminal at the time the transaction is created. It is transmitted to the acquirer during transaction processing.

                • Length: 12 characters
                • Pattern: ^[0-9]{12}$
              • application_identifier string - optional

                Application identifier (AID) of the selected card application.

                • Length: 10-32 characters
                • Pattern: ^[0-9A-F]{10,32}$
              • application_name string - optional

                Name of the selected card application.

                • Length: 1-16 characters
                • Pattern: ^[\x20-\x7E]{1,16}$
              • authorization_code string - optional

                Authorization code for the transaction, if received from the acquirer.

                • Length: 6 characters
                • Pattern: ^[0-9A-Z]{6}$
              • authorization_response_code string - optional

                Response code from the acquirer. This is not the same as the result_code of the transaction. This is a code that is used by the acquirer to indicate the result of the authorization. Generally 00 means success.

                • Length: 2 characters
                • Pattern: ^[0-9A-Z]{2}$
              • card_entry_mode string - optional

                Card entry mode is the way the card was read by the terminal. This does not directly tell the form factor of the card, as contactless entry mode is used for anything that is read wirelessly, including mobile phones and smartwatches.

                ValueDescription
                CONTACT_EMVCard was inserted into the terminal and the chip was read
                CONTACTLESS_EMVCard or phone was tapped on the terminal and the chip was read wirelessly
                MAGNETIC_STRIPECard was swiped on the terminal and the magnetic stripe was read
                MANUALCard number was typed in manually on the terminal
              • card_number_customer string - optional

                Card primary account number that can be shown to the customer. Generally only the last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_number_merchant string - optional

                Card primary account number that can be shown to the merchant. Generally first 6 and last 4 digits are shown, rest are masked.

                • Length: 13-19 characters
                • Pattern: ^[0-9*]{13,19}$
              • card_scheme string - optional

                Card scheme is the payment network the card is provided by. This is not necessarily the card brand which is printed on top of the card. Scheme will never be UNKNOWN for a successful transaction.

                AMEX
                BANKAXEPT
                DANKORT
                DINERS_CLUB
                GIROCARD
                JCB
                MASTERCARD
                UNIONPAY
                VISA
                UNKNOWN
              • card_sequence_number string - optional

                Sequence number for multiple cards with the same card number. Required to be printed on receipts.

                • Length: 2 characters
                • Pattern: ^[0-9]{2}$
              • cardholder_verification string - optional

                Cardholder verification method (CVM) is the way the cardholder was verified to be the owner of the card.

                ValueDescription
                NONECardholder has not been verified
                SIGNATURECardholder has given their signature
                PINCardholder typed in a PIN code
                PIN_AND_SIGNATUREBoth `SIGNATURE` and `PIN` were used
                CONSUMER_DEVICECardholder used a consumer device, such as a phone, for verification
      • receipt_details_customer string - optional

        Customer receipt details, see Receipt. This is the information that must be printed on the customer receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • receipt_details_merchant string - optional

        Merchant receipt details, see Receipt. This is the information that must be printed on the merchant receipt.

        • Length: 1-1023 characters
        • Pattern: ^([\x20-\x7E]{0,32}\n){1,31}$
      • reference string - optional

        Unique reference number for the transaction. This is a number that should be printed on the receipt. It can be typed into the terminal to reference the purchase for a refund. All “-” characters are just for visual separation and will not be required on input.

        • Length: 1-63 characters
        • Pattern: ^[0-9-]{1,63}$
      • refundable_amount integer - optional

        The total sum of refunds that can still be accepted for this transaction, see Refundable amount.

        • Range: 0-999999999999
      • requested_amount integer - optional

        Amount that was requested for the transaction, see Requested amount.

        • Range: 0-999999999999
      • result_code string - optional

        Result of the transaction, see Results and errors.

        • Length: 1-255 characters
        • Pattern: ^[0-9A-Z_]{1,255}$
      • result_description string - optional

        English language transaction result description for logs and administrative interfaces. It should not be shown to customer and might be too technical to be useful for a cashier.

        • Length: 1-255 characters
        • Pattern: ^[\x20-\x7E]{1,255}$
      • surcharge_amount integer - optional

        Amount of surcharge that was added to the transaction, see Surcharge amount.

        • Range: 0-999999999999
      • tip_amount integer - optional

        Amount of tip that was added to the transaction, see Tip amount.

        • Range: 0-999999999999
      • total_amount integer - optional

        Current total amount for transaction, see Total amount

        • Range: 0-999999999999
  • 404 Not Found
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
404
500
{
  "transactions": [
    {
      "authorized_amount": 1000,
      "captured_amount": 1000,
      "cashback_amount": 1000,
      "confirmed_at": "2024-11-07T05:25:55Z",
      "created_at": "2024-11-07T05:25:55Z",
      "currency": "EUR",
      "customer_identity": {
        "computop": {
          "card_token": "1234567890123456"
        },
        "par": {
          "par_value": "5001ABCDEFGHIJKLMNOPQRSTUVWXY"
        }
      },
      "customer_not_present": true,
      "dcc": {
        "customer_amount": 1000,
        "customer_currency": "EUR",
        "exchange_rate": 42,
        "exchange_rate_date": "2024-11-07",
        "exchange_rate_provider": "ECB",
        "markup_fee": 500,
        "provider": "Nets"
      },
      "external_id": "123",
      "id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
      "metadata": {
        "key1": "value1",
        "key2": "value2"
      },
      "original_purchase_external_id": "123",
      "original_purchase_id": "txn-12345678-01JPHYGPRMH9QRFS3M69SJW9SH",
      "original_purchase_terminal_id": "t-12345678",
      "payment_method_details": {
        "acquirer_reference": "241128113112",
        "acquirer_terminal_id": "A1234567",
        "acquirer_timestamp": "241128113123",
        "application_identifier": "string",
        "application_name": "string",
        "authorization_code": "123ABC",
        "authorization_response_code": "00",
        "card_entry_mode": "string",
        "card_number_customer": "************2454",
        "card_number_merchant": "400770******2454",
        "card_scheme": "string",
        "card_sequence_number": "01",
        "cardholder_verification": "string",
        "payment_method": "string"
      },
      "receipt_details_customer": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
      "receipt_details_merchant": "CARD:************0010\nAPP: CREDITO DE VISA\nAID: A0000000031010\nMODE:ICC/PIN   SEQ: 01\nAUTH:A1B2C3    RC:  00\nTIME:250629115005\nR:250629197805-87251720\n",
      "reference": "250404123456-01234567",
      "refundable_amount": 1000,
      "requested_amount": 1000,
      "result_code": "SUCCESS",
      "result_description": "The amount given was negative.",
      "state": "CONFIRMED",
      "surcharge_amount": 1000,
      "terminal_id": "t-12345678",
      "tip_amount": 1000,
      "total_amount": 1000,
      "type": "string",
      "updated_at": "2024-11-07T05:25:55Z"
    }
  ]
}

Terminals

Operations where the main object to be managed is a terminal.

Get terminal status

POST /terminal/status

Returns the state of a specific terminal.

Request body

  • terminal_id string - required
    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
Example
{
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • status object - required

      Current status of the specified terminal.

      • battery_charging boolean - optional

        Whether the terminal is currently charging the battery. Only available for terminals that support this feature.

      • battery_percentage number - optional

        How much charge is remaining on the terminal’s battery. Only available for terminals that support this feature.

        • Range: 0-100
      • connected boolean - optional

        Whether the terminal is connected to the server.

      • plugged_in boolean - optional

        Whether the terminals is currently plugged into a power source. Only available for terminals that support this feature.

      • screen_message string - optional

        Human readable description of what is currently shown on the terminal screen. The messages may change both in content and language at any time, and as such they MUST NOT be parsed programmatically, e.g. to detect transaction state as any such logic would be fragile.

        • Length: 1-255 characters
      • terminal_id string - optional

        The terminal id.

        • Length: 1-63 characters
        • Pattern: ^[0-9a-zA-Z-]{1,63}$
      • transaction_state string - optional

        The current state of the terminal regarding transactions.

        ValueDescription
        AWAITING_CONTINUETerminal is waiting for client to send ‘continue’ message
        BUSYTerminal is not ready to process transactions
        PROCESSINGTerminal is processing a transaction
        READYTerminal is ready to process a new transaction

        AWAITING_CONTINUE
        BUSY
        PROCESSING
        READY
      • updated_at string - optional

        When any of the fields last changed.

        • Format: date-time
        • Length: 20 characters
        • Pattern: ^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$
  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "status": {
    "battery_charging": true,
    "battery_percentage": 94,
    "connected": true,
    "plugged_in": true,
    "screen_message": "Please insert card",
    "terminal_id": "t-12345678",
    "transaction_state": "PROCESSING",
    "updated_at": "2024-11-07T05:25:55Z"
  }
}

Print

POST /terminal/print

Prints a message on the receipt printer included in the terminal. The request returns as soon as the message is successfully queued on the terminal and the terminal is ready to receive the next print operation. The actual printing may take some time, or it may fail, which is not exposed in this API. If a print operation is sent to a terminal which does not have a receipt printer, the response will be an error.

Request body

  • contents string - required

    Data as a base64 encoded string. Decoded contents must match given format type.

    • Length: 1-262143 characters
  • format string - required

    Format of the content.

    PNG
  • terminal_id string - required
    • Length: 1-63 characters
    • Pattern: ^[0-9a-zA-Z-]{1,63}$
  • continue boolean - optional

    Longer prints may be done with several calls, with continue set to true on all but last fragment.

Example
{
  "contents": "iVBORw0KGgoAAAANSUhEUgAAAW0AAADICAIAAACsxSecAAAACXBIWXMAAA\nsTAAALEwEAmpwYAAAAB3RJTUUH3woPBx8Rn8o0RAAAABl0RVh0Q29tbWVudABDcmVhd\nGVkIHdpdGggR0lNUFeBDhcAAAHUSURBVHja7dSxDQAgDAPBhP13NiOkQEJC3NWuXHwV\nAAAAAAAAAAAAAAAAAAAA8KoeF0ncBF9noodQLB8Bh3QE0BFARwAdAXQEQEcAHQF0BNA\nRAB0BdATQEUBHAHQE0BFARwAdAdARQEcAHQF0BEBHAB0BdATQEQAdAXQE0BFARwB0BN\nARQEcAHQHQEUBHAB0BdARARwAdAXQE0BEAHQF0BNARQEcAdATQEUBHAB0B0BFARwAdA\nXQEQEcAHQF0BNARAB0BdATQEUBHAHQE0BFARwAdAdARQEcAHQF0BEBHAB0BdATQEQAd\nAXQE0BFARwB0BNARQEcAHQHQEUBHAB0BdARARwAdAXQE0BEAHQF0BNARQEcAdATQEUB\nHAB0B0BFARwAdAXQEQEcAHQF0BNARAB0BdATQEUBHAHQE0BFARwAdAdARQEcAHQF0BE\nBHAB0BdATQEQAdAXQE0BFARwB0BNARQEcAHQHQEUBHAB0BdATQEQAdAXQE0BFARwB0B\nNARQEcAHQHQEUBHAB0BdARARwAdAXQE0BEAHQF0BNARQEcAdATQEUBHAB0B0BFARwAd\nAXQEQEcAHQF0BNARAB0BdAQAAAAAAAAAAAAAAAAAAAAAuGMDAjUEVLwTKcgAAAAASUV\nORK5CYII=\n",
  "continue": true,
  "format": "PNG",
  "terminal_id": "t-12345678"
}

Responses

  • 200 Request processing succeeded
    • queued boolean - required

      Whether the print request was queued for processing. Currently true for all print requests as they are processed asynchronously.

  • 400 Bad Request
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
  • 500 Internal Server Error
    • error object - required
      • code string - optional

        Error code, see Results and errors.

        • Length: 1-63 characters
      • description string - optional

        Human readable description of error, see Results and errors.

        • Length: 1-255 characters
200
400
500
{
  "queued": true
}