Skip to main content
Los webhooks te permiten recibir notificaciones en tiempo real sobre los cambios de estado de tus comprobantes electrónicos, en lugar de realizar “polling” constante a nuestra API.

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 (como AUTHORIZED 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.
Una vez habilitados, podrás:
  1. Ir a Configuración > Webhooks en tu panel de Factio.
  2. Ingresar la URL de destino de tu endpoint (Ej. https://api.miempresa.com/factio-webhooks).
  3. Seleccionar los eventos a los que deseas suscribirte.
  4. 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 tu Webhook Secret. El hash resultante será enviado en el header Factio-Signature. Para validar un webhook:
  1. Extrae el body en crudo del request.
  2. Extrae el timestamp del header Factio-Timestamp.
  3. Concatena el timestamp y el body: timestamp.body.
  4. Calcula el hash HMAC-SHA256 usando tu Webhook Secret.
  5. Compara el resultado con el valor en el header Factio-Signature.
Si coinciden, el evento es auténtico y seguro de procesar.