Saltar al contenido principal
POST
cURL

Autorizaciones

x-api-key
string
header
requerido

La clave de API de tu aplicación, que encontrarás en Developers -> API keys en la Business Console. La clave principal tiene acceso completo. Una clave con nombre puede tener un alcance limitado: ninguno, lectura o escritura por recurso, limitada a algunos flujos o a sesiones aprobadas, a una lista de direcciones IP y a una fecha de caducidad. 401 significa que la clave es incorrecta, se revocó o expiró; 403 significa que no se envió ninguna clave, que la clave no tiene acceso a este recurso o acción, o que la solicitud provino de una dirección fuera de su lista de IP; 404 en una ruta de sesión significa que la sesión está fuera de los flujos o estados de la clave. Una clave sin acceso a contenido multimedia recibe las URL de imágenes, videos y PDF como null, y una clave sin permiso de escritura en sesiones recibe los enlaces y tokens de sesión como null. Consulta https://docs.didit.me/console/api-keys.

Cuerpo

multipart/form-data
document
file
requerido

El documento de prueba de domicilio. Extensiones permitidas: tiff, jpg, jpeg, png, pdf, webp. Tamaño máximo de carga: 15 MB (los archivos más grandes se rechazan con 400). Se admiten PDF de varias páginas (la latencia es mayor); los PDF cifrados requieren document_password. Las imágenes se comprimen automáticamente antes de procesarlas.

document_password
string
write-only

Contraseña para descifrar document cuando es un PDF cifrado. Enviar un PDF cifrado sin contraseña (o con una incorrecta) devuelve 400.

expected_address
string

Dirección que se verifica frente al documento. Se geocodifica y se compara con la dirección extraída; una discrepancia (o una dirección esperada que no se puede geocodificar o verificar) añade ADDRESS_MISMATCH_WITH_PROVIDED, que se rige por poa_address_mismatch_action. La forma geocodificada se devuelve en expected_details_formatted_address / expected_details_parsed_address.

Ejemplo:

"Av. Monseñor Tavella 1291, Salta, Argentina"

expected_country
string

País que se verifica contra el documento (código ISO 3166-1, p. ej., ARG o AR). Si no coincide con el país del documento, se añade POA_COUNTRY_MISMATCH_WITH_PROVIDED, que se rige por poa_address_mismatch_action.

Ejemplo:

"ARG"

expected_first_name
string

Nombre que se verifica contra name_on_document (coincidencia aproximada, con soporte de transliteración). Una puntuación inferior al umbral de coincidencia añade NAME_MISMATCH_WITH_PROVIDED, que se rige por poa_address_mismatch_action.

Ejemplo:

"Sophia"

expected_last_name
string

Apellido que se verifica contra name_on_document, combinado con expected_first_name para la puntuación de coincidencia.

Ejemplo:

"Martinez"

poa_languages_allowed
string

Lista separada por comas de los idiomas de documento aceptados, como códigos ISO 639-1 (por ejemplo, en,es,fr). Si se omite o se deja en blanco, se aceptan los 51 idiomas admitidos. Un documento en un idioma que no está en la lista añade UNSUPPORTED_DOCUMENT_LANGUAGE (regulado por poa_unsupported_language_action); un código desconocido en la lista devuelve 400 con el conjunto completo de códigos admitidos.

Ejemplo:

"en,es"

poa_document_age_months
string

Pares key:value separados por comas que fijan la antigüedad máxima del documento en meses por tipo de documento. Claves: utility_bill, bank_statement, government_issued_document, other_poa_document; valores: 1–120, o -1 para sin límite (sin comprobación de antigüedad). Valores predeterminados si se omite: utility_bill:3,bank_statement:3,government_issued_document:12,other_poa_document:12. Un documento con más antigüedad que su límite se rechaza con POA_DOCUMENT_EXPIRED. Precaución: cuando proporcionas este campo, indica todos los tipos que aceptas; los tipos omitidos se consideran no aceptados (POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION, informativo) y se omite su comprobación de antigüedad.

Ejemplo:

