# Webhook

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

***

## Registrierung

Sie können einen Webhook registrieren unter <mark style="color:blaue;">**`Einstellungen`**</mark> **>** <mark style="color:blaue;">**`Integrationen & API`**</mark> in Ihrem BoxHero-Team.

## Verhalten bei Zustellung & Wiederholung

Wenn ein Ereignis auftritt, sendet BoxHero eine HTTP- `POST` Anfrage an Ihren registrierten Webhook-Endpunkt. Der Anfrage-Body enthält eine JSON-Nutzlast, die das Ereignis beschreibt.

* Wenn Ihr Server mit **HTTP 200 OK**antwortet, gilt das Ereignis als erfolgreich zugestellt.
* Wenn Ihr Server mit **jedem anderen Statuscode als 200**behandelt BoxHero dies als vorübergehenden Fehler und versucht die Zustellung bis zu 3 Mal erneut.

## Struktur der Webhook-Nutzlast

Alle Webhook-Ereignisse werden im Anfrage-Body mit der folgenden JSON-Struktur zugestellt:

```json
{
  "id": "1234", // Eindeutige ID des Ereignisses
  "topic": "txs/new", // Ereignisthema
  "version": 1, // Version des Nutzlastschemas
  "payload": { // ereignisspezifische Daten
    ...
  },
  "created_time": "2025-08-06T09:20:48.623Z" // Zeitstempel des Ereigniseintritts (ISO 8601)
}
```

***

## Reihenfolge der Ereignisse

BoxHero **garantiert nicht** die Reihenfolge der Ereigniszustellung nicht. Beispielsweise kann ein `item/new` Ereignis nach einem `item/delete` Ereignis für denselben Artikel eintreffen.

Die `created_time` Feld in der Ereignis-Nutzlast stellt die tatsächliche Ereigniszeit dar. Implementieren Sie idempotente und reihenfolgenrobuste Logik in Ihrem Webhook-Handler, um Ereignisse zuverlässig zu verarbeiten.

## Ereignisthemen

{% hint style="info" %}
Wenn Sie Unterstützung für zusätzliche Ereignisthemen benötigen, wenden Sie sich bitte an [den Support](/docs/documentation/de/ressourcen/contact.md).
{% endhint %}

### `txs/new`

Wird ausgelöst, wenn eine Lagertransaktion stattfindet (Wareneingang / Warenausgang / Bestand anpassen / Bestand verschieben).

{% hint style="warning" %}
**Hinweis:** Dieses Ereignis *keine* wird ausgelöst für Anpassungen, die durch Massenbearbeitungen oder Importe erstellt wurden (z. B. beim Hinzufügen oder Aktualisieren von Artikeln über Excel).
{% endhint %}

<table><thead><tr><th width="207">Feld</th><th width="100" data-type="checkbox">Erforderlich</th><th>Beschreibung</th><th data-hidden data-type="checkbox">Obligatorisch</th><th data-hidden>Beschreibung</th><th data-hidden>Team-Modus</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>Eindeutige ID der Transaktion</td><td>true</td><td>Eindeutige ID des Verlaufs</td><td>Gesamt</td></tr><tr><td>type</td><td>true</td><td>Transaktionstyp<br>(in, out, adjust, move)</td><td>true</td><td><p>Typ des Verlaufs.</p><ul><li>Wareneingang : in</li><li>Warenausgang : out</li><li>Anpassung : adjust</li><li>Verschieben : move</li></ul></td><td>Gesamt</td></tr><tr><td>Partner</td><td>false</td><td>Partner</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>Eindeutige ID des Partners</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Name des Partners</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Ob der Partner gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Quellort</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>Eindeutige ID des Quellorts</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Name des Quellorts</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Ob der Quellort gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Zielort</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>Eindeutige ID des Zielorts</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Name des Zielorts</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Ob der Zielort gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Positionen in der Transaktion</td><td>true</td><td>Artikelbezogene Positionen, aus denen der Verlauf besteht</td><td>Alle Modi</td></tr><tr><td>items.id</td><td>true</td><td>Eindeutige ID des Artikels</td><td>true</td><td>Eindeutige ID des Produkts</td><td>Alle Modi</td></tr><tr><td>items.name</td><td>true</td><td>Artikelname</td><td>true</td><td>Name des Produkts</td><td>Alle Modi</td></tr><tr><td>items.quantity</td><td>true</td><td>Bestandsänderung durch Wareneingang/-ausgang/Anpassung/Verschiebung</td><td>true</td><td>Wareneingangs-/Warenausgangs-/Anpassungs-/Verschiebungsmenge des betreffenden Produkts</td><td>Alle Modi</td></tr><tr><td>items.deleted</td><td>true</td><td>Ob der Artikel gelöscht ist</td><td>true</td><td>Ob das Produkt gelöscht ist</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>Der Lagerbestand am Quellort nach der Transaktion</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>Der Lagerbestand am Zielort nach der Transaktion</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Zeit der Transaktion (z. B. Zeitpunkt des Warenein-/ausgangs)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>Der Zeitpunkt, zu dem die Transaktion erstellt wurde</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Mitglied, das die Transaktion erstellt hat</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>Eindeutige ID des Mitglieds</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Name des Mitglieds</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Ob das Mitglied gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>Anzahl der Artikel</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>Gesamtmenge der Bestandsänderung</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL-Adresse zum Anzeigen der Transaktionsdetailseite</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Notizen zur Transaktion</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Beispiel für Webhook-Nutzlast – `Wareneingang` Ereignis

