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 ID | sii.receptor.opciones |
| Nombre MCP | sii__receptor__opciones |
| Conector | sii |
| Plano | action |
| Scope (permiso) | sii:write |
| Auth | connection_credentials |
| 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
Ú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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
rut | string | sí | RUT del receptor, con dígito verificador. Acepta puntos y guion. |
comuna | string | no | Comuna 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 -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"}}'{
"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
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
rut | string | sí | RUT consultado, canonizado como cuerpo-DV. |
razonSocial | string | null | sí |
giros | lista de string | sí | 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 | lista de objeto | sí | 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[].direccion | string | sí | Dirección tal como la tiene el SII. Envíala igual en receptor.direccion. |
direcciones[].comuna | string | sí | Comuna de esa dirección; la previsualización la toma de aquí. |
direcciones[].ciudad | string | null | 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."
},
"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ó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. |
connection_credential_required | 428 | no | Crea 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_busy | 409 | sí | Espera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez. |
upstream_error | 502 | sí | Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración. |
timeout | 504 | sí | 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.
Consultar RCV del SII
Lee el Registro de Compra-Venta ya sincronizado para esta conexión, documento por documento, filtrable por período, perspectiva, tipo de documento (tipoDte) y estado del registro.
Tesorería General de la República
Las 6 tools de Tesorería General de la República en el plan pagado.