DokumentasiWebhook
WEBHOOK

Webhook Transaksi

Anesa Store dapat mengirim pembaruan status transaksi ke webhook developer ketika status order berubah.

POSThttps://yourdomain.com/
01
DELIVERY

Cara webhook dikirim

Webhook dikirim menggunakan HTTP POST dengan JSON body.

URL webhook harus berupa HTTPS URL yang valid.
Request membawa signature dan timestamp dari Anesa Store.
Secret webhook digunakan untuk membuat HMAC-SHA256.
endpoint harus membalas HTTP 2xx; response di luar 2xx akan dianggap gagal dan delivery akan dicoba kembali.
02
HEADERS

Header webhook

Header yang dikirim bersama payload webhook.

HeaderDeskripsi
Content-Typeapplication/json
X-Anesa-Signaturesha256=<HMAC-SHA256(timestamp + "." + payload)>
X-Anesa-TimestampUnix timestamp ketika webhook dikirim.
X-Anesa-Delivery-IDID unik delivery webhook.
User-AgentAnesa-Store-Webhook/1
03
PAYLOAD

Contoh payload

Payload hanya berisi data yang diperlukan untuk mengenali dan memproses perubahan status transaksi.

application/jsonjson
{
  "event": "transaction.updated",
  "data": {
    "ref_id": "REF-PREPAID-001",
    "order_number": "ORDER_NUMBER",
    "status": "success",
    "anesa_sku_code": "SKU_ANESA",
    "customer_no": "081234567890",
    "selling_price": 10000,
    "transaction_type": "prepaid",
    "updated_at": "2026-10-07T02:30:00Z",
    "sn": "SERIAL_NUMBER"
  }
}
04
SIGNATURE

Verifikasi webhook

Signature dihitung dari timestamp, titik, lalu raw JSON payload menggunakan webhook secret.

MESSAGEtimestamp + "." + raw_payload
HMAC-SHA256HMAC-SHA256(message, WEBHOOK_SECRET)
Verifikasi menggunakan raw request body sebelum JSON diparse atau diformat ulang.
Delivery dianggap berhasil jika endpoint developer merespons status HTTP 2xx (200–299).
Simpan X-Anesa-Delivery-ID dan gunakan sebagai kunci idempotensi agar webhook yang sama tidak diproses dua kali.