```json
{
  "id": 16160911,
  "type": "in",
  "to_location": {
    "id": 52766,
    "name": "Warehouse 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"
}
```

#### Beispiel für Webhook-Nutzlast – `Bestand verschieben` Ereignis

<pre class="language-json"><code class="lang-json">{
  "id": 3692714,
  "type": "move",
  "from_location": {
    "id": 52765,
    "name": "Warehouse 2",
    "deleted": false
  },
  "to_location": {
    "id": 52766,
    "name": "Warehouse 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`

Wird gesendet, wenn eine vorhandene Lagertransaktion (Wareneingang / Warenausgang / Bestand anpassen / Bestand verschieben) **bearbeitet**.

<table><thead><tr><th>Feld</th><th width="100" data-type="checkbox">Erforderlich</th><th>Beschreibung</th><th data-hidden data-type="checkbox">Obligatorisch</th><th data-hidden>Beschreibung</th><th data-hidden>Team-Modus</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>Eindeutige ID der Transaktion</td><td>true</td><td>Eindeutige ID des Verlaufs</td><td>Gesamt</td></tr><tr><td>type</td><td>true</td><td>Transaktionstyp<br>(in, out, adjust, move)</td><td>true</td><td><p>Typ des Verlaufs.</p><ul><li>Wareneingang : in</li><li>Warenausgang : out</li><li>Anpassung : adjust</li><li>Verschieben : move</li></ul></td><td>Gesamt</td></tr><tr><td>Partner</td><td>false</td><td>Partner</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>Eindeutige ID des Partners</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Name des Partners</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Ob der Partner gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Quellort</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>Eindeutige ID des Quellorts</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Name des Quellorts</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Ob der Quellort gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Zielort</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>Eindeutige ID des Zielorts</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Name des Zielorts</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Ob der Zielort gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Positionen in der Transaktion</td><td>true</td><td>Artikelbezogene Positionen, aus denen der Verlauf besteht</td><td>Alle Modi</td></tr><tr><td>items.id</td><td>true</td><td>Eindeutige ID des Artikels</td><td>true</td><td>Eindeutige ID des Produkts</td><td>Alle Modi</td></tr><tr><td>items.name</td><td>true</td><td>Artikelname</td><td>true</td><td>Name des Produkts</td><td>Alle Modi</td></tr><tr><td>items.quantity</td><td>true</td><td>Mengenänderung aufgrund der Transaktion (in/out/adjust/move)</td><td>true</td><td>Wareneingangs-/Warenausgangs-/Anpassungs-/Verschiebungsmenge des betreffenden Produkts</td><td>Alle Modi</td></tr><tr><td>items.deleted</td><td>true</td><td>Ob der Artikel gelöscht ist</td><td>true</td><td>Ob das Produkt gelöscht ist</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>Der Lagerbestand am Quellort nach der Transaktion</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>Der Lagerbestand am Zielort nach der Transaktion</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Zeit der Transaktion (z. B. Zeitpunkt des Warenein-/ausgangs)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>Der Zeitpunkt, zu dem die Transaktion erstellt wurde</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Mitglied, das die Transaktion erstellt hat</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>Eindeutige ID des Mitglieds</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Name des Mitglieds</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Ob das Mitglied gelöscht ist</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>Anzahl der Artikel</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>Gesamtmenge der Bestandsänderung</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL-Adresse zum Anzeigen der Transaktionsdetailseite</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Notizen zur Transaktion</td><td>false</td><td></td><td></td></tr><tr><td>revision</td><td>true</td><td>Aktuelle Versionsnummer der Transaktion, beginnend bei 1</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Beispiel für Webhook-Nutzlast – Bearbeitet `Wareneingang` Transaktions

```json
{
  "id": 16160911,
  "type": "in",
  "to_location": {
    "id": 52766,
    "name": "Warehouse 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"
}

```

#### Beispiel für Webhook-Nutzlast – Bearbeitet `Bestand verschieben` Transaktions

```json
{
  "id": 3692714,
  "type": "move",
  "from_location": {
    "id": 52765,
    "name": "Warehouse 2",
    "deleted": false
  },
  "to_location": {
    "id": 52766,
    "name": "Warehouse 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`

Wird gesendet, wenn eine Lagertransaktion **gelöscht**.

| Feld     | Beschreibung                                             |
| -------- | -------------------------------------------------------- |
| id       | Eindeutige ID der Transaktion                            |
| revision | Aktuelle Versionsnummer der Transaktion, beginnend bei 1 |

#### Beispiel für Webhook-Nutzlast – Gelöschte Transaktion

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

### `item/new`

Wird gesendet, wenn ein neuer Artikel zum Lagerbestand des Teams hinzugefügt wird.

{% hint style="warning" %}
**Hinweis**: Dieses Ereignis wird *keine* ausgelöst, wenn die <mark style="color:blaue;">**`Funktion „Artikelvarianten hinzufügen“`**</mark> verwendet wird oder Artikel über <mark style="color:blaue;">**`Excel importieren`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Feld</th><th>Beschreibung</th><th data-hidden data-type="checkbox">Obligatorisch</th><th data-hidden>Beschreibung</th><th data-hidden>Team-Modus</th></tr></thead><tbody><tr><td>id</td><td>Artikel-ID</td><td>true</td><td>Eindeutige ID des Verlaufs</td><td>Gesamt</td></tr><tr><td>name</td><td>Artikelname</td><td>true</td><td><p>Typ des Verlaufs.</p><ul><li>Wareneingang : in</li><li>Warenausgang : out</li><li>Anpassung : adjust</li><li>Verschieben : move</li></ul></td><td>Gesamt</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>Barcode</td><td>Barcode</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>Foto-URL</td><td>false</td><td></td><td></td></tr><tr><td>cost</td><td>Kosten</td><td>false</td><td></td><td></td></tr><tr><td>price</td><td>Preis</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>Attribute</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Beispiel-Nutzlast – Artikel erstellt**

```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": "Category",
      "type": "text",
      "value": "Foundation"
    },
    {
      "id": 459264,
      "name": "Expiration date",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Safety Stock",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/edit`

Wird gesendet, wenn ein vorhandener Artikel bearbeitet wird.

{% hint style="warning" %}
**Hinweis**: Dieses Ereignis wird *keine* ausgelöst *f*ür Massenbearbeitungen über <mark style="color:blaue;">**`Datenzentrale`**</mark>**&#x20;>&#x20;**<mark style="color:blaue;">**`Artikel`**</mark> oder über die <mark style="color:blaue;">**`Excel importieren`**</mark> Funktion.
{% endhint %}

<table><thead><tr><th width="318">Feld</th><th>Beschreibung</th><th data-hidden data-type="checkbox">Obligatorisch</th><th data-hidden>Beschreibung</th><th data-hidden>Team-Modus</th></tr></thead><tbody><tr><td>id</td><td>Artikel-ID</td><td>true</td><td>Eindeutige ID des Verlaufs</td><td>Gesamt</td></tr><tr><td>name</td><td>Artikelname</td><td>true</td><td><p>Typ des Verlaufs.</p><ul><li>Wareneingang : in</li><li>Warenausgang : out</li><li>Anpassung : adjust</li><li>Verschieben : move</li></ul></td><td>Gesamt</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>Barcode</td><td>Barcode</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>Foto-URL</td><td>false</td><td></td><td></td></tr><tr><td>cost</td><td>Kosten</td><td>false</td><td></td><td></td></tr><tr><td>price</td><td>Preis</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>Attribute</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Beispiel-Nutzlast – Artikel aktualisiert**

```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": "Category",
      "type": "text",
      "value": "Foundation"
    },
    {
      "id": 459264,
      "name": "Expiration date",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Safety Stock",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/delete`

Wird gesendet, wenn ein Artikel aus dem Lagerbestand des Teams gelöscht wird.

{% hint style="warning" %}
**Hinweis**: Dieses Ereignis wird *keine* ausgelöst für Massenlöschungen über <mark style="color:blaue;">**`Datenzentrale`**</mark>**&#x20;>&#x20;**<mark style="color:blaue;">**`Artikel`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Feld</th><th>Beschreibung</th><th data-hidden data-type="checkbox">Obligatorisch</th><th data-hidden>Beschreibung</th><th data-hidden>Team-Modus</th></tr></thead><tbody><tr><td>id</td><td>Artikel-ID</td><td>true</td><td>Eindeutige ID des Verlaufs</td><td>Gesamt</td></tr></tbody></table>

#### Beispiel-Nutzlast **– Artikel gelöscht**

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


---

# 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://www.boxhero.io/docs/documentation/de/integrationen/open-api/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.
