Pular para o conteúdo principal

Simulação de Resultados (Test Mock)

MarkdownChatGPTClaude

Em sandbox, você pode simular um resultado de processo sem depender de uma captura biométrica real. Adicione o campo expected_result ao corpo da requisição de Criar Processo — o restante da integração (renderização do SDK, captura biométrica, Obter Processo) permanece exatamente igual a um fluxo real.

O mock não elimina a etapa de captura biométrica. O usuário (ou seu script de teste) ainda precisa concluir o fluxo normal — o que muda é que, ao finalizar, o processo retorna os valores definidos em expected_result em vez do resultado real da avaliação.

Cada flow só aceita um dos dois formatos abaixo, de acordo com como ele está configurado:

FormatoQuando usar
id_cloud_one_resultFluxos que retornam um único resultado (aprovado, negado, alto risco, etc.)
authentication_infoFluxos que retornam sinais individuais (UnicoId, Trust, Liveness, IdAge, IdFace...)

Enviar o formato que não corresponde ao seu flow, ou enviar os dois ao mesmo tempo, resulta em um erro — veja Erros.

Endpoint​

AmbienteURL
SandboxPOST https://api.idcloud.uat.unico.app/client/v1/process

O mock só está disponível em sandbox. Em produção, o campo expected_result é rejeitado.

Resultado único — id_cloud_one_result

Use isso quando seu flow retorna um único resultado no estilo aprovação.

Parâmetros do corpo

CampoTipoObrigatórioDescrição
expected_result.​id_cloud_one_resultstringsimO resultado único a ser simulado. Deve ser um resultado que seu flow realmente produz — verifique a configuração do seu flow para os resultados que ele reconhece.

Exemplo​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"id_cloud_one_result": "PROCESS_RESULT_APPROVED"
}
// ... os demais parâmetros são os mesmos que você usa em uma chamada real de Criar Processo
}'

Resposta (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDCHECK"],
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

simulated: true marca este processo como tendo um resultado simulado, e não uma avaliação real.

Os valores possíveis de id_cloud_one_result são os mesmos valores de resultado de processo documentados em Interpretando os resultados — envie apenas um resultado que seu flow realmente reconheça.

BrazilSinais individuais — authentication_info

Use isso quando seu flow retorna sinais separados em vez de um único resultado.

Todo sinal que seu flow normalmente retorna deve estar presente em authentication_info. Enviar apenas alguns deles é rejeitado — você não pode simular um sinal e deixar o restante para a avaliação real.

trust_result vs. identity_fraudsters_result

trust_result e identity_fraudsters_result representam o mesmo sinal (indicação de fraude de identidade): trust_result cobre o lado negativo, identity_fraudsters_result o lado positivo. Use o que corresponder ao resultado que você quer simular.

Para os valores possíveis de cada campo, veja Resultados de capacidade em authenticationInfo.

Fluxos frictionless não são suportados neste formato — veja Sinais não suportados.

Exemplo​

curl -X POST https://api.idcloud.uat.unico.app/client/v1/process \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expected_result": {
"authentication_info": {
"authentication_result": "AUTHENTICATION_RESULT_POSITIVE",
"liveness_result": "LIVENESS_RESULT_LIVE",
"id_age_result": "ID_AGE_RESULT_POSITIVE"
}
}
// ... os demais parâmetros são os mesmos que você usa em uma chamada real de Criar Processo
}'

Resposta (200 OK)​

{
"process": {
"id": "53060f52-f146-4c12-a234-5bb5031f6f5b",
"state": "PROCESS_STATE_FINISHED",
"result": "PROCESS_RESULT_OK",
"flow": "your-sandbox-flow",
"simulated": true,
"capacities": ["PROCESS_CAPACITY_IDUNICO", "PROCESS_CAPACITY_IDAGE"],
"authenticationInfo": {
"authenticationResult": "AUTHENTICATION_RESULT_POSITIVE",
"livenessResult": "LIVENESS_RESULT_LIVE",
"idAgeResult": "ID_AGE_RESULT_POSITIVE"
},
"person": { "duiType": "DUI_TYPE_BR_CPF", "duiValue": "12345678909" }
}
}

Sinais não suportados​

Os sinais abaixo não são suportados pelo mock, em nenhum dos dois formatos:

  • multi_accounts
  • data_mismatch
  • serial_fraudster
  • smart_revalidation_result
  • passkey_result (descontinuado)

Fluxos frictionless (autenticação sem captura biométrica) só são suportados no formato id_cloud_one_result — não funcionam com authentication_info.

Notas sobre a resposta​

Score só é retornado quando o resultado de identidade é inconclusivo. O campo score_engine_result só reflete um valor quando authentication_result é AUTHENTICATION_RESULT_INCONCLUSIVE. Se você simular authentication_result como POSITIVE ou NEGATIVE junto com um score_engine_result diferente de zero, a resposta final retorna score_enabled: SCORE_ENABLED_FALSE e score: 0, independentemente do valor enviado.

Esse é o comportamento normal da API — a mesma regra vale para processos reais, não é específico do mock. Se o cenário que você quer testar depende do score aparecer na resposta, use authentication_result: AUTHENTICATION_RESULT_INCONCLUSIVE.

Erros​

SituaçãoErro
expected_result fora do sandboxPERMISSION_DENIED
id_cloud_one_result e authentication_info enviados juntosINVALID_ARGUMENT
authentication_info: {} vazioINVALID_ARGUMENT
authentication_info sem um sinal que o flow retornaErro de validação — inclua todos os sinais
Valor de id_cloud_one_result que o flow não reconheceErro de validação
flow sem suporte a mockErro de validação

Próximos passos​

Depois de criar o processo mockado, complete a captura biométrica normalmente e use Obter Processo para obter o resultado mockado.