Buscar contribuyente en el SII
Devuelve la razón social, los giros y el domicilio publicado de cualquier RUT, para completar el receptor de una factura.
| Tool ID | sii.contribuyente.buscar |
| Nombre MCP | sii__contribuyente__buscar |
| Conector | sii |
| Plano | action |
| Scope (permiso) | sii:read |
| Auth | none |
| Versión | 1 |
| Sensible | sí |
| Deprecado | no |
| Comportamiento | readOnly=true, destructive=false, idempotent=true, openWorld=true |
Requiere conexión. Indica cuál en cada llamada: header
X-Connect-Connectionen REST y campoconnectionIden elexecutede MCP. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale deconexiones.estado.consultar.
Qué hace
La razón social y los giros se consultan en vivo en la consulta pública de situación tributaria del SII; el domicilio sale de la nómina de domicilios de personas jurídicas que publica el SII, copiada por Connect, y no cubre personas naturales. No usa la clave de la conexión ni guarda lo que consulta. Revisa 'estado' antes de usar los datos: no_verificable no significa que el RUT no exista. El receptor de 'sii.dte.emitir' no se completa solo: elige un giro de la lista y envía el receptor completo. Límite: 10 búsquedas por minuto por organización; sobre eso responde rate_limited con la espera.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
rut | string | sí | RUT del contribuyente, con dígito verificador. Acepta puntos y guion. |
incluirDomicilio | booleano | no · default true | false para no leer la nómina de domicilios. Por defecto se incluye. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"rut": {
"type": "string",
"description": "RUT del contribuyente, con dígito verificador. Acepta puntos y guion."
},
"incluirDomicilio": {
"default": true,
"description": "false para no leer la nómina de domicilios. Por defecto se incluye.",
"type": "boolean"
}
},
"required": [
"rut"
]
}Ejemplo
curl -X POST https://connect.emisso.ai/api/v1/tools/sii.contribuyente.buscar/execute \
-H "Authorization: Bearer connect_sk_…" \
-H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
-H "Content-Type: application/json" \
-d '{"input":{"rut":"76.123.456-0"}}'{
"tool": "sii.contribuyente.buscar",
"params": {
"rut": "76.123.456-0"
},
"connectionId": "conn_9tKfR2mQx4Vb"
}Salida esperada (200):
{
"data": {
"rut": "76123456-0",
"estado": "puede_emitir",
"nombre": "COMERCIAL EJEMPLO SPA",
"fechaInicioActividades": "2019-03-14",
"giros": [
{
"codigo": "469000",
"descripcion": "VENTA AL POR MAYOR NO ESPECIALIZADA",
"categoriaTributaria": "1",
"afectoIva": true,
"fechaInicio": "2019-03-14"
}
],
"domicilio": {
"direccion": "AV EJEMPLO 1234 DEPTO 501",
"comuna": "PROVIDENCIA",
"fechaPublicacion": "2026-08-05T15:36:37.000Z"
}
},
"meta": {
"request_id": "req_…",
"tool_id": "sii.contribuyente.buscar",
"plane": "action",
"latency_ms": 24,
"audit_status": "recorded"
}
}Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
rut | string | sí | RUT consultado, canonizado como cuerpo-DV. |
estado | "puede_emitir" · "sin_inicio_actividades" · "solo_honorarios" · "rut_inexistente" · "no_verificable" | sí | puede_emitir: tiene inicio de actividades en primera categoría. sin_inicio_actividades: el SII lo reconoce sin inicio de actividades. solo_honorarios: no tiene primera categoría; no le impide recibir documentos. rut_inexistente: el SII no reconoce el RUT. no_verificable: el SII no respondió o respondió algo ilegible; NO significa que el RUT no exista, reintenta más tarde. |
nombre | string | null | sí |
fechaInicioActividades | string | null | sí |
giros | lista de objeto | sí | Actividades económicas informadas, afectas y exentas. Puede venir vacío. Elige una como giro del receptor. |
giros[].codigo | string | sí | Código de actividad económica del SII. Es texto: conserva los ceros a la izquierda. |
giros[].descripcion | string | sí | Descripción de la actividad, tal como la informa el SII. Sirve como giro del receptor de un documento, que admite hasta 40 caracteres: muchas descripciones son más largas y hay que abreviarlas antes de emitir. |
giros[].categoriaTributaria | string | sí | Categoría tributaria tal como la informa el SII: "1" primera categoría, "2" segunda. |
giros[].afectoIva | booleano | sí | true si la actividad está afecta a IVA. |
giros[].fechaInicio | string | null | sí |
domicilio | objeto | null | sí |
domicilio.direccion | string | sí | Dirección vigente publicada en la nómina de personas jurídicas del SII, con número, bloque y departamento. Puede superar los 70 caracteres que admite la dirección del receptor de un DTE: revísala antes de emitir. |
domicilio.comuna | string | sí | Comuna de esa dirección. Puede superar los 20 caracteres que admite la comuna del receptor de un DTE. |
domicilio.fechaPublicacion | string | sí | Instante ISO 8601 UTC en que el SII publicó la nómina de la que sale este domicilio. No es la fecha de esta consulta ni confirma que la empresa no se haya mudado después. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"rut": {
"type": "string",
"description": "RUT consultado, canonizado como cuerpo-DV."
},
"estado": {
"type": "string",
"enum": [
"puede_emitir",
"sin_inicio_actividades",
"solo_honorarios",
"rut_inexistente",
"no_verificable"
],
"description": "puede_emitir: tiene inicio de actividades en primera categoría. sin_inicio_actividades: el SII lo reconoce sin inicio de actividades. solo_honorarios: no tiene primera categoría; no le impide recibir documentos. rut_inexistente: el SII no reconoce el RUT. no_verificable: el SII no respondió o respondió algo ilegible; NO significa que el RUT no exista, reintenta más tarde."
},
"nombre": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Razón social o nombre que informa el SII. null con rut_inexistente o no_verificable."
},
"fechaInicioActividades": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"x-emisso-formato": "AAAA-MM-DD",
"description": "El inicio de actividades en formato AAAA-MM-DD, o null si no vino o no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6. Es el campo que conviene usar para ordenar y filtrar."
},
"giros": {
"type": "array",
"items": {
"type": "object",
"properties": {
"codigo": {
"type": "string",
"description": "Código de actividad económica del SII. Es texto: conserva los ceros a la izquierda."
},
"descripcion": {
"type": "string",
"description": "Descripción de la actividad, tal como la informa el SII. Sirve como giro del receptor de un documento, que admite hasta 40 caracteres: muchas descripciones son más largas y hay que abreviarlas antes de emitir."
},
"categoriaTributaria": {
"type": "string",
"description": "Categoría tributaria tal como la informa el SII: \"1\" primera categoría, \"2\" segunda."
},
"afectoIva": {
"type": "boolean",
"description": "true si la actividad está afecta a IVA."
},
"fechaInicio": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"x-emisso-formato": "AAAA-MM-DD",
"description": "El inicio de esta actividad en formato AAAA-MM-DD, o null si no vino o no se pudo parsear. Es un día calendario sin zona horaria: compáralo como texto o con Date.UTC, porque new Date('2026-09-07') es medianoche UTC y en Chile se muestra como el 6. Es el campo que conviene usar para ordenar y filtrar."
}
},
"required": [
"codigo",
"descripcion",
"categoriaTributaria",
"afectoIva",
"fechaInicio"
],
"additionalProperties": false
},
"description": "Actividades económicas informadas, afectas y exentas. Puede venir vacío. Elige una como giro del receptor."
},
"domicilio": {
"anyOf": [
{
"type": "object",
"properties": {
"direccion": {
"type": "string",
"description": "Dirección vigente publicada en la nómina de personas jurídicas del SII, con número, bloque y departamento. Puede superar los 70 caracteres que admite la dirección del receptor de un DTE: revísala antes de emitir."
},
"comuna": {
"type": "string",
"description": "Comuna de esa dirección. Puede superar los 20 caracteres que admite la comuna del receptor de un DTE."
},
"fechaPublicacion": {
"type": "string",
"description": "Instante ISO 8601 UTC en que el SII publicó la nómina de la que sale este domicilio. No es la fecha de esta consulta ni confirma que la empresa no se haya mudado después."
}
},
"required": [
"direccion",
"comuna",
"fechaPublicacion"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Domicilio publicado por el SII, o null si no se pidió, si el RUT no está en la nómina (no cubre personas naturales) o si no se pudo leer. La ausencia no dice nada sobre la existencia del RUT."
}
},
"required": [
"rut",
"estado",
"nombre",
"fechaInicioActividades",
"giros",
"domicilio"
],
"additionalProperties": false
}Errores de esta tool
| Código | HTTP | Reintentable | Qué hacer |
|---|---|---|---|
connection_disabled | 403 | no | Reactívala en /connections o usa otra conexión del mismo sistema. |
connection_not_found | 404 | no | Usa uno de los connectionId que lista el error, o revisa la conexión en /connections. No hace falta reactivar nada. |
Toda llamada puede devolver además los códigos transversales (validation_error, unauthorized, scope_not_granted, rate_limited, entre otros): el detalle vive en el catálogo de errores.
Verificar conexión SII
Prueba las credenciales de la conexión contra el SII haciendo un login real (y su logout, a cargo del pipeline).
Consultar documentos respaldados del SII
Lista los documentos tributarios (DTE) cuyo XML firmado ya se respaldó para esta conexión, filtrables por período, perspectiva y tipo de documento.