⚡ Sin límite de consultas · Datos actualizados diariamente

API Consulta RUC SUNAT y DNI RENIEC
para el Perú

Integra consultas de RUC, DNI, Ubigeos y Tipo de Cambio SUNAT en tu sistema usando cualquier lenguaje de programación. Respuesta en JSON, token único anual.

S/ 20
Pago único anual
Sin límite de consultas
JSON
Respuesta estandarizada
24h
Actualización diaria
TIPO DE CAMBIO SUNAT
Compra
Cargando...
Venta
Cargando...
Fecha: 2026-04-29
{ } VER JSON

APIs disponibles

Integra con PHP, JavaScript, Python, Java o cualquier lenguaje que soporte cURL / HTTP

🏢

API Buscar RUC SUNAT

Consulta datos completos de cualquier empresa o persona natural con RUC: razón social, estado, condición, dirección, ubigeo, actividad económica y más.

SUNAT JSON Sin límite
POST /api/ruc.php
param: ruc=20123456789
S/ 20
al año · pago único
Obtener Token
🪪

API Buscar DNI RENIEC

Consulta nombre completo (nombres, apellido paterno y materno) de cualquier persona usando su número de DNI. Datos directos de RENIEC.

RENIEC JSON Sin límite
POST /api/dni.php
param: dni=12345678
S/ 20
al año · pago único
Obtener Token
📍

API Ubigeos Perú

Consulta el listado completo de departamentos, provincias y distritos del Perú con sus códigos de ubigeo. Ideal para formularios de dirección.

INEI JSON Incluido
GET /api/ubigeo.php
param: departamento=LIMA
Incluido
en el token RUC/DNI
Ver ubigeos
💱

API Tipo de Cambio SUNAT

Obtén el tipo de cambio USD/PEN oficial de SUNAT para cualquier fecha. Disponible de forma gratuita sin necesidad de token.

SUNAT JSON Gratis
GET /api/tipocambio.php
param: fecha=2026-01-15
Gratis
sin token requerido
Ver JSON

Demo en vivo

Prueba las APIs directamente desde aquí. Sin token requerido para la demo.

Ingresa un RUC de 11 dígitos:

Ej: 20100053455 (SUNAT), 20331066703 (BCP)

Ingresa un DNI de 8 dígitos:

Ingresa código de ubigeo (ej: 150101):

Ejemplo de respuesta JSON — RUC

{
  "ruc": "20100053455",
  "razon_social": "SUNAT",
  "tipo_documento": "RUC",
  "estado": "ACTIVO",
  "condicion": "HABIDO",
  "direccion": "AV. GARCILAZO DE LA VEGA NRO. 1472",
  "ubigeo": "150101",
  "departamento": "LIMA",
  "provincia": "LIMA",
  "distrito": "LIMA",
  "tipo_empresa": "ORGANISMO PUBLICO",
  "actividad_economica": "ADMINISTRACION PUBLICA",
  "fecha_inscripcion": "1994-01-01",
  "fuente": "SUNAT"
}

Ejemplo de respuesta JSON — DNI

{
  "dni": "12345678",
  "nombres": "JUAN CARLOS",
  "apellido_paterno": "GARCIA",
  "apellido_materno": "LOPEZ",
  "nombre_completo": "GARCIA LOPEZ JUAN CARLOS",
  "codigo_verificacion": "5",
  "fuente": "RENIEC"
}

Precios simples y transparentes

Un solo pago al año. Sin mensualidades ni cargos ocultos.

API RUC SUNAT
S/20/año
  • Consultas ilimitadas RUC
  • Datos completos SUNAT
  • Estado y condición
  • Dirección y ubigeo
  • Actividad económica
  • Respuesta JSON
  • Soporte técnico
Obtener Token

El pago es mediante YAPE — clic en el logo para ver el QR

💜
YAPE
939 008 751 · CODEIN & JNC E.I.R.L

Si desea otro medio de pago, contáctenos

Documentación y ejemplos de código

Implementa la API en minutos con nuestros ejemplos listos para copiar y pegar

Endpoints disponibles

MétodoEndpointParámetrosTokenDescripción
POST/api/ruc.phpruc, tokenConsultar RUC SUNAT
POST/api/dni.phpdni, tokenConsultar DNI RENIEC
GET/api/ubigeo.phpcodigo, departamento, tokenConsultar ubigeos
GET/api/tipocambio.phpfechaTipo de cambio SUNAT

Código de implementación — API RUC

<?php
// api-ruc.php — Consultar RUC SUNAT
$token = "TU_TOKEN_AQUI";
$ruc   = $_REQUEST['ruc'];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL            => 'https://www.apifac.codein-jnc.com/api/ruc.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => ['token' => $token, 'ruc' => $ruc],
    CURLOPT_TIMEOUT        => 15,
    CURLOPT_SSL_VERIFYPEER => false,
]);
$response = curl_exec($curl);
curl_close($curl);

