/api/v1/businesses/:businessId/print/tills
auth: jwt (administrator)List every registered till for the business — name, machine id, `IsDefault`, `IsOnline`, `LastSeenAt`, and optional `LocationId`.
handlers: PrintController.listTills
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. `requireBusinessAccess` enforces this matches the JWT. |
APIResponseDataList<TillDTO>/api/v1/businesses/:businessId/print/tills/:tillId/name
auth: jwt (administrator)Rename a till. Fires `TILL_RENAMED` audit (resource type `TILL`).
handlers: PrintController.renameTill
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
tillId pathuuid | yes | — | Target till UUID. |
tillName bodystring | yes | — | New display name (1–500 chars). |
APIResponseDataObject<TillDTO>APIError/api/v1/businesses/:businessId/print/tills/:tillId/test
auth: jwt (administrator)Dispatch a test PrintJob (`type='TEST'`) to the till. The agent picks it up on its next poll or via the SSE wake stream. Fires `TEST_PRINT_SENT` audit.
handlers: PrintController.testPrint
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
tillId pathuuid | yes | — | Target till UUID. |
APIResponseDataObject<{ printJobId: number }>APIError/api/v1/businesses/:businessId/print/tills/setup-token
auth: jwt (administrator)Generate a one-time setup token used by the print agent's first-run wizard to claim a permanent TillToken. Optionally binds the resulting till to a specific Location (TAXCORE-246) — single-location merchants omit and the claim resolves to the business default. Fires `TILL_SETUP_TOKEN_GENERATED` audit.
handlers: PrintController.generateSetupToken
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
locationId bodyuuid | no | — | Optional Location to bind the till to. Validated against the business — invalid → 422 LOCATION_NOT_FOUND. |
APIResponseDataObject<{ setupToken: string }>APIError/api/v1/businesses/:businessId/print/default-till
auth: jwt (administrator)Set the default till for the business. Future auto-print jobs that don't carry an explicit till routing key target this till. Fires `TILL_DEFAULT_SET` audit.
handlers: PrintController.setDefaultTill
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
tillId bodyuuid | yes | — | Till UUID to mark default. |
APIResponseDataObject<TillDTO>APIError/api/v1/businesses/:businessId/print/jobs
auth: jwt (administrator)List print jobs for the business, optionally filtered by status.
handlers: PrintController.listPrintJobs
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
status query'PENDING' | 'PRINTED' | 'FAILED' | 'STALE' | no | — | Filter by `Status`. |
APIResponseDataList<PrintJobDTO>/api/v1/businesses/:businessId/print/jobs/:id/retry
auth: jwt (administrator)Reset a `FAILED` or `STALE` print job back to `PENDING` so the agent will pick it up again. Fires `PRINT_JOB_RETRIED` audit.
handlers: PrintController.retryPrintJob
| name | required | default | description |
|---|---|---|---|
businessId pathuuid | yes | — | Target business UUID. |
id pathinteger | yes | — | PrintJobId (BIGINT IDENTITY, coerced from string digits). |
APIResponseDataObject<PrintJobDTO>APIError