# Webhooks (notificaciones)

<figure><img src="/files/MIg6t0qmtxPtFZbQiov8" alt=""><figcaption></figcaption></figure>

### ¿Qué es un WebHook?

Un `webhook` es una notificación que se envía de un servidor a otro, mediante una llamada `HTTP POST` al ocurrir un determinado evento.

TusFacturasAPP te enviará un webhook, siempre que se produzca uno o más eventos registrados en la modalidad de facturación asincrónica encolada,  evitando pérdida de datos siempre que se presente alguna situación.

### Dirección del webhook

La dirección del webhook se configura dentro de la información de tu punto de venta. Para eso deberás ingresar al MENÚ > Mi espacio de trabajo > Puntos de venta.  Entra a editar tu punto de venta y al pie de la pantalla podrás indicar la dirección del webhook.

La dirección que establezcas para el webhook, no debe contener un redirect y debe encontrarse funcionando. Si la misma se encuentra fuera de servicio por más de 24hs será ignorada por completo y no se te notificará nada más, hasta que indiques una nueva URL.

El formato esperado es: *<https://www.dominio.com/script-nombre>*

{% hint style="info" %}
Los webhooks se aplican tanto a ventas asincrónicas como a ventas instantáneas individuales, siempre que se haya informado el **external\_reference**.

En el caso de las ventas instantáneas, el webhook se enviará únicamente una vez que el comprobante haya sido emitido.
{% endhint %}

### **¿Qué te notificaremos vía  webhook?**

Vas a recibir por **POST** un JSON, con la siguiente estructura, para que puedas relacionar mediante el ***external\_reference*** que nos enviaste, al comprobante en cuestión, por tal motivo el *external\_reference* que envíes, debe ser único.

{% code title="JSON" %}

```
{
	"creado": "18/03/2022 15:58:11",
	"evento": "encolado",
	"recurso": "facturacion",
	"external_reference": "17032",
	"intento": 1,
	"msg": [],
	"hook_id": "xxxxx"
} 
```

{% endcode %}

### Headers

{% hint style="success" %}
**Verificá el hook recibido:**

En los headers del request que te enviamos, podrás observar los siguientes headers:

User-Agent: TusFacturasAPP-webhook/1.0

TF-WebhookToken: TU\_TOKEN\_DEL\_PDV

Tene en cuenta que algunos servidores pueden mostrarte el header todo en minúsculas, ej: tf-webhooktoken
{% endhint %}

Podrás obtener el TF-WebhookToken desde la grilla de puntos de venta, ingresando a Menú > Mi espacio de trabajo > CUITs/PDV.&#x20;

### Detalle de tipos de evento posibles por recurso

<table><thead><tr><th align="center">recurso</th><th width="154.8318397469689" align="center">evento</th><th>info</th></tr></thead><tbody><tr><td align="center">facturacion</td><td align="center">encolado</td><td>Éste evento te informa, que el comprobante que enviaste, se encuentra ya en la cola de procesamiento, para ser emitido en la fecha que indicaste.</td></tr><tr><td align="center">facturacion</td><td align="center">emitido</td><td>Éste evento te informa que el comprobante que enviaste, se ha facturado correctamente.</td></tr><tr><td align="center">facturacion</td><td align="center">error</td><td>Éste evento te informa que el comprobante que enviaste, no se ha podido procesar y recibrás dentro del atributo "msg", la lista con los errores detectados</td></tr><tr><td align="center">facturacion</td><td align="center">eliminado</td><td>Éste evento te informa que se ha eliminado un comprobante.</td></tr><tr><td align="center">facturacion</td><td align="center">cambio_fecha</td><td>Éste evento te informa que se ha cambiado la fecha del comprobante.</td></tr><tr><td align="center">test</td><td align="center">test</td><td>Se utilizará éste evento para probar la url de tu webhook</td></tr></tbody></table>

### Reintentos

Cuando recibís una notificación en tu plataforma, TusFacturasAPP espera una respuesta para validar que la recibiste correctamente. Para eso, debes devolver un `HTTP STATUS 200 (OK)`. Si no se envía esta respuesta, se entenderá que no ha recibido la notificación y se realizará un nuevo intento de envío hasta que reciba la respuesta.

