Scan

Overview

The Scan Command is used to initiate a barcode scanning transaction between an ECR and a Moneris terminal. This command enables the ECR to request the terminal to scan one or more barcodes and return the scanned data in a structured response.


📘

NOTE

For idempotent transactions, only the last scanned item is returned due to storage limitations.


Request Structure

ElementTypeDescriptionSizeRequired
apiVersion String API version number V20 Required
istConfigCode String Moneris provided integration configuration code V50 Required
dataId String Merchant defined unique identifier for the data object V50 Required
dataTimestamp String Date and time of the request (YYYY-MM-DD HH:MM:SS) F19 Required
data Object Object that contains all transaction requests
request Array Contains data applicable to transaction request
idempotencyKey String Unique transaction identifier to avoid duplicate request V50 Required
linkId String ID used to group related transactions V50 Optional
terminalId String Destination Terminal ID F8 Optional
userName String Unique identifier for clerk / user V30 Optional
customIdData String Custom field V50 Optional
action String "scan" V50 Required
progressStatus String If value is set to "True", terminal will return progress to ECR. Note: This feature is only available on Direct Integration. V5 Optional
barcodeType String List of supported barcode formats to be scanned V50 Optional

Request example

{
  "apiVersion": "3.0",
  "istConfigCode": "example_istConfigCode",
  "dataId": "example_dataId",
  "dataTimestamp": "1969-12-31 23:59:59",
  "data": {
    "request": [
      {
        "idempotencyKey": "example_idempotencyKey",
        "action": "scan"
      }
    ]
  }
}

Response Structure

ElementTypeDescriptionSizeRequired
apiVersion String API version number V20 Required
statusCode String Status code for the overall transaction request V4 Required
status String Description of the statusCode V50 Required
dataId String Merchant defined unique identifier for the data object V50 Required
dataTimestamp String Date and time of the request (YYYY-MM-DD HH:MM:SS) F19 Required
data Object Object that contains all transaction requests
response Array Contains data applicable to transaction request
idempotencyKey String Unique transaction identifier to avoid duplicate request V50 Required
linkId String ID used to group related transactions V50 Optional
action String "scan" V50 Required
statusCode String Status code for individual request V4 Required
status String Description of the individual statusCode V50 Required
completed String "true" or "false" V5 Required
barcode Array
data String Scanned data of the barcode V200 Conditional
format String List of supported barcode formats to be scanned V50 Optional
sessionCounter String Track what sequence the barcode was scanned V3 Required

Response example

{
  "apiVersion": "3.0",
  "statusCode": "example_statusCode",
  "status": "example_status",
  "dataId": "example_dataId",
  "dataTimestamp": "1969-12-31 23:59:59",
  "data": {
    "response": [
      {
        "idempotencyKey": "example_idempotencyKey",
        "statusCode": "example_statusCode",
        "status": "example_status",
        "completed": "true",
        "action": "scan",
        "barcode": [
          {
            "data": "example_barcode_data",
            "format": "example_barcode_format",
            "sessionCounter": "example_sessionCounter"
          },
          {
            "data": "example_barcode_data",
            "format": "example_barcode_format",
            "sessionCounter": "example_sessionCounter"
          }
        ]
      }
    ]
  }
}

Errors

If your response contains errors, visit the Errors page for a detailed description of each one.


Did this page help you?