Pular para o conteúdo principal

Create Process

Este artigo explica como criar um processo no By Unico através da API REST.

Como usar?

Faça uma requisição POST para o endpoint:

Com o token de acesso válido, faça uma requisição para o endpoint enviando os seguintes parâmetros:

{
"callbackUri": "/path/to/url",
"flow": "<FLOW_TYPE>",
"person": {
"duiType": "<DUI_TYPE>",
"duiValue": "<DUI_VALUE>",
"friendlyName": "<USER_FRIENDLY_NAME>",
"phone": "<USER_PHONE_NUMBER>",
"email": "<USER_EMAIL>",
"notifications": [
{
"notificationChannel": "NOTIFICATION_CHANNEL_WHATSAPP"
},
{
"notificationChannel": "NOTIFICATION_CHANNEL_SMS"
}
],
},
"purpose": "<DATA_COLLECT_PURPOSE>",
"payload": [],
"expiresIn": "<EXPIRES_IN>",
"contextualization": {
"currency": "BRL",
"price": "<FLOAT_NUMBER>",
"locale": {
"ptBr": {
"reason": "<REASON_PTBR>"
},
"enUs": {
"reason": "<REASON_ENUS>"
},
"esMX": {
"reason": "<REASON_ESMX>"
}
}
}
}

Parâmetros de requisição

NomeTipoMandatorio/OpcionalDescrição
flowStringMandatórioDefine a jornada que a ser executada.

idlive: Fluxo com prova de vida, sem validação de identidade.
id: Fluxo de validação de identidade com biometria facial.
idcheck: Fluxo de validação de identidade com biometria facial com score no caso de inclonclusivo.
iddocs: Fluxo de validação de identidade com captura e reaproveitamento de documentos (RG ou CNH).
idsign: Fluxo de validação de identidade com assinatura eletrônica.
iddocssign: Fluxo de validação de identidade, captura/reaproveitamento de documentos (RG ou CNH) e assinatura eletrônica.
idtoken: Fluxo para verificar a autenticidade de uma biometria facial em relação a um processo já realizado anteriormente.
idcheckserpro: Fluxo de consulta no SERPRO e validação de identidade com biometria facial e score no caso de inconclusivo.

| callbackUri | String | Mandatório | Define para onde o usuário será redirecionado ao fim do processo.

URL: Você pode utilizar uma URL para uma página web de seu fluxo. Exemplo: https://developers.unico.io/callback. Você pode personalizar como desejar.

URL Scheme: Você também pode realizar o redirecionamento para aplicações móveis nativas. Exemplo: br.com.meupacote.app://callback. Esse callback precisa estar registrado em sua aplicação móvel.

Sem redirecionamento: Caso você esteja usando a solução em um fluxo de mensagem, utilize o valor / para evitar um redirecionamento ao final do fluxo. | | person.personDuiType | String | Mandatório | Define o tipo de identificador do usuário.

DUI_TYPE_BR_CPF: Para utilizar CPF como identificador. | | person.personDuiValue | String | Mandatório | Define o valor do identificador do usuário especificado no campo personDuiType.

Exemplo: No caso de uso do identificador DUI_TYPE_BR_CPF para CPF utilize um CPF válido sem formatação: 73689290074.

Nota: Obrigatório nos fluxos de SMS e WhatsAPP. | | person.friendlyName | String | Opcional | Define o nome do usuário. Ex.: John Doe. | | person.phone | String | Opcional(*) | Define o telefone do usuário. Ex.: 551190000-0000| | person.email | String | Opcional | Define o email do usuário. | | notifications.notificationChannel | String | Opcional | notifications:É um array que define o canal de envio das notificações. O campo deve ser preenchido com as notificações desejadas: SMS, ou WhatsApp, ou os dois canais.

Exemplo de uso:

notificationChannel": NOTIFICATION_CHANNEL_SMS

notificationChannel: NOTIFICATION_CHANNEL_WHATSAPP

