Ir al contenido

Lookup RUT

El endpoint de Lookup RUT permite consultar información tributaria de cualquier contribuyente chileno directamente desde el SII. Los datos incluyen razón social, direcciones, actividades económicas, fecha de autorización y más.

El sistema implementa un caché inteligente que evita consultas innecesarias al SII, optimizando costos y tiempos de respuesta.


Antes de usar el endpoint necesitas:

  1. Una API Key con uno de estos roles: ADMIN, SUPER-ADMIN, o FULL-API
  2. El tenant debe tener DTE habilitado (dteEnabled: true)

El sistema mantiene un repositorio maestro de contribuyentes (ContribuyenteMaestro) que actúa como caché. Esto significa que no todas las consultas generan cobro.

Escenario¿Cobra?Campo source
Datos frescos en caché (< 30 días)NoLOCAL
Datos vencidos → consulta al SIISII
Modo Sandbox activoNoN/A
El SII responde sin datos, pero hay datos localesLOCAL_FALLBACK
No se pudo alcanzar al SII (red, timeout, 5xx)NoLOCAL_FALLBACK
POST /herramientas/lookup-rut
¿Modo Sandbox? ───SÍ───▶ Retorna fixture (NO billing)
│ NO
¿DTE habilitado? ───NO───▶ Error 400
│ SÍ
¿Caché fresco (< 30 días)? ───SÍ───▶ Retorna del caché
│ NO (NO billing)
Consulta al SII
(BILLABLE)
Sincroniza con repositorio maestro
Retorna datos + registra evento billing

La respuesta incluye campos que indican el origen de los datos:

  • source: "SII" | "LOCAL" | "LOCAL_FALLBACK" - De dónde provienen los datos
  • cacheHit: true | false - Si se usó el caché (no hubo consulta al SII)

Si necesitas datos frescos sí o sí (por ejemplo, el contribuyente acaba de cambiar su casilla de intercambio), envía forceRefresh: true en el body. Salta el caché, consulta al SII y siempre se cobra.

{
"rut": "78012039-8",
"forceRefresh": true
}

El modo sandbox permite probar la integración sin realizar consultas reales al SII y sin generar cobros.

El modo sandbox se activa automáticamente cuando tu API Key tiene el flag isSandbox: true configurado en sus metadata.

RUTDescripciónResultado
78012039-8FIRERAISE SPA - Empresa completa con todos los datosÉxito
77425402-1LA GRANJERA LIMITADA - Múltiples direcciones y sucursalesÉxito
13830230-kPersona natural con inicio de actividadesÉxito
19673431-7Persona natural sin inicio de actividadesÉxito
22222222-2Empresa con datos parciales (sin giro)Éxito
11111111-1Empresa sin Portal Mipyme habilitadoÉxito
99999999-9RUT no encontradoError 404

POST /{tenantSlug}/herramientas/lookup-rut
Authorization: Bearer {api_key}
Content-Type: application/json
{
"rut": "78012039-8"
}
CampoTipoRequeridoDescripción
rutstringRUT a consultar en formato 12345678-9
forceRefreshbooleanNotrue ignora el caché y consulta al SII (siempre cobrable). Por defecto false
Ventana de terminal
curl -X POST "https://api.redcumbre.cl/{tenantSlug}/herramientas/lookup-rut" \
-H "Authorization: Bearer {api_key}" \
-H "Content-Type: application/json" \
-d '{
"rut": "78012039-8"
}'

