2xx.
Encabezados de entrega
Cada intento de entrega lleva estos encabezados:
Los encabezados describen el intento de entrega; el cuerpo describe el evento. En un reenvío,
Sphere-Timestamp y Sphere-Signature se generan de nuevo — de modo que la misma ruta de código de verificación maneja originales y reenvíos — mientras que el cuerpo permanece idéntico byte por byte al original.
Cómo se calcula la firma
La firma es un digest HMAC-SHA256, codificado en hexadecimal:secret— el secreto de firma del endpoint (whsec_...), devuelto una vez cuando creaste el endpoint.timestamp— el valor del encabezadoSphere-Timestamp.rawBody— los bytes crudos del cuerpo de la solicitud HTTP, exactamente como se transmitieron.
Sphere-Signature usando una comparación de tiempo constante.
Protégete contra ataques de repetición
Para evitar que entregas capturadas sean reenviadas por un tercero, rechaza las entregas cuyoSphere-Timestamp tenga más de 5 minutos de antigüedad. Los reenvíos manuales reciben una marca de tiempo y una firma nuevas, por lo que los reenvíos legítimos siempre pasan esta verificación.
Implementaciones de referencia
Cada fragmento de código toma los bytes crudos del cuerpo, los dos encabezados y el secreto de tu endpoint, y devuelve si la entrega es auténtica.Cuando la verificación falla
Responde con un código de estado no2xx (por ejemplo 401) y no proceses el payload. La entrega se registra como failed del lado de SpherePay, dándote un registro de auditoría en la API de Eventos.
Si registraste la misma URL receptora bajo múltiples aplicaciones de SpherePay, el endpoint de cada aplicación tiene su propio secreto. Usa el
applicationId del payload para seleccionar el secreto correcto — consulta Payloads de eventos. Si no puedes analizar el cuerpo antes de verificar, prueba cada uno de tus secretos conocidos.