> 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/id/integrasi/webhook.md).

# Webhook

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

***

## Pendaftaran

Anda dapat mendaftarkan webhook di <mark style="color:biru;">**`Pengaturan`**</mark> **>** <mark style="color:biru;">**`Integrasi & API`**</mark> di tim BoxHero Anda.

<figure><img src="/files/16a89168bb3baa4108e37cd2e9e6c3d20b56f331" alt=""><figcaption></figcaption></figure>

## Perilaku Pengiriman & Coba Ulang

Saat sebuah event terjadi, BoxHero mengirim permintaan HTTP `POST` ke endpoint webhook yang Anda daftarkan. Isi permintaan berisi payload JSON yang menjelaskan event tersebut.

* Jika server Anda merespons dengan **HTTP 200 OK**, event dianggap berhasil dikirim.
* Jika server Anda merespons dengan **kode status apa pun selain 200**, BoxHero menganggapnya sebagai kegagalan sementara dan mencoba mengirim ulang hingga 3 kali.

## Struktur Payload Webhook

Semua event webhook dikirim dengan struktur JSON berikut di body permintaan:

```json
{
  "id": "1234", // ID unik event
  "topic": "txs/new", // Topik event
  "version": 1, // Versi skema payload
  "payload": { // Data khusus event
    ...
  },
  "created_time": "2025-08-06T09:20:48.623Z" // Stempel waktu terjadinya event (ISO 8601)
}
```

***

## Urutan Event

BoxHero **tidak** menjamin urutan pengiriman event. Sebagai contoh, sebuah `item/new` event dapat tiba setelah `item/delete` event untuk item yang sama.

Kolom `created_time` dalam payload event merepresentasikan waktu terjadinya event yang sebenarnya. Terapkan logika idempoten dan toleran terhadap urutan di handler webhook Anda untuk menangani event secara andal.

## Topik Event

{% hint style="info" %}
Jika Anda memerlukan dukungan untuk topik event tambahan, silakan hubungi [Dukungan](/docs/documentation/id/sumber-daya/contact.md).
{% endhint %}

### `txs/new`

Dipicu saat transaksi inventaris terjadi (Stok Masuk / Stok Keluar / Penyesuaian Stok / Pindah Stok).

{% hint style="warning" %}
**Catatan:** Event ini adalah *bukan* dipicu untuk penyesuaian yang dibuat melalui pengeditan massal atau impor (misalnya, saat menambahkan atau memperbarui item melalui Excel).
{% endhint %}

<table><thead><tr><th width="207">Kolom</th><th width="100" data-type="checkbox">Wajib</th><th>Deskripsi</th><th data-hidden data-type="checkbox">Wajib</th><th data-hidden>Deskripsi</th><th data-hidden>Mode tim</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>ID unik transaksi</td><td>true</td><td>ID unik riwayat</td><td>Semua</td></tr><tr><td>type</td><td>true</td><td>Jenis transaksi<br>(in, out, adjust, move)</td><td>true</td><td><p>Jenis riwayat.</p><ul><li>Masuk: in</li><li>Keluar: out</li><li>Penyesuaian: adjust</li><li>Pindah: move</li></ul></td><td>Semua</td></tr><tr><td>Mitra</td><td>false</td><td>Mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>ID unik mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Nama mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Apakah mitra dihapus</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>ID unik lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Nama lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Apakah lokasi asal dihapus</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>ID unik lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Nama lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Apakah lokasi tujuan dihapus</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Item baris dalam transaksi</td><td>true</td><td>Item per produk yang menyusun riwayat</td><td>Semua mode</td></tr><tr><td>items.id</td><td>true</td><td>ID unik item</td><td>true</td><td>ID unik produk</td><td>Semua mode</td></tr><tr><td>items.name</td><td>true</td><td>Nama item</td><td>true</td><td>Nama produk</td><td>Semua mode</td></tr><tr><td>items.quantity</td><td>true</td><td>Perubahan inventaris karena stock in/out/adjust/move</td><td>true</td><td>Jumlah masuk/keluar/penyesuaian/perpindahan untuk produk ini</td><td>Semua mode</td></tr><tr><td>items.deleted</td><td>true</td><td>Apakah item dihapus</td><td>true</td><td>Apakah produk dihapus</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>Level stok di lokasi asal setelah transaksi</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>Level stok di lokasi tujuan setelah transaksi</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Waktu transaksi (misalnya waktu masuk/keluar stok)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>Waktu saat transaksi dibuat</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Anggota yang membuat transaksi</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>ID unik anggota</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Nama anggota</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Apakah anggota dihapus</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>Jumlah item</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>Total jumlah perubahan inventaris</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL untuk melihat halaman detail transaksi</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Catatan terkait transaksi</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Contoh Payload Webhook – `Stok Masuk` Event

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

