Pular para o conteúdo

Mensagens e replay

Toda chegada numa fonte vira uma Mensagem recebida, inclusive a que a verificação recusou. É o histórico que responde “o provedor mandou ou não mandou?”.

Janela do terminal
curl "https://api.notyfacil.com.br/v1/ingest/sources/src_01JB8Z2R4K7M1QX5VN3HT9WCDF/messages?limit=20" \
-H "Authorization: Bearer $NOTYFACIL_KEY"

Da mais recente para a mais antiga, paginado por cursor. O filtro verification restringe pelo resultado da verificação.

No filtro Na resposta O que quer dizer
verified Verified A assinatura do provedor conferiu.
failed Failed A assinatura não conferiu. O provedor recebeu 401, e o corpo não foi guardado.
not_configured NotConfigured A fonte não tem verificação (none).
skipped Skipped Mensagem gerada por uma fonte agendada, que não tem assinatura para conferir.

Uma sequência de Failed depois de uma troca no provedor quase sempre é segredo desatualizado na fonte.

Cada mensagem traz dois números sobre o repasse, e eles respondem perguntas diferentes:

  • fanout é quantas Entregas foram criadas na chegada. Não muda nunca. Zero quer dizer que a fonte estava pausada, a quota tinha acabado ou não havia destino habilitado.
  • deliveries é onde as Entregas pararam, somando as criadas depois por replay: total, delivered, inFlight, failed e cancelled.
Janela do terminal
curl https://api.notyfacil.com.br/v1/ingest/messages/in_01JB8Z0M5V3H7Q2KX9WRC4D6TN \
-H "Authorization: Bearer $NOTYFACIL_KEY"

Traz o método, o Content-Type, os headers e o corpo como o provedor mandou. Os headers de credencial (Authorization, Cookie, Proxy-Authorization e asaas-access-token) são removidos antes de gravar. Em mensagem Failed, body vem nulo.

Para ver as Entregas da mensagem e as tentativas de cada uma:

Janela do terminal
curl https://api.notyfacil.com.br/v1/ingest/messages/in_01JB8Z0M5V3H7Q2KX9WRC4D6TN/deliveries \
-H "Authorization: Bearer $NOTYFACIL_KEY"
curl https://api.notyfacil.com.br/v1/deliveries/dlv_01JB8Z8N2X6Q4H1TVR9KM3WCDF/attempts \
-H "Authorization: Bearer $NOTYFACIL_KEY"

As tentativas, o retry de uma Entrega e o ciclo de vida são os mesmos do envio.

Janela do terminal
curl -X POST https://api.notyfacil.com.br/v1/ingest/messages/in_01JB8Z0M5V3H7Q2KX9WRC4D6TN/replay \
-H "Authorization: Bearer $NOTYFACIL_KEY"
{ "id": "in_01JB8Z0M5V3H7Q2KX9WRC4D6TN", "deliveries": 2 }

Cria Entregas novas, com o mesmo corpo, para os destinos habilitados agora. É o que se usa depois de uma pausa da fonte, de um destino fora do ar, ou quando um destino novo precisa das mensagens antigas.

O replay sai com o mesmo Webhook-Id, então um receptor que deduplica ignora o que já processou.

Mensagem Failed não pode ser repassada: o corpo dela não foi guardado, e a resposta é 422.

Se o provedor manda de novo um evento que já chegou e identifica o evento, a fonte reconhece a repetição: responde com a mensagem da primeira vez e não cria entregas novas. Veja idempotência.

Referência: listar as mensagens de uma fonte