La respuesta trae tres bloques independientes:

  • data — datos del contribuyente obtenidos del Portal MiPyme del SII.
  • consultaContribuyente — datos del registro de contribuyentes electrónicos del SII: casilla de intercambio, resolución que autoriza a emitir DTE y documentos autorizados.
  • source / cacheHit — trazabilidad del origen de los datos.
{
"success": true,
"data": {
"rut": "78012039-8",
"razonSocial": "FIRERAISE SPA",
"giroGlosa": null,
"tipoContribuyente": "EMPRESA",
"fechaAutorizacion": "2021-09-27",
"portalMipymeHabilitado": true,
"emailIntercambio": "intercambio@firemail.cl",
"direcciones": [
{
"direccion": "LOS PEUMOS ST. 3 LT B",
"comuna": "BULNES",
"codigoComuna": "16108",
"ciudad": "",
"codigoSucursal": "90866365",
"unidadSii": {
"direccionRegional": "Dirección Regional de Ñuble",
"nombreCorto": "DR Ñuble",
"codigoRegion": "16",
"unidad": "Unidad de Chillán"
},
"comunaId": 101,
"comunaBheId": 8402,
"comunaSiiId": "16108",
"regionId": 16,
"regionNombre": "Ñuble",
"origen": "SII"
}
],
"actividadesEconomicas": [
{
"codigo": "620900",
"descripcion": "OTRAS ACTIVIDADES DE TECNOLOGÍA DE LA INFORMACIÓN Y DE SERVICIOS INFORMÁTICOS"
}
],
"emails": [],
"telefonos": [],
"contactos": []
},
"consultaContribuyente": {
"rut": "78012039-8",
"razonSocial": "FIRERAISE SPA",
"nroResolucion": "80",
"fechaResolucion": "22-08-2014",
"emailContacto": "intercambio@firemail.cl",
"documentos": [
{
"codigo": 33,
"descripcion": "FACTURA ELECTRONICA",
"autorizado": "28-12-2024",
"desautorizado": null
},
{
"codigo": 61,
"descripcion": "NOTA CREDITO ELECTRONICA",
"autorizado": "28-12-2024",
"desautorizado": null
},
{
"codigo": 890,
"descripcion": "SIST. SII DE EMISIÓN DE BOLETAS ELECTRÓNICAS",
"autorizado": "05-09-2022",
"desautorizado": "19-12-2022"
}
]
},
"source": "SII",
"cacheHit": false
}
CampoTipoDescripción
successbooleanIndica si la operación fue exitosa
data.rutstringRUT consultado
data.razonSocialstringNombre o razón social del contribuyente
data.giroGlosastring | nullGiro comercial. El SII solo lo entrega en lookup auto-referencial, por eso normalmente llega null
data.tipoContribuyentestring"EMPRESA" o "PERSONA"
data.fechaAutorizacionstring | nullFecha de autorización en SII (YYYY-MM-DD)
data.portalMipymeHabilitadobooleanSi tiene acceso al Portal Mipyme del SII
data.emailIntercambiostring | nullCasilla de intercambio DTE (ver sección siguiente)
data.direccionesarrayLista de direcciones registradas
data.actividadesEconomicasarrayLista de actividades económicas (ACTECO)
data.emailsarrayEmails cargados en la plataforma (el SII no entrega emails)
data.telefonosarrayTeléfonos cargados en la plataforma
data.contactosarrayContactos unificados (nombre + email + teléfono)
consultaContribuyenteobject | nullRegistro de contribuyentes electrónicos del SII (ver sección siguiente)
sourcestringOrigen de los datos: SII, LOCAL, LOCAL_FALLBACK
cacheHitbooleantrue si los datos vinieron del caché local
CampoTipoDescripción
direccionstringDirección completa
comunastringNombre de la comuna
codigoComunastringCódigo SII de la comuna
ciudadstringCiudad (puede estar vacío)
codigoSucursalstringCódigo de sucursal SII
unidadSiiobjectInformación de la unidad SII correspondiente
comunaIdnumberID interno de comuna
comunaBheIdnumberID de comuna para BHE
comunaSiiIdstringCódigo SII de la comuna
regionIdnumberID de la región
regionNombrestringNombre de la región
origenstring"SII" (obtenida del SII) o "PERSONALIZADA" (agregada manualmente, no la pisa el SII)
CampoTipoDescripción
codigostringCódigo ACTECO (6 dígitos)
descripcionstringDescripción de la actividad económica

Casilla de Intercambio y Documentos Autorizados

Sección titulada «Casilla de Intercambio y Documentos Autorizados»

Además de los datos del Portal MiPyme, el lookup consulta el registro de contribuyentes electrónicos del SII y devuelve el resultado en el bloque consultaContribuyente.

