🚧 Guia de Integração API v1.2

Atenção: versão depreciada, visite o Guia de Integração v1.3

🚧

AtualizaƧƵes

Data de atualização (14/07/2022)

  • Edição do campo expires no body do Response da etapa 1. Credencial.

Data de atualização (31/05/2022)

  • Inserção do campo Flanalfabeto no body do Response Documentos da etapa 7. Result; JSON atualizado.

Data de atualização (24/05/2022)

  • Inserção do parĆ¢metro IdExternoCliente no Request da etapa 2. Appkey; YAML atualizado.
  • Inserção do campo IdExternoCliente no body do Response da etapa 7. Result; JSON atualizado.

Data de atualização (25/04/2022)

  • A Etapa 3.2 3D Session recebeu um novo mĆ©todo: Initialize. Agora, esta etapa conta com dois mĆ©todos: 3.2.1 Initialize e 3.2.2 Session Token;
  • Alteração no mĆ©todo 3.2.2 Session Token, cujo retorno agora Ć© criptografado;
  • Alteração no mĆ©todo 4.2 3D Liveness, no body, campos: auditTrailImage e lowQualityAuditTrailImage que, agora, devem ser enviados criptografados.

Data de atualização (22/04/2022)

  • Inserção do quadro facematch.codigo na etapa 7. Result.

Data de atualização (19/08/2022)
-Atualização dos códigos de retorno da Serpro serpro.codigo na etapa 7. Result.

:: Passo a passo

A Certiface ID possui 7 passos que segue:

  1. Credencial
  2. Appkey
  3. Preparation: Challenge / 3D Session
  4. Validation: Captcha / 3D Liveness
  5. Document
  6. Webhook
  7. Result

1. Credencial

Trata-se do primeiro mƩtodo que deve ser acessado para gerar as credenciais, utilizadas para gerar uma Appkey.
Devem ser informados login e senha de acesso à integração. O serviço deve retornar as credenciais de acesso ao Certiface ID.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/credencial
HeadersDescrição
Content-Typeapplication/x-www-form-urlencoded
ParâmetroDescrição
userLogin do operador do Certiface.
passSenha criptografada em MD5.

Exemplo de Body

user: login
pass: 3355a3973f54a008c642ee94fd0313d7

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
tokenToken de autorização para gerar Appkeys.
expiresHorÔrio de expiração do token UTC-0.
Status CodeDescrição
200OK.
400Requisição mal formada ou os dados não foram informados corretamente.
401NĆ£o autorizado ou credenciais expiradas.
500Erro genƩrico.

Exemplo de Body

{
    "token": "QjBlFoPJZYjSry-H5G3UU_BPSJST1zy8uMSPTtOgr7Y",
    "expires": "27/09/2019 19:09:00" 
}
šŸ“˜

Notas

  1. O tipo do conteúdo da requisição deve ser "application/x-www-form-urlencoded". O token gerado por este método possui uma expiração configurÔvel. O padrão são 3 horas. Enquanto o token não expirar, é possível gerar novas Appkeys.

  2. O endereçohttps://comercial.certiface.com.br/ deve ser utilizado apenas para o desenvolvimento e homologação da integração. Para acesso ao ambiente de produção, deve-se substituí-lo por https://www.certiface.com.br/.

2. Appkey

Para acessar o serviço da Certiface ID uma Appkey deve ser criada, informando: os dados do cliente, o login do operador e as credenciais geradas no passo anterior. O Certiface deve gerar uma Appkey global, que deve ser utilizada no front-end pelo cliente que solicitou o processo para realizar a validação biométrica.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/appkey
HeadersDescrição
Content-Typeapplication/x-www-form-urlencoded
ParâmetroDescrição
userLogin do operador que gerou as credenciais de acesso.
tokenJSON gerado na resposta do mƩtodo /credencial.
cpfCPF do usuƔrio que realizarƔ a prova de vida.
nomeNome e sobrenome do usuƔrio que realizarƔ a prova de vida.
nascimentoData de nascimento do usuƔrio, no formato dd/mm/yyyy .
idExternoClienteCampo de referência da identificação da proposta/jornada/transação/contrato do cliente. Este id deve ser escrito alfanumérico e conter até 255 caracteres.

Exemplo de Body

user: opelogin
token: {"token": "QjBlFoPJZYjSry-H5G3UU_BPSJST1zy8uMSPTtOgr7Y","expires": "27/09/2019 19:09:00"}
cpf: 00000014141
nome: Nome sobrenome
nascimento: 15/11/2001
idExternoCliente: 4561645657446457-651A.SDRFEN

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyChave de acesso para validação biométrica com prova de vida.
Status CodeDescrição
200OK.
401NĆ£o autorizado ou credenciais expiradas.
422Requisição mal formada ou dados não foram informados corretamente.
500Erro genƩrico.