"utility_bill:3,bank_statement:6"

poa_name_mismatch_action
enum<string>
predeterminado:DECLINE

Se acepta, pero actualmente no se aplica: las advertencias de discrepancia de nombre (NAME_MISMATCH_WITH_PROVIDED) siguen poa_address_mismatch_action. Configura poa_address_mismatch_action para controlar el comportamiento ante discrepancias tanto de nombre como de dirección.

Opciones disponibles:
DECLINE,
NO_ACTION
poa_document_issues_action
enum<string>
predeterminado:DECLINE

Qué hacer ante problemas de integridad del archivo; en la práctica, este endpoint solo genera DOCUMENT_METADATA_MISMATCH.

Opciones disponibles:
DECLINE,
NO_ACTION
poa_document_authenticity_action
enum<string>
predeterminado:DECLINE

Qué hacer cuando se sospecha una manipulación del documento (SUSPECTED_DOCUMENT_MANIPULATION); por ejemplo, el PDF se modificó después de la firma digital, se procesó con un editor de PDF conocido, muestra manipulación con texto superpuesto o tiene fechas EXIF incoherentes.

Opciones disponibles:
DECLINE,
NO_ACTION
poa_unsupported_language_action
enum<string>
predeterminado:DECLINE

Qué hacer cuando el idioma del documento no está en poa_languages_allowed (UNSUPPORTED_DOCUMENT_LANGUAGE).

Opciones disponibles:
DECLINE,
NO_ACTION
poa_address_mismatch_action
enum<string>
predeterminado:DECLINE

Qué hacer cuando los datos extraídos no coinciden con los campos expected_*: ADDRESS_MISMATCH_WITH_PROVIDED, NAME_MISMATCH_WITH_PROVIDED y POA_COUNTRY_MISMATCH_WITH_PROVIDED siguen todos esta acción.

Opciones disponibles:
DECLINE,
NO_ACTION
poa_issuer_not_identified_action
enum<string>
predeterminado:DECLINE

Qué hacer cuando no se puede identificar ninguna empresa u organización emisora en el documento (ISSUER_NOT_IDENTIFIED).

Opciones disponibles:
DECLINE,
NO_ACTION
save_api_request
boolean
predeterminado:true

Cuando es true (valor predeterminado), guarda la llamada como una sesión de tipo API: visible en la Business Console, recuperable mediante GET /v3/session/{sessionId}/decision/ con el request_id devuelto, notificada mediante un webhook status.updated y con el documento subido almacenado. Cuando es false, no se almacena nada y request_id es un UUID temporal que solo sirve para correlacionar la respuesta.

Ejemplo:

true

vendor_data
string

Cadena opaca opcional (tu ID de usuario interno, correo electrónico, UUID…) que se guarda en la sesión persistida y se devuelve en la respuesta. Úsala para relacionar las llamadas a la API con tus propios registros y para filtrar sesiones más adelante.

Ejemplo:

"user-123"

metadata
object

Objeto JSON opcional que se almacena con la sesión (cuando save_api_request=true) y se devuelve en la respuesta. En solicitudes multipart, envíalo como un campo de cadena codificado en JSON (p. ej., metadata={"flow":"onboarding"}): se convierte en un objeto.

Ejemplo:

Respuesta

Documento procesado. poa.status es Approved o Declined; cada problema detectado se detalla en poa.warnings. Un documento expirado, que no coincide o sospechoso también devuelve 200 con status: "Declined": revisa el cuerpo, no solo el código HTTP. Cuando save_api_request=true, request_id es el ID de la sesión guardada.

request_id
string<uuid>

ID de la sesión guardada cuando save_api_request=true (se puede usar con GET /v3/session/{sessionId}/decision/); en caso contrario, un UUID de correlación temporal.

poa
object
vendor_data
string | null

Devuelve el vendor_data que enviaste, o null.

metadata
object | null

Devuelve el objeto metadata que enviaste, o null.

created_at
string<date-time>

Marca de tiempo ISO 8601 (UTC) del momento en que se generó la respuesta.

Última modificación el 1 de noviembre de 2026