KYC Docs Get credentials
Docs › Hosted KYC › Hosted links

Hosted links

Send a customer to Blink's hosted verification page with nothing but a link. Your backend still creates the session and reads the result; there is no SDK in your product.

page https://kyc-api.blink-pay.net/h/ default language Arabic
hosted linkurl
https://kyc-api.blink-pay.net/h/?t=<sessionToken>&lang=en
ParameterRequiredDescription
tyesThe sessionToken from the Session API. Exactly one.
langnoen for English. Without it the page is in Arabic.

Flow

  1. Your backend creates a session and builds the link from its sessionToken.
  2. Show the link to the customer — a button in your app or site, an SMS, or a QR code.
  3. The customer completes the document and liveness steps on Blink's page.
  4. Your backend reads the decision with the Result API, using the sessionId you stored.
server.jsjavascript
const { sessionId, sessionToken } = await createBlinkSession(user);   // Session API
await db.kycSessions.insert({ userId: user.id, sessionId });

const link = `https://kyc-api.blink-pay.net/h/?t=${encodeURIComponent(sessionToken)}&lang=en`;
await sms.send(user.phone, `Verify your identity: ${link}`);

Opening a hosted link in your app

Apps built on the Flutter SDK can run a hosted link with native capture instead of the browser. Parsing the link makes no network request:

lib/kyc.dartdart
final outcome = await BlinkKyc.fromHostedLink(scannedLink)
    .present(context)
    .run();

Only accept links whose origin is the Blink API you expect before passing them in.

Treat the link as a secret