#### Contoh Payload Webhook – `Pindah Stok` Event

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

Dikirim saat transaksi inventaris yang sudah ada (Stock In / Stock Out / Adjust Stock / Move Stock) adalah **diedit**.

<table><thead><tr><th>Kolom</th><th width="100" data-type="checkbox">Wajib</th><th>Deskripsi</th><th data-hidden data-type="checkbox">Wajib</th><th data-hidden>Deskripsi</th><th data-hidden>Mode tim</th></tr></thead><tbody><tr><td>id</td><td>true</td><td>ID unik transaksi</td><td>true</td><td>ID unik riwayat</td><td>Semua</td></tr><tr><td>type</td><td>true</td><td>Jenis transaksi<br>(in, out, adjust, move)</td><td>true</td><td><p>Jenis riwayat.</p><ul><li>Masuk: in</li><li>Keluar: out</li><li>Penyesuaian: adjust</li><li>Pindah: move</li></ul></td><td>Semua</td></tr><tr><td>Mitra</td><td>false</td><td>Mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.id</td><td>false</td><td>ID unik mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.name</td><td>false</td><td>Nama mitra</td><td>false</td><td></td><td></td></tr><tr><td>partner.deleted</td><td>false</td><td>Apakah mitra dihapus</td><td>false</td><td></td><td></td></tr><tr><td>from_location</td><td>false</td><td>Lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.id</td><td>false</td><td>ID unik lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.name</td><td>false</td><td>Nama lokasi asal</td><td>false</td><td></td><td></td></tr><tr><td>from_location.deleted</td><td>false</td><td>Apakah lokasi asal dihapus</td><td>false</td><td></td><td></td></tr><tr><td>to_location</td><td>true</td><td>Lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.id</td><td>true</td><td>ID unik lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.name</td><td>true</td><td>Nama lokasi tujuan</td><td>false</td><td></td><td></td></tr><tr><td>to_location.deleted</td><td>true</td><td>Apakah lokasi tujuan dihapus</td><td>false</td><td></td><td></td></tr><tr><td>items</td><td>true</td><td>Item baris dalam transaksi</td><td>true</td><td>Item per produk yang menyusun riwayat</td><td>Semua mode</td></tr><tr><td>items.id</td><td>true</td><td>ID unik item</td><td>true</td><td>ID unik produk</td><td>Semua mode</td></tr><tr><td>items.name</td><td>true</td><td>Nama item</td><td>true</td><td>Nama produk</td><td>Semua mode</td></tr><tr><td>items.quantity</td><td>true</td><td>Perubahan kuantitas karena transaksi (in/out/adjust/move)</td><td>true</td><td>Jumlah masuk/keluar/penyesuaian/perpindahan untuk produk ini</td><td>Semua mode</td></tr><tr><td>items.deleted</td><td>true</td><td>Apakah item dihapus</td><td>true</td><td>Apakah produk dihapus</td><td></td></tr><tr><td>items.from_location_new_stock_level</td><td>false</td><td>Level stok di lokasi asal setelah transaksi</td><td>false</td><td></td><td></td></tr><tr><td>items.to_location_new_stock_level</td><td>true</td><td>Level stok di lokasi tujuan setelah transaksi</td><td>false</td><td></td><td></td></tr><tr><td>transaction_time</td><td>true</td><td>Waktu transaksi (misalnya waktu masuk/keluar stok)</td><td>false</td><td></td><td></td></tr><tr><td>created_at</td><td>true</td><td>Waktu saat transaksi dibuat</td><td>false</td><td></td><td></td></tr><tr><td>created_by</td><td>true</td><td>Anggota yang membuat transaksi</td><td>false</td><td></td><td></td></tr><tr><td>created_by.id</td><td>true</td><td>ID unik anggota</td><td>false</td><td></td><td></td></tr><tr><td>created_by.name</td><td>true</td><td>Nama anggota</td><td>false</td><td></td><td></td></tr><tr><td>created_by.deleted</td><td>true</td><td>Apakah anggota dihapus</td><td>false</td><td></td><td></td></tr><tr><td>count_of_items</td><td>true</td><td>Jumlah item</td><td>false</td><td></td><td></td></tr><tr><td>total_quantity</td><td>true</td><td>Total jumlah perubahan inventaris</td><td>false</td><td></td><td></td></tr><tr><td>url</td><td>true</td><td>URL untuk melihat halaman detail transaksi</td><td>false</td><td></td><td></td></tr><tr><td>memo</td><td>false</td><td>Catatan terkait transaksi</td><td>false</td><td></td><td></td></tr><tr><td>revisi</td><td>true</td><td>Nomor versi saat ini dari transaksi, dimulai dari 1</td><td>false</td><td></td><td></td></tr></tbody></table>