Não enviar campos de notifications em caso de recebimento de URL apenas.| | purpose | String | Mandatório | Define o propósito de uso e coleta de dados do usuário. Tem como objetivo dar transparência e garantir o tratamento de dados correto pela LGPD.

creditprocess: Caso você esteja utilizando a solução para oferecer um crédito ao usuário.

biometryonboarding: Caso você esteja utilizando a solução para realizar onboarding do usuário.

carpurchase: Caso você esteja utilizando a solução para realizar commpra de um veículo. | | bioTokenId | String | Opcional() | Define o Id da transação que deseja comparar com a validação do fluxo idtoken.

O valor desse campo pode ser o valor do campo id ou authenticationInfo.authenticationId do processo retornado ao realizar o GetProcess de um processo
idcheck. | | payload | Array | Mandatório | O campo payload é um Array que oferece um local para inserção de arquivos necessários para alguns fluxos específicos, como por exemplo idsign.

Dentro do Array payload outro Array pode ser utilizado para criação de envelopes de fluxo de assinatura.

O campo documents é um
Array recebe o documentos que compoem cada envelope, podendo ser 1 ou mais.

Cada
Objeto document possui:
- documentName: Nome do documento.
- fileContents: Base64 do PDF a ser assinado.

Esse campo é
obrigatório para integração com o IDSign. | | expiresIn | String | Opcional | Esse campo define o tempo em segundos para a expiração do processo, baseado na data do created_at. Por exemplo, para a expiração ocorrer daqui 24 horas é necessário informar como "expires_in": "86400s". Caso essa informação não seja informada, será usado o valor default de 7 dias. É possível personalizar essa informação, para isso entre em contato com o time de onboarding. | | contextualization.price | float | Opcional | Esse campo define o valor que será exibido na contextualização do processo. | | contextualization.currency | String | Opcional(*) | Esse campo define a moeda que será usada para formatação do campo price. | | contextualization.locale.ptBr.Reason | String | Opcional | Esse campo define a informação que será exibida no campo de Motivo do processo quando for selecionado a linguagem pt-br. | | contextualization.locale.enUs.Reason | String | Opcional | Esse campo define a informação que será exibida no campo de Motivo do processo quando for selecionado a linguagem en-us. | | contextualization.locale.esMx.Reason | String | Opcional | Esse campo define a informação que será exibida no campo de Motivo do processo quando for selecionado a linguagem es-mx. | | companyBranchId | String | Opcional | Esse campo define o id da filial o qual o processo criado é relacionado |

Nota

(*) O parâmetro person.phone se torna mandatório quando o campo notifications.notificationChannel for preenchido.

(**) O parâmetro bioTokenId se torna mandatório quando o campo flow for do tipo idtoken. A criação do fluxo idtoken só é possível após a finalização com sucesso de um fluxo idcheck .

(***) O parâmetro contextualization.currency se torna mandatório quando o campo contextualization.price for preenchido. Exemplo de como ficará a interface do usuário com a contextualização:

Importante

Para o fluxo idtoken o cpf somente é validado se o valor informado for o campo id do processo, caso o valor passado no campo idtoken seja authenticationInfo.authenticationId o cpf não será garantido.

Criação de processo com filial

Para a criação de processos com uma conta de serviço que possui permissão apenas para uma filial, não é necessário informar o campo companyBranchId.

Para conta de serviço que possui permissão para mais de uma filial, é necessário informar o campo companyBranchId com o valor do id da filial desejada.

Exemplo de requisição