Exemplo de Body

{												            			      
 		 "appkey":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EaiHfZC9VdEVBNiPqfNVpS38iw"
}
šŸ“˜

Nota

A appkey gerada por este método possui tempo de expiração configurÔvel. O padrão é de5 minutos. Ela pode ser utilizada para obter mais informações da transação da prova de vida e dos documentos, chamando o método "/result".

3. Preparation

Abaixo, estão apresentados dois métodos: Challenge e 3D Session. Nesta fase deve-se escolher um método a ser seguido.

3.1 Challenge

Este mƩtodo cria os desafios que o usuƔrio deverƔ realizar com a "appkey" gerada no mƩtodo anterior.

  • Uma appkey pode criar diversos desafios, porĆ©m, após a chamada ao "/captcha", ela estarĆ” vinculada Ć  uma prova de vida, nĆ£o podendo ser utilizada novamente para gerar desafios.
  • Após a geração dos desafios hĆ” um intervalo de 60 segundos, ao qual os desafios devem ser executados. Caso esta condição nĆ£o seja cumprida, serĆ” necessĆ”rio gerar novos desafios.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/challenge
HeadersDescrição
Content-Typeapplication/x-www-form-urlencoded
BodyDescrição
appkeyChave de acesso para validação biométrica com prova de vida.

Exemplo de Body

appkey: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EaiHfZC9VdEVBNiPqfNVnPzDill2E5YyYdSpS38iw

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
chkeyChave da requisição.
snapFrequenceInMillisTempo para cada foto em milissegundos.
snapNumberQuantidade de fotos por Desafio.
totalTimeTempo total de todos os desafios (seg).
numberOfChallengesNĆŗmero de Desafios.
challengesDesafios da requisição.
ChallengesDescrição
mensagemImagem do texto do desafio em base64.
tempoEmSegundosTempo do desafio em segundos.
tipoFace.codigoCódigo do tipo do desafio.
tipoFace.imagemImagem do emoji do desafio em base64.
Status CodeDescrição
200OK
401NĆ£o autorizado ou credenciais expiradas.

Exemplo de Body

{
    chkey: "BlG6fiiDMy0_LFP_5ku1F3HmTfBJwSx9VrMGGtVQcb",
    snapFrequenceInMillis: 1990,
    snapNumber: 2,
    totalTime: 8,
    numberOfChallenges: 1,
    challenges:[{
        mensagem: "img_base64",
        tempoEmSegundos: 4,
        tipoFace: {
            codigo: "E5XG6ZJBqr5yZy4bku1F3Xsx7k_HmTfBJwSGGtVQcb4x9VrMpGah0RISjKVG56aZ",
            imagem: "img_base64"
        }
    },{
        mensagem: "img_base64",
        tempoEmSegundos: 4,
        tipoFace: {
            codigo: "yZy4bE5XG6ZJBqrXsx7k_5ku1F3HmTfBJwSx9VrMGGtVQcb4pGah0RIG56aZSjKV",
            imagem: "img_base64"
        }
    }]
}
šŸ“˜

Nota

O conteĆŗdo do Body estarĆ” criptografado.
Exemplo: YtyB6DGov4NNVGskJnxwKtA4QKmQnZDmPxFJSSfC...JZbNyTWD171A==

3.2 3D Session

Para esta etapa deve-se executar dois mƩtodos: Initialize e Session Token.
Os dois métodos estão descritos a seguir.

3.2.1 Initialize

Esse mƩtodo recebe a appkey gerada no passo 2 e retorna as chaves para inicializar o SDK Liveness 3D.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/3d/initialize
HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyChave de acesso para validação.
platformSĆ£o dois valores permitidos: 'web' para o SDK 'web'; 'mobile' para o SDK 'mobile'.
{  
  "appkey" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EaiHfZC9VdEVBNiPqfNVnPzDill2E5YyYdSpS38iw",  
 "platform" : "web ou mobile"  
}

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
productionKeyChave para liberação do SDK, de acordo com a plataforma (web ou mobile).
Status CodeDescrição
200OK
401NĆ£o autorizado ou credenciais expiradas.
500Erro interno no retorno da chave.

Exemplo de Body

{
  "productionKey": "{\"domains\":\"domain.com\",\"expiryDate\":\"2002-20-02\",\"key\":\"234567drctvgybunhjimkftvgybhu\"}" 
}
šŸ“˜

Nota

O conteĆŗdo do Body estarĆ” criptografado.

3.2.2 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 à appkey gerada no método do passo 2.

