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

# Webhooks

> Recibe en tus sistemas los eventos que ocurren en Pruff.

Los webhooks permiten que Pruff notifique a tus sistemas, en tiempo real, cuando ocurre un evento relevante. Por cada evento, Pruff envía un `POST` con un body JSON al endpoint que configuraste para ese evento.

## Eventos disponibles

| Evento | `X-Webhook-Id` | Path | Cuándo se envía |
| - | - | - | - |
| `request.updateStatus` | `1` | `/request/updateStatus` | Cambia el estado de una solicitud de factoring, confirming o crédito. |
| `business.newEnrollment` | `2` | `/business/newEnrollment` | Se enrola una nueva empresa. |
| `approvals.submitted` | `3` | `/approvals/submitted` | Se registra una aprobación o un rechazo en un comité. |
| `invoice.newInvoices` | `4` | `/invoices/new` | Pruff detecta facturas nuevas. |
| `cession.newCessions` | `5` | `/cessions/new` | Pruff detecta cesiones nuevas. |
| `creditNote.newCreditNotes` | `6` | `/creditNotes/new` | Pruff detecta notas de crédito nuevas. |
| `invoice.updateInvoice` | `7` | `/invoices/update` | Una factura recibe acuse de recibo, reclamo o rechazo. |
| `request.allDocumentsCeded` | `8` | `/request/allDocumentsCeded` | Todos los documentos de una operación fueron cedidos. |
| `request.allDocumentsVerified` | `9` | `/request/allDocumentsVerified` | Todos los documentos de una operación de factoring fueron verificados. |

`X-Webhook-Id` identifica el tipo de evento, no la entrega: todas las entregas de un mismo evento llevan el mismo valor. Para detectar entregas duplicadas, usa el header de idempotencia (ver [Entregas y reintentos](/webhooks/entregas#idempotencia)).

## URL de destino

Pruff arma la URL de cada entrega concatenando la URL base de tu suscripción con el path del evento. Con la URL base `https://api.tuempresa.cl/pruff`, el evento `invoice.newInvoices` llega a:

```text theme={null}
POST https://api.tuempresa.cl/pruff/invoices/new
```

Si prefieres recibir todos los eventos en una sola URL, Pruff puede configurar tu suscripción para enviarlos a la URL base sin agregar el path. En ese caso, distingue el evento con el header `X-Webhook-Event`.

## Suscripción

La suscripción la configura el equipo de Pruff: solicítala a tu contacto en Pruff. Te suscribes evento por evento, y para cada uno se define:

* La URL base de tu endpoint.
* Si se agrega o no el path del evento a esa URL.
* El secret compartido con el que Pruff firma cada entrega. Cada suscripción tiene su propio secret.
* Opcional: un header de autenticación propio de tu sistema, con su nombre y su valor (por ejemplo, `Authorization: Bearer <token>`).
* Opcional: un header de idempotencia, con el nombre que elijas, cuyo valor es un UUID v4 o un string hexadecimal de 64 caracteres.

## Versiones

Todos los eventos están en su versión 1. Un cambio incompatible en el body de un evento se publica como una versión nueva, y cada suscripción queda fijada en la versión con la que se configuró. El body y los headers no indican la versión.

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Headers y firma" icon="shield-check" href="/webhooks/seguridad">
    Verifica que cada entrega viene de Pruff.
  </Card>

  <Card title="Entregas y reintentos" icon="rotate" href="/webhooks/entregas">
    Qué respuesta esperamos, cuándo reintentamos y cómo manejar duplicados.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.