> For the complete documentation index, see [llms.txt](https://www.boxhero.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.boxhero.io/docs/documentation/es/integraciones/webhook.md).

# Webhook

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

***

## Registro

Puedes registrar un webhook en <mark style="color:azul;">**`Configuración`**</mark> **>** <mark style="color:azul;">**`Integraciones y API`**</mark> en tu equipo de BoxHero.

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

## Comportamiento de entrega y reintento

Cuando ocurre un evento, BoxHero envía una solicitud HTTP `POST` a tu endpoint de webhook registrado. El cuerpo de la solicitud contiene una carga útil JSON que describe el evento.

* Si tu servidor responde con **HTTP 200 OK**, el evento se considera entregado correctamente.
* Si tu servidor responde con **cualquier código de estado distinto de 200**, BoxHero lo trata como un fallo temporal y reintenta la entrega hasta 3 veces.

## Estructura de la carga útil del webhook

Todos los eventos de webhook se entregan con la siguiente estructura JSON en el cuerpo de la solicitud:

```json
{
  "id": "1234", // ID único del evento
  "topic": "txs/new", // Tema del evento
  "version": 1, // Versión del esquema de la carga útil
  "payload": { // Datos específicos del evento
    ...
  },
  "created_time": "2025-08-06T09:20:48.623Z" // Marca temporal de la ocurrencia del evento (ISO 8601)
}
```

***

## Orden de eventos

BoxHero **no** garantiza el orden de entrega de los eventos. Por ejemplo, un `item/new` evento puede llegar después de un `item/delete` evento para el mismo artículo.

El `created_time` campo en la carga útil del evento representa la hora real del evento. Implementa una lógica idempotente y tolerante al orden en tu controlador de webhook para manejar los eventos de forma fiable.

## Temas de eventos

{% hint style="info" %}
Si necesitas soporte para temas de eventos adicionales, ponte en contacto con [Soporte](/docs/documentation/es/recursos/contact.md).
{% endhint %}

### `txs/new`

Se activa cuando ocurre una transacción de inventario (Entrada de stock / Salida de stock / Ajuste de stock / Movimiento de stock).

{% hint style="warning" %}
**Nota:** Este evento *no* se activa para ajustes creados mediante ediciones masivas o importaciones (p. ej., al agregar o actualizar artículos mediante Excel).
{% endhint %}

<table><thead><tr><th width="207">Campo</th><th width="100" data-type="checkbox">Obligatorio</th><th>Descripción</th><th data-hidden data-type="checkbox">Obligatorio</th><th data-hidden>Descripción</th><th data-hidden>Modo de equipo</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>ID único de la transacción</td><td>true</td><td>ID único del historial</td><td>Todo</td></tr><tr><td>type</td><td>true</td><td>Tipo de transacción<br>(in, out, adjust, move)</td><td>true</td><td><p>Tipo del historial.</p><ul><li>Entrada : in</li><li>Salida : out</li><li>Ajuste : adjust</li><li>Movimiento : move</li></ul></td><td>Todo</td></tr><tr><td>socio</td><td>false</td><td>Socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>ID único del socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Nombre del socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Si el socio está eliminado</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>ID único de la ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Nombre de la ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Si la ubicación de origen está eliminada</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>ID único de la ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Nombre de la ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Si la ubicación de destino está eliminada</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Líneas de artículos en la transacción</td><td>true</td><td>Elementos por producto que componen el historial</td><td>Todos los modos</td></tr><tr><td>items.id</td><td>true</td><td>ID único del artículo</td><td>true</td><td>ID único del producto</td><td>Todos los modos</td></tr><tr><td>items.name</td><td>true</td><td>Nombre del artículo</td><td>true</td><td>Nombre del producto</td><td>Todos los modos</td></tr><tr><td>items.quantity</td><td>true</td><td>Cambio de inventario debido a entrada/salida/ajuste/movimiento de stock</td><td>true</td><td>Cantidad de entrada/salida/ajuste/movimiento del producto</td><td>Todos los modos</td></tr><tr><td>items.deleted</td><td>true</td><td>Si el artículo está eliminado</td><td>true</td><td>Si el producto está eliminado</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>El nivel de stock en la ubicación de origen después de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>El nivel de stock en la ubicación de destino después de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Hora de la transacción (p. ej., hora de entrada/salida de stock)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>La hora en que se creó la transacción</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Miembro que creó la transacción</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>ID único del miembro</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Nombre del miembro</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Si el miembro está eliminado</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>El número de artículos</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>La cantidad total de cambio de inventario</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL para ver la página de detalles de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Notas relacionadas con la transacción</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Ejemplo de carga útil del webhook – `Entrada de stock` Evento

```json
{
  "id": 16160911,
  "type": "in",
  "to_location": {
    "id": 52766,
    "name": "Almacén 3",
    "deleted": false
  },
  "items": [
    {
      "id": 14277699,
      "name": "belif Cleansing Gel Oil Enriched",
      "quantity": 2,
      "deleted": false,
      "to_location_new_stock_level": 3
    },
    {
      "id": 14277698,
      "name": "belif Aqua Bomb Jelly Cleanser",
      "quantity": 2,
      "deleted": false,
      "to_location_new_stock_level": 5
    }
  ],
  "transaction_time": "2023-04-25T05:42:27.545Z",
  "created_at": "2023-08-14T05:14:29.499Z",
  "created_by": {
    "id": 201345,
    "name": "corp",
    "deleted": false
  },
  "count_of_items": 2,
  "total_quantity": 4,
  "url": "https://web.boxhero-app.com/team/149058/mode/0#/tx/16160911"
}
```

#### Ejemplo de carga útil del webhook – `Mover stock` Evento

<pre class="language-json"><code class="lang-json">{
  "id": 3692714,
  "type": "move",
  "from_location": {
    "id": 52765,
    "name": "Almacén 2",
    "deleted": false
  },
  "to_location": {
    "id": 52766,
    "name": "Almacén 3",
<strong>    "deleted": false
</strong>  },
  "items": [
    {
      "id": 14873303,
      "name": "Auto liner 3.5mm",
      "quantity": 1,
      "deleted": false,
      "from_location_new_stock_level": -1,
      "to_location_new_stock_level": 1
    }
  ],
  "transaction_time": "2025-04-25T05:42:27.545Z",
  "created_at": "2025-04-25T05:42:27.545Z",
  "created_by": {
    "id": 176829,
    "name": "Tony Lee",
    "deleted": false
  },
  "count_of_items": 1,
  "total_quantity": 1,
  "url": "https://web.boxhero-app.com/team/150581/mode/2#/ltx/3692714"
}
</code></pre>

### `txs/edit`

Se envía cuando una transacción de inventario existente (Entrada de stock / Salida de stock / Ajuste de stock / Movimiento de stock) es **editada**.

<table><thead><tr><th>Campo</th><th width="100" data-type="checkbox">Obligatorio</th><th>Descripción</th><th data-hidden data-type="checkbox">Obligatorio</th><th data-hidden>Descripción</th><th data-hidden>Modo de equipo</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>ID único de la transacción</td><td>true</td><td>ID único del historial</td><td>Todo</td></tr><tr><td>type</td><td>true</td><td>Tipo de transacción<br>(in, out, adjust, move)</td><td>true</td><td><p>Tipo del historial.</p><ul><li>Entrada : in</li><li>Salida : out</li><li>Ajuste : adjust</li><li>Movimiento : move</li></ul></td><td>Todo</td></tr><tr><td>socio</td><td>false</td><td>Socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>ID único del socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Nombre del socio</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Si el socio está eliminado</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>ID único de la ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Nombre de la ubicación de origen</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Si la ubicación de origen está eliminada</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>ID único de la ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Nombre de la ubicación de destino</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Si la ubicación de destino está eliminada</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Líneas de artículos en la transacción</td><td>true</td><td>Elementos por producto que componen el historial</td><td>Todos los modos</td></tr><tr><td>items.id</td><td>true</td><td>ID único del artículo</td><td>true</td><td>ID único del producto</td><td>Todos los modos</td></tr><tr><td>items.name</td><td>true</td><td>Nombre del artículo</td><td>true</td><td>Nombre del producto</td><td>Todos los modos</td></tr><tr><td>items.quantity</td><td>true</td><td>Cambio de cantidad debido a la transacción (entrada/salida/ajuste/movimiento)</td><td>true</td><td>Cantidad de entrada/salida/ajuste/movimiento del producto</td><td>Todos los modos</td></tr><tr><td>items.deleted</td><td>true</td><td>Si el artículo está eliminado</td><td>true</td><td>Si el producto está eliminado</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>El nivel de stock en la ubicación de origen después de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>El nivel de stock en la ubicación de destino después de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Hora de la transacción (p. ej., hora de entrada/salida de stock)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>La hora en que se creó la transacción</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Miembro que creó la transacción</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>ID único del miembro</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Nombre del miembro</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Si el miembro está eliminado</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>El número de artículos</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>La cantidad total de cambio de inventario</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL para ver la página de detalles de la transacción</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Notas relacionadas con la transacción</td><td>false</td><td></td><td></td></tr><tr><td>revisión</td><td>true</td><td>Número de versión actual de la transacción, comenzando desde 1</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Ejemplo de carga útil del webhook – Transacción editada `Entrada de stock` Transacción

```json
{
  "id": 16160911,
  "type": "in",
  "to_location": {
    "id": 52766,
    "name": "Almacén 3",
    "deleted": false
  },
  "items": [
    {
      "id": 14277699,
      "name": "belif Cleansing Gel Oil Enriched",
      "quantity": 2,
      "deleted": false,
      "to_location_new_stock_level": 3
    },
    {
      "id": 14277698,
      "name": "belif Aqua Bomb Jelly Cleanser",
      "quantity": 2,
      "deleted": false,
      "to_location_new_stock_level": 5
    }
  ],
  "transaction_time": "2023-04-25T05:42:27.545Z",
  "created_at": "2023-08-14T05:14:29.499Z",
  "created_by": {
    "id": 201345,
    "name": "corp",
    "deleted": false
  },
  "count_of_items": 2,
  "total_quantity": 4,
  "url": "https://web.boxhero-app.com/team/149058/mode/0#/tx/16160911"
}

```

#### Ejemplo de carga útil del webhook – Transacción editada `Mover stock` Transacción

```json
{
  "id": 3692714,
  "type": "move",
  "from_location": {
    "id": 52765,
    "name": "Almacén 2",
    "deleted": false
  },
  "to_location": {
    "id": 52766,
    "name": "Almacén 3",
    "deleted": false
  },
  "items": [
    {
      "id": 14873303,
      "name": "Auto liner 3.5mm",
      "quantity": 1,
      "deleted": false,
      "from_location_new_stock_level": -1,
      "to_location_new_stock_level": 1
    }
  ],
  "transaction_time": "2023-04-25T05:42:27.545Z",
  "created_at": "2023-04-25T05:42:27.545Z",
  "created_by": {
    "id": 176829,
    "name": "Joy Kim",
    "deleted": false
  },
  "count_of_items": 1,
  "total_quantity": 1,
  "url": "https://web.boxhero-app.com/team/150581/mode/2#/ltx/3692714"
}

```

### `txs/delete`

Se envía cuando una transacción de inventario es **eliminada**.

| Campo    | Descripción                                                    |
| -------- | -------------------------------------------------------------- |
| id       | ID único de la transacción                                     |
| revisión | Número de versión actual de la transacción, comenzando desde 1 |

#### Ejemplo de carga útil del webhook – Transacción eliminada

```json
/{
  "id": 27036740,
  "revision": 2
}
```

### `item/new`

Se envía cuando se agrega un nuevo artículo al inventario del equipo.

{% hint style="warning" %}
**Nota**: Este evento es *no* activado al usar la <mark style="color:azul;">**`Agregar variantes de artículo`**</mark> función o al importar artículos mediante <mark style="color:azul;">**`Importar Excel`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Campo</th><th>Descripción</th><th data-hidden data-type="checkbox">Obligatorio</th><th data-hidden>Descripción</th><th data-hidden>Modo de equipo</th></tr></thead><tbody><tr><td>id</td><td>ID del artículo</td><td>true</td><td>ID único del historial</td><td>Todo</td></tr><tr><td>nombre</td><td>Nombre del artículo</td><td>true</td><td><p>Tipo del historial.</p><ul><li>Entrada : in</li><li>Salida : out</li><li>Ajuste : adjust</li><li>Movimiento : move</li></ul></td><td>Todo</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>código de barras</td><td>Código de barras</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>URL de la foto</td><td>false</td><td></td><td></td></tr><tr><td>costo</td><td>Costo</td><td>false</td><td></td><td></td></tr><tr><td>precio</td><td>Precio</td><td>false</td><td></td><td></td></tr><tr><td>atributos</td><td>Atributos</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Ejemplo de carga útil – Artículo creado**

```json
{
  "id": 26122826,
  "name": "belif Peat Miracle Revital Cream",
  "sku": "SKU-YH2361KI",
  "barcode": "2002074321218",
  "photo_url": "https://d3l9wd8kivvlqy.cloudfront.net/ap-northeast-2/image-up-ap-northeast-2/30b0cc84-601d-493d-87fd-b7e8b5825601",
  "cost": "50000",
  "price": "65000",
  "attrs": [
    {
      "id": 413101,
      "name": "Categoría",
      "type": "text",
      "value": "Base"
    },
    {
      "id": 459264,
      "name": "Fecha de caducidad",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Stock de seguridad",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/edit`

Se envía cuando se edita un artículo existente.

{% hint style="warning" %}
**Nota**: Este evento es *no* activado *f*o mediante ediciones masivas realizadas a través de <mark style="color:azul;">**`Centro de datos`**</mark>**&#x20;>&#x20;**<mark style="color:azul;">**`Artículo`**</mark> o mediante la <mark style="color:azul;">**`Importar Excel`**</mark> función.
{% endhint %}

<table><thead><tr><th width="318">Campo</th><th>Descripción</th><th data-hidden data-type="checkbox">Obligatorio</th><th data-hidden>Descripción</th><th data-hidden>Modo de equipo</th></tr></thead><tbody><tr><td>id</td><td>ID del artículo</td><td>true</td><td>ID único del historial</td><td>Todo</td></tr><tr><td>nombre</td><td>Nombre del artículo</td><td>true</td><td><p>Tipo del historial.</p><ul><li>Entrada : in</li><li>Salida : out</li><li>Ajuste : adjust</li><li>Movimiento : move</li></ul></td><td>Todo</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>código de barras</td><td>Código de barras</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>URL de la foto</td><td>false</td><td></td><td></td></tr><tr><td>costo</td><td>Costo</td><td>false</td><td></td><td></td></tr><tr><td>precio</td><td>Precio</td><td>false</td><td></td><td></td></tr><tr><td>atributos</td><td>Atributos</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Ejemplo de carga útil – Artículo actualizado**

```json
{
  "id": 26122826,
  "name": "belif Peat Miracle Revital Cream",
  "sku": "SKU-YH2361KI",
  "barcode": "2002074321218",
  "photo_url": "https://d3l9wd8kivvlqy.cloudfront.net/ap-northeast-2/image-up-ap-northeast-2/30b0cc84-601d-493d-87fd-b7e8b5825601",
  "cost": "50000",
  "price": "65000",
  "attrs": [
    {
      "id": 413101,
      "name": "Categoría",
      "type": "text",
      "value": "Base"
    },
    {
      "id": 459264,
      "name": "Fecha de caducidad",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Stock de seguridad",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/delete`

Se envía cuando se elimina un artículo del inventario del equipo.

{% hint style="warning" %}
**Nota**: Este evento es *no* activado para eliminaciones masivas realizadas a través de <mark style="color:azul;">**`Centro de datos`**</mark>**&#x20;>&#x20;**<mark style="color:azul;">**`Artículo`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Campo</th><th>Descripción</th><th data-hidden data-type="checkbox">Obligatorio</th><th data-hidden>Descripción</th><th data-hidden>Modo de equipo</th></tr></thead><tbody><tr><td>id</td><td>ID del artículo</td><td>true</td><td>ID único del historial</td><td>Todo</td></tr></tbody></table>

#### Ejemplo de carga útil **– Artículo eliminado**

```json
{
  "id": 26122826
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://www.boxhero.io/docs/documentation/es/integraciones/webhook.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.
