İçeriğe geç
Tüm sistemler çalışıyor — %99.997 uptime
Geliştiriciler · Webhooks

33 webhook topic, imzalı payload.

Karum'da gerçekleşen her olay anında sunucuna düşer. HMAC-SHA256 imza, replay koruması, exponential retry, dead-letter queue — kurumsal güvenilirlik.

33
Subscribable topic
HMAC-SHA256
İmza algoritması
Maks. retry
POST · order.placed
POST /your-endpoint HTTP/1.1
Content-Type: application/json
X-Karum-Topic: order.placed
X-Karum-Delivery-Id: dlv_01H9X2K...
X-Karum-Signature: t=1716843201,v1=a4b3c92e...

{
  "topic": "order.placed",
  "deliveryId": "dlv_01H9X2K...",
  "tenantId": "ten_main",
  "occurredAt": "2026-05-28T09:14:02Z",
  "data": {
    "orderId": "ord_3Axx",
    "total": 1249.90,
    "currency": "TRY",
    "customerId": "cus_Qh8"
  }
}
Topic kataloğu

10 kategori, 33 olay tipi.

Sipariş, ödeme, ürün, vendor, payout, güvenlik — her domain için ince taneli topic'ler. Yalnızca dinlemek istediklerine abone ol.

order

Sipariş yaşam döngüsü

Yeni sipariş ve iptal akışı
order.placedorder.cancelled
payment

Ödeme & iade

Capture, refund ve PSP olayları
payment.capturedpayment.refunded
product

Ürün kataloğu

Oluşturma, güncelleme, yayınlama, arşivleme
product.createdproduct.updatedproduct.publishedproduct.archived
approval

B2B onay akışı

Çok seviyeli sipariş onayı
approval.request.createdapproval.approvedapproval.rejectedapproval.expired
quote

Teklif yönetimi

B2B teklif yaşam döngüsü
quote.sentquote.acceptedquote.rejectedquote.convertedquote.expired
vendor

Vendor / satıcı

Başvuru, onay, askıya alma
vendor.appliedvendor.approvedvendor.rejectedvendor.suspended
payout

Vendor payout

Komisyon hesaplama, ödeme, retry
payout.calculatedpayout.paidpayout.failedpayout.retry.scheduledpayout.retry.given_up
buybox

Buybox

Marketplace kazanan değişimleri
buybox.winner_changed
report

Raporlar

Zamanlanmış rapor tetikleyicileri
saved_report.due
security

Güvenlik & uyum

Impersonation, staff invite, İYS
impersonation.startedimpersonation.endedstaff.invitedstaff.acceptedconsent.iys.push_due
Güvenlik kontrolleri

Her payload imzalı, replay-proof.

Her isteği imzalarız, timestamp ekleriz, idempotency-key ile çift işlem riskini sıfırlarız. Başarısız delivery'ler dead-letter queue'ya düşer, panelden replay edebilirsin.

  • HMAC-SHA256 imza

    Her istek `X-Karum-Signature: t=<unix>,v1=<hex>` header'ı taşır; payload'ı `t.payload` ile birleştirip imzalarız.

  • Timestamp toleransı

    5 dakikadan eski request'leri reddet — replay attack'ları engelle. Tolerans değiştirilebilir.

  • Idempotent delivery

    Her event benzersiz `deliveryId` taşır. Tekrar gelirse aynı sonuç, çift işlem riski yok.

  • Dead-letter queue

    5 başarısız denemenin ardından DLQ'ya düşer; panelden veya CLI'dan istediğin zaman replay et.

İmza doğrulama verify.ts
import crypto from "node:crypto"

export function verifyKarumSignature(
  payload: string,
  header: string,
  secret: string,
): boolean {
  const parts = Object.fromEntries(
    header.split(",").map((p) => p.split("=") as [string, string]),
  )
  const timestamp = parts.t
  const signature = parts.v1

  const expected = crypto
    .createHmac("sha256", secret)
    .update(`${timestamp}.${payload}`)
    .digest("hex")

  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature),
  )
}
Retry politikası

Başarısız delivery'ler exponential backoff ile.

Sunucun 2xx yanıt vermezse 6 deneme yapılır, exponential gecikmelerle. 5. başarısızlıkta dead-letter queue'ya düşer, panelden replay edilebilir.

Deneme
Gecikme
1
Anında
2
30 saniye
3
2 dakika
4
10 dakika
5
1 saat
6+
Dead-letter queue
5. başarısızlıktan sonra DLQ'ya düşer. Dashboard → Webhooks → DLQ üzerinden replay.
Başlangıç

İlk satışınız bu hafta. Kurulum 5 dakika.

Karum kurulum ekibi süreci yönetir. Veri taşıma, ürün eşleme ve kanal bağlama dahil — ortalama 3–7 günde ilk satış.

BAŞLAYALIM