Notify Feed/Sink API

Endpoint tambahan Webhook untuk menerima sink dan membaca feed log webhook.

Webhook menyediakan endpoint REST tambahan dengan namespace:

text
/wp-json/sejoli-notify/v1

Endpoint ini dapat digunakan untuk kebutuhan integrasi tertentu, terutama ketika aplikasi eksternal perlu membaca log webhook secara incremental.

Sink Endpoint

http
POST /wp-json/sejoli-notify/v1/sink

Contoh URL lengkap:

text
https://domain-anda.com/wp-json/sejoli-notify/v1/sink

Response sukses:

json
{
  "ok": true
}

Endpoint sink mengembalikan status sukses dan dapat digunakan sebagai target sederhana untuk skenario tertentu.

Feed Endpoint

http
GET /wp-json/sejoli-notify/v1/feed

Endpoint feed digunakan untuk membaca log webhook berdasarkan webhook_id dan cursor since_id.

Autentikasi Feed

Endpoint feed membutuhkan API key dengan format yang sama seperti API:

http
Authorization: Bearer sejoliapi_<prefix>_<secret>

Alternatif:

http
X-Sejoli-Key: sejoliapi_<prefix>_<secret>

Scope yang dibutuhkan:

text
orders:read

Query Parameters

ParameterTipeWajibDefaultKeterangan
webhook_idintegerYa-ID konfigurasi webhook.
since_idintegerTidak0Cursor log terakhir yang sudah dibaca.
limitintegerTidak100Jumlah data, maksimum 250.
statusstringTidaksuccessFilter status. Kirim kosong untuk semua status.

Contoh Request

bash
curl \
  -H "Authorization: Bearer sejoliapi_xxxxxxxx_secret" \
  "https://domain-anda.com/wp-json/sejoli-notify/v1/feed?webhook_id=123&since_id=0&limit=100"

Contoh Response

json
{
  "success": true,
  "data": [
    {
      "id": 10,
      "type": "ORDER.NEW",
      "at": "2026-07-07 10:00:00",
      "status": "success",
      "code": 200,
      "data": {
        "event": "ORDER.NEW",
        "data": {
          "ID": 123
        },
        "object_id": 123
      }
    }
  ],
  "next_since": 10
}

Error Umum

Jika webhook_id tidak dikirim:

json
{
  "success": false,
  "message": "missing webhook_id"
}

Jika API key tidak dikirim:

json
{
  "code": "rest_forbidden",
  "message": "Authorization header missing.",
  "data": {
    "status": 401
  }
}

Jika scope tidak cukup:

json
{
  "code": "rest_forbidden",
  "message": "Insufficient scope.",
  "data": {
    "status": 403
  }
}

Last updated Jul 7, 2026