$empresa = json_decode($response, true);

if (isset($empresa['ruc'])) {
    echo "RUC: "       . $empresa['ruc'] . "\n";
    echo "Razón Social: " . $empresa['razon_social'] . "\n";
    echo "Estado: "    . $empresa['estado'] . "\n";
    echo "Condición: " . $empresa['condicion'] . "\n";
    echo "Dirección: " . $empresa['direccion'] . "\n";
    echo "Distrito: "  . $empresa['distrito'] . "\n";
} else {
    echo "RUC no encontrado o token inválido";
}
// api.js — Consultar RUC con jQuery
const TOKEN = "TU_TOKEN_AQUI";

$("#ruc").on('change', function() {
    const ruc = $(this).val();
    if (ruc.length !== 11) return;

    $.ajax({
        method: "POST",
        url: '/api/ruc.php',
        data: { token: TOKEN, ruc: ruc },
        dataType: "json",
        success: function(r) {
            if (r.ruc) {
                $("#razon_social").val(r.razon_social);
                $("#direccion").val(r.direccion);
                $("#ubigeo").val(r.ubigeo);
                $("#estado").val(r.estado);
                $("#condicion").val(r.condicion);
                $("#departamento").val(r.departamento);
                $("#provincia").val(r.provincia);
                $("#distrito").val(r.distrito);

                if (r.estado === 'ACTIVO') {
                    $('.estado-badge').addClass('activo').text('ACTIVO');
                } else {
                    $('.estado-badge').addClass('inactivo').text(r.estado);
                }
            } else {
                alert('RUC no encontrado: ' + (r.mensaje || ''));
            }
        }
    });
});
# api_ruc.py — Consultar RUC con Python requests
import requests

TOKEN = "TU_TOKEN_AQUI"
RUC   = "20123456789"

response = requests.post(
    'https://www.apifac.codein-jnc.com/api/ruc.php',
    data={'token': TOKEN, 'ruc': RUC},
    timeout=15
)
empresa = response.json()

if 'ruc' in empresa:
    print(f"RUC: {empresa['ruc']}")
    print(f"Razón Social: {empresa['razon_social']}")
    print(f"Estado: {empresa['estado']}")
    print(f"Condición: {empresa['condicion']}")
    print(f"Dirección: {empresa['direccion']}")
else:
    print(f"Error: {empresa.get('mensaje', 'RUC no encontrado')}")
# cURL — Consultar RUC
curl -X POST https://www.apifac.codein-jnc.com/api/ruc.php \
  -d "token=TU_TOKEN_AQUI" \
  -d "ruc=20123456789"

# Respuesta esperada:
# {"ruc":"20123456789","razon_social":"EMPRESA SAC","estado":"ACTIVO",...}

Código de implementación — API DNI

<?php
// api-dni.php — Consultar DNI RENIEC
$token = "TU_TOKEN_AQUI";
$dni   = $_REQUEST['dni'];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL            => 'https://www.apifac.codein-jnc.com/api/dni.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_POSTFIELDS     => ['token' => $token, 'dni' => $dni],
    CURLOPT_TIMEOUT        => 15,
    CURLOPT_SSL_VERIFYPEER => false,
]);
$response = curl_exec($curl);
curl_close($curl);

$persona = json_decode($response, true);

if (isset($persona['dni'])) {
    echo "DNI: "             . $persona['dni'] . "\n";
    echo "Nombres: "         . $persona['nombres'] . "\n";
    echo "Apellido Paterno: ". $persona['apellido_paterno'] . "\n";
    echo "Apellido Materno: ". $persona['apellido_materno'] . "\n";
    echo "Nombre Completo: " . $persona['nombre_completo'] . "\n";
} else {
    echo "DNI no encontrado";
}
// Consultar DNI con JavaScript (fetch)
const TOKEN = "TU_TOKEN_AQUI";

async function consultarDNI(dni) {
    const fd = new FormData();
    fd.append('token', TOKEN);
    fd.append('dni', dni);

    const resp = await fetch('/api/dni.php', { method: 'POST', body: fd });
    const data = await resp.json();

    if (data.dni) {
        document.getElementById('cliente').value = data.nombre_completo;
        document.getElementById('nombres').value = data.nombres;
        document.getElementById('ape_pat').value = data.apellido_paterno;
        document.getElementById('ape_mat').value = data.apellido_materno;
    } else {
        alert('DNI no encontrado');
    }
}

document.getElementById('dni').addEventListener('change', (e) => {
    if (e.target.value.length === 8) consultarDNI(e.target.value);
});

Guardar tu token en el código

// Guarda tu token en una variable de entorno o archivo de configuración
$token = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Reemplaza con tu token real

El costo del token es de S/ 20 al año. Una vez generado, contáctenos para activarlo.