TAŇBA-OOH Developers

Approval issued

Webhook approval.issued

Sent to the applicant, the agency and the operator when an approval has been signed and its number is valid.

Headers we send

NameInTypeRequiredDescriptionExample
X-Tanba-Deliveryheaderstring (uuid)yesIdentifier of the delivery. It is the same on every retry; use it to ignore duplicates.9b2e4c60-1f7a-4d83-a5c6-3e8d0b7f2a11
X-Tanba-EventheaderstringyesThe event name.approval.issued
X-Tanba-Signatureheaderstringyest=<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

Body we send

application/json

NameTypeRequiredDescriptionExample
eventconstyesThe event name, the same as in the X-Tanba-Event header."approval.issued"
occurred_atstring (date-time)yesWhen the platform recorded the approval."2026-10-06T14:05:40+05:00"
dataobjectyesThe approval.
data.numberstringyesNumber of the approval; check it on the public verification host."TNB-2026-000123"
data.submission_idstring (uuid)yesIdentifier of the submission the approval belongs to."6f1c0d3e-52a4-4b57-9a7e-0c3a1b9d2e44"
data.submission_numberstringyesNumber of that submission."SUB-2026-000087"
data.signed_atstring (date-time)yesWhen the approval was signed."2026-10-06T14:05:39+05:00"

Example

{
  "event": "approval.issued",
  "occurred_at": "2026-10-06T14:05:40+05:00",
  "data": {
    "number": "TNB-2026-000123",
    "submission_id": "6f1c0d3e-52a4-4b57-9a7e-0c3a1b9d2e44",
    "submission_number": "SUB-2026-000087",
    "signed_at": "2026-10-06T14:05:39+05:00"
  }
}

Responses

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

No body.

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

No body.