Pular para o conteúdo principal
POST
cURL

Autorizações

x-api-key
string
header
obrigatório

Chave de API da sua aplicação, em Developers -> API keys no Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter escopo restrito: nenhum acesso, leitura ou escrita por recurso, limitada a alguns fluxos ou a sessões aprovadas, a uma lista de endereços IP e a uma data de validade. 401 significa que a chave está errada, revogada ou expirada; 403 significa que nenhuma chave foi enviada, que a chave não tem acesso a este recurso ou ação, ou que a requisição veio de um endereço fora da sua lista de IPs; 404 em uma rota de sessão significa que a sessão está fora dos fluxos ou status da chave. Uma chave sem acesso a mídia recebe URLs de imagem, vídeo e PDF como null, e uma chave sem permissão de escrita em sessões recebe links e tokens de sessão como null. Consulte https://docs.didit.me/console/api-keys.

Corpo

multipart/form-data
front_image
file
obrigatório

Frente do documento de identidade. Extensões permitidas: tiff, jpg, jpeg, png, webp, pdf. Tamanho máximo de upload: 10 MB (arquivos maiores são rejeitados com 400). PDFs são renderizados como imagem antes do OCR; PDFs criptografados exigem front_image_password. As imagens são comprimidas automaticamente para ~0,5 MB e a orientação EXIF é aplicada. Envie a captura completa, sem recorte, com os quatro cantos do documento visíveis.

front_image_password
string
write-only

Senha para descriptografar front_image quando for um PDF criptografado. Enviar um PDF criptografado sem senha (ou com uma senha errada) retorna 400.

back_image
file

Verso do documento: envie-o sempre que o documento tiver um (muitas carteiras de identidade trazem a MRZ ou um código de barras no verso; omiti-lo apenas deixa a MRZ e os campos do verso vazios na resposta, e este endpoint não gera um aviso de MRZ ausente). Mesmo formato e limites de tamanho de front_image. Quando omitido, back_image e os campos do verso são null na resposta.

back_image_password
string
write-only

Senha para descriptografar back_image quando for um PDF criptografado.

perform_document_liveness
boolean
padrão:true

Analisa as duas imagens em busca de fraude de apresentação: reprodução em tela (SCREEN_CAPTURE_DETECTED), cópias impressas (PRINTED_COPY_DETECTED) e manipulação do retrato (PORTRAIT_MANIPULATION_DETECTED). Qualquer uma delas resulta em recusa automática. Ativado por padrão; defina como false para pular a análise de fraude e reduzir a latência. Quando ativado e o provedor não retorna uma pontuação utilizável, a resposta é In Review com um aviso DOCUMENT_LIVENESS_NOT_COMPUTED, em vez de Approved.

Exemplo:

true

minimum_age
integer | null

Aceito e validado (1–120), mas atualmente não aplicado por este endpoint — ele nunca gera um aviso MINIMUM_AGE_NOT_MET a partir deste campo. Aplique as regras de idade com base em date_of_birth/age retornados, ou use um fluxo de sessão de verificação com restrições de idade.

Intervalo obrigatório: 1 <= x <= 120
expiration_date_not_detected_action
enum<string>
padrão:NO_ACTION

O que fazer quando nenhuma data de validade pode ser lida (EXPIRATION_DATE_NOT_DETECTED). Padrão NO_ACTION, pois muitos documentos de identidade não trazem data de validade impressa. Observação: uma data de validade detectada e já vencida sempre recusa (DOCUMENT_EXPIRED), independentemente desta opção.

Opções disponíveis:
NO_ACTION,
DECLINE
invalid_mrz_action
enum<string>
padrão:DECLINE

O que fazer quando a MRZ extraída falha na validação dos dígitos verificadores (MRZ_VALIDATION_FAILED). A ausência de MRZ não gera aviso neste endpoint. Relevante apenas para documentos que possuem MRZ. REVIEW não é compatível com este endpoint e retorna 400.

