Pular para o conteúdo principal

Revalidação Silenciosa

Utiliza o motor da Revalidação Silenciosa, que analisa o contexto comportamental do usuário no efeito de rede Unico, e entrega o sinal de confiança da transação corrente. Ou seja, entregamos o nível de confiança de ser o usuário esperado na transação.

Requisito

Versão mínima: 3.3.0

Atributos do PrepareInfo
AtributoTipoObrigatórioDescrição
externalUserIdString✅Identificador do usuário no seu sistema. Automaticamente hasheado com SHA-256 antes da transmissão, nunca enviado em texto plano.
Iniciando uma Revalidação Silenciosa
Passo 1 — Implemente initializeSDK

Chame o método estático UnicoSDK.initializeSDK, passando o seu AcessoBioConfigDataSource e o environment.

Chame durante a inicialização do app

UnicoSDK.initializeSDK deve ser chamado o mais cedo possível durante a inicialização do app (por exemplo, application(_:didFinishLaunchingWithOptions:)). Chamá-lo mais tarde reduz o tempo de processamento em segundo plano e aumenta a chance de respostas de autenticação inconclusivas.

UnicoSDK.initializeSDK(
config: YourUnicoConfig(),
environment: .UAT
)

O config é o mesmo AcessoBioConfigDataSource que você já implementa para a captura — a sdkKey vem do getHostKey() e o bundle do getBundleIdentifier():

final class YourUnicoConfig: NSObject, AcessoBioConfigDataSource {
func getBundleIdentifier() -> String { "your_bundle_id" }
func getHostKey() -> String { "your_sdk_key" }
}

Se o environment for omitido, o padrão é .PROD.

Passo 2 — Implemente startSilentValidation

Depois do initializeSDK, associe a coleta já em andamento ao usuário identificado chamando startSilentValidation com um PrepareInfo contendo o externalUserId.

let prepareInfo = PrepareInfo(externalUserId: "external_user_id")

UnicoSDK.startSilentValidation(prepareInfo: prepareInfo) { result in
switch result {
case .success:
break
case .failure(let error):
print(error.code, error.desc, error.info)
}
}

Se a validação acontecer no início do fluxo, por exemplo no login, aguarde o callback de sucesso antes de avançar para o Passo 3.

Erros
CódigoSignificado
75001SDK não inicializado. O initializeSDK não foi chamado, ainda não terminou, ou falhou.
75000Falha genérica na coleta.
Passo 3 — Crie o processo e autentique

Com a validação em andamento, crie o processo de verificação para concluir a autenticação. Veja Referência da API ▸ API ▸ Criar Processo.

Inclua o mesmo externalUserId enviado no PrepareInfo do Passo 2 no corpo da requisição — é isso que permite ao backend correlacionar a criação do processo com a validação já em andamento.

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",
"externalUserId": "external_user_id"
}'

A resposta inclui o campo silentAuth.result com o resultado da autenticação:

{
"id": "80371b2a-3ac7-432e-866d-57fe37896ac6",
"status": 3,
"silentAuth": {
"result": "yes"
}
}
CampoTipoDescrição
silentAuth.resultstringyes ou no — veja os valores possíveis abaixo.
silentAuth.result — valores possíveis
ValorSignificado
yesAutenticação aprovada, usuário reconhecido com confiança suficiente, nenhuma captura adicional necessária.
noDados insuficientes para aprovar silenciosamente. É recomendado autenticar via biometria (selfie) ou outro método alternativo.