Lewati ke konten utama

Katalog Event

Halaman ini mendaftar semua event yang bisa Anda langgani, kapan event itu terkirim, dan isi datanya.

Amplop (envelope)​

Setiap event dikirim sebagai JSON dengan bentuk yang sama:

{
"id": "evt_9c1f0b6a2d4e8f7a3b5c1d09",
"type": "order.paid",
"api_version": "2026-10-01",
"created_at": "2026-10-11T03:04:05.123Z",
"shop_id": 12,
"data": { "order": { } }
}
KolomArti
idID unik event. Tetap sama pada percobaan ulang dan pengiriman ulang
typeJenis event, lihat tabel di bawah
api_versionVersi bentuk data
created_atWaktu event dibuat (UTC)
shop_idID toko Anda
dataIsi event; kuncinya tergantung jenis event

Daftar event​

EventTerkirim saatKunci data
order.createdPesanan dibuat (checkout storefront, penjualan POS, pesanan booking atau sewa)order
order.paidStatus menjadi Dibayar (juga saat dibuat jika langsung dibayar, misalnya tunai di POS)order
order.canceledStatus menjadi Dibatalkan (stok, kupon, dan poin sudah dikembalikan)order
order.expiredPesanan belum dibayar dan kedaluwarsaorder
order.status_changedSetiap perubahan status (bukan saat dibuat): Dibayar, Dikirim, Selesai, Dibatalkan, Kedaluwarsaorder, dengan previous_status
refund.createdRefund dicatatrefund
stock.lowItem turun sampai atau di bawah titik pesan ulang (sekali per item, cabang, dan hari; aturan sama dengan peringatan di aplikasi)item
stock.adjustedPergerakan stok: penyesuaian manual, opname, transfer cabang, penerimaan pembelian (bukan penjualan)adjustments[]
purchase_order.receivedBarang diterima untuk sebuah POpurchase_order, receipt
booking.createdSlot booking dibuatbooking
booking.rescheduledBooking dipindahbooking, dengan previous (tanggal dan jam lama)
booking.canceledBooking dibatalkanbooking
booking.no_showBooking ditandai tidak datang (manual atau otomatis)booking
review.createdPelanggan mengirim ulasan (status moderasi apa pun; kolom status berisi PUBLISHED atau PENDING)review
customer.createdPelanggan mendaftar atau dibuat oleh stafcustomer
product.createdProduk dibuatproduct
product.updatedAda perubahan bermakna: nama, deskripsi, kategori, harga, diskon, grosir, status, SKU, barcode, berat, penanda, titik pesan ulang, mode stok, kolom sewa. Tidak termasuk hitungan stok, cap waktu, dan urutan gambarproduct
product.deletedProduk dihapusproduct (id, nama, SKU, deleted_at)
webhook.testHanya dari tombol tes; tidak bisa dilanggananorder (contoh)

Memilih ["*"] (Semua event) berarti semua event di atas, termasuk yang baru.

Contoh: order.paid​

{
"order": {
"id": 1001,
"sales_no": "INV-0001",
"status": "PAID",
"branch_id": 1,
"customer": { "id": 9, "fullname": "Sari", "email": "sari@example.com", "phone": "08123456789" },
"items": [
{
"id": 5001, "product_id": 77, "product_variant_id": null,
"product_name": "Kopi 250g", "variant_name": null, "sku": "KOPI-250",
"qty": 2, "price": 50000, "total_price": 100000, "notes": null, "refunded_qty": 0,
"booking_date": null, "rental_start_date": null, "rental_end_date": null
}
],
"subtotal": 100000, "coupon_price": 0, "delivery_fee": 10000, "fee": 0,
"tax_amount": 0, "service_charge_amount": 0, "points_spend": 0,
"grand_total": 110000, "refunded_amount": 0, "refund_status": null,
"delivery_address": null, "deposit_amount": 0, "deposit_status": null, "balance_due": 0,
"created_at": "2026-10-11T03:00:00.000Z",
"updated_at": "2026-10-11T03:04:05.000Z"
}
}

Isi di atas adalah nilai data. Pada order.status_changed, bentuknya sama ditambah "previous_status": "PAYMENT-WAITING" di dalam order.

Yang tidak pernah dikirim​

  • password, salt, token, atau hash apa pun
  • data modal (cost_price, nilai modal, margin) di event mana pun
  • metadata payment gateway
  • data pelanggan hanya id, nama, email, dan telepon

Sistem juga menyaring kunci terlarang di seluruh dokumen sebagai lapis pengaman terakhir.

Urutan dan duplikat​

  • Urutan antar-event tidak dijamin. Misalnya dua event yang berdekatan bisa tiba terbalik. Gunakan cap waktu di data, bukan urutan kedatangan.
  • Event bisa tiba lebih dari sekali. Simpan id event yang sudah diproses dan abaikan yang sama.
  • id tetap sama pada percobaan ulang, pengiriman ulang, dan replay. Header X-Etalasse-Delivery-Id berbeda tiap pengiriman, jadi jangan dipakai untuk menghapus duplikat.

Header yang dikirim​

HeaderIsi
X-Etalasse-Event-IdID event
X-Etalasse-Event-TypeJenis event
X-Etalasse-Delivery-IdID pengiriman
X-Etalasse-AttemptPercobaan ke berapa (mulai 1)
X-Etalasse-SignatureTanda tangan, lihat Verifikasi tanda tangan
User-AgentEtalasse-Webhooks/1.0

Body dikirim sebagai Content-Type: application/json; charset=utf-8, JSON ringkas, dengan ukuran jauh di bawah 256 KB.

Halaman terkait​