Após a chamada ao /liveness-3d , tanto osession token quanto a appkey são finalizados. Ou seja, para gerar uma nova sessão é necessÔrio retornar ao passo 2 e gerar uma nova appkey.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/3d/session-token
HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyChave de acesso para validação.
userAgentString do userAgent fornecida pelo SDK 3D Liveness , opcional.

Exemplo de Body

{  
  "appkey" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EaiHfZC9VdEVBNiPqfNVnPzDill2E5YyYdSpS38iw",  
 "userAgent" : "fornecido pelo dispositivo"  
}

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
sessionTokenToken de sessão gerado pelo API do 3D Liveness para habilitar a validação biométrica.
Status CodeDescrição
200OK
401NĆ£o autorizado ou credenciais expiradas.
500Erro interno na geração do Token.

Exemplo de Body

{  
		"sessionToken" : "AJyC3MiVXTgxC8bj3CJFopEPQyrFG8smzdd71ohQ8kTCbDAgRYyd6Uz"  
}
šŸ“˜

Nota

  1. O conteĆŗdo do Body estarĆ” criptografado;
  2. Os métodos para a execução de cada módulo são exclusivos para o fluxo ao qual pertence;
  3. As URLs podem ser atualizadas de acordo as propriedades internas.

4. Validation

Estão apresentados abaixo dois métodos: Captcha e 3D Liveness. Nesta fase deve-se escolher um método a ser seguido.

4.1 Captcha

Este mƩtodo envia as imagens dos desafios executados para validaƧƵes biomƩtricas.

Ao chamar este mƩtodo, a appkey, gerada anteriormente, estarƔ associada a esta prova de vida.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha
HeadersDescrição
Content-Typeapplication/x-www-form-urlencoded
BodyDescrição
appkeyAppkey gerada pelo mƩtodo "/appkey".
chkeyChave do desafio que estĆ” no body do "/challenge".
imagesImagens dos desafios, devidamente formatadas.

Exemplo de Body

appkey: "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EiPqfNVnPzDill2E5YyYdSpS38iw",
chkey: "BlG6fiiDMy0_LFP_5ku1F3HmTfBJwSx9VrMGGtVQcb",
images: "xtT3IrjV77MIl61899E...FvXXsnDd38%3D"

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
validIndica Acesso Negativo ou Acesso Positivo (true or false).
codIDCódigo identificador do tipo da transação (detalhes mais abaixo).
causeIndica por qual motivo o processo finalizou sem sucesso (Biometria ou Prova de Vida).
protocolProtocolo da transação de prova de vida. Ex: "201900039067".
codIDDescrição
1.1Cadastro com sucesso.
1.2Certificação positiva. (Conhecido = True)
200.1Cadastro com alertas.
200.2Certificação negativa. (Conhecido = True)
200.3Certificação positiva. (Conhecido = False)
200.4Certificação negativa. (Conhecido = False)
200.5Validação na Base da Serpro
300.1Prova de vida invƔlida.
300.2UsuƔrio foi bloqueado.
Status CodeDescrição
200OK
401NĆ£o autorizado ou credenciais expiradas.
500Erro genƩrico.

Exemplo de Body

{
    "valid":false,
    "codID":300.1,
    "cause":"PROVA DE VIDA",
    "protocol":"201900039067"
}

4.2 3D Liveness

Este método envia os mapas tridimensionais da face gerados pelo SDK front-end 3D Liveness para validação.

Ao chamar este método, a appkey gerada no passo 2 estarÔ associada a esta prova de vida e não poderÔ ser reutilizada.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/3d/liveness
HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyChave de acesso para validação.
userAgentString do userAgent fornecida pelo SDK 3D Liveness.
faceScanBlob do mapa tridimensional da face, conforme fornecido pelo SDK 3D Liveness.
auditTrailImageImagem frontal do usuƔrio fornecida pelo SDK 3D Liveness, encodada e criptografada.
lowQualityAuditTrailImageImagem de baixa qualidade do usuƔrio fornecida pelo SDK 3D Liveness, encodada e criptografada.
sessionIdO UUID da sessão gerada pelo 3D Liveness no front-end.

Exemplo de Body

{
   " 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"
}
šŸ“˜

Nota

  1. As URLs podem ser atualizadas de acordo as propriedades internas.

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
validIndica Acesso Negativo ou Acesso Positivo (true or false).
codIDCódigo identificador do tipo da transação (detalhes mais abaixo).
causeIndica por qual motivo o processo finalizou sem sucesso (Biometria ou Prova de Vida).
protocolProtocolo da transação de prova de vida. Ex: "201900039067".
scanResultBlobƉ um blob criptografado para uso do SDK 3D Liveness para tratar o retorno.
codIDDescrição
1.1Cadastro com sucesso.
1.2Certificação positiva. (Conhecido = True)
200.1Cadastro com alertas.
200.2Certificação negativa. (Conhecido = True)
200.3Certificação positiva. (Conhecido = False)
200.4Certificação negativa. (Conhecido = False)
200.5Validação na Base da Serpro
300.1Prova de vida invƔlida.
300.2UsuƔrio foi bloqueado.
Status CodeDescrição
200OK.
401NĆ£o autorizado ou credenciais expiradas.
500Erro genƩrico.

