Terminal Management

Register POS terminals under a merchant and list recently registered terminals with their health.

Register terminal — POST /api/terminals/register

Registers a new POS terminal for a merchant.

Request parameters

ParameterTypeRequiredDescription
terminalSlNostringYesTerminal serial number
ecrReferenceNumberstringNoECR reference number for linking
terminalTypestringYesType of terminal (e.g. P1000)
counterNumberstringYesCounter / checkout number
clientIdstringYesAssociated merchant client ID
trxnTypestringYesTransaction type code (17 = Register)

📘

trxnType: "17" is Register

17 is the scheme-level Register code — see the canonical Transaction Types reference. The Cloud Middleware uses these scheme codes; the Local API Middleware uses a different internal enum, so don't reuse its numbers here.

Request

{
  "terminalSlNo": "0000150410PT1055012",
  "terminalType": "P1000",
  "counterNumber": "1",
  "clientId": "merchant1",
  "trxnType": "17"
}

Response

{
  "status": "Active",
  "message": "Registered",
  "terminalId": "8184000200000077",
  "terminalSlNo": "0000150410PT1055012",
  "registrationDate": "2026-03-25T11:02:50.941944173"
}

The returned terminalId is what you pass to every payment transaction.

Get recently registered terminals — GET /api/terminals/recently-registered

Returns the most recently registered terminals along with their current status and health.

Response

{
  "count": 1,
  "terminals": [
    {
      "id": 2,
      "terminalId": "8184000200000077",
      "terminalSlNo": "0000150410PT1055012",
      "terminalType": "P1000",
      "ecrReferenceNumber": "153243635",
      "counterNumber": "1",
      "clientId": "merchant1",
      "status": "Active",
      "registered": "Yes",
      "healthStatus": "UNKNOWN",
      "registrationDate": "2026-03-25T11:03:18.842773",
      "lastSaleNumber": null,
      "terminalStatus": "Active",
      "createdAt": "2026-03-25T11:03:18.842765",
      "updatedAt": "2026-03-25T11:28:41.4"
    }
  ],
  "timestamp": 1774438176534
}