Pular para o conteúdo principal

Criar Processo

Este endpoint lida com dois casos de uso que compartilham o mesmo caminho mas diferem nos parâmetros do corpo, capacidades e campos de resposta:

  • Integração — valida quem é o usuário comparando seu rosto com a base de identidade da Unico (subject.duiType + subject.code obrigatório).
  • Transacional — verifica se é a mesma pessoa de um processo anterior comparando rosto-a-rosto (referenceProcessId OU array references com selfie / ID de processo obrigatório).

O caso de uso ativo é determinado pela APIKEY enviada no header da requisição.

Para o fluxo completo de integração, veja Visão Geral da API.

Endpoint

AmbienteURL
ProduçãoPOST https://api.id.unico.app/processes/v1
SandboxPOST https://api.id.uat.unico.app/processes/v1

Requisição

Headers
HeaderValor
AuthorizationBearer <access_token> (veja Autenticação)
APIKEYChave de API provisionada — define o caso de uso ativo e as capacidades habilitadas.
Content-Typeapplication/json
Parâmetros do corpo
CampoTipoObrigatórioDescrição
subject.duiTypeintegersimIdentificador do tipo de documento. Veja os valores de duiType abaixo.
subject.codestringsimValor do identificador definido por subject.duiType. Sem pontos ou traços.
subject.namestringnãoNome completo.
subject.genderstringnãoM ou F.
subject.birthDatestring (ISO 8601)nãoData de nascimento (YYYY-MM-DD).
subject.emailstringnãoEndereço de e-mail.
subject.phonestringnãoNúmero de telefone E.164.
useCasestringnãoContexto da operação, ex.: Onboarding.
subsidiaryIdstringnãoID da filial — obrigatório apenas se houver múltiplas filiais.
imageBase64stringsimSelfie capturada pelo seu front-end, em base64.
Valores de duiType
PaísCódigoDescrição
BR1CPF Brasileiro
BR5Passaporte Brasileiro
MX2CURP Mexicano
AR6Passaporte Argentino
AR7DNI Argentino
US4SSN dos Estados Unidos
US11Passaporte dos Estados Unidos
US18Carteira de motorista dos Estados Unidos
ID16NIK Indonésio
NG8NIN Nigeriano
CL9RUN Chileno
EC10NI Equatoriano
GT12CUI Guatemalteco
UY13CI Uruguaia
ZZ15Endereço de e-mail
ZZ17Número de telefone
MX25RFC Mexicano (Pessoa Física)
CO26NIT Colombiano
PE27RUC Peruano
CA28SIN Canadense
DK29CPR Dinamarquês
GB30Número de Seguro Nacional Britânico (NINO)
PL31PESEL Polonês
SE32Número Pessoal Sueco (PNR)
AT34Número de Contribuinte Austríaco (STNR)
FI35Código de Identidade Pessoal Finlandês (HETU)
0Não especificado
3Identificador interno Unico
Requisitos de imagem
  • Resolução mínima: 640 x 480 (padrão HD)
  • Tamanho máximo do arquivo: 800 KB (compressão JPEG92 recomendada)
  • Formatos aceitos: PNG, JPEG, WebP
  • Tokens JWT do SDK expiram após 10 minutos e podem ser usados apenas uma vez

Exemplo

curl -X POST https://api.id.unico.app/processes/v1 \
-H "Authorization: Bearer $TOKEN" \
-H "APIKEY: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"subject": {
"duiType": 1,
"code": "12345678909",
"name": "Luke Skywalker",
"gender": "M",
"birthDate": "2000-05-20",
"email": "[email protected]",
"phone": "5519725570707"
},
"useCase": "Onboarding",
"imageBase64": "/9j/4AAQSkZJR..."
}'

Respostas

200 OK
{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"unicoId": {
"result": "yes"
},
"riskLevel": {
"result": "inconclusive"
},
"idFace": {
"personId": "a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890",
"result": "FOUND"
},
"government": {
"serpro": 87
},
"liveness": 1
}
Os campos da resposta dependem da sua APIKey

O exemplo acima exibe todos os campos de capacidades possíveis. Sua resposta real incluirá apenas os campos das capacidades habilitadas na configuração da sua APIKey — campos de capacidades desabilitadas são omitidos. Entre em contato com o gerente de projetos da Unico para habilitar ou ajustar capacidades.

CampoTipoDescrição
idstring (UUID)Identificador do processo. Use com Obter Processo para reconsultas.
statusinteger1 (processando), 3 (finalizado com sucesso), 5 (erro).
unicoId.resultstringyes, no, inconclusive — veja Verificação de Identidade.
riskLevel.resultstringapproved, reproved, risk-critical, risk-high, inconclusive — veja os valores possíveis abaixo ou a Classificação de Risco de Fraude.
idFace.resultstringFOUND, NOT_FOUND — veja Identificador Facial.
idFace.personIdstringIdentificador opaco estável para o rosto. Presente apenas quando idFace.result = FOUND.
identityFraudsters.resultstringObsoleto. Use riskLevel em vez disso. Clientes com integrações em andamento podem continuar utilizando enquanto alinham a migração com a equipe responsável pelo projeto.
government.serprointegerScore de similaridade Serpro (0–100, -1, -2). Disponível apenas no Brasil. Veja Retorno de Semelhança do Serpro.
livenessinteger1 (aprovado), 2 (reprovado) — veja Prova de Vida.
riskLevel.result — valores possíveis
ValorSignificado
approvedÉ o rosto do titular do documento e nenhuma evidência relacionada a fraude foi encontrada.
reprovedA rejeição é recomendada, pois múltiplos indicadores de fraude foram detectados.
risk-criticalA rejeição é recomendada, mas a decisão final fica a seu critério. Risco crítico indica que encontramos pelo menos 2 fortes evidências de fraude.
risk-highA rejeição também é recomendada, mas a decisão permanece sendo sua. Risco alto indica que encontramos pelo menos uma forte evidência de fraude.
inconclusiveNenhuma evidência forte de fraude foi encontrada. Portanto, não é possível concluir se há risco relevante ou não.
informação

