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.
Integra con PHP, JavaScript, Python, Java o cualquier lenguaje que soporte cURL / HTTP
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.
Consulta nombre completo (nombres, apellido paterno y materno) de cualquier persona usando su número de DNI. Datos directos de RENIEC.
Consulta el listado completo de departamentos, provincias y distritos del Perú con sus códigos de ubigeo. Ideal para formularios de dirección.
Obtén el tipo de cambio USD/PEN oficial de SUNAT para cualquier fecha. Disponible de forma gratuita sin necesidad de token.
Prueba las APIs directamente desde aquí. Sin token requerido para la demo.
Ingresa un RUC de 11 dígitos:
Ingresa un DNI de 8 dígitos:
Ingresa código de ubigeo (ej: 150101):
{
"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"
}
{
"dni": "12345678",
"nombres": "JUAN CARLOS",
"apellido_paterno": "GARCIA",
"apellido_materno": "LOPEZ",
"nombre_completo": "GARCIA LOPEZ JUAN CARLOS",
"codigo_verificacion": "5",
"fuente": "RENIEC"
}
Un solo pago al año. Sin mensualidades ni cargos ocultos.
El pago es mediante YAPE — clic en el logo para ver el QR
Si desea otro medio de pago, contáctenos
Implementa la API en minutos con nuestros ejemplos listos para copiar y pegar
<?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",...}
<?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);
});
// 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.