Preparar boleta en e-Boleta (beta)
Prepara una boleta 39 o 41 en la beta de e-Boleta sin emitir.
| Tool ID | sii.boleta.previsualizar |
| Nombre MCP | sii__boleta__previsualizar |
| Conector | sii |
| Plano | action |
| Scope (permiso) | sii:boletas: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, campoconnectionIden elexecutede MCP y en las opciones del SDK. 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
Requiere habilitación operativa global y de la organización, conexión explícita, permiso sii:boletas:write, consentimiento y perfil vigentes. Usa el contrato público versionado; la beta permite intentar, no acredita aceptación productiva.
Entrada
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
candidato | objeto | sí | Baseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos. |
candidato.tipoDte | "39" · "41" | sí | Tipo de boleta: 39 afecta o 41 exenta. |
candidato.montoTotal | entero | sí | Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII. |
candidato.detalle | string | no | Descripción de la única línea, hasta 80 caracteres. |
candidato.medioPagoCodigo | string | no | Código contrastado con el catálogo fresco al preparar. |
candidato.receptor | objeto | no | Receptor opcional; no se inventan valores cuando está ausente. |
candidato.receptor.rut | string | sí | RUT del receptor validado con módulo 11 y canonizado. |
candidato.receptor.razonSocial | string | sí | Nombre o razón social del receptor. |
candidato.receptor.direccion | string | sí | Dirección del receptor. |
candidato.receptor.correo | string ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ | no | Correo opcional del receptor. |
candidato.receptor.telefono | string | no | Teléfono opcional del receptor. |
JSON Schema de entrada
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"candidato": {
"type": "object",
"properties": {
"tipoDte": {
"type": "string",
"enum": [
"39",
"41"
],
"description": "Tipo de boleta: 39 afecta o 41 exenta."
},
"montoTotal": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII."
},
"detalle": {
"description": "Descripción de la única línea, hasta 80 caracteres.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"medioPagoCodigo": {
"description": "Código contrastado con el catálogo fresco al preparar.",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"receptor": {
"description": "Receptor opcional; no se inventan valores cuando está ausente.",
"type": "object",
"properties": {
"rut": {
"description": "RUT del receptor validado con módulo 11 y canonizado.",
"type": "string"
},
"razonSocial": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Nombre o razón social del receptor."
},
"direccion": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Dirección del receptor."
},
"correo": {
"description": "Correo opcional del receptor.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"telefono": {
"description": "Teléfono opcional del receptor.",
"type": "string",
"minLength": 1,
"maxLength": 32
}
},
"required": [
"rut",
"razonSocial",
"direccion"
],
"additionalProperties": false
}
},
"required": [
"tipoDte",
"montoTotal"
],
"additionalProperties": false,
"description": "Baseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos."
}
},
"required": [
"candidato"
],
"additionalProperties": false
}Salida
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
candidato | objeto | sí | Baseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos. |
candidato.tipoDte | "39" · "41" | sí | Tipo de boleta: 39 afecta o 41 exenta. |
candidato.montoTotal | entero | sí | Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII. |
candidato.detalle | string | no | Descripción de la única línea, hasta 80 caracteres. |
candidato.medioPagoCodigo | string | no | Código contrastado con el catálogo fresco al preparar. |
candidato.receptor | objeto | no | Receptor opcional; no se inventan valores cuando está ausente. |
candidato.receptor.rut | string | sí | RUT del receptor validado con módulo 11 y canonizado. |
candidato.receptor.razonSocial | string | sí | Nombre o razón social del receptor. |
candidato.receptor.direccion | string | sí | Dirección del receptor. |
candidato.receptor.correo | string ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$ | no | Correo opcional del receptor. |
candidato.receptor.telefono | string | no | Teléfono opcional del receptor. |
totales | objeto | sí | Total de la única línea. No acredita un desglose neto/IVA del SII. |
totales.total | entero | sí | Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII. |
advertencias | lista de "receptor_no_informado" · "medio_pago_no_informado" · "confirmacion_humana_pendiente" | sí | Advertencias codificadas de la preparación. |
previewRef | string ^[A-Za-z0-9_.-]+$ | sí | Referencia opaca de preparación ligada a su propietario; vigencia máxima de 15 minutos para iniciar emisión. |
JSON Schema de salida
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"candidato": {
"type": "object",
"properties": {
"tipoDte": {
"type": "string",
"enum": [
"39",
"41"
],
"description": "Tipo de boleta: 39 afecta o 41 exenta."
},
"montoTotal": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII."
},
"detalle": {
"description": "Descripción de la única línea, hasta 80 caracteres.",
"type": "string",
"minLength": 1,
"maxLength": 80
},
"medioPagoCodigo": {
"description": "Código contrastado con el catálogo fresco al preparar.",
"type": "string",
"minLength": 1,
"maxLength": 64
},
"receptor": {
"description": "Receptor opcional; no se inventan valores cuando está ausente.",
"type": "object",
"properties": {
"rut": {
"description": "RUT del receptor validado con módulo 11 y canonizado.",
"type": "string"
},
"razonSocial": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Nombre o razón social del receptor."
},
"direccion": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Dirección del receptor."
},
"correo": {
"description": "Correo opcional del receptor.",
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
},
"telefono": {
"description": "Teléfono opcional del receptor.",
"type": "string",
"minLength": 1,
"maxLength": 32
}
},
"required": [
"rut",
"razonSocial",
"direccion"
],
"additionalProperties": false
}
},
"required": [
"tipoDte",
"montoTotal"
],
"additionalProperties": false,
"description": "Baseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos."
},
"totales": {
"type": "object",
"properties": {
"total": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Monto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII."
}
},
"required": [
"total"
],
"additionalProperties": false,
"description": "Total de la única línea. No acredita un desglose neto/IVA del SII."
},
"advertencias": {
"maxItems": 3,
"type": "array",
"items": {
"type": "string",
"enum": [
"receptor_no_informado",
"medio_pago_no_informado",
"confirmacion_humana_pendiente"
]
},
"description": "Advertencias codificadas de la preparación."
},
"previewRef": {
"type": "string",
"minLength": 24,
"maxLength": 8192,
"pattern": "^[A-Za-z0-9_.-]+$",
"description": "Referencia opaca de preparación ligada a su propietario; vigencia máxima de 15 minutos para iniciar emisión."
}
},
"required": [
"candidato",
"totales",
"advertencias",
"previewRef"
],
"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_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.
Emitir boleta en e-Boleta (beta)
Inicia un único envío en la beta de e-Boleta para una organización habilitada.
Consultar boletas de honorarios del SII
Lee las boletas de honorarios electrónicas (BHE) ya sincronizadas para esta conexión, filtradas por período y/o perspectiva (emitidas = las que emitió esta empresa; recibidas = las que le emitieron, donde esta empresa es el agente retenedor).