api · Documentación
Iniciar sesión

Consulta de DNI

Dos consultas de DNI: la normal y la plus. La plus trae todo lo de la normal y agrega los datos personales (fecha de nacimiento, estado civil, sexo, edad y los demás de la tabla de abajo).

Las consultas DNI y DNI plus son de personas adultas (18 años o más). Los DNI de menores de edad son otro servicio: ver Servicios Adicionales - Plus Consulta DNI+ más abajo.
DNI normalDNI plus
EndpointGET/dni/{numero}GET/dni/plus/{numero}
Servicio que exige"Consulta de DNI" o "Consulta de DNI Completo""Consulta de DNI Completo"
Para qué sirveValidar identidad y obtener domicilio.Ficha completa de la persona.

Cada consulta descuenta una consulta de tu plan, sea normal o plus, y venga de la fuente que venga.

Qué da cada uno

CamposDNI normalDNI plus
numero, nombre_completo, nombres, apellido_paterno, apellido_maternoSíSí
srestriccion (si la persona figura como fallecida)SíSí
direccion, direccion_completaSíSí
departamento, provincia, distrito, domicilio, ubigeo_domicilio, ubigeo_reniec, location_idSíSí
codigo_verificacionSíSí
fecha_nacimiento—Sí
estado_civil—Sí
sexo—Sí
edad—Sí
nacimiento (lugar de nacimiento ya resuelto)—Sí
fecha_inscripcion, fecha_emision, padre, madre—Sí
Los campos extra se activan por cuenta. Dirección, ubigeo, código de verificación, fecha de nacimiento, estado civil, sexo y edad solo llegan con valor si tu cuenta los tiene activos; puedes verlos en Mi cuenta → Servicios, en "Campos extra visibles en /dni y /ruc". Un campo que no tienes activo no se omite: llega vacío ("", "-" o null) para que la respuesta tenga siempre la misma forma. Los campos que solo trae el plus no llegan en la consulta normal, ni siquiera vacíos.
Si tu integración leía campos plus de /dni/{numero} (fecha_nacimiento, estado_civil, sexo, edad, nacimiento, fecha_inscripcion, fecha_emision, padre o madre), cámbiala a /dni/plus/{numero}: esos campos ya no vienen en la consulta normal. La consulta plus requiere el servicio "Consulta de DNI Completo".

Parámetros

Los dos endpoints reciben los mismos parámetros.

NombreTipoDescripción
numeroruta8 dígitos numéricos.
fuentequery, opcionalDe qué base sale el dato: referencial, tregistro o rhe (ver "Fuentes de datos" abajo). Si no la envías, se usa la que elegiste en Mi cuenta → Servicios; y si no elegiste ninguna, referencial.
refreshopcionalfresh/refresh/1/true para volver a verificar srestriccion (si la persona figura como fallecida). No cambia de dónde sale el domicilio: eso lo decide fuente. Se acepta como segmento de ruta (/dni/12345678/refresh, /dni/plus/12345678/refresh) o como parámetro de consulta (/dni/12345678?refresh=1).

Ejemplo: DNI normal

GET/dni/{numero}

curl https://mblapirest.com/api/v1/dni/12345678 \
  -H "Authorization: Bearer TU_API_TOKEN"
{
  "success": true,
  "data": {
    "numero": "12345678",
    "nombre_completo": "PEREZ GOMEZ JUAN",
    "nombres": "JUAN",
    "apellido_paterno": "PEREZ",
    "apellido_materno": "GOMEZ",
    "srestriccion": "NINGUNA",
    "direccion": "AV. EJEMPLO 123",
    "direccion_completa": "AV. EJEMPLO 123 LIMA LIMA LIMA",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LIMA",
    "codigo_verificacion": "1",
    "ubigeo_reniec": "150101",
    "ubigeo_domicilio": "140101",
    "domicilio": {
      "departamento": "LIMA",
      "provincia": "LIMA",
      "distrito": "LIMA",
      "ubigeo_reniec": "140101",
      "ubigeo_inei": "150101"
    },
    "location_id": ["15", "1501", "150101"]
  },
  "fuente": {
    "clave": "referencial",
    "nombre": "BD RENIEC referencial",
    "en_linea": false,
    "verificado_en": "2026-10-01 04:45:00",
    "verificado_de": "domicilio"
  }
}

