Cómo funcionan los Webhooks
Cuando emites un documento (factura o nota de crédito), el proceso es asíncrono y pasa por múltiples estados. Puedes configurar una URL (endpoint) en tu sistema para que Factio envíe un POST request cada vez que un documento alcanza un estado terminal (comoAUTHORIZED o REJECTED).
Eventos soportados (Próximamente)
document.authorized: El comprobante fue autorizado por el SRI.document.rejected: El SRI rechazó el comprobante por un error en el payload o datos fiscales.document.manual_review: Ocurrió un error inesperado de infraestructura y requiere intervención.
Configurar un Webhook
Nota: La funcionalidad de webhooks está actualmente en desarrollo y estará disponible pronto.
- Ir a Configuración > Webhooks en tu panel de Factio.
- Ingresar la URL de destino de tu endpoint (Ej.
https://api.miempresa.com/factio-webhooks). - Seleccionar los eventos a los que deseas suscribirte.
- Recibirás un Webhook Secret para verificar que los eventos realmente provienen de Factio.
Verificación de firmas (Seguridad)
Factio firmará cada evento de webhook usando HMAC-SHA256 con tuWebhook Secret. El hash resultante será enviado en el header Factio-Signature.
Para validar un webhook:
- Extrae el body en crudo del request.
- Extrae el timestamp del header
Factio-Timestamp. - Concatena el timestamp y el body:
timestamp.body. - Calcula el hash HMAC-SHA256 usando tu
Webhook Secret. - Compara el resultado con el valor en el header
Factio-Signature.