Simulação de Resultados (Test Mock)
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:
| Formato | Quando usar |
|---|---|
id_cloud_one_result | Fluxos que retornam um único resultado (aprovado, negado, alto risco, etc.) |
authentication_info | Fluxos 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
| Ambiente | URL |
|---|---|
| Sandbox | POST 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.
Use isso quando seu flow retorna um único resultado no estilo aprovação.
Parâmetros do corpo
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
expected_result.id_cloud_one_result | string | sim | O 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.
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_resulttrust_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_accountsdata_mismatchserial_fraudstersmart_revalidation_resultpasskey_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ção | Erro |
|---|---|
expected_result fora do sandbox | PERMISSION_DENIED |
id_cloud_one_result e authentication_info enviados juntos | INVALID_ARGUMENT |
authentication_info: {} vazio | INVALID_ARGUMENT |
authentication_info sem um sinal que o flow retorna | Erro de validação — inclua todos os sinais |
Valor de id_cloud_one_result que o flow não reconhece | Erro de validação |
flow sem suporte a mock | Erro 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.