Opções disponíveis:
NO_ACTION,
DECLINE
inconsistent_data_action
enum<string>
padrão:DECLINE

O que fazer quando os dados extraídos são internamente inconsistentes: DATA_INCONSISTENT, MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME (a zona visual diverge da MRZ) ou DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS.

Opções disponíveis:
NO_ACTION,
DECLINE
critical_field_occlusion_action
enum<string>
padrão:DECLINE

O que fazer quando um campo impresso crítico foi fisicamente coberto na captura (CRITICAL_FIELD_OCCLUSION_DETECTED): um número de identidade, um nome, a data de nascimento ou a data de validade. Recusa por padrão, como os demais riscos de integridade de documento deste endpoint: cobrir os números com os quais um relatório é conciliado é justamente a aparência de um documento censurado. O valor lido de um campo coberto é descartado da extração de qualquer forma, então o aviso *_NOT_DETECTED correspondente geralmente o acompanha. REVIEW não é compatível com este endpoint e retorna 400.

Opções disponíveis:
NO_ACTION,
DECLINE
document_or_personal_number_format_mismatch_action
enum<string>
padrão:NO_ACTION

O que fazer quando um número não corresponde ao formato que a autoridade emissora usa para aquele tipo de documento (DOCUMENT_NUMBER_FORMAT_MISMATCH, PERSONAL_NUMBER_FORMAT_MISMATCH). Padrão NO_ACTION, que informa o aviso sem alterar o status. REVIEW não é compatível com este endpoint e retorna 400.

Opções disponíveis:
NO_ACTION,
DECLINE
preferred_characters
enum<string>
padrão:latin

Escrita preferencial para os campos de nome/endereço em documentos que imprimem texto latino e não latino (árabe, cirílico, CJK, …). latin retorna valores transliterados/latinos; non_latin dá preferência à escrita nativa.

Opções disponíveis:
latin,
non_latin
save_api_request
boolean
padrão:true

Quando true (padrão), persiste a chamada como uma sessão do tipo API: visível no Business Console, recuperável via GET /v3/session/{sessionId}/decision/ usando o request_id retornado, anunciada por meio de um webhook status.updated e com as imagens do documento retornadas como URLs de mídia. Quando false, nada é armazenado, request_id é um UUID transitório e as imagens são retornadas inline como strings JPEG em base64.

Exemplo:

true

vendor_data
string

String opaca opcional (seu ID interno de usuário, e-mail, UUID…) armazenada na sessão persistida e devolvida na resposta. Use-a para correlacionar chamadas de API com seus próprios registros e para filtrar sessões posteriormente.

Exemplo:

"user-123"

metadata
object

Objeto JSON opcional armazenado com a sessão (quando save_api_request=true) e devolvido na resposta. Em requisições multipart, envie-o como um campo de string codificada em JSON (por exemplo, metadata={"flow":"onboarding"}), que é convertido em um objeto.

Exemplo:

Resposta

Documento processado. id_verification.status é Approved, Declined ou In Review; cada problema detectado é detalhado em id_verification.warnings. In Review é retornado quando uma verificação de prova de vida do documento solicitada não produziu resultado utilizável (DOCUMENT_LIVENESS_NOT_COMPUTED). Um documento com problemas ainda retorna 200 com status: "Declined": inspecione o corpo, não apenas o código HTTP. Quando save_api_request=true, request_id é o id da sessão persistida e os campos de imagem são URLs de mídia de curta duração; com save_api_request=false, eles são strings JPEG em base64 inline.

request_id
string<uuid>

ID da sessão persistida quando save_api_request=true (utilizável com GET /v3/session/{sessionId}/decision/); caso contrário, um UUID de correlação transitório.

id_verification
object
vendor_data
string | null

Eco do vendor_data que você enviou, ou null.

metadata
object | null

Eco do objeto metadata que você enviou, ou null.

created_at
string<date-time>

Timestamp ISO 8601 (UTC) do momento em que a resposta foi gerada.

Última modificação em 1 de novembro de 2026