Payload de eventos

Tu endpoint recibe un POST con Content-Type: application/json y el header de firma:

X-Facturalo-Firma: {hmac-sha256}

Estructura base

Todos los eventos comparten estos campos raíz.

Estructura basejson
{
  "id": "uuid-unico-del-evento",
  "evento": "documento.sunat.respuesta",
  "timestamp": "2026-06-14T10:30:00-05:00",
  "entorno": "demo",
  "documento": {
    "...": "depende del evento"
  }
}

Verificar firma

PHPphp
$firma = hash_hmac('sha256', $rawBody, $webhookSecret);
if (!hash_equals($firma, $request->header('X-Facturalo-Firma'))) {
    abort(401, 'Firma inválida');
}
Selecciona un evento en el sidebar para ver su payload completo.