{
"callbackUri": "/path/to/url",
"flow": "idsign",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "73689290074",
"friendlyName": "John Doe",
"notifications": [
{
"notificationChannel": "NOTIFICATION_CHANNEL_WHATSAPP"
},
{
"notificationChannel": "NOTIFICATION_CHANNEL_SMS"
}
],
},
"purpose": "creditprocess",
"payload": [
{
"envelopePayload": {
"documents": [
{
"documentName": "teste",
"fileContents": "JVBERi0xLjMNCiXi48/[...]DQoNCnN0YXJ0eHJlZg0KMjcxNA0KJSVFT0YNCg=="
}
]
}
}
],
"companyBranchId": "9ea8e39a-188a-4295-b5d7-3dd8791ab199",
"expiresIn": "86400s",
"contextualization": {
"currency": "BRL",
"price": 15990.9,
"locale": {
"ptBr": {
"reason": "Validação de identidade"
},
"enUs": {
"reason": "Identity validation"
}
}
}
}

Para mais exemplos, consulte Exemplos de Request

Formas de fazer uma rquisição (request)

curl -X 'POST' \
'https://api.cadastro.uat.unico.app/client/v1/process/' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {{TOKEN}}'
-d '{
"callbackUri": "/",
"flow": "id",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "73689290074",
"friendlyName": "John Doe"
},
"purpose": "creditprocess"
}'

Requisição executada com sucesso

Se a requisição foi executada com sucesso, a resposta de retorno é um 200 OK e um JSON contendo os seguintes parâmetros:

{
"process": {
"id": "057f8d90-6ff6-4f52-ba05-ead6123f73bd",
"flow": "idcheck",
"callbackUri": "https://unico.io",
"userRedirectUrl": "https://cadastro.dev.unico.app/process/6291d10b-0450-453e-a5e8-5a6b2fe060e0",
"state": "PROCESS_STATE_CREATED",
"createdAt": "2024-07-18T18:34:30.328743Z",
"expiresAt": "2024-07-25T18:34:30.328743Z",
"person": {
"duiType": "DUI_TYPE_BR_CPF",
"duiValue": "73689290074",
"friendlyName": "John Doe"
},
"purpose": "creditprocess",
"authenticationInfo": {},
"capacities": [
"PROCESS_CAPACITY_IDLIVE",
"PROCESS_CAPACITY_IDUNICO",
"PROCESS_CAPACITY_IDCHECK"
],
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiI3YzE1MDE3Yi0zYzlmLTQ1ZTktOTgzMy01M2ZjYzgyMjQ3YTgiLCJjbGlkIjoiNTdjMDlkMmYtMTAzOC00OGU0LWFiYTMtODhjOWIxYjdjY2JjIiwiZXhwIjoxNzI4NDE2NjYwLCJleHRyYSQiOnsiY29uZmlncyI6eyJzaWxlbnRTdGFydCI6ZmFsc2V9LCJkb21haW5zIjpudWxsLCJwcm9jZXNzUGF0aCI6Ii9wcm9jZXNzL2JiNjNlMTVlLWExYWEtNDY2YS1iMzQ2LTgwOTVlMmE4YjIyNCJ9LCJpYXQiOjE3MjgzMzAyNjAsImlzcyI6Imh0dHBzOi8vY2FkYXN0cm8udWF0LnVuaWNvLmFwcC8iLCJqdGkiOiJiYjYzZTE1ZS1hMWFhLTQ2NmEtYjM0Ni04MDk1ZTJhOGIyMjQiLCJuYmYiOjE3MjgzMzAyNjAsInNjb3BlIjoiKiIsInN1YiI6ImM4MmU5Y2Y1LWE1ZmQtNDVmMy1hMTNiLTRiYzgxNGVkZDU2NCIsInZlcnNpb24iOiIxLjAifQ.r2Id5aaLUGvmUS-2WbHsYCKqUBZj-icOK_79-xRBeaz0F10I5-UTYEtFKrhJQM3CIybGkfRcKub6leevIGIoslC8EMVLl-DIXd9ofyzC3r1lh9KQ-VQqA4vJivMqH3HZyoKjCoMsXSKWu0SfMeRzz5p4U6I98KXj0TpIfiU0gMYXT8OlhXszscR1vlCSlZoxr1EhwJSa_gDjASlNey75fKMY9qPa61_MGnxDlQyAomqNCZi4txNHSkTWl8P9YpQQ7AXhCV8__zyMWkCgz5T30P46ybPMaAsX0Mit5eHEedtY7ucfxhA7K5uAc1k8_wtpj1UUy02JIIA0Xi28Jou8KhrC7NUbXgR-0d-5vCYHcgkPgPkp4acLSB6g6tUxafMMuKVBnL3tPkQCSO9X_gFYVaRuBn5oS6LBiWQew-gYJ0Ry0ck3P1o15K_I2nDGI4-FFvpClrPncYK4zhAOiAUcaC4c2JtPaWl9p9O4PoZGv2iTMcyOBE_ZpwDww8VMDWutgj983OGnY91EzCsr84DAZO6ieTz79bC6IcqajBZi7IA_ZGUxr4DbnMtDJTBJuCthGfn_e4-9I7XbIecQKmKkbOXVvLVGY4ob2mGRva6sl5y_wZRVgpij1AhPqoG1A-SDlmy2_KPnNxPhG90O5uD6Wqas9J7K4jmfnniaQ7d_jhQ"
}
}