Ejemplo: DNI plus

GET/dni/plus/{numero}

curl https://mblapirest.com/api/v1/dni/plus/12345678 \
  -H "Authorization: Bearer TU_API_TOKEN"
{
  "success": true,
  "data": {
    "numero": "12345678",
    "nombre_completo": "PEREZ GOMEZ JUAN",
    "nombres": "JUAN",
    "apellido_paterno": "PEREZ",
    "apellido_materno": "GOMEZ",
    "srestriccion": "NINGUNA",
    "direccion": "AV. EJEMPLO 123",
    "direccion_completa": "AV. EJEMPLO 123 LIMA LIMA LIMA",
    "departamento": "LIMA",
    "provincia": "LIMA",
    "distrito": "LIMA",
    "codigo_verificacion": "1",
    "ubigeo_reniec": "150101",
    "ubigeo_domicilio": "140101",
    "domicilio": {
      "departamento": "LIMA",
      "provincia": "LIMA",
      "distrito": "LIMA",
      "ubigeo_reniec": "140101",
      "ubigeo_inei": "150101"
    },
    "location_id": ["15", "1501", "150101"],
    "fecha_nacimiento": "1990-01-01",
    "estado_civil": "Soltero/a",
    "sexo": "Masculino",
    "edad": 34,
    "nacimiento": {
      "departamento": "LIMA",
      "provincia": "LIMA",
      "distrito": "LIMA",
      "ubigeo": "150101"
    },
    "fecha_inscripcion": "",
    "fecha_emision": "",
    "padre": "",
    "madre": ""
  },
  "fuente": {
    "clave": "referencial",
    "nombre": "BD RENIEC referencial",
    "en_linea": false,
    "verificado_en": "2026-10-01 04:45:00",
    "verificado_de": "domicilio",
    "nota": "fecha_emision y fecha_inscripcion vienen de una base de referencia y pueden no reflejar el DNI vigente. Para el domicilio actual usa fuente=tregistro o fuente=rhe."
  }
}
fecha_inscripcion, fecha_emision, padre y madre vienen con el valor del padrón cuando lo tenemos y vacíos cuando no. No dependen de los campos extra de tu cuenta: si usas el plus, siempre llegan.
fecha_emision y fecha_inscripcion son referenciales. Salen de una base de datos de consulta, no de RENIEC en vivo, y cambian cada vez que la persona tramita un DNI nuevo: pueden no corresponder al documento vigente. No los uses para validar la vigencia del DNI. Los datos que no cambian (nombres, fecha de nacimiento, sexo, padres) sí son confiables. verificado_en indica cuándo se confirmó el domicilio (lo dice verificado_de), no la fecha de los datos de identidad.

Fuentes de datos

El dato de un DNI puede salir de tres bases distintas, tanto en la consulta normal como en la plus. Eliges una con ?fuente= en la consulta, o la dejas fija en Mi cuenta → Servicios. La respuesta siempre incluye el objeto fuente para que sepas cuál se usó. Las tres cuestan lo mismo: una consulta de tu plan.

