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


---

# 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, and the optional `goal` query parameter:

```
GET https://www.boxhero.io/docs/documentation/id/integrasi/webhook.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
