TAŇBA-OOH Developers

Approval revoked

Webhook approval.revoked

Sent to the applicant, the agency and the operator when an approval is revoked. The revocation list is refreshed at the same time.

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.revoked"
occurred_atstring (date-time)yesWhen the platform recorded the revocation."2026-10-09T10:30:00+05:00"
dataobjectyesThe revoked approval.
data.numberstringyesNumber of the revoked approval."TNB-2026-000123"
data.submission_idstring (uuid)yesIdentifier of the submission the approval belongs to."6f1c0d3e-52a4-4b57-9a7e-0c3a1b9d2e44"
data.groundstringyesCode of the legal ground of the revocation."content_changed"
data.reasonstringyesFree-text reason given by the authority."The content differs from the approved file."

Example

{
  "event": "approval.revoked",
  "occurred_at": "2026-10-09T10:30:00+05:00",
  "data": {
    "number": "TNB-2026-000123",
    "submission_id": "6f1c0d3e-52a4-4b57-9a7e-0c3a1b9d2e44",
    "ground": "content_changed",
    "reason": "The content differs from the approved file."
  }
}

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.