Exemplo de Body

{
    "valid":false ,
    "codID":300.1 ,
    "cause":"PROVA DE VIDA" ,
    "protocol":"201900039067" ,
    "scanResultBlob":"AAAAAaaaaa123456zzzzzzz"
}

5. Document

Este método envia as imagens dos documentos para a validação.

Ao chamar este mƩtodo, a appkey gerada anteriormente estarƔ associada ao OCR e documentoscopia.

Request

POST https://comercial.certiface.com.br/facecaptcha/service/captcha/document
HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyAppkey gerada pelo mƩtodo "/appkey".
imagesArray de Imagens do documento, em base64. (Suporta uma ou duas imagens, separado por vĆ­rgula).

Exemplo de Body

{
    "appkey": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EiPqfNVnPzDill2E5YyYdSpS38iw",
    "images": [
        "xtT3IrjV77MIl61899E...",
        "FvXXsnDd38%3D..."
    ]
}

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
appkeyAppkey gerada pelo mƩtodo "/appkey".
idIdentificação interna.
Status CodeDescrição
200OK
400Imagem sem documento, pode ser enviado outra imagem utilizando a mesma appkey. (alerta de documento não encontrado, voltar para captura de documentos).
401NĆ£o autorizado ou credenciais expiradas.
500Erro genƩrico.

Exemplo de Body

{
	"appkey": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EiPqfNVnPzDill2E5YyYdSpS38iw",
    "id": 55
}
šŸ“˜

Nota

Em todo retornostatus code 400, a aplicação deve enviar novas imagens de documento. O procedimento se repetirÔ até que o retorno seja igual a status code 200 (OK), ou status code 401(Appkey expirada). O tempo de expiração é de 5 minutos

6. Webhook

A Certiface ID notificarÔ a conclusão da jornada do cliente assim que o processo for finalizado.
Esta notificação serÔ enviada para um endpoint especificado pela empresa através de método
webhook configurƔvel POST, conforme definido a seguir:

🚧

Importante

A empresa deve manter este endpoint ativo para receber a notificação de conclusão.

Request

POST https://host/servername/*/
HeadersDescrição
Content-Typeapplication/json
BodyDescrição
StatusComportamento esperado do status: "Completo" ou "Error"
AppkeyAppkey gerada pelo mƩtodo "/appkey".

Exemplo de Body Status "Completo"

{
    "Status" : "Completo",
    "Appkey" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EiPqfNVnPzDill2E5YyYdSpS38iw"
}

7. Result

Este método retorna o detalhe de toda a jornada do cliente (Prova de Vida; Bureau de Face; Facematch; Serpro; OCR; e Documentoscopia); pode ser chamado a qualquer momento, de preferência após o recebimento da finalização via Webhook.

Para realizar a chamada, Ʃ necessƔrio a Appkey gerada no item 2.

POST https://comercial.certiface.com.br:8443/facecaptcha/service/captcha/document/result
HeadersDescrição
Content-Typeapplication/x-www-form-urlencoded
BodyDescrição
appkeyAppkey gerada pelo mƩtodo "/appkey".

Exemplo de Body

{
  appkey: "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJjZXJ0aWZhY2UifQ.u6EiPqfNVnPzDill2E5YyYdSpS38iw"
}

Response

