> ## Documentation Index
> Fetch the complete documentation index at: https://docs.notifique.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Events

> Get notified when an official template is submitted to Meta, approved, rejected, or changes category.

<Tip>
  **`template.*`** tracks the **Meta catalog** (approval, rejection, category). **`message.*`** tracks **message delivery**, different concerns.
</Tip>

## In brief

* **`template.*`** events = lifecycle of **official** templates synced with Meta.
* **`instanceId`** is **empty**, templates do not use a channel instance.
* Fires when you **publish to Meta**, when Meta **changes status** or **category**, or when Notifique **updates** the local mirror after sync.
* For **delivery**, use [WhatsApp webhooks](/en/whatsapp-api/como-funciona/eventos-do-webhooks) (`message.sent`, `message.delivered`, …).

General setup: [Webhooks](/en/guides/webhooks/index). Security: [Webhook security](/en/guides/webhooks/seguranca).

***

## How the POST looks

```json theme={null}
{
  "event": "template.status_changed",
  "workspaceId": "clxx123...",
  "instanceId": "",
  "timestamp": "2026-07-25T16:10:00.000Z",
  "data": {
    "templateId": "clxx...",
    "name": "welcome",
    "metaName": "welcome",
    "metaId": "1234567890",
    "metaWabaId": "9876543210",
    "language": "pt_BR",
    "source": "WHATSAPP_OFFICIAL",
    "status": "APPROVED",
    "previousStatus": "PENDING",
    "category": "MARKETING",
    "metaEvent": "APPROVED",
    "rejectionReason": null
  }
}
```

***

## Event reference

| Event                       | When it fires                        | What to do with it            |
| --------------------------- | ------------------------------------ | ----------------------------- |
| `template.submitted`        | Template submitted/published to Meta | Log submission for approval   |
| `template.status_changed`   | Local status changes                 | Allow or block official sends |
| `template.category_changed` | Meta category changes                | Adjust billing/usage rules    |

Possible statuses in `status_changed`: `APPROVED`, `PENDING`, `REJECTED`, `IN_APPEAL`, `PAUSED`, `DISABLED`, `DELETED`, `PENDING_DELETION`, `LIMIT_EXCEEDED`, `ARCHIVED`.

***

## Payload per event

<AccordionGroup>
  <Accordion title="template.submitted">
    ```json theme={null}
    {
      "event": "template.submitted",
      "workspaceId": "clxx123...",
      "instanceId": "",
      "timestamp": "2026-07-25T15:00:00.000Z",
      "data": {
        "templateId": "clxx...",
        "name": "order_confirmation",
        "metaName": "order_confirmation",
        "metaId": "1234567890",
        "metaWabaId": "9876543210",
        "language": "pt_BR",
        "source": "WHATSAPP_OFFICIAL",
        "status": "PENDING",
        "category": "UTILITY"
      }
    }
    ```
  </Accordion>

  <Accordion title="template.status_changed">
    ```json theme={null}
    {
      "event": "template.status_changed",
      "workspaceId": "clxx123...",
      "instanceId": "",
      "timestamp": "2026-07-25T16:10:00.000Z",
      "data": {
        "templateId": "clxx...",
        "name": "welcome",
        "metaName": "welcome",
        "status": "APPROVED",
        "previousStatus": "PENDING",
        "category": "MARKETING",
        "rejectionReason": null
      }
    }
    ```

    **Rejected** example:

    ```json theme={null}
    {
      "event": "template.status_changed",
      "data": {
        "name": "summer_promo",
        "status": "REJECTED",
        "previousStatus": "PENDING",
        "rejectionReason": "INVALID_FORMAT"
      }
    }
    ```
  </Accordion>

  <Accordion title="template.category_changed">
    ```json theme={null}
    {
      "event": "template.category_changed",
      "workspaceId": "clxx123...",
      "instanceId": "",
      "timestamp": "2026-07-26T09:00:00.000Z",
      "data": {
        "templateId": "clxx...",
        "name": "order_reminder",
        "metaName": "order_reminder",
        "status": "APPROVED",
        "category": "UTILITY",
        "previousCategory": "MARKETING"
      }
    }
    ```
  </Accordion>
</AccordionGroup>

***

## Next steps

* [Official Meta templates](/en/template-api/como-funciona/templates-oficiais-meta): sync, link, publish
* [Quick Start](/en/template-api/como-funciona/quick-start): multi-channel dispatch
* [Introduction](/en/template-api/como-funciona/introducao): internal × official
* [WhatsApp events](/en/whatsapp-api/como-funciona/eventos-do-webhooks): `message.*` delivery
* [Webhooks (general guide)](/en/guides/webhooks/index)
