# Webhook

<figure><img src="https://823884625-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlRf1QqJGoevCQqGbfI80%2Fuploads%2Fgit-blob-094f1326e4f5b66d3f4de825a63e55cbf0f4ac01%2Fboxhero-add-webhook.png?alt=media" alt=""><figcaption></figcaption></figure>

***

## 登録

Webhook を <mark style="color:青色;">**`設定`**</mark> **>** <mark style="color:青色;">**`連携 & API`**</mark> の BoxHero チームに登録できます。

## 配信と再試行の動作

イベントが発生すると、BoxHero はあなたの登録済み webhook エンドポイントに HTTP `POST` リクエストを送信します。リクエストボディには、そのイベントを説明する JSON ペイロードが含まれます。

* サーバーが **HTTP 200 OK**を返すと、そのイベントは正常に配信されたものとみなされます。
* サーバーが **200 以外のステータスコード**の場合、BoxHero はそれを一時的な失敗として扱い、最大 3 回まで再配信を試みます。

## Webhook ペイロード構造

すべての webhook イベントは、リクエストボディ内で次の JSON 構造で配信されます:

```json
{
  "id": "1234", // イベントの一意な ID
  "topic": "txs/new", // イベントのトピック
  "version": 1, // ペイロードスキーマのバージョン
  "payload": { // イベント固有のデータ
    ...
  },
  "created_time": "2025-08-06T09:20:48.623Z" // イベント発生時刻のタイムスタンプ（ISO 8601）
}
```

***

## イベントの順序

BoxHero **保証しません** イベント配信の順序を。たとえば、 `item/new` イベントは、同じアイテムの `item/delete` イベントの後に届くことがあります。

チーム `created_time` フィールドは、実際のイベント時刻を表します。イベントを確実に処理するために、Webhook ハンドラーには冪等で順序に耐性のあるロジックを実装してください。

## イベントトピック

{% hint style="info" %}
追加のイベントトピックのサポートが必要な場合は、 [サポート](https://www.boxhero.io/docs/documentation/ja/rissu/contact).
{% endhint %}

### `txs/new`

在庫取引が発生したときにトリガーされます（入庫 / 出庫 / 在庫調整 / 在庫移動）。

{% hint style="warning" %}
**注：** このイベントは *ありません* 一括編集やインポートで作成された調整に対してトリガーされます（例: Excel でアイテムを追加または更新した場合）。
{% endhint %}

<table><thead><tr><th width="207">項目</th><th width="100" data-type="checkbox">必須</th><th>説明</th><th data-hidden data-type="checkbox">必須 여부</th><th data-hidden>説明</th><th data-hidden>チームモード</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>取引の一意な ID</td><td>true</td><td>ヒストリーの固有 ID</td><td>全体</td></tr><tr><td>type</td><td>true</td><td>取引タイプ<br>(in, out, adjust, move)</td><td>true</td><td><p>ヒストリーの種類。</p><ul><li>入庫 : in</li><li>出庫 : out</li><li>調整 : adjust</li><li>移動 : move</li></ul></td><td>全体</td></tr><tr><td>partner</td><td>false</td><td>パートナー</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>パートナーの一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>パートナー名</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>そのパートナーが削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>元の場所</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>元の場所の一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>元の場所名</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>元の場所が削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>移動先の場所</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>移動先の場所の一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>移動先の場所名</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>移動先の場所が削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>対象商品</td><td>true</td><td>取引内の明細行</td><td>true</td><td>ヒストリーを構成する製品別の項目</td><td>全モード</td></tr><tr><td>items.id</td><td>true</td><td>アイテムの一意な ID</td><td>true</td><td>製品の固有 ID</td><td>全モード</td></tr><tr><td>items.name</td><td>true</td><td>アイテム名</td><td>true</td><td>製品名</td><td>全モード</td></tr><tr><td>items.quantity</td><td>true</td><td>入庫/出庫/調整/移動による在庫変動</td><td>true</td><td>該当製品の入庫/出庫/調整/移動数量</td><td>全モード</td></tr><tr><td>items.deleted</td><td>true</td><td>そのアイテムが削除済みかどうか</td><td>true</td><td>削除済み製品かどうか</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>取引後の元の場所での在庫数</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>取引後の移動先での在庫数</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>取引時刻（例: 入庫/出庫時刻）</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>取引が作成された時刻</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>取引を作成したメンバー</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>メンバーの一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>メンバー名</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>そのメンバーが削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>アイテム数</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>在庫変動の合計数量</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>取引詳細ページを表示するための URL アドレス</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>取引に関するメモ</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Webhook ペイロード例 – `入庫` イベント

```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"
}
```

#### Webhook ペイロード例 – `在庫移動` イベント

<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`

既存の在庫取引（入庫 / 出庫 / 在庫調整 / 在庫移動）が **編集されたときに送信されます**.

<table><thead><tr><th>項目</th><th width="100" data-type="checkbox">必須</th><th>説明</th><th data-hidden data-type="checkbox">必須 여부</th><th data-hidden>説明</th><th data-hidden>チームモード</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>取引の一意な ID</td><td>true</td><td>ヒストリーの固有 ID</td><td>全体</td></tr><tr><td>type</td><td>true</td><td>取引タイプ<br>(in, out, adjust, move)</td><td>true</td><td><p>ヒストリーの種類。</p><ul><li>入庫 : in</li><li>出庫 : out</li><li>調整 : adjust</li><li>移動 : move</li></ul></td><td>全体</td></tr><tr><td>partner</td><td>false</td><td>パートナー</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>パートナーの一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>パートナー名</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>そのパートナーが削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>元の場所</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>元の場所の一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>元の場所名</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>元の場所が削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>移動先の場所</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>移動先の場所の一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>移動先の場所名</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>移動先の場所が削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>対象商品</td><td>true</td><td>取引内の明細行</td><td>true</td><td>ヒストリーを構成する製品別の項目</td><td>全モード</td></tr><tr><td>items.id</td><td>true</td><td>アイテムの一意な ID</td><td>true</td><td>製品の固有 ID</td><td>全モード</td></tr><tr><td>items.name</td><td>true</td><td>アイテム名</td><td>true</td><td>製品名</td><td>全モード</td></tr><tr><td>items.quantity</td><td>true</td><td>取引による数量変動（入庫/出庫/調整/移動）</td><td>true</td><td>該当製品の入庫/出庫/調整/移動数量</td><td>全モード</td></tr><tr><td>items.deleted</td><td>true</td><td>そのアイテムが削除済みかどうか</td><td>true</td><td>削除済み製品かどうか</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>取引後の元の場所での在庫数</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>取引後の移動先での在庫数</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>取引時刻（例: 入庫/出庫時刻）</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>取引が作成された時刻</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>取引を作成したメンバー</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>メンバーの一意な ID</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>メンバー名</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>そのメンバーが削除済みかどうか</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>アイテム数</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>在庫変動の合計数量</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>取引詳細ページを表示するための URL アドレス</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>取引に関するメモ</td><td>false</td><td></td><td></td></tr><tr><td>revision</td><td>true</td><td>取引の現在のバージョン番号。1 から開始します</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Webhook ペイロード例 – 編集済み `入庫` 取引

```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"
}

