Connect

Opciones del receptor en el SII

Devuelve lo que el Facturador Gratuito del SII muestra al escribir el RUT del receptor de una factura: razón social, giros y direcciones (sucursales incluidas), cada una con su comuna y ciudad.

Tool IDsii.receptor.opciones
Nombre MCPsii__receptor__opciones
Conectorsii
Planoaction
Scope (permiso)sii:write
Authconnection_credentials
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

Úsala cuando 'sii.dte.previsualizar' responda que el receptor tiene varios giros o direcciones: elige uno de cada uno y envíalos en el receptor; la comuna y la ciudad salen de la dirección elegida. Puedes acotar las direcciones con 'comuna'. Consulta en vivo con la sesión de la conexión, no guarda nada y no emite. Requiere la emisión autorizada en la conexión.

Entrada

CampoTipoRequeridoDescripción
rutstringsíRUT del receptor, con dígito verificador. Acepta puntos y guion.
comunastringnoComuna para acotar las direcciones. Se compara sin mayúsculas, tildes ni ñ.
JSON Schema de entrada
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "rut": {
      "type": "string",
      "description": "RUT del receptor, con dígito verificador. Acepta puntos y guion."
    },
    "comuna": {
      "description": "Comuna para acotar las direcciones. Se compara sin mayúsculas, tildes ni ñ.",
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    }
  },
  "required": [
    "rut"
  ]
}

Ejemplo

curl
curl -X POST https://connect.emisso.ai/api/v1/tools/sii.receptor.opciones/execute \
  -H "Authorization: Bearer connect_sk_…" \
  -H "X-Connect-Connection: conn_9tKfR2mQx4Vb" \
  -H "Content-Type: application/json" \
  -d '{"input":{"rut":"76.123.456-0","comuna":"Temuco"}}'
MCP · meta-tool execute
{
  "tool": "sii.receptor.opciones",
  "params": {
    "rut": "76.123.456-0",
    "comuna": "Temuco"
  },
  "connectionId": "conn_9tKfR2mQx4Vb"
}

Salida esperada (200):

{
  "data": {
    "rut": "76123456-0",
    "razonSocial": "COMERCIAL EJEMPLO S.A.",
    "giros": [
      "VENTA AL POR MENOR DE ARTICULOS DE FERRE",
      "SERVICIOS DE PUBLICIDAD PRESTADOS POR EM"
    ],
    "direcciones": [
      {
        "direccion": "AV. EJEMPLO 0457",
        "comuna": "TEMUCO",
        "ciudad": "TEMUCO"
      },
      {
        "direccion": "CALLE EJEMPLO 2470 L - 1",
        "comuna": "TEMUCO",
        "ciudad": null
      }
    ]
  },
  "meta": {
    "request_id": "req_…",
    "tool_id": "sii.receptor.opciones",
    "plane": "action",
    "latency_ms": 7410,
    "audit_status": "recorded"
  }
}

Después, previsualiza con receptor { rut, giro, direccion } usando textos de estas listas. Paso a paso en Facturas 33 y 34.

Salida

CampoTipoRequeridoDescripción
rutstringsíRUT consultado, canonizado como cuerpo-DV.
razonSocialstringnullsí
giroslista de stringsíGiros registrados, cortados a 40 caracteres como los muestra el SII. Si hay más de uno, elige el que corresponda y envíalo en receptor.giro. Vacío si el SII no tiene datos: entonces el giro se escribe.
direccioneslista de objetosíDirecciones registradas, sucursales incluidas, en el orden del SII (el primero no es el principal). Si se pidió una comuna, sólo las de esa comuna.
direcciones[].direccionstringsíDirección tal como la tiene el SII. Envíala igual en receptor.direccion.
direcciones[].comunastringsíComuna de esa dirección; la previsualización la toma de aquí.
direcciones[].ciudadstringnullsí
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."
    },
    "razonSocial": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Razón social que el SII tiene registrada, o null si no tiene datos de ese RUT."
    },
    "giros": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Giros registrados, cortados a 40 caracteres como los muestra el SII. Si hay más de uno, elige el que corresponda y envíalo en receptor.giro. Vacío si el SII no tiene datos: entonces el giro se escribe."
    },
    "direcciones": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "direccion": {
            "type": "string",
            "description": "Dirección tal como la tiene el SII. Envíala igual en receptor.direccion."
          },
          "comuna": {
            "type": "string",
            "description": "Comuna de esa dirección; la previsualización la toma de aquí."
          },
          "ciudad": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ],
            "description": "Ciudad de esa dirección, o null si el SII no la tiene: entonces hay que enviar receptor.ciudad."
          }
        },
        "required": [
          "direccion",
          "comuna",
          "ciudad"
        ],
        "additionalProperties": false
      },
      "description": "Direcciones registradas, sucursales incluidas, en el orden del SII (el primero no es el principal). Si se pidió una comuna, sólo las de esa comuna."
    }
  },
  "required": [
    "rut",
    "razonSocial",
    "giros",
    "direcciones"
  ],
  "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.
connection_credential_required428noCrea un enlace con conexiones.enlace.crear (modo reconectar si la conexión ya existe) y pide a la persona que entregue la credencial de nuevo. No reintentes con la credencial anterior.
connection_busy409síEspera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502síReintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504síReintenta. Para sincronizaciones largas usa la vía asíncrona y consulta el estado del trabajo.

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