> ## 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.

# API Key scopes

> Permissions to manage templates and run multichannel sends.

<Tip>
  **`templates:*`** manages models; **`whatsapp:send`**, **`sms:send`**, etc. **send**. Having `templates:create` is **not** enough to dispatch.
</Tip>

Each **scope** unlocks a type of Templates operation. Use only what your integration needs.

## How to send the key

**Recommended**

```http theme={null}
Authorization: Bearer sk_live_your_key_here
```

**Alternative**

```http theme={null}
x-api-key: sk_live_your_key_here
```

<Info>
  The API Key belongs to **one** workspace. You cannot reach another workspace with the same key.
</Info>

## Two scope families

| Family               | Purpose                                                                                                                            |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| **`templates:*`**    | Create, list, update, and delete templates                                                                                         |
| **Per-channel send** | Send with **Send by template** (`whatsapp:send`, `sms:send`, `email:send`, `telegram:send`, `rcs:send`, `push:send`, `voice:call`) |

<Warning>
  Having `templates:create` is **not** enough to send. On send, each requested channel needs that channel's send scope.
</Warning>

## Common combinations

<CardGroup cols={2}>
  <Card title="Send only" icon="paper-plane">
    `whatsapp:send`, `sms:send`, `email:send`, `rcs:send`, etc. (depending on channels used)
  </Card>

  <Card title="Manage models only" icon="folder">
    `templates:read`, `templates:create`, `templates:update`, `templates:delete`
  </Card>

  <Card title="Full app" icon="layer-group">
    All `templates:*` plus send scopes for the template's channels
  </Card>

  <Card title="Read only" icon="magnifying-glass">
    `templates:read`
  </Card>
</CardGroup>

<Warning>
  An empty scopes list on creation means **ADMIN** access. In production, always restrict.
</Warning>

## Management scopes (`templates:*`)

<AccordionGroup>
  <Accordion title="templates:read">
    List templates and fetch detail by ID.
  </Accordion>

  <Accordion title="templates:create">
    Create a new template in the workspace.
  </Accordion>

  <Accordion title="templates:update">
    Edit an existing template (channels, copy, variable defaults, translations).
  </Accordion>

  <Accordion title="templates:delete">
    Delete a template.
  </Accordion>
</AccordionGroup>

## Send scopes (per channel)

On **Send by template**, validate the scope for **each** channel in `channels`:

| Channel in `channels` | Required scope                      |
| --------------------- | ----------------------------------- |
| `whatsapp`            | `whatsapp:send`                     |
| `sms`                 | `sms:send`                          |
| `email`               | `email:send`                        |
| `telegram`            | `telegram:send`                     |
| `rcs`                 | `rcs:send`                          |
| `push`                | `push:send`                         |
| `voice`               | **`voice:call`** (not `voice:send`) |

**Delivery** status (sent, delivered, failed) comes from **channel webhooks**, not a send-template webhook.

**Meta approval** status (approved, rejected, paused, category) comes from **`template.*`** events, see [Webhook events](/en/template-api/como-funciona/eventos-do-webhooks).

## Common errors

| HTTP    | Situation                                                                                                     |
| ------- | ------------------------------------------------------------------------------------------------------------- |
| **403** | Missing scope (`Missing scope: templates:read`, `Missing scope: rcs:send`, `Missing scope: voice:call`, etc.) |
| **403** | Insufficient credits for the whole request (`INSUFFICIENT_CREDITS`)                                           |
| **402** | Key spend limit or blocked workspace                                                                          |

Details in the **API reference** on the Templates tab.

## Next steps

* [Quick Start](/en/template-api/como-funciona/quick-start)
* [Introduction](/en/template-api/como-funciona/introducao)
* [Official Meta templates](/en/template-api/como-funciona/templates-oficiais-meta)
* [Webhook events](/en/template-api/como-funciona/eventos-do-webhooks)
