Ordering and Setting Up Equipment

Use the Equipment Ordering API to submit completed equipment surveys for selected hardware. This API helps streamline the process of configuring and ordering devices required for payment processing.

Merchants select the equipment they need, such as POS terminals or card readers and complete a survey specific to each device. Once submitted, the system provisions the hardware and links it to the corresponding Merchant ID (MID). This ensures seamless integration with the payment system.

1

Retrieve available Equipment

The equipment setup process begins by retrieving the available hardware products that can be provisioned for a merchant.

Retrieving available equipment holds below methods that allow you either to retrieve a complete list of available products or a specific product.

Get All Equipment Products

Use the GET method /api/equipment/products to retrieve a complete list of available products. This endpoint supports optional query parameters such as isSoftware to filter software-only products. Refer to the below sample code for reference:

{
  "frontends": [
    "string"
  ],
  "manufacturer": "string",
  "metadata": {
    "exchangeId": "string",
    "timestamp": "string"
  },
  "modelId": 0,
  "productName": "string",
  "productType": "Terminal"
}

Get a Specific Product

Use the GET method /api/equipment/products/{manufacturer}/{deviceType} to retrieve a specific product if the manufacturer and device type are already known. It is useful for targeting a specific piece of hardware when the selection is pre-defined. Refer to the below sample code for reference:

{
  "frontends": [
    "string"
  ],
  "manufacturer": "string",
  "metadata": {
    "exchangeId": "string",
    "timestamp": "string"
  },
  "modelId": 0,
  "productName": "string",
  "productType": "Terminal"
}
2

Equipment Configuration Survey

After selecting a product, the next step is to retrieve the Configuration Survey associated with that equipment. Each product includes a unique set of configuration options, captured through a dynamic survey. These options ensure that the device is properly set up for the merchant’s specific use case.

Use the GET method /api/equipment/surveys/{productId} to retrieve the complete configuration survey for the specified product. Refer to the below sample code for reference:

{
  "metadata": {
    "exchangeId": "string",
    "timestamp": "string"
  },
  "questionAnswerGroup": {
    "id": 0,
    "questionAnswerSets": {
      "additionalProp1": [
        {
          "answers": [
            {
              "answer": "string",
              "id": 0,
              "selected": true
            }
          ],
          "children": [
            "string"
          ],
          "conditionalOnAnswer": 0,
          "id": 0,
          "isHidden": true,
          "question": "string",
          "required": true,
          "selectedAnswer": 0,
          "sendToMerchantApp": true,
          "tags": [
            {
              "group": "string",
              "name": "string"
            }
          ],
          "type": "string"
        }
      ],
      "additionalProp2": [
        {
          "answers": [
            {
              "answer": "string",
              "id": 0,
              "selected": true
            }
          ],
          "children": [
            "string"
          ],
          "conditionalOnAnswer": 0,
          "id": 0,
          "isHidden": true,
          "question": "string",
          "required": true,
          "selectedAnswer": 0,
          "sendToMerchantApp": true,
          "tags": [
            {
              "group": "string",
              "name": "string"
            }
          ],
          "type": "string"
        }
      ],
      "additionalProp3": [
        {
          "answers": [
            {
              "answer": "string",
              "id": 0,
              "selected": true
            }
          ],
          "children": [
            "string"
          ],
          "conditionalOnAnswer": 0,
          "id": 0,
          "isHidden": true,
          "question": "string",
          "required": true,
          "selectedAnswer": 0,
          "sendToMerchantApp": true,
          "tags": [
            {
              "group": "string",
              "name": "string"
            }
          ],
          "type": "string"
        }
      ]
    },
    "questionAreas": [
      "string"
    ]
  }
}
3

Submit Equipment Order

Once the product is selected and the configuration survey is completed, the next step is to submit the equipment order. The Equipment Ordering used to submit the final order, that include the merchant's 16-digit Merchant ID (MID), selected product, and the completed configuration survey.

Use the POST method /api/equipment/orders to create or submit an equipment order. Refer to the sample request code for reference:

