Pular para o conteúdo principal

Criar Processo

Este é o ponto de entrada de toda integração Web & SDK. 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 completo de integração, consulte Visão geral de Web & SDK.

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> (consulte Autenticação)
Content-Typeapplication/json
Parâmetros do corpo
CampoTipoObrigatórioDescrição
callbackUristringsimURL para a qual o usuário é redirecionado após o término da jornada. Use / para fluxos de SDK nativo em que o callback é tratado dentro do app.
flowstringsimIdentificador do fluxo — determina quais capacidades serão executadas. Exemplos: idunicodocs, idunicosign, idchecktrust, idtoken, idsmart. Consulte Fluxos disponíveis.
purposestringsimFinalidade de negócio. Valores aceitos: creditprocess, biometryonboarding, carpurchase, ageverification.
person.duiTypeenumsimTipo de documento. Valores aceitos: DUI_TYPE_BR_CPF, DUI_TYPE_MX_CURP, DUI_TYPE_US_SSN, DUI_TYPE_BR_PASSPORT, DUI_TYPE_AR_PASSPORT, DUI_TYPE_AR_DNI, DUI_TYPE_NG_NIN, DUI_TYPE_CL_RUN, DUI_TYPE_EC_NI, DUI_TYPE_US_PASSPORT, DUI_TYPE_GT_CUI, DUI_TYPE_UY_CI, DUI_TYPE_ZZ_EMAIL, DUI_TYPE_ID_NIK, DUI_TYPE_ZZ_PHONE_NUMBER, DUI_TYPE_US_DRIVER_LICENSE, DUI_TYPE_NG_BVN.
person.duiValuestringsimNúmero do documento, sem formatação.
person.friendlyNamestringnãoNome de exibição do usuário mostrado na interface da jornada. Máximo de 50 caracteres.
person.phonestringnãoNúmero de telefone no formato DDI + DDD + número, sem separadores. Obrigatório ao enviar notificações via SMS ou WhatsApp.
person.emailstringnãoEndereço de e-mail. Obrigatório para fluxos com Assinatura Eletrônica.
person.notificationsarraynãoCanais de notificação para envio do link da jornada. Cada item possui notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP, NOTIFICATION_CHANNEL_SMS ou NOTIFICATION_CHANNEL_EMAIL.
bioTokenIdstring (UUID)condicionalDescontinuado. Use references no lugar. ID do processo biométrico de referência. Obrigatório para fluxos de validação 1:1 (idtoken, idtokentrust, idtokensign) e Smart Revalidation (idsmart).
referencesarraycondicionalEntradas de referência para fluxos de validação 1:1 e Smart Revalidation, substituindo bioTokenId. Cada item contém referenceType (REFERENCE_TYPE_IMAGE_BASE64 ou REFERENCE_TYPE_PROCESS_ID) e referenceContent (imagem em base64 ou UUID do processo).
useCasestringcondicionalCaso de uso de Smart Revalidation. Obrigatório para idsmart. Exemplos: USE_CASE_LOGIN, USE_CASE_IDENTITY_REVALIDATION_7_DAYS, USE_CASE_FIN_TRANSACTIONS.
clientReferencestringnãoSeu identificador interno para este processo (chave estrangeira para referência cruzada no portal).
companyBranchIdstring (UUID)nãoID da filial. Obrigatório somente se a conta de serviço tiver mais de uma filial associada.
expiresInstringnãoJanela de validade do processo a partir da criação. Formato: "3600s". Padrão de 7 dias se omitido.
flow_configobjectnãoConfigurações específicas por fluxo.
flow_config.biometry_capture.enabled_back_camerabooleannãoUsar a câmera traseira do dispositivo. Não compatível com fluxos de captura de documento ou Assinatura Eletrônica.
contextualizationobjectnãoContexto da transação exibido ao usuário durante a jornada para explicar a captura.
contextualization.currencystringnãoCódigo de moeda exibido ao usuário. Valores aceitos: BRL, MXN, USD.
contextualization.pricenumbernãoValor da transação exibido ao usuário.
contextualization.localeobjectnãoTexto de motivo localizado. Chaves: ptBr, enUs, esMx — cada uma com uma string reason exibida durante a jornada.

Exemplo

curl -X POST https://api.idcloud.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"callbackUri": "https://app.client.com/callback",
"flow": "idunicodocs",
"purpose": "biometryonboarding",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]"
}
}'

Respostas

200 OK
{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_CREATED",
"flow": "idunicosign",
"purpose": "biometryonboarding",
"callbackUri": "https://app.client.com/callback",
"clientReference": "your-internal-id-123",
"companyBranchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"userRedirectUrl": "https://cadastro.unico.app/process/53060f52-f146-4c12-a234-5bb5031f6f5b",
"token": "eyJhbGciOiJSUzI1NiIs...",
"webAppToken": "eyJhbGciOiJSUzI1NiIs...",
"createdAt": "2023-10-09T09:15:25.417105Z",
"expiresAt": "2023-10-09T16:15:25.417105Z",
"capacities": [],
"authenticationInfo": {},
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "12345678909",
"friendlyName": "Luke Skywalker",
"phone": "5511912345678",
"email": "[email protected]",
"notifications": []
},
"companyData": {
"branchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"countryCode": "BR"
}
}
}
CampoTipoDescrição
process.idstring (UUID)Identificador do processo. Use-o 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.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 via Web Redirect e iFrame). Não modifique esta URL.
process.tokenstringJWT para inicializar o iFrame do Web SDK.
process.webAppTokenstringJWT para inicializar SDKs nativos (Android, iOS, Flutter).
process.createdAtstring (date-time)Timestamp de quando o processo foi criado.
process.expiresAtstring (date-time)Timestamp após o 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.personobjectEspelho do objeto person enviado na criação.
process.companyData.branchIdstring (UUID)ID da filial associada ao processo.
process.companyData.countryCodestringCódigo do país associado à filial (ex.: BR, MX).
400 Bad Request

Retornado quando o payload da requisição está malformado, campos obrigatórios estão ausentes ou o valor de flow é desconhecido.

401 Unauthorized

Token Bearer ausente, expirado ou inválido. Consulte Autenticação.

429 Too Many Requests

Limite de requisições atingido. Tente novamente após o intervalo indicado nos cabeçalhos da resposta.

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 ultrapassa 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.
9XX ID Apikeys are not setQuando a API Key não está configurada corretamente.

Próximos passos

  • Após o usuário concluir a jornada, chame Obter Processo para buscar o resultado ou aguarde o webhook.