Un código de estado HTTP en el rango de 400 a 499 o 500 a 599 que proviene de tu servidor indica que el sistema recibió la solicitud, pero no se pudo procesar. Intenta lo siguiente:
En el Dashboard, observa la respuesta del servidor para obtener información adicional: es posible que la respuesta no contenga información adicional según cómo esté configurado el servidor y cómo esté diseñado el código para responder a errores.
Busca errores o avisos en los registros de servidor: estos errores deberían indicar la fuente de la respuesta de error, que puede ser tu webhook que gestiona código o un problema de configuración de tu servidor.
Confirma que el evento que recibiste tenga una versión de API que tu código pueda gestionar: las versiones de API definen la estructura del objeto que se encuentra en un evento; pueden producirse errores inesperados debido a que la versión de API no coincide entre un evento entrante y tu código de procesamiento.
A continuación, se detallan algunos errores comunes que generan códigos de estado 4xx y 5xx, y sus soluciones.
Este error o uno similar (el texto puede variar según la biblioteca) significa que falló el proceso de verificación de firma del webhook. En general, este error se debe a uno de los siguientes motivos:
Se utilizó una clave secreta de firma del webhook (whsec_
) incorrecta durante el proceso de verificación de la firma.
Asegúrate de usar la clave secreta de firma del webhook que coincida con el punto de conexión del webhook que entrega el evento; puedes encontrarla en el Dashboard luego de seleccionar un punto de conexión del webhook específico.
Si usas la CLI de Stripe, generará y mostrará una clave secreta de firma del webhook para que uses cuando ejecutes el comando stripe listen
.
El cuerpo de la solicitud se modificó antes de que se ejecutara la verificación de firma del webhook.
Para que el proceso de verificación de firma del webhook funcione, es necesario el cuerpo sin modificar y sin formato de la solicitud entrante de Stripe.
Si el código está analizando, asignando un formato o modificando el cuerpo de la solicitud antes de la verificación de la firma, podrás ver un error similar a este.
Ajusta o elimina el código, incluido el software de intercambio, que pueda estar modificando el cuerpo sin formato de la solicitud entrante, y vuelve a intentar la operación.
Nota: El software de intercambio Node.js suele modificar el cuerpo de solicitudes entrantes; intenta extraer el cuerpo sin formato antes de ejecutar cualquier otro software de intercambio.
Este error o uno similar (el texto puede variar según la biblioteca) significa que el evento recibido es demasiado antiguo para que la verificación sea exitosa. Las firmas de webhook cuentan con un componente de tiempo y se deben verificar poco después de ser recibidas.
Intenta lo siguiente:
Confirma que el tiempo y la fecha de tu servidor estén configurados correctamente.
Asegúrate de verificar las firmas de webhook entrantes apenas se reciben los eventos, sin demoras.
Por lo general, estos errores se generan debido a que el código arroja una excepción, un error de análisis o algún tipo de cambio disruptivo.
La mayoría del tiempo esta clase de error se debe a algún tipo de cambio en el servidor o la infraestructura que se encarga de aceptar y procesar los webhooks. Un código nuevo o modificado, una actualización de servidor o un cambio en la configuración pueden presentar un nuevo modo de fallo o una incompatibilidad.
Si se presenta este error, comprueba los registros de error de tu servidor para obtener más información. La ubicación de los registros de error depende del servidor según la configuración, el sistema operativo, el servidor web, los lenguajes de programación que se utilizan y otros factores; de modo que no podemos brindar instrucciones específicas. Se recomienda que busques en los registros y en la configuración del registro de error alguna de las siguientes herramientas que utilices 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 nube (Amazon Web Services, Google Cloud Computing, Cloudflare, etc.)