{
  "merchantNumber": "string",
  "metadata": {
    "exchangeId": "string",
    "timestamp": "string"
  },
  "orderCreateTime": {
    "calendarType": "string",
    "fieldsComputed": 0,
    "fieldsNormalized": 0,
    "firstDayOfWeek": 0,
    "lenient": true,
    "minimalDaysInFirstWeek": 0,
    "time": "2025-07-03T13:53:25.303Z",
    "timeInMillis": 0,
    "timeZone": {
      "displayName": "string",
      "dstsavings": 0,
      "id": "string",
      "rawOffset": 0
    },
    "weekCountData": {
      "country": "string",
      "displayCountry": "string",
      "displayLanguage": "string",
      "displayName": "string",
      "displayScript": "string",
      "displayVariant": "string",
      "extensionKeys": [
        {}
      ],
      "iso3Country": "string",
      "iso3Language": "string",
      "language": "string",
      "script": "string",
      "unicodeLocaleAttributes": [
        "string"
      ],
      "unicodeLocaleKeys": [
        "string"
      ],
      "variant": "string"
    },
    "weekDateSupported": true,
    "weekYear": 0,
    "weeksInWeekYear": 0,
    "zoneShared": true
  },
  "orderId": "string",
  "orderItems": [
    {
      "completionDate": "MM/dd/yyyy HH:mm a",
      "errors": [
        {
          "field": "string",
          "message": "string"
        }
      ],
      "manufacturer": "string",
      "orderItemId": 0,
      "orderItemMetadata": [
        {
          "apiKey": "string",
          "orderStatus": "string",
          "productManufacturer": "string",
          "productModel": "string",
          "publicKey": "string",
          "salesforceCaseNumber": "string",
          "serialNumber": "string",
          "storeNumber": 0,
          "tcn": "string",
          "terminalId": 0,
          "trackingNumber": "string",
          "vNumber": "string"
        }
      ],
      "productName": "string",
      "productType": "Software",
      "quantity": 0,
      "survey": {
        "metadata": {
          "exchangeId": "string",
          "timestamp": "string"
        },
        "questionAnswerGroup": {
          "questionAnswerSets": {
            "additionalProp1": [
              {
                "answers": [
                  {
                    "answer": "string",
                    "id": 0,
                    "selected": true
                  }
                ],
                "children": [
                  "string"
                ],
                "conditionalOnAnswer": 0,
                "errors": [
                  {
                    "field": "string",
                    "message": "string"
                  }
                ],
                "isHidden": true,
                "question": "string",
                "required": true,
                "selectedAnswer": 0,
                "sendToMerchantApp": true,
                "tags": [
                  {
                    "group": "string",
                    "name": "string",
                    "value": "string"
                  }
                ],
                "type": "string",
                "valid": true
              }
            ],
            "additionalProp2": [
              {
                "answers": [
                  {
                    "answer": "string",
                    "id": 0,
                    "selected": true
                  }
                ],
                "children": [
                  "string"
                ],
                "conditionalOnAnswer": 0,
                "errors": [
                  {
                    "field": "string",
                    "message": "string"
                  }
                ],
                "isHidden": true,
                "question": "string",
                "required": true,
                "selectedAnswer": 0,
                "sendToMerchantApp": true,
                "tags": [
                  {
                    "group": "string",
                    "name": "string",
                    "value": "string"
                  }
                ],
                "type": "string",
                "valid": true
              }
            ],
            "additionalProp3": [
              {
                "answers": [
                  {
                    "answer": "string",
                    "id": 0,
                    "selected": true
                  }
                ],
                "children": [
                  "string"
                ],
                "conditionalOnAnswer": 0,
                "errors": [
                  {
                    "field": "string",
                    "message": "string"
                  }
                ],
                "isHidden": true,
                "question": "string",
                "required": true,
                "selectedAnswer": 0,
                "sendToMerchantApp": true,
                "tags": [
                  {
                    "group": "string",
                    "name": "string",
                    "value": "string"
                  }
                ],
                "type": "string",
                "valid": true
              }
            ]
          },
          "questionAreas": [
            "string"
          ]
        }
      },
      "surveyValid": true,
      "trackingNumber": "string",
      "validFrontends": [
        "string"
      ]
    }
  ],
  "orderModifyTime": {
    "calendarType": "string",
    "fieldsComputed": 0,
    "fieldsNormalized": 0,
    "firstDayOfWeek": 0,
    "lenient": true,
    "minimalDaysInFirstWeek": 0,
    "time": "2025-07-03T13:53:25.304Z",
    "timeInMillis": 0,
    "timeZone": {
      "displayName": "string",
      "dstsavings": 0,
      "id": "string",
      "rawOffset": 0
    },
    "weekCountData": {
      "country": "string",
      "displayCountry": "string",
      "displayLanguage": "string",
      "displayName": "string",
      "displayScript": "string",
      "displayVariant": "string",
      "extensionKeys": [
        {}
      ],
      "iso3Country": "string",
      "iso3Language": "string",
      "language": "string",
      "script": "string",
      "unicodeLocaleAttributes": [
        "string"
      ],
      "unicodeLocaleKeys": [
        "string"
      ],
      "variant": "string"
    },
    "weekDateSupported": true,
    "weekYear": 0,
    "weeksInWeekYear": 0,
    "zoneShared": true
  },
  "resubmit": true,
  "status": "Active",
  "validFrontends": [
    "string"
  ]
}

For a detailed breakdown of the request and response fields and their descriptions, refer to the Equipment Boarding API.

Last updated

Was this helpful?