Envio de imagens para Onboarding (Document)

stable

Os eventos de envio de imagens caracterizam-se por mensagens que comunicam ao destinatário o recebimento e o processamento de imagens para Onboarding.

Para mais informações sobre quando estes eventos são disparados e sobre o seu conteúdo, consulte a documentação Envio de documentos pessoais.

Pré-requisitos

Para receber esses eventos, o parceiro deverá:

Informações sobre os eventos

Contexto e nome do evento

Os campos context e name poderão variar de acordo com a tabela a seguir:

Contexto (context)Nome do evento (name)Descrição
DocumentDOCUMENT_WAS_RECEIVEDA imagem do documento foi recebida, porém ela pode ainda não ter sido completamente analisada.
DocumentDOCUMENT_WAS_PROCESSEDA imagem do documento foi recebida e analisada.

Fluxo dos eventos

O fluxograma a seguir descreve a sequência em que os eventos ocorrem. Clique na imagem para ampliá-la:

Identificador (entityId)

O campo entityId é o identificador da entidade emissora do evento e seu valor depende do contexto de sua emissão.

No contexto de documento, o entityId é o token.

Dados dos eventos

DOCUMENT_WAS_RECEIVED

Esse evento sinaliza que imagem do documento foi recebida, porém ela pode ainda não ter sido completamente analisada.

Descrição do objeto data do evento

O objeto data traz detalhes específicos do contexto em que o evento ocorre. Neste caso, o objeto trará os campos de acordo com a tabela:

NomeTipoDescrição
tokenstringToken retornado no envio do documento.
documentTypestringTipo de documento, o qual pode ser: “RG”, “CNH”, “SELFIE”, "CRNM", "RNE" ou "DNI".
documentSidestringLado do documento (”FRONT” ou “BACK”). Esse campo não é enviado em caso de selfie.
statusstringSituação da análise da imagem, a qual pode ser: “ANALYZING”, “PARTIALLY_ANALYZED”, "ANALYSIS_COMPLETED" ou "UNEXPECTED_ERROR".
analyzedAtstringData e hora em que a análise foi realizada, no formato YYYY-MM-DDTHH:mm:SS.MMMZ.

Payload do evento

O payload abaixo exemplifica a estrutura do evento que deverá ser recebido pelo parceiro. Clique na seta para expandi-lo:

Exemplo de payloads
{
      "entityId": "Wx07Wf3sdqqFat6KKicHs_8_8THcVHfJ",
      "companyKey": "company_key",
      "idempotencyKey": "d3a2e330-b42b-46b7-ae8e-f0942b5271fd",
      "context": "Document",
      "name": "DOCUMENT_WAS_RECEIVED",
      "timestamp": "2022-06-29T15:10:21.0585476+00:00",
      "correlationId": "d3a2e330-b42b-46b7-ae8e-f0942b5271fd",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "sjfdhsjakfgKKGIFGLkjbkjasgdklh",
         "documentType": "RG",
         "documentSide": "FRONT",
         "status": "ANALYZING"
      }
   }