HeadersDescrição
Content-Typeapplication/json
BodyDescrição
statusStatus do processamento da jornada: "Completo"; "Em processamento"; "NĆ£o processado"; "Erro".
idExternoClienteCampo de referência da identificação da proposta do cliente, conforme enviado na etapa 2. Appkey.
dataCriacaoAppkeyData em que foi gerada a appkey pelo mƩtodo do passo 2.
analiseDocumentoAnƔlise do documento. (OCR e Documentoscopia). Conforme tabela a seguir.
certifaceIDRetorno do objeto CertifaceID. (Bureau de Faces). Ver tabela certifaceID abaixo.
facecaptchaRetorno do objeto Facecaptcha. (Prova de Vida). Ver tabela facecaptcha abaixo.
fotosRetorno do objeto das fotos enviadas. (Prova de Vida e Documentos).
analiseDocumentoDescrição
idIdentificação interna.
idExternoCódigo de identificação interna do cliente.
ticketTicket do(s) documento(s) em processamento.
dtCriacaoData de criação do ticket.
idClienteCódigo de identificação do cliente no sistema de Documentoscopia.
idSubclienteCódigo de identificação do subcliente no sistema de Documentoscopia.
idUsuarioCódigo de identificação do usuÔrio.
statusProcessamentoIdentificador de status de processamento. Vide tabela abaixo.
dtStatusProcessamentoData e hora do status de processamento finalizado.
idTipoProcessamentoCódigo do tipo de processamento realizado. Código interno.
scoreValor 0 Ơ 100% da possibilidade do documento ser verdadeiro, onde 100% quer dizer que o documento passou com sucesso por todas as regras cadastradas no sistema e padrƵes do estado emissor.
urlRetornoTicketEndereƧo web onde serƔ postado o resultado do processamento.
dtRetornoTicketData e hora de retorno do ticket.
responseClientDadosOcrDTOTodos os dados extraídos do documento; tendo ou não duas partes, a primeira sendo RG, a segunda CNH.
biometriaCertifaceResultado do Facematch do documento.
documentosLista de todos os status dos documentos processados pela API.
statusProcessamentoDescrição
2Aguardando Processamento.
3Em Processamento.
4Processado.
5Cancelado.
6Falha no Processamento.
70Upload Incorreto.
responseClientDadosOcrDTODescrição
estadoEstado onde foi emitido o documento.
documentoIdentificação do tipo do documento.
dtExpedicaoData da expedição do documento (formato: dd/mm/yyyy).
dtExpedicaoFormatadaData da expedição do documento (formato: yyyy-mm-dd).
dtNascimentoFormatadaData de nascimento (formato: yyyy-mm-dd).
nrRgNĆŗmero do documento RG.
nomeNome e sobrenome do titular do documento.
filiacaoNome do pai e nome da mãe.
nomePaiNome do Pai.
nomeMaeNome da MĆ£e.
docOrigemOrigem do Documento.
dtNascimentoData de nascimento (formato: dd/mm/aaaa).
cpfNĆŗmero do CPF (formato: "999999999/99").
naturalidadeNaturalidade.
nomenclaturaNome do órgão emissor.
dtCriacaoData de criação do processo (formato: "yyyy-mm-dd hh:mm:ss").
flAnalfabetoIdentificação de assinatura do usuÔrio no documento para leitura no OCR. Enviado de acordo com o tipo de documento (CNH; DNI; ou RG). True = documento não assinado; False: documento assinado.
ResponseClientCNHOcrDTODescrição
estadoSigla do estado da emissão do documento CNH.
estadoNomeNome do estado da emissão do documento CNH.
documentoTipo do documento (CNH).
nomeNome e sobrenome do titular do documento.
docOrigemDados do documento de origem: número de identificação e emissor de origem.
documentoOrigemNúmero de identificação do documento de origem.
emissorOrigemEmissor de Origem.
ufOrigemUF de Origem.
cpfNĆŗmero do CPF (formato "999.999.999-99").
dtNascimentoData de Nascimento (formato: dd/mm/aaaa).
dtNascimentoFormatadaData de Nascimento (formato: yyyy-mm-aa).
filiacaoNome do pai e nome da mãe.
nomePaiNome do Pai.
nomeMaeNome da MĆ£e.
permissao"PERMISSƃO" ou NULL.
accAutorização para conduzir ciclomotores.
categoriaCategoria ("ABCDE" ou individual).
numeroRegistroNĆŗmero do registro do documento.
validadeData de validade do documento (formato: "dd/mm/aaaa").
primeiraHabilitacaoData da primeira habilitação (formato: "dd/mm/aaaa").
localCidade e estado onde foi emitido o documento ("SƃO PAULO, SP").
dtExpedicaoData da expedição do documento (formato: "dd/mm/aaaa").
dtExpedicaoFormatadaData da expedição do documento (formato: yyyy-mm-dd).
codSegurancaCódigo de segurança.
espelhoNĆŗmero de controle do documento (papel documento).
renachNumeração do Renach.
dtCriacaoData de criação do processo (formato: "yyyy-mm-dd hh:mm:ss").
flAnalfabetoIdentificação de assinatura do usuÔrio no documento para leitura no OCR. Enviado de acordo com o tipo de documento (CNH; DNI; ou RG). True = documento não assinado; False: documento assinado.
ResponseClientDNIOcrDTODescrição
estadoEstado de emissão do Documento Nacional de Identidade (DNI).
nomenclaturaNome do orgão emissor.
naturalidadeNaturalidade.
filiacaoNome do pai e nome da mãe.
dtNascimentoData de Nascimento (formato: dd/mm/aaaa).
dtNascimentoFormatadaData de Nascimento (formato: yyyy-mm-aa).
nomeNome e sobrenome do titular do documento.
observacaoFrontObservação.
outroRGNĆŗmero de outro RG caso possua.
orgaoƓrgĆ£o Emissor.
fatorTipo sanguĆ­neo com fator Rh.
registroCivilInformação de origem do Registro civil.
cnhNĆŗmero do CNH.
cnsCartão Nacional de Saúde.
cpfNĆŗmero do CPF.
ctpsNĆŗmero da Carteira de Trabalho PrevidĆŖncia Social.
serieCTPSSérie da Carteira de Trabalho Previdência Social.
ufctpsUF de emissão da Carteira de Trabalho Previdência Social.
dniNĆŗmero do DNI.
tituloEleitorNĆŗmero do TĆ­tulo de Eleitor.
dtExpedicaoData da expedição do DNI (formato: "dd/mm/aaaa").
dtExpedicaoFormatadaData da expedição do DNI (formato: yyyy-mm-dd).
localPosto onde o DNI foi emitido.
certMilitarNúmero da Certidão Militar.
nomeSocialNome Social.
pisNĆŗmero do PIS.
profissionalIdentidade Profissional ou CIP.
rgNĆŗmero do RG.
dtCriacaoData de criação do processo (formato: "yyyy-mm-dd hh:mm:ss").
flAnalfabetoIdentificação de assinatura do usuÔrio no documento para leitura no OCR. Enviado de acordo com o tipo de documento (CNH; DNI; ou RG). True = documento não assinado; False: documento assinado.
biometriaDocumentoDescrição
protocoloProtocolo da Requisição da validação de biometria do documento.
facematch.codigoCódigo da resposta do Facematch. Vide tabela abaixo.
facematch.causaMensagem referente ao código da resposta.
facematch.scorePontuação da validação da foto-documento versus foto-usuÔrio (selfie) enviada de 0.0 a 1.0, retornado apenas quando executado.
serpro.codigoCódigo da resposta do Facematch. Vide tabela abaixo.
serpro.causaMensagem referente ao código da resposta.
serpro.scorePontuação da validação da foto-documento versus base-Serpro de 0.0 a 1.0, retornado apenas quando executado.
facematch.codigoDescrição
1Erros gerais na validação da entrada, itens obrigatórios nulos ou com dados descritos invÔlidos.
2Operador ativo não encontrado.
3CPF invÔlido, formatação ou número.
4CPF não cadastrado na base interna.
5Arquivo da imagem com formato ou extensão não suportada.
101Falha na configuração. Contate o Suporte.
102Falha na configuração. Contate o Suporte.
103Operador não possui acesso.
200FaceMatch Positiva.
300FaceMatch Negativa.
400Face não encontrada no documento.
401Falha na validação documento-biometria.
402Documento ilegĆ­vel.
500Erro interno.
documentosDescrição
arquivoNĆŗmero serial, gerado a partir da ordem dos recebimentos dos arquivos que existem no ticket.
statusArquivoIdentificador de status de processamento; possui as seguintes codificaƧƵes apresentadas na tabela "statusArquivo" a seguir.
arquivosProcessado.tipoTipo do documento identificado; possui as seguintes codificaƧƵes apresentadas na tabela "tipo" a seguir.
arquivosProcessado.statusArquivoProcessadoIdentificador de status do tipo de documento processado da imagem; possui as seguintes codificaƧƵes apresentadas na tabela "statusArquivoProcessado" a seguir.
statusArquivoDescrição
7Aguardando Identificação.
8Falha Identificação.
9Sucesso Identificação.
21Cancelado.
22Processado.
tipoDescrição
1RG[FRONT]
2RG[BACK]
3CNH
4CNH[FRONT]
5CNH[BACK]
6DNI[FRONT]
7DNI[BACK]
statusArquivoProcessadoDescrição
10Aguardando Leitura.
11Falha Leitura.
12Sucesso Leitura.
19Processado.
20Cancelado.
certifaceIDDescrição
aprovadoTrue indica que a transação foi aprovada com baixa possibilidade de fraude; False indica alta possibilidade de fraude ou erro.
codigoCódigo referente ao resultado do processo. Vide tabela abaixo.
conhecidoTrue indica que o usuÔrio jÔ possui cadastro sólido na base; False indica cadastro recente ou com baixa confiança.
protocoloProtocolo da transação CertifaceID.
scoreBiometricoScore de biometria. Float de -100.0 Ć  100.0.
codigoDescrição
201Cadastro com sucesso.
202Cadastro com pendĆŖncia.
212Cadastro com pendĆŖncia e similares restritos.
203Certificação positiva.
204Certificação negativa.
205Validação na Base da Serpro
401Falha na qualidade da imagem da face.
402Cadastro desabilitado.
501Falha ao cadastrar.
facecaptchaDescrição
causaIndica a etapa em que o processo terminou.
codIDCódigo identificador do tipo da transação. Vide tabela abaixo.
protocoloProtocolo da transação de Prova de Vida.
validTrue acesso positivo; False indica acesso negativo ou erro no processo de Prova de Vida.
codIDDescrição
1.1Cadastro com sucesso.
1.2Certificação positiva.
200.1Cadastro com alertas.
200.2Certificação negativa.
200.5Validação na Base da Serpro
300.1Prova de vida invƔlida.
300.2UsuƔrio foi bloqueado.
FotosDescrição
facecaptcha.frontalImagem frontal em base64.
documento.descriçãoDescrição da imagem do documento (face A; fac B).
documento.imagemImagem do documento em base64.
Status CodeDescrição
200OK.
400Requisição mal formada ou os dados não foram informados corretamente.
401NĆ£o autorizado ou credenciais expiradas.
404Appkey não encontrada ou não realizada a Prova de Vida.
500Erro genƩrico.

