# whatsapp.template.status_updated

Meta finished reviewing or re-reviewing a WhatsApp Business template on a connected WABA.

### Payload notes

Branch on `template.status` (`APPROVED`, `REJECTED`, `PENDING`, `PAUSED`, `DISABLED`, `IN_APPEAL`, `PENDING_DELETION`). `template.reason` is Meta's free-form reason or `"NONE"`.

### Platform notes

Forwarded from Meta's `message_template_status_update` field. Meta includes neither the previous status nor the template's category.




**Payload for `whatsapp.template.status_updated`:**

- **id** (required) `string`: Stable webhook event ID: the dedupe key, also sent as the X-Zernio-Event-Id header and identical on every retry and redelivery. It identifies the event only, never an account or other resource.
- **profiles**: `WebhookProfiles` - See schema definition
- **test** `boolean`: Always true when present: only a sample sent by POST /v1/webhooks/test with an event carries it. Real deliveries never do.
- **event** (required) `string`: No description - one of: whatsapp.template.status_updated
- **account** (required) `object`: 
  - **accountId** (required) `string`: No description
  - **profileId** (required) `string`: No description
  - **platform** (required) `string`: No description - one of: whatsapp
  - **username** (required) `string`: No description
  - **displayName** `string`: No description
- **template** (required) `object`: 
  - **templateId** (required) `string`: Meta's `message_template_id`, returned as a string.
  - **name** (required) `string`: Meta's `message_template_name`.
  - **language** (required) `string`: Meta's `message_template_language` (e.g. `en_US`).
  - **status** (required) `string`: New status. Forwarded verbatim from Meta's `event` field.
`PENDING_DELETION` is the 24h-grace state after a delete
request before the template is actually removed.
 - one of: APPROVED, REJECTED, PENDING, PAUSED, DISABLED, IN_APPEAL, PENDING_DELETION
  - **reason** (required) `string`: Meta's free-form reason for the transition. `"NONE"` on
approval; an explanation string on rejection.

- **timestamp** (required) `string` (date-time): UTC time at which Zernio generated this event (set once when the event payload is built, before delivery is queued). Retries and redeliveries keep the original value, so it reflects the event, not the delivery attempt.