Skip to main content

Overview

Choosing a contract

The choice of contract is a consequence of where the biometric capture happens — not an independent decision. Use the table below as a guide.

ContractUse when…CaptureFlow
Web & SDKThe capture journey is hosted by Unico (Web iFrame, Redirect, or native SDK)Unico controlsProcess is created before capture → user goes through the journey → result returns via callback or polling
APIYour application controls capture (with or without the Unico SDK) and sends the image directly in the callClient controlsImage is sent together with process creation → result returns synchronously

Hosts and environments

ContractSandbox hostProduction host
Web & SDKhttps://api.idcloud.uat.unico.apphttps://api.idcloud.unico.app
APIhttps://api.id.uat.unico.apphttps://api.id.unico.app
OAuth2 / Tokenhttps://identityhomolog.acesso.iohttps://identity.acesso.io

Full details in Environments.

Authentication

All Unico contracts use Bearer token (JWT) obtained via OAuth2 with urn:ietf:params:oauth:grant-type:jwt-bearer.

Full details in Authentication.

Payload differences across contracts

The same conceptual operation ("create an identity verification process") looks different in each contract. Use the tables below as a quick reference when migrating between integrations.

Process creation
AspectWeb & SDKAPI
EndpointPOST /client/v1/processPOST /processes/v1
AuthAuthorization: Bearer <jwt>Authorization: Bearer <jwt> + APIKEY
ImageNot sent (captured by Unico's journey)Sent as imageBase64
User identificationperson.duiType + person.duiValuesubject.code (CPF / CURP)
Document typesCPF, CURP, SSN, NIN, DNI, NIKCPF, CURP only
Pipeline definitionflow (enum, 30+ values)Implicit in APIKEY (capabilities)
CallbackcallbackUri (user redirect)None (synchronous)
WebhookWebhook v1 (final result)Webhook v1 (optional)
Returns journey URLYes (userRedirectUrl)No
ResultAsync (GET poll or webhook)Synchronous (in the response)
SDK tokenYes (token, webAppToken)No
Result retrieval
AspectWeb & SDKAPI
EndpointGET /client/v1/process/\{id\}GET /processes/v1/\{id\} (also in creation response)
Statusstate + result (prefixed enums)status (1, 3, 5)
Result structureNested under process.authenticationInfo.{capability}ResultFlat: unicoId, liveness, government, identityFraudsters
Documentservices[].documents[] (RG/CNH with OCR)Separate endpoint (GET /processes/v1/\{id\}/document)

What's next