Ana içeriğe geç
ShieldID

Webhook'lar ve entegrasyonlar

Kimlik doğrulama webhook'ları, barındırılan bir sayfa ve bir widget.

Başvuru sahibini barındırılan bir doğrulama sayfasına yönlendirin veya widget'ı kendi akışınıza ekleyin, sonuç geldiği anda imzalı bir webhook alın ve bağlantıya sahip herkesin sonucu herkese açık bir kimlik bilgisi kontrol sayfasında doğrulamasına izin verin. Bir öğleden sonrada canlıya alınacak şekilde hazırlanmış bir KYC API entegrasyonu.

  • HMAC-SHA256 ile imzalanmış geri çağrılar
  • Masaüstünden telefona QR ile aktarım
  • Sandbox oturumları asla faturalandırılmaz

Barındırılan doğrulama sayfası

Tüm akış tek bir bağlantıyla.

API üzerinden bir oturum oluşturun, karşılığında bir doğrulama URL'si alın. E-posta, kısa mesaj veya kendi uygulamanız üzerinden gönderin — gerisini sayfa halleder.

Masaüstü

Başvuran bağlantıyı masasında açar.

QR ile devir

Sayfada bir QR kodu ve kısa bir yönerge kartı görünür.

Telefonla çekim

Kodu taramak, aynı oturumu belge ve selfie çekimine geçirir.

Doğrulandı

Oturum, yine telefonda VERIFIED durumuna ulaşır.

Size dönüş

Her iki durumda da dönüş URL'nize bir yönlendirme ve imzalı bir webhook gönderilir.

Ödeme yönlendirmesi gibi çalışır

Başvuru sahibi, oturumunuza özel URL'deki bir sayfaya gelir. Hesap yok, yüklenecek uygulama yok.

QR ile devir, masaüstünden telefona

Masaüstünde açıldığında sayfa, kamera erişimi istemek yerine bir QR kodu ve kısa bir talimat kartı gösterir. Kodu taramak aynı bağlantıyı telefonda açar ve doğrudan belge ile selfie çekimine geçer.

Cevabıyla birlikte size döner

Oturum VERIFIED durumuna ulaştığında sayfa, oturum kimliği ve durum eklenmiş şekilde dönüş URL'nize yönlendirir; böylece uygulamanız başka hiçbir şeyi beklemeden ne olduğunu bilir.

Markalı, uygun planlarda

Şirket adınız, logonuz, vurgu renginiz ile kullanım koşulları ve gizlilik bağlantılarınız; barındırılan sayfaya ve kimlik bilgisi doğrulama sayfasına uygulanır.

Webhook'lar

Sonuç gelir gelmez imzalı bir geri çağırma.

Oturum oluştururken bize bir webhook URL'si verin; oturum biter bitmez sonucu oraya göndeririz, sorgulama gerekmez.

Yalnızca gönderilmez, imzalanır

Her teslimat bir X-Bio-Signature başlığı taşır: istek gövdesinin HMAC-SHA256 değeri. Böylece güvenmeden önce bizden geldiğini kanıtlayabilirsiniz.

Yeniden denenir, gönder-unut değildir

Başarısız olan bir teslimat üç kez yeniden denenir ve her denemeden önce daha uzun süre beklenir.

Her deneme kaydedilir

Başarılı da olsa başarısız da olsa, denemenin kaydını kendi tarafımızda tutarız.

Yakında Her denemeyi kendiniz görebilmeniz için portal içinde bir teslimat günlüğü yakında geliyor.

En son VERIFIED'ı gerçek kabul edin

Yeniden denemeler, bir teslimatın nadir durumlarda sırasız ulaşabileceği anlamına gelir. Mantığınızı bir webhook almaya bağlamayın — oturum kimliğine bağlayın ve sonraki bir VERIFIED'ın öncekinin üzerine yazmasına izin verin. Kendi durumunuzu tutuyorsanız, tekrarları webhook alımına göre değil oturum kimliğine göre ayıklayın.

İmzayı doğrulayın

Harekete geçmeden önce yüke güvenin.

Herhangi bir şeyi ayrıştırmadan önce, ham istek gövdesi üzerinden HMAC-SHA256 değerini yeniden hesaplayın ve X-Bio-Signature ile karşılaştırın.

javascript
const crypto = require("crypto");

function verifySignature(rawBody, signatureHeader, secret) {
  const expected = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
  const a = Buffer.from(expected, "hex");
  const b = Buffer.from(signatureHeader || "", "hex");
  return a.length === b.length && crypto.timingSafeEqual(a, b);
}

// Read the raw body — don't let a JSON body-parser touch it first.
app.post("/hooks/shieldid", express.raw({ type: "application/json" }), (req, res) => {
  const signature = req.header("X-Bio-Signature") || "";
  if (!verifySignature(req.body, signature, process.env.SHIELDID_WEBHOOK_SECRET)) {
    return res.status(401).send("invalid signature");
  }
  const event = JSON.parse(req.body);
  // Treat the latest VERIFIED status as authoritative; de-duplicate by session_id.
  res.status(200).send("ok");
});

