# Modo teste

Uma chave de **Teste** (`dt_test_...`) responde como a de produção, com dados de exemplo. Nada é gravado, nenhuma mensagem sai e nada é cobrado.

- Cada chamada é conferida com as mesmas regras da produção: um campo errado dá o mesmo `422 validation_failed`.
- A resposta tem o mesmo formato da real, com `"test": true` e o cabeçalho `DoneTalk-Test: true`.
- `GET /me` responde de verdade, para conferir a chave.
- Escopos, limite de chamadas e `Idempotency-Key` valem como em produção.

## Simular um erro

Mande o cabeçalho `DoneTalk-Simulate` com o código do erro para receber exatamente a resposta que a produção daria:

```bash
curl -X POST https://api.donetalk.com/v1/c/demo/campaigns \
  -H "Authorization: Bearer $DONETALK_KEY" \
  -H "DoneTalk-Simulate: template_not_approved" \
  -H "Content-Type: application/json" \
  -d '{"name": "Teste"}'
```

Códigos aceitos: `unauthorized`, `api_key_invalid`, `api_key_expired`, `api_key_address_not_allowed`, `insufficient_scope`, `not_available_to_api_keys`, `not_available_to_test_keys`, `permission_denied`, `integration_template_only`, `not_found`, `campaign_not_found`, `contact_not_found`, `validation_failed`, `campaign_not_editable`, `template_not_approved`, `campaign_audience_empty`, `contact_exists`, `window_closed`, `idempotency_key_reused`, `idempotency_in_progress`, `rate_limited`, `internal_error`.

## Telefones mágicos

Em qualquer campo de telefone, estes números provocam um comportamento conhecido:

| Telefone | O que acontece |
|---|---|
| `+550000000400` | `validation_failed` (422) |
| `+550000000404` | `contact_not_found` (404) |
| `+550000000409` | `contact_exists` (409) |
| `+550000000429` | `rate_limited` (429) |
| `+550000000500` | `internal_error` (500) |
| `+550000000131` | message.failed / campaign.recipient.failed: `131026` |
| `+550000000470` | message.failed / campaign.recipient.failed: `131047` |

## Avisos de teste

Um envio na chave de teste (mensagem, campanha) manda aos avisos da empresa a sequência que a produção mandaria, alguns segundos depois: enviada, entregue, lida e, numa campanha, respondida e concluída. Com um telefone mágico de falha, chega a falha. O envelope traz `"test": true`.

## Empresa de demonstração

Para testar sem conta, use a empresa `demo` com a chave pública:

```bash
export DONETALK_KEY=dt_test_demo_zRZ6twAhj4u9dZT0hEBrNFzr
curl https://api.donetalk.com/v1/c/demo/me -H "Authorization: Bearer $DONETALK_KEY"
```

Ela só simula: não há como agir de verdade com ela.
