Pular para o conteúdo principal

Criar Processo

MarkdownChatGPTClaude

Este é o ponto de entrada de toda integração com a Unico API. Seu back-end o chama para criar um processo; seu front-end usa os tokens retornados para renderizar o iFrame, redirecionar o usuário ou inicializar um SDK nativo.

Para o fluxo de integração completo, veja Fluxos.

Endpoint​

AmbienteURL
ProduçãoPOST https://api.idcloud.unico.app/client/v1/process
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

Requisição​

Headers
HeaderValor
AuthorizationBearer <access_token> (veja Autenticação)
Content-Typeapplication/json
Parâmetros do body
Os requisitos de campo dependem do fluxo

Se um campo é obrigatório, opcional ou não aplicável depende do flow que você está integrando — consulte Fluxos para a receita específica que você está usando antes de assumir o requisito de um campo apenas por esta tabela.

CampoTipoDescrição
callbackUristringURL para a qual o usuário é redirecionado após o fim da jornada. Use / para fluxos de SDK nativo em que o callback é tratado dentro do app.
flowstringIdentificador do fluxo — determina quais capacidades são executadas. Exemplos: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. Veja Fluxos disponíveis.
purposestringFinalidade de negócio. Valores aceitos: creditprocess, biometryonboarding, carpurchase, ageverification.
person.duiTypeenumTipo de documento. Veja os valores de duiType abaixo.
person.duiValuestringNúmero do documento, sem formatação.
person.friendlyNamestringNome de exibição do usuário mostrado na UI da jornada. Máximo de 50 caracteres.
person.phonestringNúmero de telefone no formato DDI + DDD + número, sem separadores. Obrigatório ao enviar notificações via SMS ou WhatsApp.
person.emailstringEndereço de e-mail. Obrigatório para fluxos com Assinatura Eletrônica.
person.​notificationsarrayCanais de notificação para o envio do link da jornada. Cada item tem notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS, ou NOTIFICATION_CHANNEL_EMAIL.
referencesarrayEntradas de referência para fluxos de Validação 1:1 e Revalidação Inteligente. Cada item contém referenceType (REFERENCE_TYPE_IMAGE_BASE64 ou REFERENCE_TYPE_PROCESS_ID) e referenceContent (imagem codificada em base64 ou UUID do processo). Envie no máximo um item — um array maior é rejeitado com 400, e referenceContent não pode estar vazio.
useCasestringCenário de Revalidação Inteligente. Obrigatório para 🇧🇷 idsmart, idsmart_r2, idsmart_tp1. Exemplos: USE_CASE_LOGIN, USE_CASE_FIN_TRANSACTIONS.
clientReferencestringIdentificador único do usuário no seu sistema. Obrigatória para a capacidade Multi Contas. Único na sua base, máximo de 256 caracteres, sem espaços.
companyBranchIdstring (UUID)ID da filial. Obrigatório apenas se a service account tiver mais de uma filial associada.
expiresInstringJanela de validade do processo a partir da criação. Formato: "3600s". O padrão é 7 dias se omitido.
flowConfigobjectSobreposições de configuração por fluxo.
flowConfig.​biometryCapture.​enabledBackCamerabooleanUsa a câmera traseira do dispositivo. Não compatível com fluxos de captura de documento ou Assinatura Eletrônica.
contextualizationobjectContexto da transação mostrado ao usuário durante a jornada para explicar a captura. Disponível para clientes de qualquer região — não se limita a um país específico.
contextualization.​company_namestringNome da empresa exibido durante a jornada. Máximo de 20 caracteres.
contextualization.​currencystringCódigo de moeda exibido ao usuário. Valores aceitos: BRL, MXN, USD.
contextualization.​pricenumberValor da transação exibido ao usuário.
contextualization.​localeobjectTexto localizado mostrado durante a jornada. Chaves: ptBr, enUs, esMx — esses são os únicos idiomas suportados para o texto, independentemente da região do cliente.
contextualization.locale.{ptBr|enUs|esMx}.reasonstringMotivo curto para a captura, mostrado durante a jornada. Máximo de 50 caracteres.
contextualization.locale.{ptBr|enUs|esMx}.titlestringTítulo do aviso ao cliente mostrado durante a jornada. Máximo de 100 caracteres. Deve ser fornecido junto com text. Tags HTML são removidas.
contextualization.locale.{ptBr|enUs|esMx}.textstringCorpo do aviso ao cliente mostrado durante a jornada. Máximo de 210 caracteres. Deve ser fornecido junto com title. Tags HTML são removidas.
imageBase64stringA selfie, enviada diretamente. Aceita o JWT de captura do SDK.
document.purposeenumPara que o documento é usado. Vocabulário fixo: DOCUMENT_PURPOSE_ONBOARDING, DOCUMENT_PURPOSE_CREDIT_PROCESS, DOCUMENT_PURPOSE_CAR_PURCHASE, DOCUMENT_PURPOSE_PAY_BY_PAYCHECK, DOCUMENT_PURPOSE_FGTS. Usado apenas com fluxos Face Document Match.
document.​files[].​databytesNova captura de documento, codificada em base64. Disponível globalmente, não se limita ao Brasil. Mutuamente exclusivo com document.documentId.
document.documentIdstring (UUID)Reutiliza um documento já capturado pela mesma pessoa, em vez de uma nova captura. Mutuamente exclusivo com document.files[].
expectedResultobjectSimula o resultado de uma capacidade em ambientes de teste/sandbox e marca a resposta com simulated: true. Veja Simulação de Resultados (Test Mock).
Valores de duiType
PaísValorDescrição
ARDUI_TYPE_AR_PASSPORTPassaporte Argentino
ARDUI_TYPE_AR_DNIDNI Argentino
ARDUI_TYPE_AR_LNCCarteira de motorista Argentina (Licencia Nacional de Conducir)
ATDUI_TYPE_AT_STNRNúmero de Contribuinte Austríaco (STNR)
BEDUI_TYPE_BE_NNNúmero Nacional Belga (NN)
BRDUI_TYPE_BR_CPFCPF Brasileiro
BRDUI_TYPE_BR_PASSPORTPassaporte Brasileiro
BRDUI_TYPE_BR_CNPJCNPJ Brasileiro
CADUI_TYPE_CA_SINSIN Canadense
CHDUI_TYPE_CH_AHVNúmero AHV/AVS Suíço
CLDUI_TYPE_CL_RUNRUN Chileno
CLDUI_TYPE_CL_PASSPORTPassaporte Chileno
CLDUI_TYPE_CL_LICENCIA_CONDUCIRCarteira de motorista Chilena (Licencia de Conducir)
CODUI_TYPE_CO_NITNIT Colombiano
CODUI_TYPE_CO_PASSPORTPassaporte Colombiano
CODUI_TYPE_CO_LICENCIA_CONDUCCIONCarteira de motorista Colombiana (Licencia de Conducción)
CODUI_TYPE_CO_CCCédula de Cidadania Colombiana (Cédula de Ciudadanía)
DEDUI_TYPE_DE_IDNRNúmero de Identificação Fiscal Alemão (IdNr)
DKDUI_TYPE_DK_CPRCPR Dinamarquês
ECDUI_TYPE_EC_NINI Equatoriano
ESDUI_TYPE_ES_NIENúmero de Identidade de Estrangeiro Espanhol (NIE)
ESDUI_TYPE_ES_DNIDocumento Nacional de Identidade Espanhol (DNI)
FIDUI_TYPE_FI_HETUCódigo de Identidade Pessoal Finlandês (HETU)
FRDUI_TYPE_FR_SPINúmero de Referência Fiscal Francês (SPI)
GBDUI_TYPE_GB_NINONúmero de Seguro Nacional Britânico (NINO)
GTDUI_TYPE_GT_CUICUI Guatemalteco
IDDUI_TYPE_ID_NIKNIK Indonésio
IEDUI_TYPE_IE_PPSNNúmero de Serviço Público Pessoal Irlandês (PPSN)
ITDUI_TYPE_IT_CFCodice Fiscale Italiano (CF)
LKDUI_TYPE_LK_NICNIC do Sri Lanka
LUDUI_TYPE_LU_MATRICULENúmero de Identificação Nacional de Luxemburgo (Matricule)
MXDUI_TYPE_MX_CURPCURP Mexicano
MXDUI_TYPE_MX_RFC_PERSONA_FISICARFC Mexicano (Pessoa Física)
MXDUI_TYPE_MX_LICENCIA_CONDUCIRCarteira de motorista Mexicana (Licencia de Conducir)
NGDUI_TYPE_NG_NINNIN Nigeriano
NGDUI_TYPE_NG_BVNNúmero de Verificação Bancária Nigeriano (BVN)
NGDUI_TYPE_NG_BVN_TOKENToken de BVN Nigeriano (hash)
NGDUI_TYPE_NG_NIN_TOKENToken de NIN Nigeriano (hash)
NLDUI_TYPE_NL_BSNNúmero de Serviço ao Cidadão Holandês (BSN)
NODUI_TYPE_NO_FNRNúmero de Identidade Nacional Norueguês (Fødselsnummer)
PEDUI_TYPE_PE_RUCRUC Peruano
PEDUI_TYPE_PE_DNIDNI Peruano
PEDUI_TYPE_PE_PASSPORTPassaporte Peruano
PLDUI_TYPE_PL_PESELPESEL Polonês
PTDUI_TYPE_PT_NIFNúmero de Identificação Fiscal Português (NIF)
SEDUI_TYPE_SE_PNRNúmero Pessoal Sueco (PNR)
SEDUI_TYPE_SE_SAMORDNINGSNUMMERNúmero de Coordenação Sueco (Samordningsnummer)
TRDUI_TYPE_TR_TCKNNúmero de Identificação Turco (TCKN)
USDUI_TYPE_US_SSNSSN dos Estados Unidos
USDUI_TYPE_US_PASSPORTPassaporte dos Estados Unidos
USDUI_TYPE_US_DRIVER_LICENSECarteira de motorista dos Estados Unidos
USDUI_TYPE_US_PASSPORT_CARDCartão de Passaporte dos Estados Unidos
USDUI_TYPE_US_POLYCARBONATE_PASSPORTPassaporte de Policarbonato dos Estados Unidos
USDUI_TYPE_US_ID_CARDCarteira de Identidade dos Estados Unidos
UYDUI_TYPE_UY_CICI Uruguaia
ZZDUI_TYPE_ZZ_EMAILEndereço de e-mail
ZZDUI_TYPE_ZZ_PHONE_NUMBERNúmero de telefone
Criando um processo sem documento