Exemplo de Body

{
    "status": "Completo",
    "idExternoCliente": "4561645657446457-651A.SDRFEN"
    "dataCriacaoAppkey": "2021-07-30 21:44:16",
    "analiseDocumento": {
        "id": 180931,
        "idExterno": "90e9ef2f-b9a1-46c4-ac73-fca2fad755ae",
        "ticket": "da748b1a-abf0-4bff-b359-56b84f928ff3",
        "dtCriacao": "2021-07-30T18:45:05",
        "idCliente": "08d90425-ce53-474a-8f26-0ea646d3152a",
        "idSubcliente": "00000000-0000-0000-0000-000000000000",
        "idUsuario": "08d905c9-c8da-46dc-8682-e32437639638",
        "statusProcessamento": 4,
        "dtStatusProcessamento": "2021-07-30T18:45:37.5926823-03:00",
        "idTipoProcessamento": 2,
  	"score": 100, 
        "urlRetornoTicket": "https://comercial.certiface.com.br/facecaptcha/service/captcha/document/processed",
        "dtRetornoTicket": "2021-07-30T18:45:38.4401041-03:00",
        "responseClientDadosOcrDTO": {
            "responseClientRGOcrDTO": {
                "estado": "SP",
                "documento": "RG",
                "dtExpedicao": "18/07/2019",
                "dtExpedicaoFormatada": "2019-07-18",
                "nrRg": "99.999.999-9",
                "nome": "NOME SOBRENOME",
                "filiacao": "NOME DO PAI\nNOME DA MAE",
                "nomePai": "NOME DO PAI",
                "nomeMae": "NOME DA MAE",
                "dtNascimento": "27/05/1984",
                "dtNascimentoFormatada": "1984-05-27",
                "cpf": "999999999/99",
                "naturalidade": "SAO PAULO - SP",
                "nomenclatura": "ESTADO DE SAO PAULO\nSECRETARIA DA SEGURANƇA PƚBLICA",
                "dtCriacao": "2021-07-30 21:45:20" ,
                "flAnalfabeto": "True"  
            },
            "ResponseClientCNHOcrDTO": {
                "estado": "SP",
                "documento": "CNH",
                "nome": "NOME SOBRENOME",
                "docOrigem": "99999999 XX/XX",
                "documentoOrigem": "99999999",
                "emissorOrigem": "SSP",
                "ufOrigem": "SP",
                "cpf": "XXX.XXX.XXX-XX",
                "dtNascimento": "20/01/1990",
                "dtNascimentoFormatada": "1990-01-20",
                "filiacao": "NOME DO PAI\nNOME DA MAE",
                "nomePai": "NOME DO PAI",
                "nomeMae": "NOME DA MAE",
                "permissao": "NULL",
                "acc": "NULL",
                "categoria": "XXXXX",
                "numeroRegistro": "99999999999",
                "validade": "20/03/1990",
                "primeiraHabilitacao": "20/01/1990",
                "local": "SƃO PAULO, SP",
                "dtExpedicao": "20/01/1990",
                "dtExpedicaoFormatada": "1990-01-20",
                "codSeguranca": "9999999999",
                "espelho": "9999999999",
                "estadoNome": "ESTADO",
                "renach": "XX999999999",
                "dtCriacao": "1990-01-20 21:45:20" ,
                "flAnalfabeto": "True" 
            },
            "ResponseClientDNIOcrDTO": {
                "estado": "SP",
                "nomenclatura": "ESTADO DE SAO PAULO\nSECRETARIA DA SEGURANƇA PƚBLICA",
                "naturalidade": "SAO PAULO - SP",
                "filiacao": "NOME DO PAI\nNOME DA MAE",
                "nomePai": "NOME DO PAI",
                "nomeMae": "NOME DA MAE",
                "dtNascimento": "20/01/1990",
                "dtNascimentoFormatada": "1990-01-20",
                "nome": "NOME SOBRENOME",
                "observacaoFront": "XXXXXXXXXXXXXXX",
                "outroRG": "99.999.999-9",
                "orgao": "XXXXXX-XX",
                "fator": "XXX",
                "registroCivil": "CERT. CASAMENTO CARTƓRIO 1Āŗ OFICIO TERMO: 9999999 FOLHA:"+ "9999999 LIVRO: XXXXXX CATARINA - CE",
                "cnh": "99999999999",
                "cns": "99999999999",
                "cpf": "XXX.XXX.XXX-XX",
                "ctps": "XXXXXXXX",
                "serieCTPS": "XXX",
                "ufctps": "XX",
                "dni": "XXXXXXXXXXXXXXX",
                "tituloEleitor": "XXXX.XXXX.XXXX",
                "dtExpedicao": "20/01/1990",
                "dtExpedicaoFormatada": "1990-01-20",
                "local": "P.:49",
                "certMilitar": "XXXXXXXXXXXXXX",
                "nomeSocial": "NOME SOCIAL",
                "pis": "XXXXXXXXXX-X",
                "profissional": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                "rg": "99.999.999-9",
                "dtCriacao": "1990-01-20 21:45:20" ,
                "flAnalfabeto": "True"  
            }
        },
        "biometriaDocumento": {
            "protocolo": "202100045840",
            "facematch": {
                "codigo": "200",
                "causa": "Validacao positiva",
                "score": "0.56069"
            },
            "serpro": {
                "codigo": "200",
                "causa": "Validacao positiva",
                "score": "0.9667247"
            }
        },
        "documentos": [
            {
                "arquivo": 2,
                "statusArquivo": 22,
                "arquivosProcessado": [
                    {
                        "tipo": 2,
                        "statusArquivoProcessado": 19
                    }
                ]
            },
            {
                "arquivo": 1,
                "statusArquivo": 22,
                "arquivosProcessado": [
                    {
                        "tipo": 1,
                        "statusArquivoProcessado": 19
                    }
                ]
            }
        ]
    },
    "certifaceID": {
        "aprovado": true,
        "codigo": 203,
        "conhecido": true,
        "protocolo": 202101420655,
        "scoreBiometrico": 98
    },    
    "facecaptcha": {
        "causa": "CERTIFACE",
        "codID": 1.2,
        "protocolo": 202100094411,
        "validado": true
    },
    "fotos": {
        "facecaptcha": {
            "frontal": "base64"
        },
        "documento": [
            {
                "descricao": "FACE A",
                "imagem": "base64"
            },
            {
                "descricao": "FACE B",
                "imagem": "base64"
            }
        ]
    }
}
šŸ“˜

