Erro 403 (Forbidden)
O que fazer quando vejo este erro nos logs de Webhooks do Asaas?
O que significa
O erro 403 (Forbidden) nos logs de Webhooks indica que o servidor da sua aplicação recebeu a requisição do Asaas, mas recusou o acesso.
Na prática, isso significa que a comunicação chegou até seu endpoint, mas foi bloqueada por alguma regra de segurança, geralmente relacionada a firewall, WAF ou validações internas.
Quando esse erro acontece
Esse erro normalmente ocorre quando:
- o firewall bloqueia requisições externas
- há restrições por IP não configuradas corretamente
- regras de WAF (ex: Cloudflare) estão impedindo a requisição
- o servidor rejeita requisições com determinados headers
- há validações internas que recusam a origem da requisição
Como resolver
Siga os passos abaixo para garantir que seu endpoint aceite corretamente as requisições do Asaas.
1. Validar bloqueio por firewall
Certifique-se de que seu firewall permite requisições vindas do Asaas.
Recomendado:
- liberar tráfego proveniente dos IPs oficiais do Asaas
- evitar regras genéricas que bloqueiem requisições externas
Em ambiente sandbox, podem existir IPs adicionais.
2. Verificar regras de WAF (ex: Cloudflare)
Se você utiliza soluções como Cloudflare, verifique:
- regras de bloqueio por país
- regras de rate limit
- regras de bot protection
- regras customizadas (Firewall Rules)
Se necessário, crie uma regra permitindo requisições para seu endpoint de webhook.
3. Validar o header User-Agent
O Asaas envia requisições com o seguinte header:
- Produção
User-Agent: Asaas_Prod/3.0- Sandbox
User-Agent: Asaas_Sandbox/3.0Certifique-se de que:
- seu servidor não bloqueia esses headers
- não existem regras que rejeitam User-Agent desconhecidos
- ambos os ambientes estão contemplados nas regras de segurança
4. Validar autenticações ou validações internas
Se seu endpoint possui validações adicionais, verifique:
- bloqueio por token ou autenticação obrigatória
- validação de origem (IP allowlist)
- validações de assinatura ou segurança
Importante:
O webhook do Asaas não envia autenticação padrão (como Bearer Token), então qualquer validação desse tipo pode causar bloqueio.
Exemplo de cenário comum
Sua aplicação está protegida por Cloudflare com regras de segurança padrão.
Quando o Asaas envia o webhook:
- a requisição chega até o Cloudflare
- o WAF interpreta como tráfego suspeito
- a requisição é bloqueada
- o Asaas registra erro 403 no log
Solução:
- criar uma regra liberando o endpoint de webhook
- ou permitir os IPs do Asaas
- garantir que tanto
Asaas_Prod/3.0quantoAsaas_Sandbox/3.0não sejam bloqueados
Como validar se funcionou
Após realizar os ajustes:
- Reative a fila de webhooks no Asaas
- Gere um novo evento (ex: pagamento)
- Verifique os logs novamente
Se corrigido:
- o status deixará de ser 403
- os eventos serão processados corretamente pela sua aplicação
Erros comuns
- liberar apenas IPs de produção e esquecer o sandbox
- não considerar diferença de User-Agent entre ambientes
- bloquear requisições por ausência de autenticação
- não validar regras do provedor (Cloudflare, AWS WAF, etc)
- não analisar logs do servidor (apenas logs do Asaas)
Boas práticas
- manter uma allowlist atualizada dos IPs do Asaas
- considerar ambos ambientes (sandbox e produção)
- evitar validações rígidas de User-Agent
- monitorar logs do endpoint de webhook
- implementar fallback ou retry seguro no processamento
Próximo passo no fluxo
Após resolver o erro 403, é recomendado:
- validar o processamento correto dos eventos recebidos
- garantir que sua aplicação responde com status
200 OK - revisar o fluxo completo de webhook (recebimento → processamento → persistência)
Updated 3 days ago