Quando unicoId.result = inconclusive e a orquestração de Score de Risco está ativa, o processo pode retornar status: 1 (processando). Consulte Obter Processo ou use webhooks para recuperar o resultado final.

400 Bad Request

O payload está malformado, a imagem é inválida ou campos obrigatórios estão ausentes. Veja Códigos de Erro abaixo.

403 Forbidden

Bearer token ou APIKEY ausente, expirado ou inválido. Veja Autenticação.

409 Conflict

O processId fornecido já existe para este tenant. Veja Códigos de Erro abaixo.

429 Too Many Requests

Limite de requisições atingido. Quando seu sistema recebe um erro HTTP 429, você deve implementar mecanismos para prevenir falhas em cascata e evitar agravar a restrição.

Boas práticas:

  • Período de espera (backoff): Interrompa ou limite imediatamente as requisições subsequentes do seu sistema. Não tente reenviar requisições falhas continuamente em um loop apertado.
  • Enfileiramento e controle de fluxo: Armazene ou enfileire as requisições de saída do seu lado para controlar o fluxo de tráfego antes de reenviá-las.
  • Backoff exponencial com jitter: Ao tentar novamente, aumente o tempo de espera exponencialmente entre as tentativas (ex.: 1 s, 2 s, 4 s, 8 s) e adicione um pequeno atraso aleatório ("jitter") para evitar um efeito manada onde todas as requisições enfileiradas tentam novamente no exato mesmo milissegundo.
aviso

Continuar acessando um endpoint com limite de taxa sem aplicar backoff pode prolongar o período de restrição e impactar severamente a taxa de transferência operacional do seu sistema. Controlar adequadamente as requisições do seu lado garante uma integração mais suave e resiliente.

Para limites padrão, aumento de requisições e detalhes adicionais, veja Limites de Taxa.

Códigos de Erro

CódigoMensagemDescrição
20900O base64 informado não é válido.O parâmetro base64 é inválido. Causas possíveis: não é uma imagem ou é uma tentativa de injeção.
20807A imagem precisa estar no padrão HD ou possuir uma resolução superior a 640 x 480.A resolução da imagem enviada é muito baixa.
20513The referenced process was not found.O referenceProcessId aponta para um processo que não existe ou não está mais acessível.
20512The referenced process is not available for reuse.O processo referenciado existe mas não está disponível para reutilização.
20509The subject.name field is invalid.subject.name contém caracteres inválidos.
20508The subject.gender field is invalid.subject.gender deve ser M ou F.
20507O parâmetro subject.code é inválido.CPF fora do padrão ou inexistente.
20506O base64 informado é muito grande. O tamanho máximo suportado é até 800kb.Tamanho da imagem excede 800 KB; comprima para JPEG92.
20505O base64 informado não é suportado. Os formatos aceitos são png, jpeg e webp.O formato base64 é inválido ou não suportado.
20065The referenceProcessId field is invalid.O referenceProcessId não é um UUID válido.
20062The useCase field is invalid.Valor não reconhecido no campo useCase.
20024The referenceProcessId field is missing.O parâmetro referenceProcessId não foi fornecido e references não foi enviado como alternativa.
20021The subject.phone field is invalid.Formato de subject.phone inválido (DDI + código de área + número, 13 caracteres).
20019The subject.birthDate field is invalid.subject.birthDate está fora do formato ISO 8601 (YYYY-MM-DD).
20009O parâmetro imagebase64 não foi informado.O parâmetro de imagem selfie está ausente.
20008The subject.email field is invalid.Formato de e-mail inválido em subject.email.
20006O parâmetro subject.name não foi informado.O parâmetro subject.name está ausente.
20005O parâmetro subject.code não foi informado.O parâmetro subject.code está ausente.
20004O parâmetro subject não foi informado.O parâmetro subject está ausente.
20003The request body is missing or invalid.Payload nulo ou inválido.
20002O parâmetro APIKey não foi informado.O parâmetro APIKEY está ausente no header da requisição.
20001O parâmetro authtoken não foi informado.O parâmetro de token de integração está ausente no header da requisição.
10508The JWT with the captured face has already been used.O JWT só pode ser usado uma vez.
10507The JWT with the captured face is expired.JWT expirado; deve ser enviado dentro de 10 minutos.
10506The imageBase64 field is not a valid JWT from SDK.O imageBase64 não é um JWT válido gerado pelo SDK.

Próximos passos

  • Para consultar o resultado de um processo de Integração, veja Obter Processo.
  • Para operações de Documento e Verificação de Idade, veja as respectivas páginas nesta seção.