fuenteNombreQué esDisponible
referencialBD RENIEC referencialEl padrón de RENIEC que tenemos cargado, más de 37 millones de registros. Responde al instante y no depende de terceros, pero es una foto: si la persona se mudó después del volcado, verás el domicilio anterior.Todas las cuentas
tregistroBD SUNAT 1Consulta en línea a SUNAT, que lee de RENIEC e indica el domicilio vigente. Es el dato más fresco, tarda unos segundos y depende de que SUNAT esté respondiendo.Hay que pedir que te la habiliten
rheBD SUNAT 2El domicilio que la persona declaró en su RUC de persona natural. Sirve para facturar, pero puede no ser donde vive: mucha gente declara su oficina o su negocio. Devuelve solo domicilio y ubigeo; nombres y fecha de nacimiento salen de nuestra base.Hay que pedir que te la habiliten, y tu cuenta debe tener activa la direccion
No hay respaldo automático entre fuentes. Si la que elegiste no puede responder, la API te lo dice con success: false y el motivo, y no se te descuenta la consulta. Por ejemplo: un DNI que no está en la base referencial, una fuente que tu cuenta no tiene habilitada, o SUNAT sin responder. Para ese caso, prueba con otra fuente.
El lugar de nacimiento puede venir vacío (solo en la consulta plus, campo nacimiento). Es el único dato que la fuente en vivo no entrega: cuando el DNI se consulta por primera vez, solo se obtiene el domicilio. El nacimiento aparece en los DNI que ya estaban registrados (el 98% de las consultas). Preferimos devolverlo vacío antes que mostrar otro lugar en su sitio.
Domicilio y nacimiento son dos lugares distintos. departamento, provincia, distrito y domicilio son de donde vive la persona; nacimiento y ubigeo_reniec, de donde nació (el nombre ubigeo_reniec es histórico: no es el ubigeo del domicilio).
Dos numeraciones de ubigeo. Perú tiene la de RENIEC (la que figura en el DNI) y la del INEI (la que usa SUNAT en el RUC), y no son intercambiables: el mismo número identifica lugares distintos (por ejemplo 040106 es La Joya en RENIEC y Chiguata en INEI). Por eso el domicilio viene en las dos: domicilio.ubigeo_reniec (también en ubigeo_domicilio) y domicilio.ubigeo_inei. location_id son los tramos del código INEI del domicilio, [departamento, provincia, distrito]. El ubigeo de nacimiento (ubigeo_reniec, nacimiento.ubigeo) está en numeración RENIEC.
Con la fuente referencial, la dirección se mantiene al día sola. Si la dirección guardada de un DNI no se verificó con SUNAT en los últimos 90 días, al consultarlo se programa una verificación en segundo plano: tu consulta responde al instante con lo que hay, y en pocos minutos queda actualizada calle, distrito y ubigeo para la próxima consulta. Si necesitas el dato verificado en ese mismo momento, usa fuente=tregistro.

Servicios Adicionales - Plus Consulta DNI+ (DNI de menores de edad)

La consulta de DNI de un menor de edad (menos de 18 años) es un servicio adicional: S/ 1.40 + IGV por cada DNI de menor, la primera vez que lo consultas (las consultas repetidas del mismo DNI y las consultas de prueba no se cobran). Todas las consultas se descuentan de tu plan. Se factura del 1 al 5 de cada mes y requiere un contrato de locación de servicios con el representante legal del cliente (escríbenos desde Soporte).

Si tu cuenta no tiene este servicio activado, el DNI de un menor responde como un DNI no encontrado (success: false) y no se descuenta de tu plan.

Sobre srestriccion y refresh

Cuando pides refresh, intentamos verificar srestriccion (¿la persona figura como fallecida?) contra un servicio externo. Si responde, actualiza el valor guardado; si no responde (son fuentes de terceros, pueden fallar), se mantiene el último valor conocido, sin que la consulta falle.

Foto del DNI EN DESARROLLO

GET/dni/photograph/{numero}

Devuelve la foto asociada a un DNI. Requiere el mismo servicio que la consulta normal ("Consulta de DNI" o "Consulta de DNI Completo") y no descuenta consultas de tu plan.

Este endpoint está en desarrollo. Puede cambiar o fallar mientras lo terminamos, así que evita depender de él en producción. La fuente de la foto no es oficial de RENIEC.
NombreTipoDescripción
numeroruta8 dígitos numéricos.
curl https://mblapirest.com/api/v1/dni/photograph/12345678 \
  -H "Authorization: Bearer TU_API_TOKEN"
{
  "success": true,
  "number": "12345678",
  "photo": "..."
}
Esta respuesta no lleva el envoltorio data de la consulta principal: number y photo van al nivel de success. photo es una cadena de texto con la imagen tal como la entrega la fuente. Si la persona no tiene foto o la fuente no respondió, success sigue en true y photo llega vacío (""): revisa photo antes de usarla.

Última actualización: 30/10/2026