HW cloud API v1

Раздел 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Принтеры рабочего места

Последние задания печати#

GET/api/v1/print-jobs

Свежие сверху; deviceId — только это рабочее место, status — только в этом состоянии, idempotencyKey — найти задание по своему ключу

Параметры

ИмяГдеТипОписание
idempotencyKeyquerystring
deviceIdqueryinteger int64
statusquerystring
limitqueryinteger int32

Ответ 200 application/json

Массив · PrintJobView
  • idinteger int64
  • idempotencyKeystring
  • statusstring
  • deviceIdinteger int64
  • titlestring
  • printerstring
  • sourcestring
  • sizeBytesinteger int64
  • attemptsinteger int32
  • agentJobIdstring
  • createdAtstring date-time
  • expireAtstring date-time
  • doneAtstring date-time
  • errorError
    2 поля · Error
    • codestring
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'https://cloud.hw-connector.ru/api/v1/print-jobs' \
  -H 'X-Api-Key: hwk_…'

Напечатать на принтере рабочего места#

POST/api/v1/print-jobs
Операция

Ровно один источник: pdf, images, raw, text, html, htmlUrl, urls или label. Новое задание — 202, тот же ключ — 200 с тем же заданием, тот же ключ с другим документом — 409. Рабочее место не на связи — задание ждёт (до expireAfterSec или cloud.print.ttl-hours), задания одного места уходят агенту по порядку. Prefer: wait=N — подождать итог до 60 с; итог — вебхуком на callbackUrl

Параметры

ИмяГдеТипОписание
Idempotency-Keyheaderstring
Preferheaderstring

Тело запроса application/json обязательное

Поля · PrintJobRequest
  • idempotencyKeystring
    от 0
    до 100
  • deviceIdinteger int64обязательное
  • titlestring
    от 0
    до 200
  • printerstring
    от 0
    до 300
  • deviceinteger int32
  • rolestring
    от 0
    до 40
  • copiesinteger int32
    от 1
    до 20
  • pdfstring
  • imagesмассив string
  • rawstring
  • textobject
  • htmlstring
  • htmlUrlstring
    от 0
    до 2000
  • urlsмассив string
  • labelLabel
    2 поля · Label
    • namestringобязательное
      от 0
      до 100
    • dataсловарь → string
  • optionsobject
  • expireAfterSecinteger int32
    от 10
  • callbackUrlstring
    шаблон: https?://.+
    от 0
    до 500
JSON
{
  "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 int64
  • idempotencyKeystring
  • statusstring
  • deviceIdinteger int64
  • titlestring
  • printerstring
  • sourcestring
  • sizeBytesinteger int64
  • attemptsinteger int32
  • agentJobIdstring
  • createdAtstring date-time
  • expireAtstring date-time
  • doneAtstring date-time
  • errorError
    2 поля · Error
    • codestring
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
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"}'

Отменить задание печати#

POST/api/v1/print-jobs/{id}/cancel

Ждущее рабочее место — отменяется сразу; уже переданное агенту — только пока агент его не начал (принтер занят). Начатое или законченное — 409 PRINT_JOB_STARTED с текущим состоянием

Параметры

ИмяГдеТипОписание
idобязательныйpathinteger int64

Ответ 200 application/json

Поля · PrintJobView
  • idinteger int64
  • idempotencyKeystring
  • statusstring
  • deviceIdinteger int64
  • titlestring
  • printerstring
  • sourcestring
  • sizeBytesinteger int64
  • attemptsinteger int32
  • agentJobIdstring
  • createdAtstring date-time
  • expireAtstring date-time
  • doneAtstring date-time
  • errorError
    2 поля · Error
    • codestring
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl -X POST 'https://cloud.hw-connector.ru/api/v1/print-jobs/42/cancel' \
  -H 'X-Api-Key: hwk_…'

Задание печати#

GET/api/v1/print-jobs/{id}

status: QUEUED, SENDING, DONE, FAILED, CANCELLED, UNKNOWN, EXPIRED; error — почему не напечатано или чего ждёт

Параметры

ИмяГдеТипОписание
idобязательныйpathinteger int64

Ответ 200 application/json

Поля · PrintJobView
  • idinteger int64
  • idempotencyKeystring
  • statusstring
  • deviceIdinteger int64
  • titlestring
  • printerstring
  • sourcestring
  • sizeBytesinteger int64
  • attemptsinteger int32
  • agentJobIdstring
  • createdAtstring date-time
  • expireAtstring date-time
  • doneAtstring date-time
  • errorError
    2 поля · Error
    • codestring
    • messagestring

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'https://cloud.hw-connector.ru/api/v1/print-jobs/42' \
  -H 'X-Api-Key: hwk_…'

Принтеры рабочего места#

GET/api/v1/devices/{id}/printers

Живой запрос к агенту: принтеры системы (с назначениями и состоянием) и принтеры без драйвера. Рабочее место не на связи — 503 NOT_CONNECTED

Параметры

ИмяГдеТипОписание
idобязательныйpathinteger int64

номер кассы из GET /api/v1/devices

Ответ 200 application/json

Массив · Printer
  • namestring
  • kindstring
  • deviceinteger int32
  • isDefaultboolean
  • rolesмассив string
  • statestring
  • reasonsмассив string

Ошибки — problem+json с полем code, см. коды ошибок.

Пример запроса

curl
curl 'https://cloud.hw-connector.ru/api/v1/devices/42/printers' \
  -H 'X-Api-Key: hwk_…'