Hesap API'si2026-11Önizleme

Webhook uç noktaları

Olayları POST ettiğimiz URL'ler. Olaylar, yükleri, imzalama ve yeniden denemeler Webhook'lar sayfasındadır.

Webhook endpoint nesnesi

idstring
we_ ile başlar.
urlstring
2xx yanıtı veren, size ait bir https URL'si.
descriptionstring|null
Sizin için.
events[]array
Gönderilecek olay türleri ya da sonradan eklenecekler dahil hepsi için *: order.created, order.paid, order.bought, order.checked, order.shipped, product.cost_changed, product.out_of_stock, qc.issue.
statusstring
enabled ya da disabled (sizin tarafınızdan ya da her teslimatın başarısız olduğu beş günün ardından bizim tarafımızdan; önce size e-posta göndeririz).
api_versionstring
Olay yüklerinin yazıldığı sürüm; oluşturma anındaki anahtarınki.
secretstring
İmzalama gizli anahtarı. Yalnızca oluşturma ve yenileme yanıtlarında.
webhook_endpoint
{
  "id": "we_3d8s",
  "url": "https://acme-goods.com/hooks/ninjabuy",
  "description": "Order sync",
  "events": ["order.shipped", "product.out_of_stock", "qc.issue"],
  "status": "enabled",
  "api_version": "2026-11",
  "created_at": "2026-11-01T08:00:00Z"
}

Uç nokta oluştur

POST/v1/webhook_endpoints

İmzalama gizli anahtarını bir kez döndürür: şimdi saklayın. Hesap başına en fazla 16 uç nokta.

Kapsamwebhooks:write

Gövde

urlstringzorunlu
Yalnızca https.
events[]arrayzorunlu
Olay türleri ya da ["*"].
descriptionstring
İsteğe bağlı.

Hatalar

DurumTürNe zaman
400bad-bodyURL https değil ya da bir olay türü bilinmiyor.
409invalid-stateHesapta zaten 16 uç nokta var.
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://acme-goods.com/hooks/ninjabuy",
    "events": ["order.shipped", "product.out_of_stock", "qc.issue"],
    "description": "Order sync"
  }'
Response 201
HTTP/2 201 Created

{
  "id": "we_3d8s",
  "url": "https://acme-goods.com/hooks/ninjabuy",
  "description": "Order sync",
  "events": ["order.shipped", "product.out_of_stock", "qc.issue"],
  "status": "enabled",
  "api_version": "2026-11",
  "created_at": "2026-11-01T08:00:00Z",
  "secret": "whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw"
}

Uç noktaları listele

GET/v1/webhook_endpoints

Hesaptaki tüm uç noktalar, gizli anahtarlar olmadan.

Kapsamwebhooks:write

curl "https://www.ninjabuy.com/api/v1/webhook_endpoints" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "data": [
    {
      "id": "we_3d8s",
      "url": "https://acme-goods.com/hooks/ninjabuy",
      "description": "Order sync",
      "events": ["order.shipped", "product.out_of_stock", "qc.issue"],
      "status": "enabled",
      "api_version": "2026-11",
      "created_at": "2026-11-01T08:00:00Z"
    }
  ],
  "has_more": false,
  "cursor": null
}

Uç noktayı getir

GET/v1/webhook_endpoints/{id}

Tek bir uç nokta, gizli anahtarı olmadan.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "id": "we_3d8s",
  "url": "https://acme-goods.com/hooks/ninjabuy",
  "description": "Order sync",
  "events": ["order.shipped", "product.out_of_stock", "qc.issue"],
  "status": "enabled",
  "api_version": "2026-11",
  "created_at": "2026-11-01T08:00:00Z"
}

Uç noktayı güncelle

PATCH/v1/webhook_endpoints/{id}

URL'sini ya da olaylarını değiştirin veya devre dışı bırakıp etkinleştirin. Etkinleştirmek, son 3 günde kaçırdıklarını gönderir.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Gövde