```

#### Webhook ペイロード例 – 編集済み `在庫移動` 取引

```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`

在庫取引が **削除されたときに送信されます**.

| 項目       | 説明                      |
| -------- | ----------------------- |
| id       | 取引の一意な ID               |
| revision | 取引の現在のバージョン番号。1 から開始します |

#### Webhook ペイロード例 – 削除された取引

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

### `item/new`

チームの在庫に新しいアイテムが追加されたときに送信されます。

{% hint style="warning" %}
**注**: このイベントは *ありません* を使用するとき、または次の方法でアイテムをインポートするときにトリガーされます <mark style="color:青色;">**`アイテムバリアントを追加`**</mark> 機能、または次の方法でインポートしたとき <mark style="color:青色;">**`Excelインポート`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">項目</th><th>説明</th><th data-hidden data-type="checkbox">必須 여부</th><th data-hidden>説明</th><th data-hidden>チームモード</th></tr></thead><tbody><tr><td>id</td><td>アイテム ID</td><td>true</td><td>ヒストリーの固有 ID</td><td>全体</td></tr><tr><td>名前</td><td>アイテム名</td><td>true</td><td><p>ヒストリーの種類。</p><ul><li>入庫 : in</li><li>出庫 : out</li><li>調整 : adjust</li><li>移動 : move</li></ul></td><td>全体</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>バーコード</td><td>バーコード</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>写真 URL</td><td>false</td><td></td><td></td></tr><tr><td>原価</td><td>原価</td><td>false</td><td></td><td></td></tr><tr><td>価格</td><td>価格</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>属性</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **例のペイロード – アイテム作成**

```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`

既存のアイテムが編集されたときに送信されます。

{% hint style="warning" %}
**注**: このイベントは *ありません* トリガーされます *f*または次を通じた一括編集 <mark style="color:青色;">**`データセンター`**</mark>**&#x20;>&#x20;**<mark style="color:青色;">**`アイテム`**</mark> または次を通じて <mark style="color:青色;">**`Excelインポート`**</mark> 機能を使って複数のアイテムを一度に追加できます。
{% endhint %}

<table><thead><tr><th width="318">項目</th><th>説明</th><th data-hidden data-type="checkbox">必須 여부</th><th data-hidden>説明</th><th data-hidden>チームモード</th></tr></thead><tbody><tr><td>id</td><td>アイテム ID</td><td>true</td><td>ヒストリーの固有 ID</td><td>全体</td></tr><tr><td>名前</td><td>アイテム名</td><td>true</td><td><p>ヒストリーの種類。</p><ul><li>入庫 : in</li><li>出庫 : out</li><li>調整 : adjust</li><li>移動 : move</li></ul></td><td>全体</td></tr><tr><td>sku</td><td>SKU</td><td>false</td><td></td><td></td></tr><tr><td>バーコード</td><td>バーコード</td><td>false</td><td></td><td></td></tr><tr><td>photo_url</td><td>写真 URL</td><td>false</td><td></td><td></td></tr><tr><td>原価</td><td>原価</td><td>false</td><td></td><td></td></tr><tr><td>価格</td><td>価格</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>属性</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **例のペイロード – アイテム更新**

```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`

アイテムがチームの在庫から削除されたときに送信されます。

{% hint style="warning" %}
**注**: このイベントは *ありません* 次を通じた一括削除でトリガーされます <mark style="color:青色;">**`データセンター`**</mark>**&#x20;>&#x20;**<mark style="color:青色;">**`アイテム`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">項目</th><th>説明</th><th data-hidden data-type="checkbox">必須 여부</th><th data-hidden>説明</th><th data-hidden>チームモード</th></tr></thead><tbody><tr><td>id</td><td>アイテム ID</td><td>true</td><td>ヒストリーの固有 ID</td><td>全体</td></tr></tbody></table>

#### 例のペイロード **– アイテム削除**

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