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
| Name | In | Type | Required | Description | Example |
|---|---|---|---|---|---|
X-Tanba-Delivery | header | string (uuid) | yes | Identifier of the delivery. It is the same on every retry; use it to ignore duplicates. | 9b2e4c60-1f7a-4d83-a5c6-3e8d0b7f2a11 |
X-Tanba-Event | header | string | yes | The event name. | approval.issued |
X-Tanba-Signature | header | string | yes | 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 |
Body we send
application/json
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
event | const | yes | The event name, the same as in the X-Tanba-Event header. | "approval.issued" |
occurred_at | string (date-time) | yes | When the platform recorded the approval. | "2026-10-06T14:05:40+05:00" |
data | object | yes | The approval. | |
data.number | string | yes | Number of the approval; check it on the public verification host. | "TNB-2026-000123" |
data.submission_id | string (uuid) | yes | Identifier of the submission the approval belongs to. | "6f1c0d3e-52a4-4b57-9a7e-0c3a1b9d2e44" |
data.submission_number | string | yes | Number of that submission. | "SUB-2026-000087" |
data.signed_at | string (date-time) | yes | When 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.