Passer au contenu principal
ShieldID

Webhooks et intégrations

Webhooks de vérification d'identité, page hébergée et widget.

Envoyez un demandeur vers une page de vérification hébergée ou intégrez le widget à votre propre parcours, recevez un webhook signé dès qu'un résultat est disponible, et laissez toute personne qui a le lien le confirmer sur une page publique de vérification d'attestation. Une intégration d'API KYC conçue pour être en production en un après-midi.

  • Rappels signés HMAC-SHA256
  • Transfert par code QR de l'ordinateur au téléphone
  • Les sessions du bac à sable ne sont jamais facturées

Page de vérification hébergée

Un seul lien suffit pour tout le parcours.

Créez une session par l'API et vous obtenez une URL de vérification. Envoyez-la par courriel, par texto ou dans votre propre application — la page s'occupe du reste.

Ordinateur de bureau

Le demandeur ouvre le lien à son bureau.

Transfert par code QR

La page affiche un code QR et une courte fiche d’instructions.

Capture sur téléphone

Le balayage fait passer la même session à la capture du document et de l’égoportrait.

Vérifié

La session atteint VERIFIED, toujours sur le téléphone.

De retour chez vous

Une redirection vers votre URL de retour, plus un webhook signé, dans les deux cas.

Fonctionne comme une redirection de paiement

Le demandeur arrive sur une page à l'URL propre à votre session. Aucun compte, aucune application à installer.

Transfert par code QR, de l'ordinateur au téléphone

Ouverte sur un ordinateur, la page affiche un code QR et une courte fiche d'instructions au lieu de demander l'accès à la caméra. Le balayage ouvre le même lien sur le téléphone, qui passe directement à la capture du document et de l'égoportrait.

Vous revient, avec la réponse

Une fois que la session atteint VERIFIED, la page redirige vers votre URL de retour en y ajoutant l'ID de session et le statut, afin que votre application sache ce qui s'est passé sans rien attendre d'autre.

À votre image, avec les forfaits admissibles

Le nom de votre entreprise, votre logo, votre couleur d'accent et vos liens vers les conditions et la politique de confidentialité, appliqués à la page hébergée et à la page de vérification des identifiants.

Webhooks

Un rappel signé, dès qu'un résultat est disponible.

Donnez-nous une URL de webhook lorsque vous créez une session et nous y publions le résultat dès que la session se termine, sans interrogation périodique.

Signé, pas seulement envoyé

Chaque livraison comporte un en-tête X-Bio-Signature : un HMAC-SHA256 du corps de la requête, pour que vous puissiez prouver qu'elle vient de nous avant de lui faire confiance.

Retentée, pas lancée et oubliée

Une livraison qui échoue est retentée trois fois, avec une attente plus longue avant chaque tentative.

Chaque tentative est consignée

Réussite ou échec, nous conservons de notre côté une trace de la tentative.

Bientôt disponible Un journal des livraisons dans le portail, pour que vous puissiez voir chaque tentative vous-même, arrive bientôt.

Considérez le plus récent VERIFIED comme la vérité

Avec les nouvelles tentatives, une livraison peut, dans de rares cas, arriver dans le désordre. Ne fondez pas votre logique sur la réception d'un webhook — fondez-la sur l'ID de session, et laissez un VERIFIED plus récent écraser un plus ancien. Si vous conservez votre propre état, dédoublonnez par ID de session plutôt que par réception de webhook.

Vérifiez la signature

Faites confiance à la charge utile avant d’agir.

Recalculez le HMAC-SHA256 sur le corps brut de la requête et comparez-le à X-Bio-Signature avant d’analyser quoi que ce soit.

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");
});

Widget JS

Le parcours hébergé, intégré à votre propre page.

Le widget crée une session et affiche le même parcours hébergé en ligne, dans un iframe, de sorte que les demandeurs ne quittent jamais votre site.

  • S'affiche dans un iframe avec accès à la caméra et au microphone, dimensionné selon son conteneur.
  • Lit le statut de la session de la même façon que la page hébergée : au moyen de votre URL de retour et de votre webhook, une fois la session terminée.

Bientôt disponible Les rappels de fin intégrés à la page (onComplete, onCancel, onStep, redimensionnement automatique) arrivent bientôt. D'ici là, utilisez return_url et les webhooks pour savoir quand une session se termine — ils fonctionnent dès aujourd'hui.

Avant de passer en production

Le widget accepte actuellement une clé d'API directement dans le navigateur. Considérez cela comme une commodité du bac à sable, et non comme une pratique de production : créez la session à partir de votre propre serveur en gardant votre clé côté serveur, et ne remettez au widget que la session obtenue, jamais une clé de production que le navigateur d'un visiteur peut lire.

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>

Page de vérification d'attestation

Une page publique pour une session vérifiée.

Une fois qu'une session atteint VERIFIED, son propre lien de vérification d'attestation affiche une confirmation en langage clair : le nom du demandeur, le type de document et le statut. Toute personne qui détient le lien — un cosignataire, un commis à l'accueil, une contrepartie — peut confirmer le résultat sans se connecter à votre tableau de bord.

Jordan Reyes

Données d'exemple

Permis de conduire de l’Ontario

Vérifié

  • Aucune connexion requise pour la consulter.
  • Aucune image brute de pièce d'identité ni aucun score de confiance n'y figure jamais — un statut et l'identité, rien de plus.
  • Personnalisée aux couleurs de votre marque, comme la page hébergée, avec les forfaits admissibles.

Modèles d'intégration

Comment six types d'entreprises procèdent au branchement.

Les éléments de base sont les mêmes partout : une session, un lien ou un widget, un webhook. Le modèle qui convient varie selon la manière et le moment où vous avez besoin de la réponse.

Location et gestion immobilière

Envoyez le lien hébergé dans le même courriel que la demande de location. Le webhook fait passer le demandeur au statut vérifié dans votre système avant que vous examiniez le dossier.

Services juridiques et cabinets d'avocats

Envoyez le lien pendant l'accueil du client et conservez l'accusé de réception du webhook au dossier, de sorte que l'identification du client soit consignée avant le début du mandat.

Syndicats de copropriété

Renvoyez depuis le formulaire d'inscription des propriétaires ou des locataires que le conseil utilise déjà; le résultat arrive avant que l'unité soit ajoutée au registre.

Technologie financière et prêt

Le webhook déclenche automatiquement votre propre étape de souscription, de sorte qu'un demandeur n'attend jamais qu'une personne remarque l'arrivée d'un résultat.

Places de marché et plateformes de travail à la demande

Intégrez le widget à l'accueil des vendeurs ou des chauffeurs pour un parcours qui ne quitte jamais votre application; créez la session à partir de votre serveur, comme recommandé ci-dessus.

E-signature

Exécutez le parcours hébergé avant le début de la signature, et conditionnez la remise des documents au webhook, et non à la parole du demandeur.

Questions

Des réponses claires sur l’intégration.

Commencer

Configurez un webhook. Regardez-le se déclencher.

Créez une session dans le bac à sable avec une URL de webhook, effectuez une vérification sur votre propre téléphone et lisez le rappel signé qu'il envoie.