Раздел API
Печать
Печать через облако: сервер магазина, склада или CRM печатает PDF, картинки, HTML, команды ESC/POS и ZPL или этикетку по шаблону на принтер рабочего места; очередь, пока место не на связи, по порядку; статус, отмена и вебхук; принтеры места с состоянием.
| GET | /api/v1/print-jobs | Последние задания печати |
| POST | /api/v1/print-jobs | Напечатать на принтере рабочего места |
| POST | /api/v1/print-jobs/{id}/cancel | Отменить задание печати |
| GET | /api/v1/print-jobs/{id} | Задание печати |
| GET | /api/v1/devices/{id}/printers | Принтеры рабочего места |
Последние задания печати#
/api/v1/print-jobsСвежие сверху; deviceId — только это рабочее место, status — только в этом состоянии, idempotencyKey — найти задание по своему ключу
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
idempotencyKey | query | string | |
deviceId | query | integer int64 | |
status | query | string | |
limit | query | integer int32 |
Ответ 200 application/json
Массив · PrintJobView
idinteger int64idempotencyKeystringstatusstringdeviceIdinteger int64titlestringprinterstringsourcestringsizeBytesinteger int64attemptsinteger int32agentJobIdstringcreatedAtstring date-timeexpireAtstring date-timedoneAtstring date-timeerrorError2 поля · Error
codestringmessagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'https://cloud.hw-connector.ru/api/v1/print-jobs' \
-H 'X-Api-Key: hwk_…'Ровно один источник: pdf, images, raw, text, html, htmlUrl, urls или label. Новое задание — 202, тот же ключ — 200 с тем же заданием, тот же ключ с другим документом — 409. Рабочее место не на связи — задание ждёт (до expireAfterSec или cloud.print.ttl-hours), задания одного места уходят агенту по порядку. Prefer: wait=N — подождать итог до 60 с; итог — вебхуком на callbackUrl
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
Idempotency-Key | header | string | |
Prefer | header | string |
Тело запроса application/json обязательное
Поля · PrintJobRequest
idempotencyKeystringот 0до 100deviceIdinteger int64обязательноеtitlestringот 0до 200printerstringот 0до 300deviceinteger int32rolestringот 0до 40copiesinteger int32от 1до 20pdfstringimagesмассив stringrawstringtextobjecthtmlstringhtmlUrlstringот 0до 2000urlsмассив stringlabelLabel2 поля · Label
namestringобязательноеот 0до 100dataсловарь → string
optionsobjectexpireAfterSecinteger int32от 10callbackUrlstringшаблон:https?://.+от 0до 500
{
"idempotencyKey": "string",
"deviceId": 1,
"title": "string",
"printer": "string",
"device": 1,
"role": "string",
"copies": 1,
"pdf": "string",
"images": [
"string"
],
"raw": "string",
"text": {},
"html": "string",
"htmlUrl": "string",
"urls": [
"string"
],
"label": {
"name": "string",
"data": {
"key": "string"
}
},
"options": {},
"expireAfterSec": 10,
"callbackUrl": "string"
}Ответ 200 application/json
Поля · PrintJobView
idinteger int64idempotencyKeystringstatusstringdeviceIdinteger int64titlestringprinterstringsourcestringsizeBytesinteger int64attemptsinteger int32agentJobIdstringcreatedAtstring date-timeexpireAtstring date-timedoneAtstring date-timeerrorError2 поля · Error
codestringmessagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'https://cloud.hw-connector.ru/api/v1/print-jobs' \
-H 'X-Api-Key: hwk_…' \
-H 'Idempotency-Key: $(uuidgen)' \
-H 'Prefer: wait=30' \
-H 'Content-Type: application/json' \
--data '{"idempotencyKey":"string","deviceId":1,"title":"string","printer":"string","device":1,"role":"string","copies":1,"pdf":"string","images":["string"],"raw":"string","text":{},"html":"string","htmlUrl":"string","urls":["string"],"label":{"name":"string","data":{"key":"string"}},"options":{},"expireAfterSec":10,"callbackUrl":"string"}'Отменить задание печати#
/api/v1/print-jobs/{id}/cancelЖдущее рабочее место — отменяется сразу; уже переданное агенту — только пока агент его не начал (принтер занят). Начатое или законченное — 409 PRINT_JOB_STARTED с текущим состоянием
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
idобязательный | path | integer int64 |
Ответ 200 application/json
Поля · PrintJobView
idinteger int64idempotencyKeystringstatusstringdeviceIdinteger int64titlestringprinterstringsourcestringsizeBytesinteger int64attemptsinteger int32agentJobIdstringcreatedAtstring date-timeexpireAtstring date-timedoneAtstring date-timeerrorError2 поля · Error
codestringmessagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl -X POST 'https://cloud.hw-connector.ru/api/v1/print-jobs/42/cancel' \
-H 'X-Api-Key: hwk_…'Задание печати#
/api/v1/print-jobs/{id}status: QUEUED, SENDING, DONE, FAILED, CANCELLED, UNKNOWN, EXPIRED; error — почему не напечатано или чего ждёт
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
idобязательный | path | integer int64 |
Ответ 200 application/json
Поля · PrintJobView
idinteger int64idempotencyKeystringstatusstringdeviceIdinteger int64titlestringprinterstringsourcestringsizeBytesinteger int64attemptsinteger int32agentJobIdstringcreatedAtstring date-timeexpireAtstring date-timedoneAtstring date-timeerrorError2 поля · Error
codestringmessagestring
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'https://cloud.hw-connector.ru/api/v1/print-jobs/42' \
-H 'X-Api-Key: hwk_…'Принтеры рабочего места#
/api/v1/devices/{id}/printersЖивой запрос к агенту: принтеры системы (с назначениями и состоянием) и принтеры без драйвера. Рабочее место не на связи — 503 NOT_CONNECTED
Параметры
| Имя | Где | Тип | Описание |
|---|---|---|---|
idобязательный | path | integer int64 | номер кассы из |
Ответ 200 application/json
Массив · Printer
namestringkindstringdeviceinteger int32isDefaultbooleanrolesмассив stringstatestringreasonsмассив string
Ошибки — problem+json с полем code, см. коды ошибок.
Пример запроса
curl 'https://cloud.hw-connector.ru/api/v1/devices/42/printers' \
-H 'X-Api-Key: hwk_…'