> ## Documentation Index
> Fetch the complete documentation index at: https://docs.factioapp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Setup de webhooks para eventos de autorización SRI

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

<Info>
  **Nota:** La funcionalidad de webhooks está actualmente en desarrollo y estará disponible pronto.
</Info>

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.
