Connect

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 IDsii.contribuyente.buscar
Nombre MCPsii__contribuyente__buscar
Conectorsii
Planoaction
Scope (permiso)sii:read
Authnone
Versión1
Sensiblesí
Deprecadono
ComportamientoreadOnly=true, destructive=false, idempotent=true, openWorld=true

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST y campo connectionId en el execute de MCP. No hay resolución implícita, ni siquiera con una sola conexión activa: la conexión es la empresa. El id sale de conexiones.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

CampoTipoRequeridoDescripción
rutstringsíRUT del contribuyente, con dígito verificador. Acepta puntos y guion.
incluirDomiciliobooleanono · default truefalse 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
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"}}'
MCP · meta-tool execute
{
  "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

CampoTipoRequeridoDescripción
rutstringsí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.
nombrestringnullsí
fechaInicioActividadesstringnullsí
giroslista de objetosíActividades económicas informadas, afectas y exentas. Puede venir vacío. Elige una como giro del receptor.
giros[].codigostringsíCódigo de actividad económica del SII. Es texto: conserva los ceros a la izquierda.
giros[].descripcionstringsí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[].categoriaTributariastringsíCategoría tributaria tal como la informa el SII: "1" primera categoría, "2" segunda.
giros[].afectoIvabooleanosítrue si la actividad está afecta a IVA.
giros[].fechaIniciostringnullsí
domicilioobjetonullsí
domicilio.direccionstringsí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.comunastringsíComuna de esa dirección. Puede superar los 20 caracteres que admite la comuna del receptor de un DTE.
domicilio.fechaPublicacionstringsí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ódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
connection_not_found404noUsa 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.

En esta página