Lumaktaw sa pangunahing nilalaman
ShieldID

Mga webhook at integration

Mga webhook para sa identity verification, isang hosted page at isang widget.

Ipadala ang aplikante sa hosted verification page o ilagay ang widget sa sarili ninyong flow, makakuha ng signed webhook sa sandaling dumating ang resulta, at hayaan ang sinumang may link na kumpirmahin ito sa pampublikong pahina ng credential-check. Isang KYC API integration na binuo para mag-live sa loob ng isang hapon.

  • Mga callback na pinirmahan ng HMAC-SHA256
  • QR hand-off mula desktop papuntang telepono
  • Hindi kailanman sinisingil ang mga sandbox session

Hosted verification page

Isang link para sa buong flow.

Lumikha ng session sa pamamagitan ng API at makakakuha ka ng verification URL. Ipadala ito sa email, text o sa sarili mong app — ang page na ang bahala sa iba.

Desktop

Binubuksan ng applicant ang link sa kanyang mesa.

QR hand-off

Ipinapakita ng page ang isang QR code at isang maikling instruction card.

Phone capture

Kapag na-scan ito, lilipat ang parehong session sa pag-capture ng dokumento at selfie.

Na-verify

Aabot ang session sa VERIFIED, nasa phone pa rin.

Balik sa iyo

Isang redirect sa iyong return URL, kasama ang isang signed na webhook, sa alinmang kaso.

Gumagana tulad ng payment redirect

Mapupunta ang aplikante sa isang page sa mismong URL ng iyong session. Walang account, walang app na i-install.

QR hand-off, mula desktop papuntang telepono

Kapag binuksan sa desktop, nagpapakita ang page ng QR code at maikling instruction card sa halip na humingi ng access sa camera. Kapag na-scan ito, bubuksan ang parehong link sa telepono, na dederetso sa document at selfie capture.

Bumabalik sa iyo, dala ang sagot

Kapag naabot na ng session ang VERIFIED, magre-redirect ang page sa iyong return URL na may kalakip na session ID at status, kaya alam ng iyong app ang nangyari nang hindi naghihintay ng iba pa.

May branding, sa mga kwalipikadong plan

Ang pangalan ng iyong kumpanya, logo, accent colour at mga link sa terms at privacy, na inilalapat sa hosted page at sa credential-check page.

Mga webhook

Isang naka-sign na callback, sa sandaling dumating ang resulta.

Magbigay ng webhook URL kapag lumikha ka ng session at ipo-post namin ang resulta rito pagkatapos mismong matapos ang session, hindi na kailangan ng polling.

Naka-sign, hindi basta ipinadala

Bawat delivery ay may X-Bio-Signature header: isang HMAC-SHA256 ng request body, para mapatunayan mong galing ito sa amin bago mo ito pagkatiwalaan.

May retry, hindi fire-and-forget

Ang delivery na pumalya ay inuulit nang tatlong beses, na may mas mahabang paghihintay bago ang bawat pagtatangka.

Itinatala ang bawat pagtatangka

Matagumpay man o hindi, nagtatago kami ng tala ng pagtatangka sa aming panig.

Malapit na Malapit nang dumating ang delivery log sa loob ng portal, para makita mo mismo ang bawat pagtatangka.

Ituring na katotohanan ang pinakabagong VERIFIED

Dahil sa mga retry, maaaring sa bihirang pagkakataon ay dumating nang hindi sunud-sunod ang isang delivery. Huwag nang ibatay ang iyong logic sa pagtanggap ng webhook — ibatay ito sa session ID, at hayaang palitan ng mas bagong VERIFIED ang naunang VERIFIED. Kung may sarili kang state, mag-de-duplicate batay sa session ID sa halip na sa pagtanggap ng webhook.

I-verify ang signature

Pagkatiwalaan ang payload bago kumilos batay dito.

I-recompute ang HMAC-SHA256 sa raw request body at ihambing ito sa X-Bio-Signature bago mag-parse ng anuman.

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

Ang hosted flow, nakalagay mismo sa sarili mong page.

Lumilikha ang widget ng session at nire-render ang parehong hosted flow nang inline, sa isang iframe, kaya hindi umaalis ang mga aplikante sa iyong site.

  • Nire-render sa isang iframe na may access sa camera at mikropono, na akma ang laki sa container nito.
  • Binabasa ang session status sa parehong paraan ng hosted page: sa pamamagitan ng inyong return URL at webhook, kapag natapos na ang session.

Malapit na Paparating na ang mga in-page completion callback (onComplete, onCancel, onStep, automatic resize). Hanggang doon, gamitin ang return_url at mga webhook para malaman kung kailan natapos ang isang session — gumagana na ang mga ito ngayon.

Bago mo ito i-ship sa production

Sa ngayon, tumatanggap ang widget ng API key nang direkta sa browser. ituring itong sandbox convenience, hindi pattern para sa production: likhain ang session mula sa sarili ninyong backend na nasa server-side lang ang inyong key, at ibigay sa widget ang resultang session lamang, hindi kailanman ang live key na mababasa ng browser ng bisita.

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>

Pahina ng credential-check

Isang pampublikong pahina para sa na-verify na session.

Kapag umabot na sa VERIFIED ang isang session, ang sarili nitong credential-check link ay nagpapakita ng kumpirmasyon sa simpleng wika: ang pangalan ng aplikante, ang uri ng dokumento at ang status. Sinumang may hawak ng link — isang co-signer, isang front-desk clerk, isang katapat na partido — ay makakakumpirma ng resulta nang hindi nagsa-sign in sa inyong dashboard.

Jordan Reyes

Sample data

Driver’s licence ng Ontario

Na-verify

  • Hindi kailangang mag-sign in para makita ito.
  • Walang raw na ID image at walang confidence score na lilitaw rito kailanman — status at pagkakakilanlan lang, wala nang iba.
  • May branding na kapareho ng hosted page, sa mga kwalipikadong plano.

Mga pattern ng integration

Paano ito isinasama ng anim na uri ng negosyo.

Pareho ang mga building block saanman: isang session, isang link o widget, isang webhook. Nag-iiba ang angkop na pattern ayon sa kung paano at kailan ninyo kailangan ang sagot.

Rental at property management

Ipadala ang hosted link sa parehong email ng rental application. Gagawing verified ng webhook ang aplikante sa inyong sistema bago ninyo suriin ang file.

Legal at mga law firm

Ipadala ang link sa client intake at itago ang webhook receipt kasama ng file, para nakatala na ang client identification bago magsimula ang retainer.

Mga condo corporation

Mag-link mula sa registration form ng may-ari o nangungupahan na ginagamit na ng board; darating ang resulta bago idagdag ang unit sa roll.

Fintech at lending

Awtomatikong pinapagana ng webhook ang sarili ninyong underwriting step, kaya hindi na kailangang maghintay ng aplikante sa taong magpapansin na dumating na ang resulta.

Mga marketplace at gig platform

I-embed ang widget sa seller o driver onboarding para sa flow na hindi umaalis sa iyong app; likhain ang session mula sa iyong backend, ayon sa rekomendasyon sa itaas.

E-signature

Patakbuhin ang hosted flow bago magsimula ang signing ceremony, at i-gate ang paglalabas ng dokumento batay sa webhook, hindi sa sariling sabi ng aplikante.

Mga Tanong

Mga tuwirang sagot tungkol sa integration.

Magsimula

Mag-wire up ng webhook. Panoorin itong mag-fire.

Lumikha ng sandbox session na may webhook URL, magpatakbo ng verification sa sarili mong telepono, at basahin ang naka-sign na callback na ipinapadala nito.