[
   {
      "entityId": "VL2xeaa2TQzmqbaX32FaRvujBQfAqcb_",
      "companyKey": "company_key ",
      "idempotencyKey": "e5a2ae6a-e7fc-446d-983e-fb51338c6310",
      "context": "Document",
      "name": "DOCUMENT_WAS_RECEIVED",
      "timestamp": "2022-06-29T15:10:15.6697797+00:00",
      "correlationId": "e5a2ae6a-e7fc-446d-983e-fb51338c6310",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "VL2xeaa2TQzmqbaX32FaRvujBQfAqcb_",
         "documentType": "RG",
         "documentSide": "BACK",
         "status": "ANALYZING"
      }
   }
]
[
   {
      "entityId": "YR5GMNH.D3HMQKa2SfPjUwwlhx.kypcx",
      "companyKey": "company_key ",
      "idempotencyKey": "5d3b2bb2-dcd1-4398-8c02-8456fb26d65d",
      "context": "Document",
      "name": "DOCUMENT_WAS_RECEIVED",
      "timestamp": "2022-06-29T15:10:18.386868+00:00",
      "correlationId": "5d3b2bb2-dcd1-4398-8c02-8456fb26d65d",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "YR5GMNH.D3HMQKa2SfPjUwwlhx.kypcx",
         "documentType": "CNH",
         "documentSide": "FRONT",
         "status": "ANALYZING"
      }
   }
]
[
   {
      "entityId": "g.Ryjg0PyjLHwisjNCMKgweiABLY0u3w",
      "companyKey": "company_key",
      "idempotencyKey": "0f2c87a2-a65d-4fa8-a110-62f8dbc9398a",
      "context": "Document",
      "name": "DOCUMENT_WAS_RECEIVED",
      "timestamp": "2022-06-29T15:10:17.8142959+00:00",
      "correlationId": "0f2c87a2-a65d-4fa8-a110-62f8dbc9398a",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "g.Ryjg0PyjLHwisjNCMKgweiABLY0u3w",
         "documentType": "CNH",
         "documentSide": "BACK",
         "status": "ANALYZING"
      }
   }
]
[
   {
      "entityId": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
      "companyKey": "company_key",
      "idempotencyKey": "67e07769-e18b-448c-926d-a4c477e22e0a",
      "context": "Document",
      "name": "DOCUMENT_WAS_RECEIVED",
      "timestamp": "2022-06-29T15:10:17.0274218+00:00",
      "correlationId": "67e07769-e18b-448c-926d-a4c477e22e0a",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
         "documentType": "SELFIE",
         "status": "ANALYZING"
      }
   }
]

DOCUMENT_WAS_PROCESSED

Esse evento sinaliza que a imagem do documento foi recebida e analisada.

Descrição do objeto data do evento

O objeto data traz detalhes específicos do contexto em que o evento ocorre. Neste caso, o objeto trará os campos de acordo com a tabela:

NomeTipoDescrição
tokenstringToken retornado no envio do documento.
documentTypestringTipo de documento, o qual pode ser: “RG”, “CNH”, “SELFIE”, "CRNM", "RNE" ou "DNI".
documentSidestringLado do documento (”FRONT” ou “BACK”). Esse campo não é enviado em caso de selfie.
statusstringSituação da análise da imagem, a qual pode ser: “ANALYZING”, “PARTIALLY_ANALYZED”, "ANALYSIS_COMPLETED" ou "UNEXPECTED_ERROR".
analyzedAtstringData e hora em que a análise foi realizada, no formato ISO 8601 - UTC.

Campos exclusivos para RG (frente)

NomeTipoDescrição
faceMatchobjectObjeto que contém os dados referentes à comparação da foto da pessoa no documento com a selfie enviada previamente.
faceMatch.statusstringResultado da análise que identifica a correspondência entre a face do titular do documento (target) e a da selfie previamente analisada (source). Os possíveis status são: “HAS_FACE_MATCH” (há coincidência entre as faces), “UNMATCHED_DOCUMENT” (a foto do documento não corresponde à imagem da selfie) ou “MANY_FACES_DETECTED” (mais de uma face detectada).
faceMatch.similaritynumberPercentual de correspondência da selfie com a face do titular do documento.
faceMatch.confidencenumberPercentual de confiabilidade da análise realizada.
documentDetailsobjectObjeto que contém informações referentes ao documento analisado.
documentDetails.statusstringResultado da análise do texto extraído do documento. Essa análise determina se o tipo de documento enviado é o mesmo informado pelo cliente. Os possíveis status são: "DETECTED_DOCUMENT" (documento detectado), "NO_DOCUMENT_FOUND" (documento não encontrado) e "NO_INFO_FOUND" (informações não encontradas).
documentDetails.federativeUnitstringUnidade federativa em que o documento foi emitido.
documentDetails.sidestringLado do documento, sendo “A” para a frente e “B” para o verso.
documentDetails.placeOfBirthstringLocal de nascimento do cliente.

Campos exclusivos para RG (verso)

