Firmado con HMAC-SHA256 · event_id determinista · Reintento en 6 etapas

Eventos Unificados de Webhook para Pagos Cripto y Arquitectura de Entrega.

Automatiza el cumplimiento de pedidos, ampliaciones de licencias SaaS, recargas de saldo de jugadores y emisión de licencias de software ES256 con notificaciones firmadas e idempotentes HMAC-SHA256 webhooks en las 12 blockchains compatibles.

Seleccionar tipo de evento (9 eventos canónicos)

Encabezados HTTP y Carga Útil JSON del Evento


        

Verificación HMAC-SHA256 en Tiempo Constante (6 Lenguajes)


    
Fiabilidad

Calendario de Reintentos Exponenciales en 6 Etapas

Las respuestas distintas de 2xx activan reintentos automáticos en 30s → 2m → 10m → 1h → 6h → 24h, además de reenvío manual en 1 clic desde los Registros de Webhooks del Comercio.

Integridad Contable

Idempotencia por event_id Único

Almacena event_id como clave UNIQUE en tu base de datos antes de acreditar saldos o entregar bienes digitales para que los reintentos nunca dupliquen el cumplimiento.

Seguridad Saliente

TLS Fijado y Protegido contra SSRF

XPayr aplica HTTPS estricto, resolución de IP pública fijada por DNS, CURLOPT_FOLLOWLOCATION=falsey encabezados de marca de tiempo con ventana anti-replay de 5 minutos.

Preguntas Frecuentes sobre Webhooks y Callbacks

¿Cómo verifico que un webhook proviene auténticamente de XPayr?

Calcula HMAC-SHA256 sobre el cuerpo exacto sin procesar de la solicitud HTTP usando tu secreto de endpoint whsec_ y compara el resumen hexadecimal con X-XPayr-Signature mediante una función de tiempo constante como crypto.timingSafeEqual (Node.js), hmac.compare_digest (Python) o hash_equals (PHP).

¿Cuál es la diferencia entre payment.completed y payment.underpaid_accepted?

payment.completed se dispara cuando la transferencia on-chain iguala o supera el importe exacto de la factura. payment.underpaid_accepted se dispara cuando un retiro por QR directo desde exchange llega dentro del umbral de tolerancia del 1% (máx. $0.50) de XPayr, exponiendo tanto requested_amount como received_amount para mantener tu contabilidad exacta al centavo.

¿Cómo gestiona XPayr las caídas del endpoint o las respuestas 5xx?

Cualquier respuesta fuera de HTTP 200–299 (o más lenta de 10 segundos) entra en la cola de reintentos con retroceso exponencial de XPayr (30s, 2m, 10m, 1h, 6h, 24h) conservando exactamente el mismo event_id para que tu tabla de idempotencia evite abonos duplicados.

¿Qué reglas de seguridad de URL se aplican a los endpoints de webhook del comercio?

Los destinos de webhook en producción deben usar HTTPS sobre DNS/IP públicos enrutables con certificados TLS válidos. XPayr bloquea HTTP en texto plano, rangos privados/loopback RFC1918, IPs de metadatos en la nube y redirecciones HTTP para prevenir SSRF.