Saltar al contingut principal

Visió general

La Cerca facial és una cerca biomètrica 1:N: Didit agafa la cara detectada més gran de la teva user_image i la cerca a l’índex de cerca facial de la teva aplicació — cares registrades a partir de sessions de verificació, crides d’API independents desades, càrregues directes de cares al perfil d’usuari i les teves llistes de bloqueig i d’autorització. És diferent de la Coincidència facial, que és 1:1 — la Coincidència facial compara una selfie amb el retrat d’un document específic, mentre que la Cerca facial planteja la pregunta: «hem vist abans aquesta persona en algun lloc?». Hi ha dos comportaments que convé entendre abans d’analitzar l’informe:
  • Només les coincidències amb la llista de bloqueig provoquen un rebuig. face_search.status és Declined només quan s’activa una advertència FACE_IN_BLOCKLIST o POSSIBLE_FACE_IN_BLOCKLIST. Les coincidències duplicades per si soles retornen Approved — inspecciona matches i warnings, no només status.
  • Persistència i registre opcionals. Quan save_api_request=true (per defecte), la crida es desa com una sessió de tipus API i la cara cercada es registra a l’índex de cerca facial. Les cares registrades mitjançant crides de Cerca facial s’exclouen dels futurs resultats de la Cerca facial, de manera que les cerques repetides mai no coincideixen entre si. Passa save_api_request=false per a una consulta d’un sol ús: no s’emmagatzema res i la cara no es registra.

On apareixen els resultats

La Cerca facial és una API independent. Els resultats de la cerca es retornen de manera síncrona, únicament a la resposta de POST /v3/face-search/, com un objecte singular face_search al nivell superior:
No hi ha cap matriu en plural face_searches[] enlloc — la convenció de matrius en plural emprada per id_verifications[], aml_screenings[] i liveness_checks[] a l’endpoint de decisió de sessió no s’aplica aquí. Quan save_api_request=true (per defecte), la crida també es desa com una sessió de tipus API:
  • Consola empresarial — la sessió apareix a la teva llista de sessions amb la imatge de cerca, les coincidències i les advertències.
  • GET /v3/session/{sessionId}/decision/ — recuperable mitjançant el request_id retornat com a ID de sessió. Les dades persistides es mostren com una entrada FACE_SEARCH a features[] i com un element de liveness_checks[] que conté les matches emmagatzemades (amb valors de match_image_url signats recentment) i warnings — no pas com un objecte face_search.
Quan save_api_request=false, request_id és un UUID de correlació transitori: la sessió no s’emmagatzema mai, de manera que no es pot obtenir des de la Consola ni des de l’endpoint de decisió.

Esquema

Consulta Cerca facial a la referència de models de dades per a les taules de camps canòniques. L’estructura següent reflecteix el que l’endpoint retorna realment en temps d’execució.
Notes sobre els camps:
  • matches[] té un límit de 5 entrades per sobre del llindar mínim de similitud, ordenades per similitud descendent (search_type=blocklisted_or_approved classifica primer les entrades a la llista de bloqueig, després les de la llista d’autorització i finalment per similitud).
  • source indica d’on s’ha registrat la cara coincident: session — una sessió de verificació o una crida d’API independent desada; imported — una cara carregada directament a un perfil d’usuari; list_entry — una cara associada a una de les teves llistes; retained_template — una plantilla biomètrica sense imatge que l’aplicació ha conservat després d’eliminar la sessió d’origen. session_id, session_number, status i api_service són null per a coincidències de tipus imported, list_entry i retained_template.
  • Les coincidències de tipus retained_template contenen vendor_user_id, vendor_data i biometric_template_id, i sempre són null per a match_image_url, user_details i tot el que estigui relacionat amb la sessió: la sessió que va generar la cara ja no existeix i la plantilla no conté cap imatge ni dada d’identitat. is_blocklisted sempre és false per a una plantilla retinguda; una cara a la llista de bloqueig es notifica per separat com una coincidència de tipus list_entry. Purga la plantilla amb DELETE /v3/biometric-templates/{biometric_template_id}/.
  • api_service és el tipus d’API independent de la sessió coincident (en majúscules, p. ex. PASSIVE_LIVENESS) i null quan la cara coincident prové d’una sessió de verificació estàndard de flux de treball.
  • user_details prové de la verificació documental de la sessió coincident. Per a coincidències amb source: imported, s’obté del perfil d’usuari (full_name definit, document_type/document_number com a null); és null quan no hi ha dades d’identitat (per exemple, sessions de només prova de vida).
  • Les advertències utilitzen una estructura reduïda en comparació amb les advertències dels fluxos de treball: no hi ha cap node_id. El contracte de resposta documentat (FaceSearchResponseSerializer) declara els cinc camps risk, additional_data, log_type, short_description i long_description; el payload en temps d’execució inclou addicionalment feature, que aquí sempre és "LIVENESS". Consulta Advertències de Cerca facial.
  • No s’exclouen les coincidències del mateix usuari — a diferència de la detecció de duplicats dels fluxos de treball, l’endpoint independent no filtra sessions anteriors amb el mateix vendor_data, de manera que un usuari legítim que torna coincideix amb les seves pròpies sessions anteriors.

Valors d’estat

El camp face_search.status de nivell superior es deriva de warnings[]. L’estat status de la coincidència reflecteix el resultat de la verificació de la sessió coincident i és independent. Nota: quan la imatge de cerca no conté cap cara detectable, l’API retorna HTTP 400 amb {"error": "No face detected in the image"} abans que es construeixi un objecte face_search — no hi ha cap estat Declined per a aquest cas. Un saldo de crèdits insuficient retorna HTTP 403 abans de qualsevol processament de la imatge.

Exemples

Aprovada — coincidència duplicada, sense llista de bloqueig

Rebutjada — coincidència amb la llista de bloqueig

Relacionat

Quan save_api_request=true, els valors de match_image_url són URL signades i de curta durada — torna a cridar l’endpoint de decisió de la sessió amb el request_id retornat per obtenir-ne de noves. Quan save_api_request=false, són rutes d’emmagatzematge intern i no es poden descarregar directament. Emmagatzema només l’id de la sessió coincident, l’estat i similarity_percentage al teu costat — no conservis la imatge biomètrica subjacent.
Darrera modificació el 7 de novembre del 2026