Saltar para o conteúdo principal
POST
cURL

Autorizações

x-api-key
string
header
obrigatório

A chave de API da sua aplicação, a partir de Programadores -> Chaves de API na Business Console. A chave principal tem acesso total. Uma chave nomeada pode ter o âmbito definido: nenhum, 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á incorreta, 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 o pedido veio de um endereço fora da sua lista de IP; 404 numa rota de sessão significa que a sessão está fora dos fluxos ou estados da chave. Uma chave sem acesso a multimédia recebe URLs de imagens, vídeos e PDFs como nulos, e uma chave sem permissão de escrita em sessões recebe ligações de sessão e tokens como nulos. Consulte https://docs.didit.me/console/api-keys.

Corpo

multipart/form-data
front_image
file
obrigatório

Frente do documento de identificação. Extensões permitidas: tiff, jpg, jpeg, png, webp, pdf. Tamanho máximo de carregamento: 10 MB (ficheiros maiores são rejeitados com 400). Os PDFs são convertidos numa imagem antes do OCR; PDFs encriptados requerem front_image_password. As imagens são comprimidas automaticamente para ~0.5 MB e a orientação EXIF é aplicada. Carregue a captura completa e sem cortes com os quatro cantos do documento visíveis.

front_image_password
string
write-only

Palavra-passe para desencriptar front_image quando for um PDF encriptado. O envio de um PDF encriptado sem palavra-passe (ou com uma incorreta) devolve 400.

back_image
file

Verso do documento — envie-o sempre que o documento tiver um (muitos cartões de identificação contêm o MRZ ou um código de barras no verso; omiti-lo apenas deixa o MRZ e os campos do verso vazios na resposta — este endpoint não gera um aviso de MRZ em falta). Mesmos limites de formato e tamanho que front_image. Quando omitido, back_image e os campos do verso ficam a null na resposta.

back_image_password
string
write-only

Palavra-passe para desencriptar back_image quando for um PDF encriptado.

perform_document_liveness
boolean
padrão:true

Analisa ambas as imagens à procura de fraude de apresentação: reproduções de ecrã (SCREEN_CAPTURE_DETECTED), cópias impressas (PRINTED_COPY_DETECTED) e manipulação de retrato (PORTRAIT_MANIPULATION_DETECTED). Qualquer uma destas situações causa recusa automática. Ativado por predefinição; defina como false para ignorar a triagem de fraude e reduzir a latência. Quando ativado e o fornecedor não devolve 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

Aceite e validado (1–120), mas atualmente não aplicado por este endpoint — nunca produz um aviso MINIMUM_AGE_NOT_MET a partir deste campo. Aplique regras de idade a partir de date_of_birth/age devolvidos, ou utilize um fluxo de sessão de verificação com restrições de idade.

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

O que fazer quando não for possível ler qualquer data de validade (EXPIRATION_DATE_NOT_DETECTED). Predefinição NO_ACTION, pois muitos documentos de identidade não imprimem a data de validade. Nota: uma data de validade detetada e ultrapassada resulta sempre numa 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 do dígito de controlo (MRZ_VALIDATION_FAILED). Uma MRZ em falta não gera qualquer aviso neste endpoint. Relevante apenas para documentos que possuem uma MRZ. REVIEW não é suportado neste endpoint e devolve 400.

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

O que fazer quando os dados extraídos forem internamente inconsistentes: DATA_INCONSISTENT, MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME (a zona visual não coincide com a 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 tapado na captura (CRITICAL_FIELD_OCCLUSION_DETECTED) - um número de identificação, um nome, a data de nascimento ou a data de validade. Recusa por predefinição, tal como outros riscos de integridade do documento deste endpoint: tapar os números face aos quais um relatório é reconciliado é o aspeto típico de um documento rasurado. O valor lido para um campo tapado é descartado da extração de qualquer forma, pelo que o aviso *_NOT_DETECTED correspondente costuma acompanhá-lo. O valor REVIEW não é suportado neste endpoint e devolve 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 corresponder ao formato que a sua autoridade emissora utiliza para esse tipo de documento (DOCUMENT_NUMBER_FORMAT_MISMATCH, PERSONAL_NUMBER_FORMAT_MISMATCH). Predefinição NO_ACTION, que comunica o aviso sem alterar o estado. O valor REVIEW não é suportado neste endpoint e devolve 400.

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

Sistema de escrita preferencial para os campos de nome/morada em documentos que imprimem texto latino e não latino (árabe, cirílico, CJK, …). latin devolve valores transliterados/latinos; non_latin prefere o sistema de escrita nativo.

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

Quando for true (predefinição), persiste a chamada como uma sessão do tipo API — visível na Business Console, recuperável através de GET /v3/session/{sessionId}/decision/ utilizando o request_id devolvido, anunciada através de um webhook status.updated e com imagens de documentos devolvidas como URLs de multimédia. Quando for false, nada é armazenado, request_id é um UUID transitório e as imagens são devolvidas em linha como strings JPEG em base64.

Exemplo:

true

vendor_data
string

String opaca opcional (o seu ID de utilizador interno, e-mail, UUID...) guardada na sessão persistida e devolvida na resposta. Utilize-a para correlacionar chamadas de API com os seus próprios registos e para filtrar sessões mais tarde.

Exemplo:

"user-123"

metadata
object

Objeto JSON opcional armazenado com a sessão (quando save_api_request=true) e devolvido na resposta. Em pedidos multipart, envie-o como um campo de texto codificado em JSON (por exemplo, metadata={"flow":"onboarding"}) — é convertido num objeto.

Exemplo:

Resposta

Documento processado. id_verification.status é Approved, Declined ou In Review; cada problema detetado é discriminado em id_verification.warnings. In Review é devolvido quando uma verificação de prova de vida no documento solicitada não produziu nenhum resultado utilizável (DOCUMENT_LIVENESS_NOT_COMPUTED). Um documento com problemas continua a devolver 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 multimédia de curta duração; com save_api_request=false, são strings JPEG 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 enviou, ou null.

metadata
object | null

Eco do objeto metadata que enviou, ou null.

created_at
string<date-time>

Carimbo de data/hora ISO 8601 (UTC) de quando a resposta foi gerada.

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