Pular para o conteúdo
couryo

Guia do desenvolvedorComeçando

Modo de teste

Chaves ck_test_ capturam os e-mails sem entregar e simulam entrega, devolução, reclamação e adiamento pelo endereço do destinatário, com eventos e webhooks de verdade.

Ver em Markdown

Com uma chave ck_test_, o Couryo faz tudo o que faria de verdade (valida o pedido, aplica idempotência, gera os eventos e chama seus webhooks), menos entregar. Nenhum e-mail sai para a internet.

Como usar#

  1. Crie uma chave de teste em Chaves (modo test).
  2. Use a chave no lugar da ck_live_, sem mudar mais nada no código.
  3. A resposta traz status: "captured":
Resposta 202
{ "id": "msg_t3st0k9a1b2c3d4e", "status": "captured" }

O status do e-mail continua captured para sempre; o que aconteceu com cada destinatário aparece nos eventos.

Endereços simulados#

A parte antes do @ do destinatário decide o que o teste simula, em qualquer domínio:

Destinatário O que acontece Eventos
bounced@... ou bounce@... devolução permanente sent e bounced com 550 5.1.1 (usuário desconhecido)
complained@... ou complaint@... entregue e depois marcado como spam sent, delivered e complained
deferred@... adiado e depois entregue sent, deferred com 421 4.7.0 e delivered
qualquer outro entregue sent e delivered com 250 2.0.0

Os eventos chegam logo após o envio, com horários (at) que imitam o ritmo real: a reclamação 5 segundos depois da entrega e a entrega do adiado 1 minuto depois do adiamento.

cURL
curl https://api.couryo.com/v1/emails \
  -H "Authorization: Bearer $COURYO_TEST_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Loja <pedidos@exemplo.com.br>",
    "to": ["bounced@exemplo.com.br", "ana@exemplo.com.br"],
    "subject": "Teste de devolução",
    "text": "Olá"
  }'

Os eventos simulados passam pelo mesmo caminho dos reais: aparecem na linha do tempo (GET /v1/emails/{id}), em GET /v1/events e nos seus webhooks, com resposta SMTP marcada como simulada e a explicação em linguagem simples. É o jeito de testar o tratamento de devolução e reclamação sem estragar a reputação de ninguém.

O que muda em relação à chave de produção#

  • Não exige domínio verificado no from e não tem a restrição do nível 0 (sandbox).
  • Não conta nos limites diário e mensal do nível nem na cota do plano. O limite de requisições por segundo vale igual.
  • Não mexe na supressão nem nas taxas de devolução e reclamação da conta: um bounced@ simulado não entra na sua lista de supressão.
  • A checagem de conteúdo (links encurtados e afins) só roda em produção. Para conferir um e-mail antes, use POST /v1/emails/check.

No painel#

O e-mail aparece em E-mails com o status captured e a linha do tempo simulada, e as chamadas de webhook ficam no histórico de entregas, para conferir sua integração. Ver o conteúdo renderizado e compartilhar um link de revisão com o time: em breve.

Bom para#

  • Testes automatizados e CI: nenhum e-mail escapa para clientes reais.
  • Ambiente de homologação com dados copiados da produção.
  • Testar o tratamento de webhooks de devolução, reclamação e adiamento.
  • Usar o MCP com o seu agente sem risco.