NomeTipoDescrição
documentDetailsobjectObjeto que contém informações referentes ao documento analisado.
documentDetails.statusstringResultado da análise do texto extraído do documento. Essa análise determina se o tipo de documento enviado é o mesmo informado pelo cliente. Os possíveis status são: "DETECTED_DOCUMENT" (documento detectado), NO_DOCUMENT_FOUND (documento não encontrado) e NO_INFO_FOUND (informações não encontradas).
documentDetails.idnumberstringNúmero do documento de identidade.
documentDetails.registerNamestringNome do cliente como consta no documento.
documentDetails.issueDatestringData em que o documento foi emitido.
documentDetails.birthDatestringData de nascimento do cliente.
documentDetails.motherNamestringNome da mãe do cliente como consta no documento.
documentDetails.sidestringLado do documento, sendo “A” para a frente e “B” para o verso.

Campos exclusivos para CNH (frente)

NomeTipoDescrição
faceMatchobjectObjeto que contém os dados referentes à comparação da foto da pessoa no documento com a selfie enviada previamente.
faceMatch.statusstringResultado da análise que identifica a correspondência entre a face do titular do documento (target) e a da selfie previamente analisada (source). Os possíveis status são: “HAS_FACE_MATCH” (há coincidência entre as faces), “UNMATCHED_DOCUMENT” (a foto do documento não corresponde à imagem da selfie) ou “MANY_FACES_DETECTED” (mais de uma face detectada).
faceMatch.similaritynumberPercentual de correspondência da selfie com a face do titular do documento.
faceMatch.confidencenumberPercentual de confiabilidade da análise realizada.
documentDetailsobjectObjeto que contém informações referentes ao documento analisado.
documentDetails.statusstringResultado da análise do texto extraído do documento. Essa análise determina se o tipo de documento enviado é o mesmo informado pelo cliente. Os possíveis status são: "DETECTED_DOCUMENT" (documento detectado), NO_DOCUMENT_FOUND (documento não encontrado) e NO_INFO_FOUND (informações não encontradas).
documentDetails.idnumberstringNúmero do documento.
documentDetails.cpfNumberstringNúmero do documento CPF.
documentDetails.registerNamestringNome do cliente como consta no documento.
documentDetails.driveLicenseCategorystringCategoria da carteira de motorista, podendo ser “ACC”, “A”, “B” ou “C”.
documentDetails.driveLicensenumberNúmero da carteira de motorista.
documentDetails.federativeUnitstringUnidade federativa em que o documento foi emitido.
documentDetails.issuedBystringEntidade que emitiu o documento.
documentDetails.issueDatestringData de emissão do documento.
documentDetails.birthDatestringData de nascimento do cliente.
documentDetails.fatherNamestringNome do pai do cliente como consta no documento.
documentDetails.motherNamestringNome da mãe do cliente como consta no documento.
documentDetails.validatestringData de expiração do documento.
documentDetails.sidestringLado do documento, sendo “A” para a frente e “B” para o verso.

Campos exclusivos para CNH (verso)

NomeTipoDescrição
documentDetailsobjectObjeto que contém informações referentes ao documento analisado.
documentDetails.statusstringResultado da análise do texto extraído do documento. Essa análise determina se o tipo de documento enviado é o mesmo informado pelo cliente. Os possíveis status são: "DETECTED_DOCUMENT" (documento detectado), NO_DOCUMENT_FOUND (documento não encontrado) e NO_INFO_FOUND (informações não encontradas).
documentDetails.issueDateData de emissão do documento.
documentDetails.issuedPlaceLocal de emissão do documento.
documentDetails.sidestringLado do documento, sendo “A” para a frente e “B” para o verso.

Campos exclusivos para selfie