Os Parâmetros de retorno são:

NomeDescrição
idO identificador do processo.
flowDefine a jornada que foi criada.

id: Fluxo de validação de identidade com biometria facial.
idcheck: Fluxo de validação de identidade com biometria facial com score no caso de inclonclusivo.
iddocs: Fluxo de validação de identidade com captura e reaproveitamento de documentos (RG ou CNH).
idsign: Fluxo de validação de identidade com assinatura eletrônica.
iddocssign: Fluxo de validação de identidade, captura/reaproveitamento de documentos (RG ou CNH) e assinatura eletrônica.
idtoken: Fluxo para verificar a autenticidade de uma biometria facial em relação a um processo já realizado anteriormente.
callbackUriDefine para onde o usuário será redirecionado no fim do processo.

Mais detalhes em Parametros de requisição.
userRedirectUrlURL para onde você deverá redirecionar o usuário para finalização da jornada
stateSinaliza o estado atual do processo, por ser do tipo:

PROCESS_STATE_CREATED: Processo criado e ainda não finalizado pelo usuário.

PROCESS_STATE_FINISHED: Processo finalizado pelo usuário com sucesso.

PROCESS_STATE_FAILED: Processo criado ou finalizado com erro.
resultSinaliza o resultado do processo da jornada do usuário, podendo ser do tipo:

PROCESS_RESULT_OK: Processo finalizado com sucesso.

PROCESS_RESULT_WARNING: Processo finalizado com alerta.

PROCESS_RESULT_ERROR: Processo finalizado com algum tipo de erro.

PROCESS_RESULT_UNSPECIFIED: É retornado quando o cliente utiliza o IDUnico sozinho. Processo finalizado com resultado não especificado.
person.personDuiTypeDefine o tipo de identificador do usuário.

DUI_TYPE_BR_CPF: Para CPF como identificador.
person.personDuiValueDefine o valor do identificador do usuário especificado no campo personDuiType.
person.friendlyNameDefine o nome do usuário, por exemplo, Fulano.
createdAtSinaliza o momento em que o processo foi criado.
expiresAtSinaliza o momento em que o processo será/foi expirado, o valor desse campo é calculado a partir do campo expires_in informado na criação do processo com a data de criação do process, created_at.
tokenToken assinado que contém os parâmetros necessários para inicializar o SDK web do by Unico, permitindo integração via iFrame

Erro na Requisição

Para infomações sobre os erros retornados, consulte a lista disponível no artigo Response Errors.

API Reference

Para mais informações sobre este endpoint, consulte a API Reference.

Exemplo de contextualização na interface

Captura Manual

Dúvidas?

Não encontrou algo ou ainda precisa de ajuda? Se já é um cliente ou parceiro, pode entrar em contato através da Central de Ajuda.