Webhooks och integrationer
Webhooks för identitetsverifiering, en hostad sida och en widget.
Skicka en sökande till en hostad verifieringssida eller lägg widgeten i ditt eget flöde, få en signerad webhook så fort ett resultat finns, och låt vem som helst med länken bekräfta det på en offentlig sida för legitimationskontroll. En KYC API-integration byggd för att gå live på en eftermiddag.
- HMAC-SHA256-signerade återanrop
- QR-överlämning från dator till telefon
- Sandbox-sessioner faktureras aldrig
Hostad verifieringssida
En länk sköter hela flödet.
Skapa en session via API och du får tillbaka en verifierings-URL. Skicka den med e-post, sms eller i din egen app – sidan sköter resten.
Dator
Den sökande öppnar länken vid sitt skrivbord.
QR-överlämning
Sidan visar en QR-kod och ett kort med korta instruktioner.
Fångst i telefonen
När koden skannas växlar samma session till dokument- och selfiefångst.
Verifierad
Sessionen når VERIFIED, fortfarande i telefonen.
Tillbaka till dig
En omdirigering till din retur-URL, plus en signerad webhook, oavsett utfall.
Fungerar som en betalningsomdirigering
Sökanden kommer till en sida på sessionens egen URL. Inget konto, ingen app att installera.
QR-överlämning, från dator till mobil
När sidan öppnas på en dator visas en QR-kod och ett kort instruktionskort i stället för en begäran om kameraåtkomst. Skannas koden öppnas samma länk på mobilen, som går direkt till fotografering av dokument och selfie.
Tillbaka till dig, med svaret
När sessionen når VERIFIED omdirigeras sidan till din retur-URL med sessions-ID och status tillagda, så att din app vet vad som hänt utan att behöva vänta på något annat.
Med egen varumärkesprofil, på kvalificerande planer
Ditt företagsnamn, din logotyp, din accentfärg samt länkar till villkor och integritetspolicy, tillämpade på den hostade sidan och sidan för kontroll av inloggningsuppgifter.
Webhooks
En signerad callback, i samma stund som ett resultat finns.
Ange en webhook-URL när du skapar en session så skickar vi resultatet dit så fort sessionen är klar, utan behov av polling.
Signerad, inte bara skickad
Varje leverans har en X-Bio-Signature-header: en HMAC-SHA256 av request-bodyn, så att du kan styrka att den kommer från oss innan du litar på den.
Görs om, inte skicka-och-glöm
En leverans som misslyckas görs om tre gånger, med längre väntetid före varje försök.
Varje försök registreras
Lyckat eller misslyckat – vi sparar en logg över försöket hos oss.
Kommer snart En leveranslogg i portalen, så att du själv kan se varje försök, kommer snart.
Behandla den senaste VERIFIED som sanningen
Omförsök gör att en leverans i sällsynta fall kan komma i fel ordning. Basera inte din logik på att en webhook tas emot över huvud taget – basera den på sessions-ID, och låt en senare VERIFIED skriva över en tidigare. Om du för eget tillstånd, avduplicera på sessions-ID i stället för på mottagen webhook.
Verifiera signaturen
Lita på innehållet innan du agerar på det.
Beräkna HMAC-SHA256 på nytt över den råa begärankroppen och jämför med X-Bio-Signature innan du tolkar något.
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
Det hostade flödet, inlagt på din egen sida.
Widgeten skapar en session och återger samma hostade flöde inbäddat, i en iframe, så att sökande aldrig lämnar din webbplats.
- Återges i en iframe med kamera- och mikrofonåtkomst, anpassad efter sin behållare.
- Läser sessionsstatusen på samma sätt som den hostade sidan: via din retur-URL och din webhook, när sessionen är klar.
Kommer snart Återanrop för slutförande på sidan (onComplete, onCancel, onStep, automatisk storleksändring) kommer snart. Använd return_url och webhooks tills dess för att få veta när en session avslutas – de fungerar i dag.
Innan du går i produktion
Widgeten accepterar för närvarande en API-nyckel direkt i webbläsaren. Se det som en bekvämlighet i sandbox, inte ett mönster för produktion: skapa sessionen från din egen backend med nyckeln lagrad på serversidan, och ge widgeten bara den resulterande sessionen, aldrig en skarp nyckel som en besökares webbläsare kan läsa.
<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>Sida för legitimationskontroll
En offentlig sida för en verifierad session.
När en session når VERIFIED visar dess egen länk för legitimationskontroll en bekräftelse i klartext: den sökandes namn, dokumenttyp och status. Alla som har länken – en medunderskrivare, en receptionist, en motpart – kan bekräfta resultatet utan att logga in i din instrumentpanel.
Jordan Reyes
ExempeldataOntario-körkort
Verifierad
- Ingen inloggning krävs för att se den.
- Ingen ID-bild i originalskick och ingen konfidenspoäng visas någonsin på den – en status och identiteten, inget mer.
- Med samma varumärkesprofil som den hostade sidan, för kvalificerade abonnemang.
Integrationsmönster
Så kopplar sex typer av företag ihop detta.
Byggstenarna är desamma överallt: en session, en länk eller en widget, en webhook. Vilket mönster som passar beror på hur och när svaret behövs.
Juridik och advokatbyråer
Bostadsrättsföreningar
Fintech och utlåning
Marknadsplatser och gigplattformar
E-signature
Frågor
Raka svar om integrationen.
Kom igång
Koppla upp en webhook. Se den avfyras.
Skapa en sandbox-session med en webhook-URL, kör en verifiering på din egen mobil och läs den signerade callback som skickas.