Envio de imagens para Onboarding (Document)
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á:
- Configurar previamente o recebedor de eventos do webhook;
-
Conhecer a
estrutura básica dos eventos
que acompanha o objeto
data
.
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:
context
|
name
|
Descrição |
---|---|---|
Document
|
DOCUMENT_WAS_RECEIVED
|
A imagem do documento foi recebida, porém ela pode ainda não ter sido completamente analisada. |
Document
|
DOCUMENT_WAS_PROCESSED
|
A 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
)
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
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:
Nome | Tipo | Descrição |
---|---|---|
token
|
string
|
Token retornado no envio do documento. |
documentType
|
string
|
Tipo de documento, que pode ser “RG”, “CNH”, “SELFIE”, "CRNM", "RNE" ou "DNI". |
documentSide
|
string
|
Lado do documento, que pode ser ”FRONT” (frente) ou “BACK” (verso). Esse campo não é enviado em caso de selfie. |
status
|
string
|
Situação da análise da imagem, que pode ser “ANALYZING” (em análise), “PARTIALLY_ANALYZED” (parcialmente analisado), "ANALYSIS_COMPLETED" (análise completa) ou "UNEXPECTED_ERROR" (erro inesperado). |
analyzedAt
|
string
|
Data e hora em que a análise foi realizada, no formato ISO 8601 - UTC. |
Payload do evento
O payload abaixo exemplifica a estrutura do evento que deverá ser recebido pelo parceiro. Clique na seta para expandi-lo:
Exemplos 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
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:
Nome | Tipo | Descrição |
---|---|---|
token
|
string
|
Token retornado no envio do documento. |
documentType
|
string
|
Tipo de documento, que pode ser “RG”, “CNH”, “SELFIE”, "CRNM", "RNE" ou "DNI". |
documentSide
|
string
|
Lado do documento, que pode ser ”FRONT” (frente) ou “BACK” (verso). Esse campo não é enviado em caso de selfie. |
status
|
string
|
Situação da análise da imagem, que pode ser “ANALYZING” (em análise), “PARTIALLY_ANALYZED” (parcialmente analisado), "ANALYSIS_COMPLETED" (análise completa) ou "UNEXPECTED_ERROR" (erro inesperado). |
analyzedAt
|
string
|
Data e hora em que a análise foi realizada, no formato ISO 8601 - UTC. |
Campos exclusivos para RG (frente)
Nome | Tipo | Descrição |
---|---|---|
faceMatch
|
object
|
Objeto que contém informações sobre a comparação da foto da pessoa no documento com a selfie enviada previamente. |
faceMatch.status
|
string
|
Resultado 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.similarity
|
number
|
Percentual de correspondência da selfie com a face do titular do documento. |
faceMatch.confidence
|
number
|
Percentual de confiabilidade da análise realizada. |
documentDetails
|
object
|
Objeto que contém informações referentes ao documento analisado. |
documentDetails.status
|
string
|
Resultado 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.federativeUnit
|
string
|
Unidade federativa em que o documento foi emitido. |
documentDetails.side
|
string
|
Lado do documento, sendo “A” para a frente e “B” para o verso. |
documentDetails.placeOfBirth
|
string
|
Local de nascimento do cliente. |
Campos exclusivos para RG (verso)
Nome | Tipo | Descrição |
---|---|---|
documentDetails
|
object
|
Objeto que contém informações referentes ao documento analisado. |
documentDetails.status
|
string
|
Resultado 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.idnumber
|
string
|
Número do documento de identidade. |
documentDetails.registerName
|
string
|
Nome do cliente como consta no documento. |
documentDetails.issueDate
|
string
|
Data em que o documento foi emitido. |
documentDetails.birthDate
|
string
|
Data de nascimento do cliente. |
documentDetails.motherName
|
string
|
Nome da mãe do cliente como consta no documento. |
documentDetails.side
|
string
|
Lado do documento, sendo “A” para a frente e “B” para o verso. |
Campos exclusivos para CNH (frente)
Nome | Tipo | Descrição |
---|---|---|
faceMatch
|
object
|
Objeto que contém informações sobre a comparação da foto da pessoa no documento com a selfie enviada previamente. |
faceMatch.status
|
string
|
Resultado 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.similarity
|
number
|
Percentual de correspondência da selfie com a face do titular do documento. |
faceMatch.confidence
|
number
|
Percentual de confiabilidade da análise realizada. |
documentDetails
|
object
|
Objeto que contém informações referentes ao documento analisado. |
documentDetails.status
|
string
|
Resultado 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.idnumber
|
string
|
Número do documento. |
documentDetails.cpfNumber
|
string
|
Número do documento CPF. |
documentDetails.registerName
|
string
|
Nome do cliente como consta no documento. |
documentDetails.driveLicenseCategory
|
string
|
Categoria da carteira de motorista, que pode ser “ACC”, “A”, “B” ou “C”. |
documentDetails.driveLicensenumber
|
Número da carteira de motorista. | |
documentDetails.federativeUnit
|
string
|
Unidade federativa em que o documento foi emitido. |
documentDetails.issuedBy
|
string
|
Entidade que emitiu o documento. |
documentDetails.issueDate
|
string
|
Data de emissão do documento. |
documentDetails.birthDate
|
string
|
Data de nascimento do cliente. |
documentDetails.fatherName
|
string
|
Nome do pai do cliente como consta no documento. |
documentDetails.motherName
|
string
|
Nome da mãe do cliente como consta no documento. |
documentDetails.validate
|
string
|
Data de expiração do documento. |
documentDetails.side
|
string
|
Lado do documento, sendo “A” para a frente e “B” para o verso. |
Campos exclusivos para CNH (verso)
Nome | Tipo | Descrição |
---|---|---|
documentDetails
|
object
|
Objeto que contém informações referentes ao documento analisado. |
documentDetails.status
|
string
|
Resultado 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.issueDate
|
Data de emissão do documento. | |
documentDetails.issuedPlace
|
Local de emissão do documento. | |
documentDetails.side
|
string
|
Lado do documento, sendo “A” para a frente e “B” para o verso. |
Campos exclusivos para selfie
Nome | Tipo | Descrição |
---|---|---|
faceDetails
|
object
|
Objeto que contém informações referentes à análise do rosto exibido no documento. |
faceDetails.status
|
string
|
Situaçã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.confidence
|
number
|
Percentual de confiabilidade da análise realizada. |
faceDetails.ageRange
|
object
|
Objeto que contém informações sobre o intervalo de idade da pessoa de acordo com a imagem analisada. |
faceDetails.ageRange.low
|
number
|
Mínima idade possível. |
faceDetails.ageRange.high
|
number
|
Máxima idade possível. |
faceDetails.sunglasses
|
object
|
Objeto que contém informações da análise que identifica se o cliente está usando óculos de sol. |
faceDetails.sunglasses.value
|
boolean
|
Resultado da análise, que pode ser “true” ou “false”. |
faceDetails.sunglasses.confidence
|
number
|
Percentual de confiabilidade da análise realizada. |
faceDetails.eyesOpen
|
object
|
Objeto que contém informações da análise que identifica se o cliente está com os olhos abertos. |
faceDetails.eyesOpen.value
|
boolean
|
Resultado da análise, que pode ser “true” ou “false”. |
faceDetails.eyesOpen.confidence
|
number
|
Percentual de confiabilidade da análise realizada. |
liveness
|
object
|
Objeto que contém informações referentes à prova de vida. |
liveness.status
|
string
|
Resultado da análise da prova de vida, que pode ser “LIVENESS_FOUND” (prova de vida encontrada) ou “NO_LIVENESS” (prova de vida não encontrada). |
liveness.analysisDetails
|
array of strings
|
Esse campo é retornado em caso de reprovação de selfie, contendo uma lista com mensagens que indicam os motivos de recusa da selfie. |
liveness.analysisDetails.messages
|
string
|
Mensagem 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:
Exemplos 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
Mensagem | Descriçã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.
Updated 12 days ago