CampoTipoDescripción
rutstring | nullRUT del contribuyente
razonSocialstring | nullRazón social según el registro de contribuyentes electrónicos
nroResolucionstring | nullNúmero de la resolución del SII que lo autoriza a emitir documentos electrónicos
fechaResolucionstring | nullFecha de la resolución, formato DD-MM-AAAA
emailContactostring | nullCasilla de intercambio publicada en el SII
documentosarrayTipos de documento autorizados (ver abajo)

consultaContribuyente.emailContacto es la casilla que el contribuyente declaró ante el SII para recibir DTE y devolver los acuses de recibo. El mismo valor se replica en data.emailIntercambio para tenerlo a mano junto al resto de los datos del contribuyente.

Si el contribuyente no publicó casilla en el SII, ambos campos llegan en null.

Cada entrada de consultaContribuyente.documentos indica desde cuándo el contribuyente puede emitir ese tipo de documento y, si corresponde, desde cuándo dejó de poder hacerlo.

CampoTipoDescripción
codigonumberCódigo del documento según el SII (33 = factura electrónica, 61 = nota de crédito, etc.)
descripcionstringNombre del documento según el SII
autorizadostring | nullFecha desde la que está autorizado, formato DD-MM-AAAA
desautorizadostring | nullFecha desde la que dejó de estarlo, formato DD-MM-AAAA. null si sigue vigente

El uso típico es verificar que el receptor puede recibir el tipo de DTE que vas a emitirle:

const { consultaContribuyente } = await lookupRut('78012039-8');
const puedeRecibirFactura = consultaContribuyente?.documentos.some(
(doc) => doc.codigo === 33 && doc.desautorizado === null
);
if (!puedeRecibirFactura) {
throw new Error('El receptor no está autorizado para factura electrónica');
}

CódigoDescripciónCausa
400DTE no habilitadoEl tenant no tiene dteEnabled: true
404RUT no encontradoEl RUT no existe en el SII o no tiene inicio de actividades
500Error internoError en servicios internos
{
"statusCode": 404,
"message": "No se encontraron datos para el RUT 99999999-9",
"error": "Not Found"
}

Antes de emitir una Boleta de Honorarios, puedes validar que el destinatario existe en el SII:

Ventana de terminal
# 1. Consultar datos del destinatario
curl -X POST "https://api.redcumbre.cl/{tenant}/herramientas/lookup-rut" \
-H "Authorization: Bearer {api_key}" \
-d '{"rut": "76123456-7"}'
# 2. Si existe, usar los datos para emitir la BHE con modo siiLookup
curl -X POST "https://api.redcumbre.cl/{tenant}/bhe" \
-H "Authorization: Bearer {api_key}" \
-d '{
"emisorTributarioId": "...",
"siiLookup": { ... datos del lookup ... },
"detalle": "Servicios profesionales",
"montoTotal": 500000
}'

Para mostrar información fiscal de un cliente en tu aplicación:

const response = await fetch(`https://api.redcumbre.cl/${tenant}/herramientas/lookup-rut`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ rut: '78012039-8' })
});
const { data, cacheHit } = await response.json();
console.log(`Razón Social: ${data.razonSocial}`);
console.log(`Actividad: ${data.actividadesEconomicas[0]?.descripcion}`);
console.log(`Dirección: ${data.direcciones[0]?.direccion}, ${data.direcciones[0]?.comuna}`);
console.log(`Datos desde caché: ${cacheHit ? '' : 'No'}`);

El lookup de RUT está integrado con el sistema de emisión de BHE. Puedes usar los datos obtenidos directamente con el modo siiLookup al emitir una boleta:

{
"emisorTributarioId": "...",
"siiLookup": {
"rut": "78012039-8",
"razonSocial": "FIRERAISE SPA",
"direcciones": [...],
"actividadesEconomicas": [...]
},
"detalle": "Servicios de consultoría",
"montoTotal": 1000000
}

Esto evita una segunda consulta al SII durante la emisión, optimizando tiempos y costos.

👉 Ver más detalles en Boletas de Honorarios