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

# Sandbox

> Entenda o ambiente de testes e aprenda a integrar com segurança, sem enviar mensagens de verdade.

<Tip>
  Sandbox é o **simulador de voo** da Notifique: você treina a integração inteira sem risco de mandar mensagem real ou gastar crédito.
</Tip>

## O que é o sandbox?

É o ambiente de **testes** da Notifique. A API é a mesma (`https://api.notifique.dev/v1/...`); o que muda é a chave: use `sk_test_...` em vez de `sk_live_...`.

Pense no simulador de voo: mesmo painel, mesmas manobras, só que ninguém decola de verdade.

## Para que serve?

Com sandbox você pode:

* **Integrar** sua aplicação sem mandar SMS, e-mail ou WhatsApp real
* **Testar** webhooks, templates e fluxos antes do go-live
* **Simular** status de entrega (entregue, lido, falha) na Caixa sandbox
* **Validar** payloads e erros sem debitar crédito

Nada do sandbox afeta dados ou envios de produção.

## Quando usar?

| Situação                             | Usar sandbox?          |
| ------------------------------------ | ---------------------- |
| Desenvolvendo ou testando integração | **Sim**                |
| Validando webhooks no seu servidor   | **Sim**                |
| Enviar mensagem para cliente real    | Não. Use `sk_live_...` |

## Como usar

### 1. Crie uma chave de teste

Abra **Developer → API Keys**, crie uma chave **Sandbox** e copie `sk_test_...` na hora. Precisa de ajuda? Veja [Chaves de API](/guides/api-key/index).

### 2. Chame a API normalmente

Mesma URL, mesmos endpoints. Só troque a chave no header:

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

Não precisa de header extra de ambiente. A chave define tudo.

### 3. Acompanhe na Caixa sandbox

Abra **Developer → Caixa sandbox**. Lá você:

* **Confere** o payload de cada envio
* **Libera** mensagens agendadas com **Liberar agora**
* **Simula** status: entregue, lido, clique, falha (conforme o canal)

### 4. Teste webhooks

Os eventos têm os **mesmos nomes** da produção. O payload inclui **`sandbox: true`** em `data` para você filtrar no mesmo endpoint. Mais em [Webhooks](/guides/webhooks/index).

### 5. Vá para produção

Quando estiver pronto, troque `sk_test_...` por `sk_live_...` nos mesmos caminhos. É trocar o simulador pelo voo real.

## O que funciona e o que não

| Funciona no sandbox                | Precisa de produção (`sk_live_`)                                     |
| ---------------------------------- | -------------------------------------------------------------------- |
| SMS, e-mail, push e RCS simulados  | Entrega real em telefone ou inbox                                    |
| WhatsApp e Telegram simulados      | QR real, conexão de número                                           |
| Webhooks com `sandbox: true`       | Provedores reais ponta a ponta                                       |
| Templates e payloads de teste      | Verificar domínio de e-mail (DNS)                                    |
| Agendar e liberar na Caixa sandbox | Templates oficiais Meta em produção (aprovação WABA + cobrança Meta) |

### WhatsApp oficial (Cloud API) no sandbox

Com `sk_test_`, os endpoints `POST /v1/whatsapp/messages` e `POST /v1/templates/send` **não** chamam a Graph nem o gate de pagamento Meta:

* Sem ping de token → **não** marca a instância real como `DISCONNECTED`
* Sem `META_PAYMENT_METHOD_REQUIRED` / `META_TEMPLATE_REQUIRED` reais
* O payload aparece na **Caixa sandbox** como nos outros canais

Use produção (`sk_live_`) para validar template aprovado, janela de 24h e cartão no WhatsApp Manager. Detalhes: [Templates oficiais Meta](/whatsapp-api/como-funciona/templates-oficiais-meta).

<Note>
  Operações que dependem de provedor real (QR WhatsApp, DNS de e-mail) podem retornar **403** ou **501** no sandbox.
</Note>

## Limites

| Regra             | Detalhe                                                                             |
| ----------------- | ----------------------------------------------------------------------------------- |
| **Limite diário** | Até **50 mensagens/dia (UTC)** por workspace. Acima → **429** `SANDBOX_DAILY_LIMIT` |
| **Retenção**      | Cada item na Caixa sandbox expira em **7 dias**                                     |
| **Agendamento**   | Fica em **SCHEDULED** até você clicar **Liberar agora**                             |
| **Cobrança**      | Sandbox **não debita** crédito nem saldo                                            |

## Sandbox x Produção

|          | Sandbox                    | Produção    |
| -------- | -------------------------- | ----------- |
| Chave    | `sk_test_`                 | `sk_live_`  |
| Entrega  | Simulada na Caixa sandbox  | Real        |
| Créditos | Não consome                | Consome     |
| Webhook  | `sandbox: true` no payload | Evento real |

***

## Próximos passos

* [Comece aqui](/guides/introducao/comece-aqui): envie sua primeira mensagem de teste
* [Chaves de API](/guides/api-key/index): criar e usar `sk_test_` e `sk_live_`
* [Webhooks](/guides/webhooks/index): receber eventos simulados no seu servidor
