HW cloud API v1

Раздел API

Вебхуки

Вебхуки аккаунта: тревоги касс, итоги печати и чеков — на ваш сервер, с подписью HMAC-SHA256, повторами и журналом доставки.

GET/api/v1/webhooksВебхуки аккаунта
POST/api/v1/webhooksДобавить вебхук
POST/api/v1/webhooks/{id}/testПроверить вебхук
GET/api/v1/webhooks/{id}/deliveriesЖурнал доставки вебхука
DELETE/api/v1/webhooks/{id}Удалить вебхук

Вебхуки аккаунта#

GET/api/v1/webhooks

Адреса, на которые облако шлёт события касс аккаунта, и как прошла последняя доставка

Ответ 200 application/json

Массив · WebhookView
  • idinteger int64
  • urlstring
  • eventsмассив string
  • secretstring
  • createdAtstring date-time
  • lastAtstring date-time
  • lastStatusinteger int32
  • lastErrorstring
  • failuresinteger int32

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

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

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

Добавить вебхук#

POST/api/v1/webhooks

События: alert.opened, alert.closed (тревоги касс), device.online, device.offline (касса подключилась к облаку; отключилась и не вернулась за 10 с), operation.failed (неудачная операция на кассе), print_job.done, print_job.failed, print_job.cancelled, print_job.expired, print_job.unknown (итоги печати через облако), receipt.done, receipt.failed, receipt.unknown, receipt.expired (итоги чеков); маска print_job.* и * — все. Письмо — POST JSON {event, at, …} с подписью X-HW-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<тело>")>, номер письма — X-HW-Delivery; ответ 2xx — доставлено, иначе до 10 попыток за ~8 ч. Секрет — в ответе, один раз. Адрес в локальной сети — 400; не больше 5 вебхуков на аккаунт

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

Поля · WebhookRequest
  • urlstringобязательное
    от 0
    до 500
  • eventsмассив string
JSON
{
  "url": "string",
  "events": [
    "string"
  ]
}

Ответ 200 application/json

Поля · WebhookView
  • idinteger int64
  • urlstring
  • eventsмассив string
  • secretstring
  • createdAtstring date-time
  • lastAtstring date-time
  • lastStatusinteger int32
  • lastErrorstring
  • failuresinteger int32

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

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

curl
curl -X POST 'https://cloud.hw-connector.ru/api/v1/webhooks' \
  -H 'X-Api-Key: hwk_…' \
  -H 'Content-Type: application/json' \
  --data '{"url":"string","events":["string"]}'

Проверить вебхук#

POST/api/v1/webhooks/{id}/test

Отправить письмо ping {event: "ping"} — проверить адрес и подпись; итог — в журнале доставки

Параметры

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

Ответ 200 application/json

Поля · DeliveryView
  • idinteger int64
  • eventstring
  • attemptsinteger int32
  • statestring
  • lastStatusinteger int32
  • lastErrorstring
  • createdAtstring date-time
  • nextAtstring date-time
  • payloadobject

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

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

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

Журнал доставки вебхука#

GET/api/v1/webhooks/{id}/deliveries

Последние письма, свежие сверху: событие, попытки, state (DELIVERED, RETRYING, FAILED), код ответа, ошибка и тело

Параметры

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

Ответ 200 application/json

Массив · DeliveryView
  • idinteger int64
  • eventstring
  • attemptsinteger int32
  • statestring
  • lastStatusinteger int32
  • lastErrorstring
  • createdAtstring date-time
  • nextAtstring date-time
  • payloadobject

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

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

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

Удалить вебхук#

DELETE/api/v1/webhooks/{id}

Письма, которые ещё не доставлены, больше не отправляются

Параметры

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

Ответ 200

Без тела.

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

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

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