Skip to main content

Register POS Terminal

Adds a new Point-of-Sale (POS) terminal record to a merchant account.

Authentication required (User JWT).

POST /api/merchants/:merchantId/pos-terminals

Path Parameters​

ParameterTypeDescription
merchantIdStringThe ID of the parent merchant.

Request Body​

{
"serialNumber": "SN123456789",
"terminalId": "TID98765", // Optional: Manufacturer/Provider ID
"model": "PAX A920", // Optional
"linkedVirtualAccountNumber": "0123456789" // Optional: Link to existing VA on register
}
FieldTypeRequiredDescription
serialNumberStringYesUnique serial number identifying the physical device.
terminalIdStringNoID assigned by the terminal manufacturer or provider.
modelStringNoModel name/number of the terminal.
linkedVirtualAccountNumberStringNoAccount number of an existing Virtual Account belonging to this merchant to link for settlement.

Response 201 Created​

Returns the details of the newly registered POS terminal.

{
"message": "POS Terminal registered successfully",
"terminal": {
"serialNumber": "SN123456789",
"merchantId": "uuid-merchant-456",
"terminalId": "TID98765",
"model": "PAX A920",
"status": "INACTIVE", // Starts as inactive
"linkedVirtualAccountNumber": "0123456789",
"createdAt": "2023-10-27T12:00:00.000Z",
"updatedAt": "2023-10-27T12:00:00.000Z"
// Excludes merchant object, includes linkedVirtualAccount object if relation loaded
}
}

Errors​

  • 400 Bad Request: Validation failed.
  • 401 Unauthorized: Invalid or missing JWT.
  • 404 Not Found: Merchant or linked Virtual Account not found.
  • 409 Conflict: Terminal with this serial number already exists.
  • 500 Internal Server Error