#### Contoh Payload Webhook – Transaksi yang Diedit `Stok Masuk` Transaksi

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

```

#### Contoh Payload Webhook – Transaksi yang Diedit `Pindah Stok` Transaksi

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

Dikirim saat transaksi inventaris **dihapus**.

| Kolom  | Deskripsi                                           |
| ------ | --------------------------------------------------- |
| id     | ID unik transaksi                                   |
| revisi | Nomor versi saat ini dari transaksi, dimulai dari 1 |

#### Contoh Payload Webhook – Transaksi yang Dihapus

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

### `item/new`

Dikirim saat item baru ditambahkan ke inventaris tim.

{% hint style="warning" %}
**Catatan**: Event ini adalah *bukan* dipicu saat menggunakan <mark style="color:biru;">**`Fitur Tambah Varian Item`**</mark> atau mengimpor item melalui <mark style="color:biru;">**`Impor Excel`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Kolom</th><th>Deskripsi</th><th data-hidden data-type="checkbox">Wajib</th><th data-hidden>Deskripsi</th><th data-hidden>Mode tim</th></tr></thead><tbody><tr><td>id</td><td>ID Item</td><td>true</td><td>ID unik riwayat</td><td>Semua</td></tr><tr><td>nama</td><td>Nama Item</td><td>true</td><td><p>Jenis riwayat.</p><ul><li>Masuk: in</li><li>Keluar: out</li><li>Penyesuaian: adjust</li><li>Pindah: move</li></ul></td><td>Semua</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>URL Foto</td><td>false</td><td></td><td></td></tr><tr><td>cost</td><td>Biaya</td><td>false</td><td></td><td></td></tr><tr><td>price</td><td>Harga</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>Atribut</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Contoh Payload – Item Dibuat**

```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": "Kategori",
      "type": "text",
      "value": "alas bedak"
    },
    {
      "id": 459264,
      "name": "Tanggal kedaluwarsa",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Stok pengaman",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/edit`

Dikirim saat item yang sudah ada diedit.

{% hint style="warning" %}
**Catatan**: Event ini adalah *bukan* dipicu *f*atau pengeditan massal yang dilakukan melalui <mark style="color:biru;">**`Pusat Data`**</mark>**&#x20;>&#x20;**<mark style="color:biru;">**`Item`**</mark> atau melalui <mark style="color:biru;">**`Impor Excel`**</mark> fungsi.
{% endhint %}

<table><thead><tr><th width="318">Kolom</th><th>Deskripsi</th><th data-hidden data-type="checkbox">Wajib</th><th data-hidden>Deskripsi</th><th data-hidden>Mode tim</th></tr></thead><tbody><tr><td>id</td><td>ID Item</td><td>true</td><td>ID unik riwayat</td><td>Semua</td></tr><tr><td>nama</td><td>Nama Item</td><td>true</td><td><p>Jenis riwayat.</p><ul><li>Masuk: in</li><li>Keluar: out</li><li>Penyesuaian: adjust</li><li>Pindah: move</li></ul></td><td>Semua</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>URL Foto</td><td>false</td><td></td><td></td></tr><tr><td>cost</td><td>Biaya</td><td>false</td><td></td><td></td></tr><tr><td>price</td><td>Harga</td><td>false</td><td></td><td></td></tr><tr><td>attrs</td><td>Atribut</td><td>false</td><td></td><td></td></tr></tbody></table>

#### **Contoh Payload – Item Diperbarui**

```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": "Kategori",
      "type": "text",
      "value": "alas bedak"
    },
    {
      "id": 459264,
      "name": "Tanggal kedaluwarsa",
      "type": "date",
      "value": "2027-08-07"
    },
    {
      "id": 668272,
      "name": "Stok pengaman",
      "type": "number",
      "value": 33
    }
  ]
}
```

### `item/delete`

Dikirim saat item dihapus dari inventaris tim.

{% hint style="warning" %}
**Catatan**: Event ini adalah *bukan* dipicu untuk penghapusan massal yang dilakukan melalui <mark style="color:biru;">**`Pusat Data`**</mark>**&#x20;>&#x20;**<mark style="color:biru;">**`Item`**</mark>.
{% endhint %}

<table><thead><tr><th width="318">Kolom</th><th>Deskripsi</th><th data-hidden data-type="checkbox">Wajib</th><th data-hidden>Deskripsi</th><th data-hidden>Mode tim</th></tr></thead><tbody><tr><td>id</td><td>ID Item</td><td>true</td><td>ID unik riwayat</td><td>Semua</td></tr></tbody></table>

#### Contoh Payload **– Item Dihapus**

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