POST api/hardware/login

Logs the workstation in and returns its configuration for this session: printers, till drawer, payment terminal, log level, and the XMPP settings it uses to receive print and payment requests. Each call issues a new XMPP password (creating the XMPP account on first login) and records the client version and login time. POST rather than GET for that reason: don't cache it or retry it automatically. Responses: 200 with the configuration. 401 if the Hardware ID or password is wrong. 503 if the server can't reach the XMPP server or its Jabber configuration is missing: try again later.

Request Information

URI Parameters

None.

Body Parameters

None.

Response Information

Resource Description

The workstation's configuration. Settings that aren't set come back as the server's defaults.

HardwareConfigDT
NameDescriptionTypeAdditional information
HardwareId

The Hardware ID that logged in.

string

None.

ServerVersion

The server's build, such as 1.2.3.4. A string because Newtonsoft can't deserialize System.Version without a converter.

string

None.

ClientDownloadUrl

Where to download the current Hardware Interface installer.

string

None.

Messaging

XMPP settings, for receiving print and payment requests.

MessagingConfigDT

None.

Printing

Printer settings. Settings that aren't set come back as the server's defaults.

PrintingConfigDT

None.

TillDrawer

Till drawer settings, or null if there's no till drawer.

TillDrawerConfigDT

None.

PaymentTerminal

Card terminal settings, or null if there's no card terminal.

PaymentTerminalConfigDT

None.

LogLevel

Detail for this connection's log: Verbose, Warnings, or null for Normal (HardwareSettingFields.LogLevel*).

string

None.

LogLevelUntilUtc

When Verbose ends, in UTC. The client goes back to Normal at this time by itself, in case it doesn't log in again first (the next login would return Normal anyway). Null: no time limit.

date

None.

Response Formats

application/json, text/json

Sample:
{
  "hardwareId": "sample string 1",
  "serverVersion": "sample string 2",
  "clientDownloadUrl": "sample string 3",
  "messaging": {
    "server": "sample string 1",
    "connectServer": "sample string 2",
    "instanceName": "sample string 3",
    "useStartTls": true,
    "username": "sample string 5",
    "password": "sample string 6"
  },
  "printing": {
    "pdfReaderExe": "sample string 1",
    "pdfArgumentFormat": "sample string 2",
    "pdfPrinterName": "sample string 3",
    "ticketPrinterName": "sample string 4",
    "receiptPrinterName": "sample string 5",
    "tempFilePath": "sample string 6",
    "autoCleanOldFiles": true
  },
  "tillDrawer": {
    "type": "sample string 1",
    "id": "sample string 2"
  },
  "paymentTerminal": {
    "terminalType": "sample string 1",
    "ipAddress": "sample string 2",
    "terminalId": "sample string 3",
    "disablePrinting": true,
    "authToken": "sample string 5"
  },
  "logLevel": "sample string 4",
  "logLevelUntilUtc": "2026-11-04T14:40:47.0806686+00:00"
}