Facetec
Esta documentação foi desenvolvida para apoiar equipes técnicas na integração com o FaceTec, descrevendo de forma clara os endpoints da API, parâmetros de requisição, estruturas de resposta e requisitos de autenticação. O Liveness 3D da FaceTec é uma tecnologia de detecção de vivacidade facial que utiliza análise tridimensional em tempo real para confirmar que o usuário é uma pessoa real presente no momento da captura, prevenindo fraudes com fotos, vídeos ou máscaras.
Introdução
Com o objetivo de ampliar a flexibilidade e a resiliência dos nossos processos de verificação biométrica, disponibilizamos uma opção de integração com a Facetec, como canal adicional para validação Liveness 3D.
A seguir, você encontrará as instruções técnicas para:
- Obter um Session Token para inicializar o SDK de Liveness 3D via Facetec;
- Realizar a validação biométrica com esse token;
- Interpretar os retornos da API e os códigos de status.
Passo 1 – Token
Para esta etapa deve-se executar o método: Session Token.
Este método cria um session token para habilitar o SDK Front-end 3D Liveness para execução da validação. Esse token está associado a appkey gerada no segundo passo.
Após a chamada ao /liveness-3d, tanto o session token quanto a appkey são finalizados. Ou seja, para gerar uma nova sessão é necessário retornar ao segundo passo e gerar uma nova appkey.
Gera um session token para habilitar o SDK Front-end 3D Liveness do FaceTec. O token fica vinculado a uma appkey gerada anteriormente. Após a chamada a este endpoint, tanto o session token quanto a appkey são finalizados — para nova sessão, gere uma nova appkey.
Passo 2 - Request
Aqui é onde você faz a chamada para o endpoint da API, enviando as informações necessárias para iniciar o processo.
É importante garantir que os headers e os dados do body estejam corretamente preenchidos para que tudo funcione como esperado.
Basta seguir o exemplo abaixo de como a URL e os headers devem ser configurados para realizar o processo corretamente.
POST https://hml.certiface.com.br/facecaptcha/service/captcha/3d/session-token| Headers | Descrição |
|---|---|
| Content-Type | application/json |
Body Params
Esses são os parâmetros que você precisa incluir no body do request. Certifique-se de preencher corretamente para que a API consiga processar a solicitação.
| Body | Descrição |
|---|---|
| appkey | Chave de acesso para validação. |
| userAgent | String do userAgent fornecida pelo SDK 3D Liveness , opcional. |
Request example
Aqui está um exemplo de como o body do request deve ser estruturado. Use esse exemplo como referência para montar a sua requisição, substituindo os valores necessários.
{
"appkey" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EaiHfZC9VdEVBNiPqfNVnPzDill2E5YyYdSpS38iw",
"userAgent" : "fornecido pelo dispositivo"
}| Headers | Descrição |
|---|---|
| Content-Type | application/json |
Passo 3 - Response
Após enviar a requisição, essa é a parte em que você recebe a resposta da API. Ela trará informações importantes como o token de sessão, o nome do provedor responsável e a URL que será usada para realizar a validação biométrica.
Fique atento também ao código de status para identificar se a operação foi bem-sucedida ou se ocorreu algum erro.
Response Body
Este é o formato do body que você receberá na resposta da API. Ele contém apenas o sessionToken, que será utilizado para inicializar o SDK do Liveness 3D e habilitar a validação biométrica.
| Body | Descrição |
|---|---|
| sessionToken | Token de sessão gerado pelo API do 3D Liveness para habilitar a validação biométrica. |
Responses
Aqui você encontra os possíveis status codes que a API pode retornar. Eles indicam se a requisição foi bem-sucedida ou se houve algum problema, como credenciais expiradas ou erro interno no servidor.
| Status Code | Descrição |
|---|---|
| 200 | OK |
| 401 | Não autorizado ou credenciais expiradas. |
| 500 | Erro interno na geração do Token. |
Response example
Este é um exemplo de como a resposta da API pode se parecer. Ele mostra o formato dos dados que você receberá após o processamento da requisição.
{
"sessionToken" : "AJyC3MiVXTgxC8bj3CJFopEPQyrFG8smzdd71ohQ8kTCbDAgRYyd6Uz"
}
É bom saber!
- O conteúdo do Body estará criptografado;
- Os métodos para a execução de cada módulo são exclusivos para o fluxo ao qual pertence;
- As URLs podem ser atualizadas de acordo as propriedades internas.
Passo 4 - Liveness 3D
Agora que o token foi gerado, é hora de validar a autenticidade biométrica com o método Liveness. Esta etapa realiza a verificação do liveness do usuário, garantindo que o processo seja feito de forma segura.
Esse é o momento em que a validação biométrica realmente acontece. Utilizando o sessionToken gerado anteriormente e a appkey, o sistema realiza uma verificação em tempo real para garantir que há uma pessoa viva na frente da câmera. O resultado dessa etapa vai indicar se a prova de vida foi bem-sucedida ou não, além de fornecer um protocolo de referência para acompanhamento.
Request
Aqui você verá como fazer a requisição para realizar a validação de liveness. Como na etapa anterior, você precisará configurar corretamente a URL e o body para enviar o appkey e o sessionToken obtidos.
POST https://hml.certiface.com.br/facecaptcha/service/captcha/3d/liveness| Headers | Descrição |
|---|---|
| Content-Type | application/json |
Body Params
Aqui você verá como fazer a requisição para realizar a validação de liveness. Como na etapa anterior, você precisará configurar corretamente a URL e o body para enviar o appkey e o sessionToken obtidos.
| Body | Descrição |
|---|---|
| appkey | Chave de acesso para validação. |
| userAgent | String do userAgent fornecida pelo SDK 3D Liveness. |
| faceScan | Blob do mapa tridimensional da face, conforme fornecido pelo SDK 3D Liveness. |
| auditTrailImage | Imagem frontal do usuário fornecida pelo SDK 3D Liveness, encodada e criptografada. |
| lowQualityAuditTrailImage | Imagem de baixa qualidade do usuário fornecida pelo SDK 3D Liveness, encodada e criptografada. |
| sessionId | O UUID da sessão gerada pelo 3D Liveness no front-end. |
Request Body
Esse é o formato correto para o body do request. Ele precisa incluir tanto o appkey quanto o sessionToken para que o processo de validação funcione corretamente.
{
" appkey" :"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UiLC.utzIZMCVqe_wNjNSxJw",
"userAgent" : "fornecido pelo SDK",
"faceScan":"BAFsr1Sp2eCWZEibLqKEloBX/gDpeC6RxJprf/N1thdyESSYKKOeQGTKuw8bDkw=" ,
"auditTrailImage":"AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQofseZMTbR",
"lowQualityAuditTrailImage":"AAQSkZJRgABAQAAD/2wBDAAAwMBQofseZMTbR",
"sessionId":"5dc67a9d-f8a4-44cc-b159-fbaa9ea222b3"
}
É bom saber!
- As URLs podem ser atualizadas de acordo as propriedades internas.
Response
Após o request de validação de liveness, você vai receber uma resposta com o status do processo. Ela indica se o acesso foi aprovado ou não, e pode fornecer mais detalhes sobre o motivo do sucesso ou falha.
| Headers | Descrição |
|---|---|
| Content-Type | application/json |
Response Body
O body da resposta irá indicar se a validação foi bem-sucedida ou não, juntamente com o código identificador da transação. Além disso, ele vai fornecer o motivo da falha, caso tenha ocorrido, seja por Biometria ou Prova de Vida.
| Body | Descrição |
|---|---|
| valid | Indica Acesso Negativo ou Acesso Positivo (true or false). |
| codID | Código identificador do tipo da transação (detalhes mais abaixo). |
| cause | Indica por qual motivo o processo finalizou sem sucesso (Biometria ou Prova de Vida). |
| protocol | Protocolo da transação de prova de vida. Ex: "201900039067". |
| scanResultBlob | É um blob criptografado para uso do SDK 3D Liveness para tratar o retorno. |
codID
Esse campo traz o código de identificação do tipo de transação realizada. Ele pode ser útil para entender o resultado da validação, como "Prova de vida válida" ou "Usuário bloqueado".
| codID | Descrição |
|---|---|
| 200.0 | Prova de vida válida. |
| 300.1 | Prova de vida inválida. |
| 300.2 | Usuário bloqueado. |
Responses
Aqui estão os status codes possíveis que a API pode retornar, informando sobre o sucesso ou falha do processo. Os códigos ajudam a identificar se o problema é devido a credenciais inválidas, erro interno, ou outro tipo de falha.
| Status Code | Descrição |
|---|---|
| 200 | OK. |
| 401 | Não autorizado ou credenciais expiradas. |
| 500 | Erro genérico. |
Response example
Esse é um exemplo de como a resposta pode se parecer. Ela irá mostrar, entre outras coisas, o resultado da validação e o código que descreve o tipo de acesso concedido ou negado.
{
"valid":false ,
"codID":300.1 ,
"cause":"PROVA DE VIDA" ,
"protocol":"201900039067" ,
"scanResultBlob":"AAAAAaaaaa123456zzzzzzz"
}Updated 19 days ago
