Payload de eventos
Referencia de la estructura JSON del payload enviado por los webhooks de Facturalo API. Campos evento, documento, sunat, firma.
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.
El objeto principal (documento o guia) solo identifica el comprobante: id, serie, correlativo y tipo. Para el detalle completo usa GET /documentos/{id} o GET /guias/{id}.
Estructura basejson
{
"id": "uuid-unico-del-evento",
"evento": "documento.sunat.respuesta",
"timestamp": "2026-06-14T10:30:00-05:00",
"entorno": "demo",
"documento | guia": {
"...": "objeto principal — depende del evento"
},
"sunat | anulacion | correo | error": {
"...": "datos adicionales — 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.