Quando o fluxo permite documento opcional, você pode omitir person.duiType e person.duiValue. Após a captura, o processo aguarda em AWAITING_FOR_DOCUMENT até que seu back-end envie o documento com Definir Documento do Processo.

Exemplo​

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"flow": "idunicodocs_r2",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"callbackUri": "https://your-app.example.com/onboarding/callback",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
}
}'

Respostas​

200 OK
{
"process": {
"id": "b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"flow": "idunicodocs_r2",
"state": "PROCESS_STATE_CREATED",
"result": "PROCESS_RESULT_UNSPECIFIED",
"purpose": "biometryonboarding",
"clientReference": "pedido-88216",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909"
},
"capacities": [
"PROCESS_CAPACITY_IDLIVE",
"PROCESS_CAPACITY_IDUNICO",
"PROCESS_CAPACITY_IDDOCS"
],
"authenticationInfo": {
"authenticationId": ""
},
"companyData": {
"branchId": "",
"countryCode": "BRA"
},
"callbackUri": "https://your-app.example.com/onboarding/callback",
"userRedirectUrl": "https://cadastro.unico.app/flow?id=b7c1f0a2-63d4-4f3e-9a17-2c8e5d41b0aa",
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…",
"webAppToken": "eyJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiZGlyIn0…",
"simulated": false
}
}
CampoTipoDescrição
process.idstring (UUID)Identificador do processo. Use para buscar o resultado via Obter Processo.
process.stateenumPROCESS_STATE_CREATED — processo criado, jornada ainda não iniciada. PROCESS_STATE_FAILED — falha na criação do processo.
process.resultenumResultado da verificação. Presente apenas quando state = PROCESS_STATE_FINISHED — veja Fluxos para os valores de resultado que um dado fluxo pode retornar.
process.flowstringIdentificador do fluxo enviado na criação.
process.purposestringFinalidade de negócio enviada na criação.
process.callbackUristringURI de callback enviada na criação.
process.​clientReferencestringSeu identificador interno enviado na criação. Presente apenas se fornecido na requisição.
process.​companyBranchIdstring (UUID)ID da filial. Presente apenas se fornecido na requisição.
process.​userRedirectUrlstringURL para redirecionar o usuário (integrações Web Redirect e iFrame). Não modifique esta URL.
process.tokenstringJWT para inicializar o Web SDK iFrame.
process.webAppTokenstringJWT para inicializar SDKs nativos (Android, iOS, Flutter).
process.createdAtstring (date-time)Timestamp de criação do processo.
process.expiresAtstring (date-time)Timestamp a partir do qual o processo expira e não pode mais ser concluído.
process.capacitiesarrayCapacidades configuradas para este processo.
process.​authenticationInfoobjectInformações de autenticação do processo (vazio no momento da criação).
process.personobjectEco do objeto person enviado na criação.
process.​companyData.​branchIdstring (UUID)ID da filial associada ao processo.
process.​companyData.​countryCodestringCódigo de país associado à filial (ex.: BR, MX).

