facturaBoVerificarWebhook
Descripción
Sección titulada «Descripción»Comprueba la firma HMAC-SHA256 de una entrega de webhook de factura.bo (cabeceras Webhook-Id, Webhook-Timestamp y Webhook-Signature, estándar Standard Webhooks) y la antigüedad del mensaje (rechaza más de 5 min). Colócalo justo después del disparador Webhook de Floogos: toma solas las cabeceras y el cuerpo crudo. Si la firma no es válida, el nodo da error. Usa el id del evento para deduplicar.
Forma parte del Hub Fiscal de Bolivia como alternativa a la conexión directa con el SIAT: factura.bo (SimplifyIT S.R.L.) es un proveedor que construye y firma el XML y lo envía al SIN. Nodo: «Verificar firma de webhook».
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | No | Credencial facturabo |
| webhook_secret | password | No | Secreto del webhook (opcional) — Vacío = el «secreto de webhooks» de la credencial |
| headers | json | No | Cabeceras (JSON, opcional) — Vacío = las de la petición recibida |
| raw_body | textarea | No | Cuerpo crudo (opcional) — Vacío = el cuerpo exacto de la petición recibida. La firma se calcula sobre los bytes originales |
| tolerance_seconds | number | No | Tolerancia de antigüedad (s) — 0 = no comprobar la fecha |
| fail_on_invalid | boolean | No | Dar error si la firma no es válida |
| output_key | text | No | Clave de salida — El resultado se añade a data[clave] sin perder el resto de datos |
Credenciales
Sección titulada «Credenciales»Este módulo requiere una credencial de tipo facturabo con los campos:
- API key: se obtiene en app.factura.bo → Más → API Key
- Entorno: pruebas (sandbox, SIAT piloto) o producción; la clave no lo delata, lo eliges tú
- NIT y código de sistema del SIAT: para sincronizar CUIS/CUFD y catálogos
- Sucursal y punto de venta por defecto: 0 = casa matriz / punto principal
- Secreto de webhooks (
whsec_…): para verificar la firma de los eventos
{ "success": true, "valid": true, "reason": null, "event_id": "msg_9", "event_type": "factura.emitida", "timestamp_age_seconds": 2, "event": { "evento": "factura.emitida", "datos": { "cuf": "ABC" } }, "warnings": []}La salida se guarda en la clave configurada (output_key, por defecto facturabo) y se conserva el resto de data. En error: error.message, error.type y, si aplica, status y siat_code.
Ejemplo de Uso
Sección titulada «Ejemplo de Uso»{ "credentials_id": "cred-facturabo", "fail_on_invalid": true}- Verifica la firma estándar (Standard Webhooks):
Webhook-Id,Webhook-Timestamp(se rechaza si tiene más de 5 min) yWebhook-Signature(v1,+ HMAC-SHA256 en base64 deid.timestamp.cuerpo, con la parte del secreto traswhsec_decodificada de base64). No hace ninguna llamada. - Lee las cabeceras y el cuerpo crudo del disparador. Si el cuerpo crudo no está disponible se reconstruye desde el JSON y se avisa: puede fallar por diferencias de formato.
- Usa
event_id(Webhook-Id) para deduplicar: una entrega puede llegar más de una vez.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- facturaBoWebhooks - Gestionar webhooks