Skip to main content
s.id Logo
View Markdown

Webhook Shop

Webhook Shop notifies your system when an order is paid. Its settings are separate from developer Webhooks, and shop-level notifications are available on certain plans.

Webhook types

TypeWhere to set it upSent when
Shop notificationDashboard > Shop > SettingsEvery paid invoice
Webhook productwebhook_url field on the productThat product is paid

Payload

The shop notification sends invoice data:

json
{
  "invoice_id": "665f1c2ab3d4e5f6a7b8c9d0",
  "invoice_no": "INV-0001",
  "email": "pembeli@example.com",
  "full_name": "Nama Pembeli",
  "tenant_id": 123,
  "shop_name": "Toko Contoh",
  "status": "PAID",
  "items": [
    {
      "item_id": "665f1c2ab3d4e5f6a7b8c9d1",
      "item": { "name": "Nama Produk", "product_type": "webhook" },
      "qty": 1,
      "price": 50000,
      "total": 50000,
      "notes": ""
    }
  ]
}

Webhook products send data per item:

json
{
  "id": "665f1c2ab3d4e5f6a7b8c9d0",
  "paid_at": "2026-06-22T10:00:00Z",
  "email": "pembeli@example.com",
  "full_name": "Nama Pembeli",
  "phone_number": "08xxxxxxxxxx",
  "shop_id": "665f1c2ab3d4e5f6a7b8c9d2",
  "item": {
    "item_id": "665f1c2ab3d4e5f6a7b8c9d1",
    "item": { "name": "Nama Produk", "product_type": "webhook" },
    "qty": 1,
    "price": 50000,
    "total": 50000,
    "notes": ""
  }
}

Delivery and resends

  • Sent with POST, User-Agent s.id-webhook/0.1, and a 15-second timeout
  • Only a 200 response counts as success
  • Up to 5 automatic retries, after waits of 1, 5, 15, 30, and 60 minutes
  • Delivery logs are available in the dashboard and can be resent manually
Webhook Shop does not send an X-SID-Signature header. Match invoice_no with the order data in s.id before processing the order.