|      Evento     | Plazo después del último envío | Tiempo de espera de tu confirmación |
| :-------------: | ------------------------------ | ----------------------------------- |
|      Envío      | -                              | 20 segundos                         |
|  Primer intento | 5 minutos                      | 5 segundos                          |
| Segundo intento | 30 minutos                     | 5 segundos                          |
|  Tercer intento | 3 horas                        | 5 segundos                          |
|  Cuarto intento | 6 horas                        | 5 segundos                          |
|  Quinto intento | 12 horas                       | 5 segundos                          |

#### Ejemplo de reintentos

Hook 0 \_\_\_\_\_\_\_\_\_\_\_\_\_ enviado el 22/03/2022 a las 10:00

Hook 1 \_\_\_\_\_\_\_\_\_\_\_\_\_ será enviado el 22/03/2022 a las 10:05

Hook 2 \_\_\_\_\_\_\_\_\_\_\_\_\_ será enviado el 22/03/2022 a las 10:35

Hook 3 \_\_\_\_\_\_\_\_\_\_\_\_\_ será enviado el 22/03/2022 a las 13:35

Hook 4 \_\_\_\_\_\_\_\_\_\_\_\_\_ será enviado el 22/03/2022 a las 19:35

Hook 5 \_\_\_\_\_\_\_\_\_\_\_\_\_ será enviado el 23/03/2022 a las 07:35

### &#x20;Una vez que recibo el webhook, ¿Qué hago?

Una vez recibido el webhook, deberás  realizar una [consulta avanzada](/api-factura-electronica-afip-facturacion-ventas/consulta-avanzada.md) a TusFacturasAPP para obtener los datos generados de ese comprobante.

&#x20;A continuación te mostramos, la documentación asociada al recurso del que recibís el webhook.

|   Recurso   |                                                                                 Documentación                                                                                 |
| :---------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| facturacion | [consulta avanzada por external\_reference](/api-factura-electronica-afip-facturacion-ventas/consulta-avanzada.md#como-realizar-una-consulta-avanzada-por-external-reference) |
|             |                                                                                                                                                                               |

### Herramientas útiles&#x20;

[Webhook.site](https://webhook.site/) o [Pipedream.com](https://pipedream.com/) son herramientas útiles para probar webhooks rápidamente, ver cómo funcionan e inspeccionar lo que se envía, sin necesidad de codificar.

### Consulta los hooks desde TusFacturasAPP

Ingresando a "Menú"> "API Request" > Hooks podrás consultar los hooks que te enviamos de una determinada external reference en los últimos 3 días.

### FAQs&#x20;

#### ¿Dónde configuro mi webhook?

La dirección del webhook, se configura dentro de tu Punto de venta. Para eso deberás ingresar al MENÚ > Mi espacio de trabajo > Puntos de venta y editando el registro de tu punto de venta, podrás agregarlo. Tené en cuenta que la dirección del hook, debe ser válida.

#### En caso de que la dirección de mi webhook, presente inconvenientes y falle el webhook, ¿se realizan reintentos hasta completar la notificación?

Si. Te sugerimos consultar el apartado de "[reintentos](#reintentos)", de ésta misma página.

**Si envío un lote de comprobantes, ¿Cómo recibo los hooks?**

Siempre vas a recibir los hooks independientes por cada comprobante.

### **Preguntas Frecuentes**

Consulta las [preguntas frecuentes](/faqs-or-ventas-asincronicas.md) sobre las ventas asincrónicas.

### ¿Aún te quedan dudas? ¡Contactános!

En caso que requieras asistencia o tengas alguna duda relacionada con tu plan API DEV,  envíanos un mensaje a <api@tusfacturas.app> o [contactanos](https://www.tusfacturas.app/contacto.html) por el chat que tenemos disponible en la web [www.tusfacturas.app](https://www.tusfacturas.app/quiero-probar-api-factura-electronica.html).


---

# 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://developers.tusfacturas.app/api-factura-electronica-afip-facturacion-ventas/webhooks-notificaciones.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.
