Um código de status HTTP no intervalo 400 a 499 ou 500 a 599 vem do seu servidor e indica que o sistema recebeu a solicitação, mas não conseguiu processá-la. Tente fazer o seguinte:
No Dashboard, veja a resposta do seu servidor para obter mais informações: pode não haver informações adicionais na resposta; isso depende de como o servidor está configurado e como o código foi criado para responder a erros.
Confira os logs do servidor para procurar erros ou avisos: esses erros devem levar você à origem da resposta do erro, que pode ser o código de gerenciamento do webhook ou um problema de configuração no servidor.
Confirme se o evento recebeu uma versão da API que seu código consegue gerenciar: as versões da API definem a estrutura do objeto contido em um evento; uma incompatibilidade da versão da API entre um evento de entrada e o código de processamento pode gerar erros inesperados.
Alguns erros comuns que causam códigos de status 4xx e 5xx e suas soluções estão detalhados abaixo.
Esse ou um erro similar (a redação pode variar de uma biblioteca para outra) significa que o processo de verificação da assinatura do webhook falhou. Esse erro costuma ser causado por um dos motivos a seguir:
O segredo errado da assinatura do webhook (whsec_
) foi usado durante o processo de verificação da assinatura.
Use o segredo da assinatura do webhook correspondente ao endpoint do webhook que entrega o evento, que você pode encontrar no Dashboard depois de selecionar um endpoint do webhook específico.
Se você estiver usando a CLI da Stripe, ela gerará e mostrará um segredo da assinatura do webhook para usar quando executar o comando stripe listen
.
O corpo da solicitação foi modificado antes da verificação da assinatura do webhook
O processo de verificação da assinatura do webhook exige o corpo bruto e não modificado da solicitação de entrada da Stripe para funcionar.
Se o código estiver analisando, formatando ou modificando o corpo da solicitação antes da verificação da assinatura, você verá um erro como esse.
Ajuste ou remova o código, incluindo o middleware, que pode estar modificando o corpo bruto da solicitação de entrada, e tente novamente.
Observação: geralmente, o middleware node.js modifica o corpo das solicitações de entrada; tente extrair o corpo bruto antes das outras execuções do middleware.
Esse ou um erro similar (a redação pode variar de uma biblioteca para outra) significa que o evento recebido é muito antigo para uma verificação bem-sucedida. As assinaturas do webhook têm um componente temporal e devem ser verificadas logo após serem recebidas.
Tente fazer o seguinte:
Confirme se a data e a hora do servidor estão corretas.
Verifique as assinaturas do webhook de entrada assim que os eventos forem recebidos.
Esses erros costumam ser causados por um código que retorna uma exceção, um erro de análise ou algum tipo de mudança significativa.
Na maioria das vezes, essa classe de erro é causada por algum tipo de mudança no servidor ou infraestrutura responsável por aceitar e processar webhooks. Códigos novos ou alterados, atualizações no servidor ou alterações de configuração podem gerar um novo modo de falha ou incompatibilidade.
Quando você encontrar esse erro, verifique os logs de erro do servidor para obter mais informações. A localização dos logs de erro varia de acordo com o servidor e com base na configuração, sistema operacional, servidor da web, linguagens de programação e outros fatores. Portanto, não podemos fornecer instruções específicas. Recomendamos verificar os logs e a configuração do log de erros dos seguintes componentes usados para receber webhooks:
Linguagem de programação (Ruby, Python, PHP, Java, Node.js, Go, .NET etc.).
Servidor da web (Nginx, Apache, Microsoft IIS etc.).
Provedor de nuvem ou servidor (Amazon Web Services, Google Cloud Computing, Cloudflare etc.).