JS widget

Barındırılan akış, kendi sayfanıza yerleştirilmiş halde.

Widget bir oturum oluşturur ve aynı barındırılan akışı bir iframe içinde sayfa içinde görüntüler; böylece başvuru sahipleri sitenizden hiç ayrılmaz.

  • Kamera ve mikrofon erişimiyle bir iframe içinde görüntülenir, kapsayıcısının boyutuna uyar.
  • Oturum durumunu, barındırılan sayfayla aynı şekilde okur: oturum bittiğinde dönüş URL'niz ve webhook'unuz aracılığıyla.

Yakında Sayfa içi tamamlanma geri çağrıları (onComplete, onCancel, onStep, otomatik yeniden boyutlandırma) çok yakında geliyor. O zamana kadar bir oturumun ne zaman bittiğini öğrenmek için return_url ve webhook'ları kullanın — bunlar bugün çalışıyor.

Bunu canlıya almadan önce

Widget şu anda tarayıcıda doğrudan bir API anahtarı kabul ediyor. Bunu bir üretim modeli olarak değil, sandbox kolaylığı olarak değerlendirin: oturumu, anahtarınız sunucu tarafında kalacak şekilde kendi backend'inizden oluşturun ve widget'a yalnızca ortaya çıkan oturumu verin; bir ziyaretçinin tarayıcısının okuyabileceği canlı bir anahtarı asla vermeyin.

html
<script src="https://cdn.shieldid.ca/sdk/v1/widget.js"></script>
<div id="shieldid-verify"></div>
<script>
  TLVerify.init({
    apiKey: "vk_sand_your_key", // sandbox only — see the note above for production
    containerId: "shieldid-verify",
    returnUrl: "https://yourapp.example/verified",
    webhookUrl: "https://yourapp.example/hooks/shieldid",
    locale: "en",
  });
</script>

Kimlik bilgisi kontrol sayfası

Doğrulanmış bir oturum için herkese açık bir sayfa.

Bir oturum VERIFIED durumuna ulaştığında, kendi kimlik bilgisi kontrol bağlantısı sade bir dille onay gösterir: başvuru sahibinin adı, belge türü ve durum. Bağlantıya sahip herkes — bir müşterek borçlu, bir resepsiyon görevlisi, bir karşı taraf — panonuza giriş yapmadan sonucu doğrulayabilir.

Jordan Reyes

Örnek veriler

Kaliforniya sürücü belgesi

Doğrulandı

  • Görüntülemek için oturum açmak gerekmez.
  • Üzerinde hiçbir ham kimlik görüntüsü ve hiçbir güven skoru asla görünmez — bir durum ve kimlik bilgisi, başka hiçbir şey.
  • Uygun planlarda, barındırılan sayfayla aynı şekilde markalanır.

Entegrasyon kalıpları

Altı tür işletme bunu nasıl kurar.

Yapı taşları her yerde aynıdır: bir oturum, bir bağlantı veya widget, bir webhook. Hangi kalıbın uyduğu, yanıta nasıl ve ne zaman ihtiyaç duyduğunuza göre değişir.

Kiralama ve mülk yönetimi

Barındırılan bağlantıyı kira başvurusuyla aynı e-postada gönderin. Siz dosyayı incelemeden önce webhook, başvuru sahibini sisteminizde doğrulanmış olarak işaretler.

Hukuk ve hukuk büroları

Bağlantıyı müşteri kabulü sırasında gönderin ve webhook makbuzunu dosyayla birlikte saklayın; böylece vekâlet ilişkisi başlamadan önce müşteri kimlik tespiti kayıt altında olur.

Kondominyum ve HOA birlikleri

Kurulun zaten kullandığı malik veya kiracı kayıt formundan bağlantı verin; sonuç, birim kayıt listesine eklenmeden önce ulaşır.

Fintech ve kredi

Webhook, kendi risk değerlendirme adımınızı otomatik olarak tetikler; böylece başvuru sahibi, bir sonucun geldiğini fark edecek bir kişiyi asla beklemez.

Pazaryerleri ve gig platformları

Satıcı veya sürücü kayıt süreçlerine widget'ı yerleştirerek uygulamanızdan hiç çıkmayan bir akış elde edin; yukarıda önerildiği gibi oturumu arka uç sisteminizden oluşturun.

E-signature

Barındırılan akışı imza töreni başlamadan önce çalıştırın ve belgelerin teslimini başvuru sahibinin kendi beyanına değil, webhook'a bağlayın.

Sorular

Entegrasyon hakkında net yanıtlar.

Başlayın

Bir webhook bağlayın. Tetiklenişini izleyin.

Webhook URL'si ile bir sandbox oturumu oluşturun, kendi telefonunuzda bir doğrulama çalıştırın ve gönderilen imzalı geri çağırmayı okuyun.