Los códigos de estado HTTP que están entre el 400 y el 599 proceden de tu servidor e indican que tu sistema ha recibido la respuesta, pero no ha podido procesarla. Prueba a seguir estos pasos:
En el Dashboard, consulta la respuesta del servidor para obtener más información: en algunos casos no la habrá; dependerá de la forma en que se haya configurado el servidor y cómo se haya diseñado tu código para responder a los errores.
Busca errores o advertencias en los registros del servidor: estos errores deberían indicarte el origen de la respuesta de error, que podría ser el código de gestión de tu webhook o un problema de configuración en tu servidor.
Confirma que el evento recibido tenga una versión de la API que tu código pueda gestionar: las versiones de la API definen la estructura del objeto que contiene un evento. Si las versiones de la API del evento entrante y la de tu código de procesamiento no coinciden, pueden producirse errores inesperados.
A continuación se detallan algunos errores comunes que pueden ocasionar códigos de estado 4xx y 5xx, así como sus soluciones.
Este o un error similar (las palabras pueden variar en función de la biblioteca) indica que ha fallado el proceso de verificación de la firma del webhook. Este error suele deberse a una de las siguientes causas:
Se ha usado un secreto de firma de webhook (whsec_
) incorrecto durante el proceso de verificación de la firma.
Debes usar el secreto de firma de webhook que coincida con el punto de conexión de webhook que va a entregar el evento, que puedes encontrar en el Dashboard tras haber seleccionado un punto de conexión de webhook concreto.
Si utilizas la CLI de Stripe, se generará y mostrará un secreto de firma de webhook para que lo utilices cuando ejecutes el comando stripe listen
.
El cuerpo de la respuesta se ha modificado antes de que se llevara a cabo la verificación de la firma del webhook.
El proceso de verificación de la firma del webhook necesita el cuerpo sin formato y sin modificar de la respuesta entrante de Stripe para poder funcionar.
Si tu código analiza, aplica formato o modifica de cualquier otra forma el cuerpo de la respuesta antes de que se verifique la firma, verás un error como este.
Ajusta o quita código (también middleware) que pueda estar modificando el cuerpo sin formato de la solicitud entrante y vuelve a intentarlo.
Nota: El middleware Node.js muchas veces modifica el cuerpo de las respuestas entrantes. Intenta extraer el cuerpo sin formato antes de que se ejecute ningún otro middleware.
Este o un error similar (las palabras pueden variar en función de la biblioteca) indica que el evento recibido es demasiado antiguo para verificarlo correctamente. Las firmas de webhook tienen un componente temporal y deben verificarse poco después de la recepción.
Prueba a seguir estos pasos:
Confirma que la fecha y hora de tu servidor están establecidas correctamente.
Verifica las firmas de webhook entrantes en cuanto se reciban los eventos, sin que haya ninguna demora.
Estos errores suele ocasionarlos un código que inicia una excepción, un error de análisis o algún tipo de cambio importante.
La mayor parte del tiempo, esta clase de error la produce algún tipo de cambio en el servidor o en la infraestructura responsable de aceptar y procesar los webhooks. Algún código nuevo o que haya cambiado, una actualización del servidor o un cambio en la configuración pueden ocasionar una nueva incompatibilidad o modo de error.
Si te aparece este error, comprueba los registros de errores del servidor para obtener más información. La ubicación de los registros de errores varía en función del servidor y depende de la configuración, el sistema operativo, el servidor web, los lenguajes de programación que se utilicen y otros factores, por lo que no podemos darte instrucciones específicas. Te recomendamos que consultes los registros y la configuración del registro de errores de cualquiera de los siguientes elementos que puedas estar usando para recibir webhooks:
tu lenguaje de programación (Ruby, Python, PHP, Java, Node.js, Go, .NET, etc.);
tu servidor web (Nginx, Apache, Microsoft IIS, etc.);
tu proveedor de servidor o de nube (Amazon Web Services, Google Cloud Computing, Cloudflare, etc.).