TAŇBA-OOH Разработчикам

Signed command addresses a structure served by a CMS

Вебхук device_command.issued

Технический текст справочника написан на английском.

Sent to the organisation of every structure that a CMS installation serves when a signed command addresses it, so that the CMS can fetch the command from the relay at once instead of waiting for its next poll.

Заголовки, которые мы отправляем

ИмяГдеТипОбязательныйОписаниеПример
X-Tanba-Deliveryзаголовокstring (uuid)даIdentifier of the delivery. It is the same on every retry; use it to ignore duplicates.9b2e4c60-1f7a-4d83-a5c6-3e8d0b7f2a11
X-Tanba-EventзаголовокstringдаThe event name.approval.issued
X-Tanba-Signatureзаголовокstringдаt=<unix seconds>,v1=<hex HMAC-SHA256 of t + "." + the raw body, keyed with the webhook secret>. See the guide on webhook signatures.t=1790000000,v1=5f2d9c1a0b7e4d63a8c15e90f4b2d7a3c6e81f0594ab2d3c7e6f1a08b9d4c5e2

Тело, которое мы отправляем

application/json

ИмяТипОбязательныйОписаниеПример
eventconstдаThe event name, the same as in the X-Tanba-Event header."device_command.issued"
occurred_atstring (date-time)даWhen the event was stored."2026-10-14T09:00:04+05:00"
dataobjectдаThe command.
data.command_idstring (uuid)даIdentifier of the command."01a1377e-c8e3-7c41-8ae9-3a8dc9413fbd"
data.typestringдаWhat the command does: cutoff, restore, restart, content_switch or emergency_broadcast."cutoff"
data.scopestringдаHow the command was addressed."structure"
data.scenariostring | nullдаScenario name for a content switch or an emergency broadcast; otherwise null.null
data.not_afterstring (date-time)даThe command must not be executed after this moment."2026-10-14T10:00:00+05:00"
data.structuresarray of stringдаCodes of the organisation's structures the command applies to.
data.installationsarray of string (uuid)даIdentifiers of the CMS installations that serve those structures.

Пример

{
  "event": "device_command.issued",
  "occurred_at": "2026-10-14T09:00:04+05:00",
  "data": {
    "command_id": "01a1377e-c8e3-7c41-8ae9-3a8dc9413fbd",
    "type": "cutoff",
    "scope": "structure",
    "scenario": null,
    "not_after": "2026-10-14T10:00:00+05:00",
    "structures": [
      "ALM-0012"
    ],
    "installations": [
      "5d0c8e7a-21b4-4c3f-9a6e-0b1d2c3e4f50"
    ]
  }
}

Ответы

200 The delivery is accepted. Any 2xx status counts; the body is ignored.

Без тела.

410 Any other status, or no answer within 10 seconds, counts as a failure and the delivery is retried.

Без тела.