Pular para o conteúdo
couryo

Guia do desenvolvedorEventos

Eventos e linha do tempo

Cada etapa de um e-mail no Couryo, com horário, servidor de destino, código SMTP, resposta original e explicação em linguagem simples.

Ver em Markdown

Todo e-mail tem uma linha do tempo. Cada evento traz o horário, o servidor de destino, o código SMTP, a resposta original do servidor e uma explicação em linguagem simples, no idioma da sua conta.

Ver a linha do tempo#

cURL
curl https://api.couryo.com/v1/emails/msg_9w2k7c1x0d4e5f6g \
  -H "Authorization: Bearer $COURYO_API_KEY"
Resposta
{
  "id": "msg_9w2k7c1x0d4e5f6g",
  "from": "Loja Exemplo <pedidos@exemplo.com.br>",
  "to": ["ana@exemplo.com.br"],
  "subject": "Seu pedido 1042 foi confirmado",
  "stream": "transactional",
  "status": "delivered",
  "tags": { "tipo": "pedido" },
  "metadata": { "pedido_id": "1042" },
  "created_at": "2026-10-07T18:30:00Z",
  "events": [
    { "id": "evt_1a", "type": "accepted", "at": "2026-10-07T18:30:00Z" },
    { "id": "evt_1b", "type": "queued", "at": "2026-10-07T18:30:00Z" },
    { "id": "evt_1c", "type": "sent", "at": "2026-10-07T18:30:01Z", "recipient": "ana@exemplo.com.br" },
    {
      "id": "evt_1d",
      "type": "delivered",
      "at": "2026-10-07T18:30:02Z",
      "recipient": "ana@exemplo.com.br",
      "mx": "gmail-smtp-in.l.google.com",
      "provider": "gmail",
      "smtp_code": "250 2.0.0",
      "smtp_response": "250 2.0.0 OK 1791484202 a1b2c3d4e5f6 - gsmtp",
      "explanation": "O Gmail aceitou a mensagem."
    }
  ]
}

Tipos de evento#

Evento O que significa
accepted a API recebeu e validou o pedido
queued o e-mail está na fila (ou aguardando o scheduled_at)
sent saiu do Couryo para o servidor de destino
delivered o servidor de destino aceitou a mensagem
deferred o destino pediu para tentar mais tarde (código 4xx); o Couryo tenta de novo sozinho
bounced o destino recusou de vez (código 5xx)
complained o destinatário marcou como spam
opened o e-mail foi aberto (só no fluxo marketing; impreciso, porque alguns clientes de e-mail abrem tudo sozinhos)
clicked um link foi clicado (só no fluxo marketing)
suppressed não enviado porque o endereço está na lista de supressão
failed não foi enviado: o conteúdo foi barrado pela checagem de entrada (phishing, link em lista de bloqueio) ou o envio falhou; o motivo vem no evento

"Entregue" quer dizer que o servidor de destino aceitou. Se foi para a caixa de entrada ou para o spam, nenhum provedor informa por mensagem. Por isso o painel mostra a entrega separada por provedor; o acompanhamento de reputação pelo agente de entregabilidade vem em breve.

Status do e-mail#

O campo status resume a linha do tempo: queued, sent, delivered, deferred, bounced, complained, failed, suppressed ou captured (chave de teste, não entregue).

Provedores#

O campo provider agrupa o destino: gmail, microsoft, yahoo, uol, bol, terra, locaweb ou other. O painel mostra a entrega separada por provedor.

Devoluções: permanente, temporária e bloqueio#

  • Permanente (5.1.x, usuário ou domínio inexistente): o endereço vai na hora para a lista de supressão.
  • Temporária (4.x.x): o Couryo tenta de novo sozinho. Se o mesmo endereço voltar em 3 dias diferentes (numa janela de 14 dias), ele é suprimido.
  • Bloqueio por política (5.7.x, mensagens com "blocked" ou "spam"): o problema não é do destinatário. O endereço não é suprimido e a devolução não conta na sua taxa de devolução.

Listar eventos#

GET /v1/events (escopo read) lista os eventos de todos os e-mails do projeto, do mais novo para o mais antigo, cada um com o email_id. Útil para quem perdeu webhooks ou prefere buscar de tempos em tempos. Filtros: type (por exemplo, bounced) e email_id.

cURL
curl "https://api.couryo.com/v1/events?type=bounced&limit=50" \
  -H "Authorization: Bearer $COURYO_API_KEY"
Resposta
{ "data": [{ "id": "evt_7d3k9s0a2m5n8b1c", "email_id": "msg_9w2k7c1x0d4e5f6g", "type": "bounced", "at": "2026-10-07T18:31:04Z", "recipient": "maria@empresa.com.br", "smtp_code": "550 5.1.1" }], "has_more": true }

Para a próxima página, passe starting_after com o id do último item.

Por quanto tempo#

A linha do tempo fica disponível pelo prazo de logs do seu plano: 7 dias no Grátis, 30 dias no Pro e 90 dias no Escala.