urlstring
Yalnızca https.
events[]array
Olay türleri ya da ["*"].
descriptionstring
İsteğe bağlı.
statusstring
İsteğe bağlı. enabled ya da disabled.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl -X PATCH "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Content-Type: application/json" \
  -d '{ "events": ["*"] }'
Response 200
HTTP/2 200 OK

{
  "id": "we_3d8s",
  "url": "https://acme-goods.com/hooks/ninjabuy",
  "description": "Order sync",
  "events": ["*"],
  "status": "enabled",
  "api_version": "2026-11",
  "created_at": "2026-11-01T08:00:00Z"
}

Uç nokta sil

DELETE/v1/webhook_endpoints/{id}

Ona yapılan tüm teslimatları, yeniden denemeler dahil, hemen durdurur.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl -X DELETE "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{ "id": "we_3d8s", "deleted": true }

Gizli anahtarı yenile

POST/v1/webhook_endpoints/{id}/rotate_secret

Yeni bir gizli anahtar döndürür. 24 saat boyunca ikisiyle de imzalarız; webhook-signature başlığı iki imza taşır ve ikisi de doğrular: yenisini devreye alın, eskisinin süresinin dolmasını bekleyin.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/rotate_secret" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)"
Response 200
HTTP/2 200 OK

{
  "id": "we_3d8s",
  "secret": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
  "previous_expires_at": "2026-11-05T09:30:00Z"
}

Test olayı gönder

POST/v1/webhook_endpoints/{id}/test

Bir olay türünün örneğini, diğerleri gibi imzalanmış ve test: true ile gönderir. Uç noktanızın nasıl yanıt verdiğini döndürür.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Gövde

typestringzorunlu
Bir olay türü.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/test" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{ "type": "qc.issue" }'
Response 200
HTTP/2 200 OK

{
  "delivery": "dlv_0k2p",
  "event": "evt_test_6c3h",
  "response_status": 200,
  "duration_ms": 182
}

Teslimatları listele

GET/v1/webhook_endpoints/{id}/deliveries

Son 30 günün her denemesi, en yenisi önce: ne gönderdiğimiz, nasıl yanıt verdiğiniz ve ne zaman yeniden deneyeceğimiz.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.

Sorgu parametreleri

statusstring
İsteğe bağlı. succeeded, retrying ya da failed.
eventstring
İsteğe bağlı. Bir olay id'si.
limit, cursor
Pagination

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/deliveries?status=retrying" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11"
Response 200
HTTP/2 200 OK

{
  "data": [
    {
      "id": "dlv_0k3a",
      "event": "evt_4m2x",
      "type": "order.shipped",
      "status": "retrying",
      "attempts": 3,
      "last_response_status": 502,
      "next_attempt_at": "2026-11-03T08:35:00Z"
    }
  ],
  "has_more": false,
  "cursor": null
}

Teslimatı yeniden gönder

POST/v1/webhook_endpoints/{id}/deliveries/{delivery}/retry

Olayı, durumu ne olursa olsun aynı webhook-id ile şimdi gönderir. Zaten planlanmış yeniden denemeler devam eder.

Kapsamwebhooks:write

Yol parametreleri

idstringzorunlu
Uç noktanın id'si.
deliverystringzorunlu
Bir teslimat id'si.

Hatalar

DurumTürNe zaman
404not-foundBu hesapta böyle bir uç nokta yok.
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/deliveries/dlv_0k3a/retry" \
  -H "Authorization: Bearer $NINJABUY_API_KEY" \
  -H "NinjaBuy-Version: 2026-11" \
  -H "Idempotency-Key: $(uuidgen)"
Response 202
HTTP/2 202 Accepted

{
  "delivery": "dlv_0k3a",
  "status": "retrying",
  "next_attempt_at": "2026-11-03T08:01:10Z"
}