Nota

  1. Exemplo do retorno da Certiface ID completa. O OCR pode ser de três tipos: RG, CNH ou DNI, quando enviado qualquer um desses tipos, os outros dois objetos referente a esse tipo serão suprimidos;

  2. O serviƧo do Facematch e Serpro podem ser habilitados ou desabilitado. Quando um dos serviƧos estiver desabilitado o objeto referente a esse serviƧo serƔ suprimido do retorno.

Outras InformaƧƵes

Detalhes código/causa Facematch
CódigoCausaDescrição da causa Facematch
200Validação positiva.Biometria validada corretamente com o documento (faces similares).
300Validação negativa.Biometria não validada corretamente com o documento (similaridade baixa).
400Face não encontrada no documento.Face não encontrada no tratamento do documento.
401Falha na validação documento-biometria.Falha interna na validação do documento.
402Documento ilegĆ­vel.Falta de legibilidade/qualidade da imagem. Recomenda-se nova captura de imagem.

Detalhes código/causa Serpro
CódigoCausaDescrição da causa Serpro
200Validação positiva.Biometria-documento validado corretamente com a Serpro.
300validação negativa.foto-documento não validado corretamente com a Serpro.
450Falha da validação Serpro- (código Serpro).Erros da integração Serpro.

Outros Retornos

Nome InvƔlido
{
    "status": "ERR",
    "resultado": "ERR",
    "protocolo": "202001138311",
    "msg": "NOME"
}
CPF InvƔlido
{
    "status": "ERR",
    "resultado": "ERR",
    "protocolo": "202001138315",
    "msg": "INVALID CPF"
}
Nascimento InvƔlido
{
    "status": "ERR",
    "resultado": "ERR",
    "protocolo": "202001138317",
    "msg": "INVALID DATE"
}