Penalização de filas
Quando o endpoint de um Webhook apresenta falhas consecutivas, o Asaas aumenta progressivamente o intervalo entre as tentativas de entrega.
Esse mecanismo se aplica aos Webhooks com envio Sequencial e Não Sequencial.
Quando a penalização é aplicada
Uma tentativa é considerada falha quando o Asaas não consegue concluir a entrega com HTTP 200.
Isso inclui, por exemplo:
201,204ou outros códigos diferentes de200;400 Bad Request;403 Forbidden;404 Not Found;408 Read Timed Out;500 Internal Server Error;- falhas de conexão;
- timeouts.
Cada falha consecutiva aumenta o intervalo até a próxima tentativa.
Intervalos de retentativa
| Tentativa | Intervalo | Notificação |
|---|---|---|
| 1 | 0 | |
| 2 | 30 segundos | |
| 3 | 1 min | |
| 4 | 3,5 min | |
| 5 | 5 min | 1º E-mail de alerta |
| 6 | 15 min | |
| 7 | 25 min | |
| 8 | 1 hora | |
| 9 | 1 hora | |
| 10 | 1 hora | 2º E-mail de alerta |
| 11 | 1 hora | |
| 12 | 1 hora | |
| 13 | 2 horas | |
| 14 | 2 horas | |
| 15 | 3 horas | 3º E-mail (Fila pausada) |
Após 15 falhas consecutivas, a fila do Webhook é interrompida.
%%{init: {"flowchart": {"nodeSpacing": 28,"rankSpacing": 32,"diagramPadding": 8,"padding": 10}}}%%
flowchart TD
A["Enviar evento"] --> B["Receber falha"]
B --> C["Aplicar nova tentativa"]
C --> D["Aumentar intervalo"]
D --> E["Atingir 15 falhas consecutivas"]
E --> F["Interromper a fila"]
classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px,font-size:17px
classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px,font-size:17px
classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px,font-size:17px
class A inicio
class B,C,D,E validacao
class F sucesso
linkStyle default stroke:#94A3B8,stroke-width:2px
Quando a fila é interrompida
Após a interrupção:
- novos eventos continuam sendo gerados;
- os eventos ficam armazenados na fila;
- nenhum novo envio é realizado até a reativação;
- os eventos permanecem armazenados por até 14 dias;
- eventos com mais de 14 dias são excluídos permanentemente.
ImportanteA interrupção ocorre por configuração de webhook. Caso existam outros webhooks cadastrados, eles continuarão funcionando normalmente.
Corrija a causa da falha antes de reativar a fila.
Consulte como reativar uma fila interrompida.
Impacto no envio Sequencial
No modo Sequencial, os eventos respeitam a ordem em que ocorreram. Se um evento estiver penalizado, os eventos seguintes daquela fila aguardam sua entrega.
Exemplo:
%%{init: {"flowchart": {"nodeSpacing": 28,"rankSpacing": 32,"diagramPadding": 8,"padding": 10}}}%%
flowchart TD
A["PAYMENT_CREATED"] --> B["PAYMENT_CONFIRMED"]
B --> C["PAYMENT_RECEIVED"]
C --> D["PAYMENT_REFUNDED"]
classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px,font-size:17px
classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px,font-size:17px
classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px,font-size:17px
class A inicio
class B,C validacao
class D sucesso
linkStyle default stroke:#94A3B8,stroke-width:2px
Se PAYMENT_CONFIRMED estiver penalizado, PAYMENT_RECEIVED e PAYMENT_REFUNDED permanecerão aguardando.
ImportanteCaso a aplicação dependa da ordem cronológica dos eventos, recomenda-se utilizar o envio Sequencial.
Para comparar os dois comportamentos, consulte Tipos de envio.
Remova a penalização após corrigir o endpoint
Se a configuração ainda estiver penalizada, mas a causa da falha já tiver sido corrigida, você pode remover o backoff sem aguardar o próximo intervalo automático.
A remoção da penalização não deve ser confundida com a reativação de uma fila já interrompida. Quando a fila atingir 15 falhas e for interrompida, utilize o fluxo de reativação.
Pela aplicação web
Acesse Integrações → Webhooks.
- localize o Webhook com eventos penalizados;
- clique em Remover penalização;
- confirme a ação.
O Asaas poderá tentar novamente o envio sem aguardar o intervalo restante da penalização.
Pela API
Utilize:
POST /v3/webhooks/{id}/removeBackoffUma resposta HTTP 204 confirma a remoção da penalização.
Consulte o endpoint Remover penalização de webhook.
AtençãoEste endpoint possui um rate limit mais restrito para desencorajar automações que removam a penalização repetidamente.
A funcionalidade foi projetada para ser utilizada somente após a correção do problema que causou as falhas.
Recomendamos
- Monitorar os Logs de Webhooks regularmente.
- Processar os eventos de forma assíncrona.
- Garantir que o endpoint responda rapidamente.
- Implementar idempotência para suportar reenvios.
- Investigar erros antes de remover a penalização.
- Não automatizar a remoção contínua da penalização.
- Configurar alertas para monitorar indisponibilidades.
Próximos passos
Updated 16 days ago
