Webhook
Bir document tamamlandiginda (ya da basarisiz oldugunda) delivery queue,
batch.callback_url adresine (ya da tenant varsayilanina) ayri bir webhook
gonderir. Batch bazinda toplu webhook yoktur — her document kendi
bildirimini alir.
Imza dogrulama
Her istek X-Signature: sha256=<hex hmac> basligi tasir. Deger,
tenant.webhook_secret ile istek govdesinin (ham JSON body, parse
edilmeden once) HMAC-SHA256 imzasidir.
Kendi tarafinizda ayni hesaplamayi yapip sabit zamanli karsilastirma
yapmalisiniz (timingSafeEqual / hmac.compare_digest) — string
esitligi (===) zamanlama saldirilarina acik oldugu icin kullanilmamalidir.
Kod ornekleri sag panelde.
Event tipleri
document.completed—resultdolu,error: nulldocument.failed—result: null,errordolu
Retry politikasi
Hedef 2xx disinda bir kod donerse ya da timeout olursa, exponential
backoff ile tekrar denenir:
1dk -> 5dk -> 30dk -> 2sa -> exhausted
exhausted durumuna ulasan bir job icin istemci GET /v1/jobs/{id}
polling'ine dusmelidir — bu endpoint her zaman guncel durumu doner.
Notlar
- MVP'de payload formati sabittir; tenant'a ozel sablon destegi yoktur.
callback_urlbos birakilirsatenant.default_callback_urlkullanilir.- Webhook endpoint'inizin idempotent olmasi onerilir; ayni
document.idicin birden fazla bildirim gelebilir (retry senaryolarinda).