# Salientes

Los webhooks salientes permiten que Dinaup envíe notificaciones HTTP automáticas a tus sistemas cuando se producen eventos en tus datos. Esto elimina la necesidad de consultar periódicamente la API (polling) y te permite reaccionar en tiempo real.

***

## Cómo funcionan

```
[Dinaup]  →  evento detectado  →  validación de condiciones  →  HTTP POST  →  [Tu servidor]
```

1. Un usuario o un proceso crea o modifica un registro en Dinaup
2. El sistema comprueba si hay webhooks configurados para esa sección
3. Si se cumplen las condiciones definidas, Dinaup envía una petición HTTP POST a la URL configurada
4. Tu servidor recibe los datos y ejecuta la lógica que necesites

***

## Configuración

Los webhooks se configuran desde **Dinaup Flex** o desde el módulo de **Desarrollo** en Play Dinaup.

### 1. Seleccionar la sección

Elige la sección (tabla de datos) que quieres monitorizar. Por ejemplo: Ventas/Ingresos, Entidades (clientes), Productos, etc.

### 2. Definir disparadores

| Opción                         | Descripción                                         |
| ------------------------------ | --------------------------------------------------- |
| **Disparar en modificaciones** | Se activa cuando se actualiza un registro existente |
| **Disparar en nuevos**         | Se activa cuando se crea un nuevo registro          |
| **Campos disparadores**        | Solo se activa si cambian estos campos específicos  |

### 3. Requisitos de datos

Para aumentar la precisión, puedes definir **campos obligatorios** que deben estar completados antes de enviar la notificación:

| Modo                 | Descripción                                                                   |
| -------------------- | ----------------------------------------------------------------------------- |
| **Todos los campos** | La notificación solo se envía si todos los campos obligatorios están rellenos |
| **Al menos uno**     | Basta con que uno de los campos obligatorios tenga valor                      |

Esto evita que se envíen notificaciones con datos incompletos (por ejemplo, un borrador de factura sin cliente asignado).

### 4. Configurar la URL de destino

Introduce la URL de tu servidor que recibirá las notificaciones.

### 5. Seguridad

Configura un **Bearer Token** que Dinaup incluirá en la cabecera `Authorization` de cada petición. Tu servidor debe verificar este token para confirmar que la notificación proviene de Dinaup.

```
Authorization: Bearer <tu-token-de-seguridad>
```

***

## Payload de la notificación

Dinaup envía una petición HTTP POST con los datos del registro que disparó el evento en formato JSON. El payload incluye:

* ID del registro afectado
* ID de la sección
* Valores de los campos del registro
* Tipo de evento (creación o modificación)

***

## Buenas prácticas

| Práctica                                   | Motivo                                                                           |
| ------------------------------------------ | -------------------------------------------------------------------------------- |
| Responde con `2xx` en menos de 10 segundos | Dinaup espera confirmación; tiempos largos pueden causar reintentos              |
| Verifica el Bearer Token                   | Asegúrate de que la petición proviene de Dinaup                                  |
| Procesa de forma asíncrona                 | Si necesitas hacer operaciones largas, encola el procesamiento y responde rápido |
| Registra las notificaciones recibidas      | Facilita la depuración si algo no funciona como esperas                          |
| Usa campos disparadores específicos        | Evita recibir notificaciones por cambios irrelevantes                            |

***

## Casos de uso

| Caso de uso                                     | Configuración                                                                           |
| ----------------------------------------------- | --------------------------------------------------------------------------------------- |
| Notificar a Slack cuando se crea una venta      | Sección: Ventas/Ingresos, Disparar: Nuevos, URL: endpoint de n8n/Make que envía a Slack |
| Sincronizar clientes con un CRM externo         | Sección: Entidades, Disparar: Nuevos + Modificaciones, Campos: Nombre, NIF, Email       |
| Actualizar stock en tienda online               | Sección: Productos, Disparar: Modificaciones, Campos: Stock                             |
| Enviar email de bienvenida a nuevos clientes    | Sección: Entidades, Disparar: Nuevos, Requisito: Email relleno                          |
| Generar albarán automático en sistema logístico | Sección: Ventas/Ingresos, Disparar: Modificaciones, Campo: Estado = "Confirmada"        |

***

## Ejemplo visual

<figure><img src="https://cdn.dinaup.com/up/202502/image_18.png" alt="Ejemplo de configuración de Webhook saliente"><figcaption><p>Configuración de un webhook saliente en Dinaup</p></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.dinaup.com/integraciones/webhook/salientes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