NomeTipoDescrição
faceDetailsobjectObjeto que contém informações referentes à análise do rosto exibido no documento.
faceDetails.statusstringSituação da análise das características do rosto da pessoa. Os possíveis status são: “DETECTED_FACE” (face detectada), “MANY_FACES_DETECTED” (mais de uma face detectada) e “COULD_NOT_DETECT_FACE” (não se detectou nenhuma face).
faceDetails.confidencenumberPercentual de confiabilidade da análise realizada.
faceDetails.ageRangeobjectObjeto que contém informações sobre o intervalo de idade da pessoa de acordo com a imagem analisada.
faceDetails.ageRange.lownumberMínima idade possível.
faceDetails.ageRange.highnumberMáxima idade possível.
faceDetails.sunglassesobjectObjeto que contém informações da análise que identifica se o cliente está usando óculos de sol.
faceDetails.sunglasses.valuebooleanResultado da análise, o qual pode ser “true” ou “false”.
faceDetails.sunglasses.confidencenumberPercentual de confiabilidade da análise realizada.
faceDetails.eyesOpenobjectObjeto que contém informações da análise que identifica se o cliente está com os olhos abertos.
faceDetails.eyesOpen.valuebooleanResultado da análise, o qual pode ser “true” ou “false”.
faceDetails.eyesOpen.confidencenumberPercentual de confiabilidade da análise realizada.
livenessobjectObjeto que contém informações referentes à prova de vida.
liveness.statusstringResultado da análise da prova de vida, o qual pode ser: “LIVENESS_FOUND” (prova de vida encontrada) ou “NO_LIVENESS” (prova de vida não encontrada).
liveness.analysisDetailsarray of stringsEsse campo é retornado em caso de reprovação de selfie, contendo uma lista com mensagens que indicam os motivos de recusa da selfie.
liveness.analysisDetails.messagesstringMensagem que indica o motivo da recusa da selfie enviada.

🚧

Importante

Recomendamos que o parceiro não desenvolva uma regra de negócio com base nos motivos de recusa de selfie, pois eles podem sofrer alteração.

Payload do evento

O payload abaixo exemplifica a estrutura do evento que deverá ser recebido pelo parceiro. Clique na seta para expandi-lo:

Exemplo de payloads
{
      "entityId": "Wx07Wf3sdqqFat6KKicHs_8_8THcVHfJ",
      "companyKey": "FLORESTA_ED",
      "idempotencyKey": "e02272ae-897b-45bc-917c-749fb56006f4",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:24.1631484Z",
      "correlationId": "e02272ae-897b-45bc-917c-749fb56006f4",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "Wx07Wf3sdqqFat6KKicHs_8_8THcVHfJ",
         "documentType": "RG",
         "documentSide": "FRONT",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:24.1631484Z",
         "faceMatch": {
            "status": "HAS_FACE_MATCH",
            "similarity": 99.9763,
            "confidence": 99.97799
         },
         "documentDetails": {
            "status": "DETECTED_DOCUMENT",
            "federativeUnit": "PARÁ",
            "side": "A",
            "placeOfBirth": "Santarém"
         }
      }
   }
{
      "entityId": "VL2xeaa2TQzmqbaX32FaRvujBQfAqcb_",
      "companyKey": "company_key",
      "idempotencyKey": "c16695e2-3369-4694-b4f7-a657a839fc6c",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:18.9419179Z",
      "correlationId": "c16695e2-3369-4694-b4f7-a657a839fc6c",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "VL2xeaa2TQzmqbaX32FaRvujBQfAqcb_",
         "documentType": "RG",
         "documentSide": "BACK",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:18.9419179Z",
         "documentDetails": {
            "status": "DETECTED_DOCUMENT",
            "idNumber": "47742663023",
            "registerName": "Nísia Floresta",
            "issueDate": "22/09/2014",
            "birthDate": "12/10/1810",
            "motherName": "Dionísia Gonçalves Pinto",
            "side": "B"
         }
      }
   }
{
      "entityId": "YR5GMNH.D3HMQKa2SfPjUwwlhx.kypcx",
      "companyKey": "company_key",
      "idempotencyKey": "3cfbaff6-0a14-4db7-b855-6bf4cd3b59fb",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:20.9297677Z",
      "correlationId": "3cfbaff6-0a14-4db7-b855-6bf4cd3b59fb",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "YR5GMNH.D3HMQKa2SfPjUwwlhx.kypcx",
         "documentType": "CNH",
         "documentSide": "FRONT",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:20.9297677Z",
         "faceMatch": {
            "status": "HAS_FACE_MATCH",
            "similarity": 99.794975,
            "confidence": 99.993004
         },
         "documentDetails": {
            "status": "DETECTED_DOCUMENT",
            "idNumber": "123456789",
            "cpfNumber": "47742663023",
            "registerName": "Nísia Floresta",
            "driveLicenseCategory": "B",
            "driveLicenseNumber": "12345678900",
            "federativeUnit": "PA",
            "issuedBy": "SSP",
            "issueDate": "12/04/2019",
            "birthDate": "12/10/1810",
            "fatherName": "",
            "motherName": "Dionísia Gonçalves Pinto",
            "validDate": "18/01/2024",
            "category": "B",
            "side": "A"
         }
      }
   }
{
      "entityId": "g.Ryjg0PyjLHwisjNCMKgweiABLY0u3w",
      "companyKey": "company_key",
      "idempotencyKey": "5de5b5aa-9502-4d15-a167-90d625566ab2",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:22.6694109Z",
      "correlationId": "5de5b5aa-9502-4d15-a167-90d625566ab2",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "g.Ryjg0PyjLHwisjNCMKgweiABLY0u3w",
         "documentType": "CNH",
         "documentSide": "BACK",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:22.6694109Z",
         "documentDetails": {
            "status": "DETECTED_DOCUMENT",
            "issuePlace": "Santarém, PA",
            "issueDate": "28/09/2020",
            "side": "B"
         }
      }
   }
{
      "entityId": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
      "companyKey": "company_key",
      "idempotencyKey": "cbf1e957-6b77-4a64-9f9b-c3c452cb77c6",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:18.0122463Z",
      "correlationId": "cbf1e957-6b77-4a64-9f9b-c3c452cb77c6",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
         "documentType": "SELFIE",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:18.0122463Z",
         "faceDetails": {
            "status": "DETECTED_FACE",
            "confidence": 99.999275,
            "ageRange": {
               "low": 25,
               "high": 35
            },
            "sunglasses": {
               "value": false,
               "confidence": 99.99592
            },
            "eyesOpen": {
               "value": true,
               "confidence": 92.05033
            }
         },
         "liveness": {
            "status": "LIVENESS_FOUND"
         }
      }
   }
{
      "entityId": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
      "companyKey": "company_key",
      "idempotencyKey": "cbf1e957-6b77-4a64-9f9b-c3c452cb77c6",
      "context": "Document",
      "name": "DOCUMENT_WAS_PROCESSED",
      "timestamp": "2022-06-29T15:10:18.0122463Z",
      "correlationId": "cbf1e957-6b77-4a64-9f9b-c3c452cb77c6",
      "metadata": {
         "customerDocument": "47742663023"
      },
      "data": {
         "token": "xw6qQ7hTO96qOpFV9MGGYh2iIZPhf76V",
         "documentType": "SELFIE",
         "status": "ANALYSIS_COMPLETED",
         "analyzedAt": "2022-06-29T15:10:18.0122463Z",
         "faceDetails": {
            "status": "MANY_FACES_DETECTED",
            "confidence": 99.999275,
            "ageRange": {
               "low": 25,
               "high": 35
            },
            "sunglasses": {
               "value": false,
               "confidence": 99.99592
            },
            "eyesOpen": {
               "value": true,
               "confidence": 92.05033
            }
         },
         "liveness": {
            "status": "NO_LIVENESS",
            "analysisDetails": [
               {
                  "message": "The face is too far."
               }
            ]
         }
      }
   }

Motivos de recusa da selfie

MensagemDescrição
The image is in wrong orientation. Must be portrait.A imagem está com orientação errada. Ela deve estar em modo retrato.
The image is not enough centralized.A imagem não está suficientemente centralizada.
The image is too far.A imagem do rosto está muito distante. Realize a captura da imagem com a câmera um pouco mais próxima do rosto.
The image is too close.A imagem do rosto está muito próxima, o que compromete a nitidez. Realize a captura da imagem com a câmera um pouco mais distante do rosto.
Could not detect a face. Try another image.Não foi possível detectar um rosto na imagem. Tente enviar outra imagem.
Traces of image injection detected.É possível que essa imagem seja proveniente de um upload. Somente serão aceitas fotos capturadas no momento do registro do cliente.

Atenção

Se as imagens não forem aprovadas, não será possível prosseguir com o registro do cliente e nem criar uma conta. Consulte as recomendações contidas na página Orientações para envio de fotos.