Polling yapmadan terminal verification sonuclarini almak icin webhook kullanin.

Mevcut terminal event'ler

Su anda yayinlanan terminal event'ler:

  • verification.completed
  • verification.review_required
  • verification.failed

Webhook yapilandirmasi her istemci uygulamasi icin tutulur. Her uygulama kendi endpoint'ine ve imza gizli anahtarina sahiptir.

Gerekli basliklar

Her giden istekte su basliklar bulunur:

  • Content-Type: application/json
  • User-Agent: docufykit-webhooks/1.0
  • X-Webhook-Event
  • X-Webhook-Id
  • X-Webhook-Timestamp
  • X-Webhook-Signature

Imza formati

Imza formati sunlardir:

sha256=HMAC_SHA256(secret, timestamp + "." + delivery_id + "." + raw_body)

Imzayi yeniden serialize edilmis JSON ile degil, ham request body baytlariyla dogrulayin.

import crypto from "node:crypto";

function verifyDocufykitWebhook({
  secret,
  timestamp,
  deliveryId,
  rawBody,
  signature,
}: {
  secret: string;
  timestamp: string;
  deliveryId: string;
  rawBody: Buffer;
  signature: string;
}) {
  const payload = Buffer.concat([
    Buffer.from(timestamp, "utf8"),
    Buffer.from(".", "utf8"),
    Buffer.from(deliveryId, "utf8"),
    Buffer.from(".", "utf8"),
    rawBody,
  ]);

  const expected =
    "sha256=" +
    crypto.createHmac("sha256", secret).update(payload).digest("hex");

  const actual = Buffer.from(signature, "utf8");
  const wanted = Buffer.from(expected, "utf8");

  return (
    actual.length === wanted.length &&
    crypto.timingSafeEqual(actual, wanted)
  );
}

Ortama gore retry davranisi

Sandbox

  • yalnizca tek teslimat denemesi
  • otomatik retry plani yok
  • dead_letter durumu yok
  • basarisiz teslimatlar manuel replay yapilana kadar failed kalir

Production

Endpoint'iniz 2xx donmezse platform su planla otomatik retry yapar:

  • 30 saniye
  • 2 dakika
  • 10 dakika
  • 1 saat
  • 6 saat
  • 24 saat

Son denemeden sonra teslimat dead_letter durumuna gecer.

Replay akisi

Musteriler sunlari yapabilir:

  • portal uzerinden son webhook request/response ciftini incelemek
  • failed ve dead-letter teslimatlari gormek
  • deliveries sayfasindan manuel replay baslatmak

Entegrasyon notlari

  • Her ortam icin ayri webhook URL kullanin.
  • Sandbox ve production icin ayri uygulamalar ve ortam onekli API anahtarlari kullanin.
  • Imzali webhook teslimatini birincil async sonuc yolu olarak ele alin.
  • REST sorgularini imza dogrulamasinin yerine gecen bir yol olarak degil, ikincil inceleme yolu olarak kullanin.