Códigos de Erro​

CódigoMensagemDescrição
3invalid flowQuando o fluxo especificado não existe.
3invalid person: friendly name exceeds 50 characters.Quando o nome de exibição excede 50 caracteres.
3invalid purposeQuando a finalidade fornecida é inválida.
3invalid callbackUri: unable to parse callbackUri: parse "": empty url, invalid callbackUri: url:Quando a callbackUri fornecida é inválida.
3invalid person: email required for notification channel NOTIFICATION_CHANNEL_EMAIL, invalid email address for notification channel NOTIFICATION_CHANNEL_EMAILQuando o e-mail fornecido é inválido e a notificação por e-mail está configurada.
3invalid person: phone number required for notification channel NOTIFICATION_CHANNEL_WHATSAPP, phone number does not contain 13 chars for notification channel NOTIFICATION_CHANNEL_WHATSAPPQuando o número de telefone fornecido é inválido e a notificação por SMS ou WhatsApp está configurada.
3idnsv2/GetPublicID request error: rpc error: code = InvalidArgument desc = invalid dui valueQuando o identificador fornecido (duiValue) é inválido.
3invalid expiresIn argumentQuando o valor de expiresIn é inválido.
3invalid company_name argument in process contextualization, max length is 20Quando contextualization.​company_name excede 20 caracteres.
3title and text must be provided together in process contextsQuando apenas um entre title ou text é fornecido em um locale.
3invalid title argument in process contexts, max length is 100Quando um title de locale excede 100 caracteres.
3invalid text argument in process contexts, max length is 210Quando um text de locale excede 210 caracteres.
3invalid reason argument in process contexts, max length is 50Quando um reason de locale excede 50 caracteres.
3The references array must contain at most one element.Quando mais de um item é enviado em references.
3The references[].referenceContent field is missing.Quando referenceContent está vazio.
3The references[].referenceType field must be IMAGE_BASE64 or PROCESS_ID.Quando referenceType não é um dos valores suportados.
3A reference is required for this flow.Quando o fluxo exige uma referência e nenhuma foi enviada. Envie references[0] com referenceType PROCESS_ID ou IMAGE_BASE64.
9The referenceProcessId field is invalid.Quando o processo de referência não existe ou não pode ser reutilizado. Nomeia o campo que você enviou — bioTokenId se foi esse o enviado.
3INVALID_IMAGEQuando a imagem não é um base64 válido, ou se parece com uma tentativa de injeção.
3INVALID_DUIQuando o número do documento não é padrão ou não existe.
3IMAGE_TOO_LARGEQuando a imagem excede o tamanho máximo de 800 KB.
3UNSUPPORTED_IMAGE_FORMATQuando o formato da imagem não é PNG, JPEG ou WebP.
3MISSING_IMAGEQuando a imagem é obrigatória para este fluxo e não foi enviada.
3MISSING_NAMEQuando o nome é obrigatório para este fluxo e não foi enviado.
3MISSING_DUIQuando o número do documento é obrigatório para este fluxo e não foi enviado.
3MISSING_PERSONQuando o objeto person é obrigatório para este fluxo e não foi enviado.
3INVALID_REQUESTQuando o corpo da requisição é nulo ou não pode ser interpretado.
3TOKEN_ALREADY_USEDQuando o token de captura já foi usado. Ele é de uso único.
3TOKEN_EXPIREDQuando o token de captura expirou. Ele deve ser usado dentro de 10 minutos.
3INVALID_BUNDLEQuando a requisição não atende aos requisitos de segurança.
3INVALID_NAMEQuando o nome é maior que o máximo permitido.
3INVALID_EMAILQuando o endereço de e-mail está malformado ou é muito longo.
3INVALID_PHONEQuando o número de telefone tem mais de 20 caracteres.
3INVALID_DUI_TYPEQuando o tipo de documento não é um dos valores suportados.
3INVALID_CLIENT_REFERENCEQuando clientReference é muito longo, ou contém um espaço ou #.
3INVALID_CONSENT_TYPEQuando consentType não é NONE, DIRECT ou INDIRECT.
3INVALID_USE_CASEQuando useCase não é reconhecido, ou é muito longo.
3INVALID_DEVICE_TRUST_TOKENQuando o token de device-trust é inválido ou já foi consumido.
3TOO_MANY_REFERENCESQuando mais de um item é enviado em references.
3INVALID_REFERENCE_TYPEQuando referenceType não é IMAGE_BASE64 ou PROCESS_ID.
3INVALID_REFERENCE_PROCESSQuando o ID do processo de referência não é um identificador válido.
3REFERENCE_PROCESS_NOT_FOUNDQuando o processo referenciado não existe.
3REFERENCE_PROCESS_NOT_READYQuando o processo referenciado não tem resultado reutilizável, ou já foi consumido.
3REFERENCE_SELFIE_NOT_FOUNDQuando o processo referenciado não carrega uma selfie para reutilizar.
3INVALID_CAPTURE_TOKENQuando a imagem capturada não é um token válido produzido por um SDK de captura.
3INVALID_CAPTURE_SIGNATUREQuando a assinatura do token de captura não é válida.
3PRIOR_CAPTURE_NOT_FOUNDQuando a captura anterior sobre a qual esta requisição se baseia não pôde ser localizada. Reinicie o processo.
3PRIOR_CAPTURE_IN_PROGRESSQuando a captura anterior ainda não terminou. Tente novamente em breve.
3PRIOR_CAPTURE_FAILEDQuando a captura anterior não pôde ser concluída. Reinicie o processo.
3INVALID_DOCUMENTQuando um arquivo de documento não pode ser lido, está protegido por senha, ou está em um formato não suportado.
3INVALID_AUTH_PROCESSQuando document.authProcessId é inválido, expirado, ou pertence a outra pessoa.
3INVALID_DOCUMENT_PURPOSEQuando document.purpose não é um dos valores suportados.
3PROCESS_REUSE_NOT_ENABLEDQuando o fluxo não permite reutilizar um processo anterior sem uma imagem. Envie uma imagem em vez disso.
9PROCESS_FAILEDQuando o processo atinge uma falha terminal durante a criação.
9Tenant API key is not configuredQuando a API Key não está configurada corretamente.

Próximos passos​