Embedded Biometric Session
Biometric
Embedded Biometric Session
Start a hosted biometric re-authentication session after approved KYC — iframe-ready session URL, webhooks, and Güeno final verdict.
POST
Embedded Biometric Session
Overview
Embedded Biometric lets you re-verify that the person completing a flow is the same individual who passed KYC earlier. Unlike the synchronous Biometric Check (where your app uploads a selfie), this flow uses a hosted capture UI that Gu1 returns assessionUrl. Your app embeds that URL in an iframe (or opens a redirect) so liveness and face capture run in a controlled environment.
Prerequisites
- Approved KYC in Gu1 for the person entity (
status: approvedon a session-based validation). - Reference portrait available from that KYC (selfie stored when the validation was approved). Required for session create (
NO_PORTRAITif missing). - KYC enabled for your organization (same API key and permissions as session-based validation). Gu1 provisions the internal hosted-capture configuration; integrators do not set workflows or extra secrets. If your org is not provisioned yet, create may return
BIOMETRIC_WORKFLOW_NOT_CONFIGURED(400) — contact your Gu1 account team. - Gu1 Biometric active for your organization (
global_gueno_biometric_kyc). If not enabled, create returnsNOT_ENABLED(403) — request activation from Gu1.
Flow
Create session
Body
UUID of the person entity with approved KYC.
Optional HTTPS endpoint Gu1 POSTs to on terminal statuses (
approved, rejected, abandoned, expired). Signed with your KYC webhook secret when configured.Optional redirect URL after the user finishes in the hosted UI.
UI language, e.g.
es, en, pt.Optional override for the biometric workflow ID (otherwise from org KYC settings).
Response 201
Embed in your app
sessionUrl, or a compatible Web SDK initialized with the same URL.
Poll or sync status
GET /api/kyc/biometric/sessions/:id— current Gu1 status for one session.GET /api/kyc/biometric/entities/:entityId/current— current session = latest withstatus: approved(bycompletedAt). Newerrejected,pending, orin_progressattempts do not replace a prior approval. Entity list responses includecurrentSessionIdwith the same rule.POST /api/kyc/biometric/sessions/:id/sync— refresh from provider if webhooks are delayed.POST /api/kyc/biometric/sessions/:id/cancel— manually cancelpendingorin_progresssessions (markscancelledin Gu1).
The platform may report In Review while capture is reviewed; Gu1 maps that to
in_progress until the final verdict (approved or rejected). Only terminal outcome states define the entity current session.Webhooks
Two channels:- Per-request
webhookUrl— only if you sent it inPOST /sessions; fires on terminal status. - Organization webhooks — subscribe to
biometric.session_*events in Webhook configuration. See Biometric webhook events.
Comparison with synchronous biometric
POST /api/kyc/biometric | POST /api/kyc/biometric/sessions | |
|---|---|---|
| Capture | Your app sends image | Hosted UI (iframe) |
| Fraud resistance | Lower | Higher (liveness in hosted UI) |
| Async | No | Yes |
webhookUrl per request | No | Yes |