Documentation Index
Fetch the complete documentation index at: https://docs.hg.cash/llms.txt
Use this file to discover all available pages before exploring further.
Qué se entrega
HG.Cash encola unPOST asíncrono hacia:
- La URL de webhook predeterminada de tu usuario (configurada en Configuración de HG.Cash junto al secreto de firma del webhook), o
- Un
webhookUrlque indiques por operación donde la API o el formulario lo permitan — por ejemplo al crear una transacción de libro vía API REST (POST /api/v1/transactions) o una solicitud de transacción desde transferencias cuando ese campo exista.
Content-Type: application/json y el cuerpo es un único objeto JSON plano (no anidado bajo { "transaction": ... }).
La forma del payload y ejemplos están en la referencia API (pestaña Referencia API, sección Webhooks):
- Solicitudes de transacción (pipeline cash-out;
typees siempre"request"): Actualización de estado de solicitud de transacción — esquemaTransactionRequestStatusWebhookcon ejemplo completo. - Movimientos de libro / cuenta (dinero entrante o saliente de tus cuentas HG.Cash;
typees el nombre del tipo de movimiento comoinbounduoutbound): Movimiento de cuenta — esquemaAccountMovementWebhookcon ejemplo completo.
type: "request")
Los callbacks se envían cuando HG.Cash actualiza el estado de una solicitud o cuando una solicitud se cancela. Es posible que no recibas webhook apenas se crea una solicitud si solo está PENDING; integra de forma defensiva ante orden y duplicados.
Transacciones de libro
Cuando una fila de transacción del libro se ingesta desde webhooks/API y aplica tu URL resuelta, HG.Cash puede notificar justo después de persistir; type es el nombre del tipo de negocio, no "request".
Secreto de firma (X-HG-Webhook-Signature)
Si tu perfil HG.Cash tiene un secreto de firma de webhook configurado, HG.Cash firma el cuerpo JSON crudo exacto:
- Algoritmo:
HMAC-SHA256sobre los bytes UTF-8 del string del cuerpo que HG.Cash enviará (equivalente aJSON.stringifydel objeto payload). - Encabezado:
X-HG-Webhook-Signature. - Formato:
sha256=<hex>donde<hex>es hexadecimal en minúsculas (64 caracteres).
- Lee el cuerpo crudo tal como llega — no vuelvas a serializar JSON parseado salvo que repliques exactamente orden/espaciado que usó HG.Cash.
- Calcula
hex = HMAC_SHA256(secret, rawBody_utf8)y compara de forma segura con el valor del encabezado tras quitar el prefijo opcionalsha256=(sin distinguir mayúsculas/minúsculas). - Rechaza discrepancias (
401/403en tu lado está bien).
X-HG-Webhook-Signature se omite por completo.
Reintentos
Las entregas fallidas (HTTP distinto de2xx, errores de red o timeouts) se reintentan automáticamente con esta política:
| Parámetro | Valor |
|---|---|
| Intentos máximos | 4 (incluye el primer intento) |
| Factor de backoff | 5 |
| Espera mínima entre intentos | 500 ms |
| Espera máxima entre intentos | 30 s |
| Jitter | Desactivado (sin aleatoriedad) |
Expectativas operativas
- Responde con
2xxrápido para que la entrega cuente como exitosa; si no, puedes recibirPOSTrepetidos hasta agotar intentos o hasta que uno tenga éxito. - Prefiere manejadores idempotentes claveados por
idde HG.Cash y transiciones destatusque te importen — pueden existir reenvíos o emisiones duplicadas.

