Emisso Connect

Preparar boleta en e-Boleta (beta)

Prepara una boleta 39 o 41 en la beta de e-Boleta sin emitir.

Tool IDsii.boleta.previsualizar
Nombre MCPsii__boleta__previsualizar
Conectorsii
Planoaction
Scope (permiso)sii:boletas:write
Authconnection_credentials
Versión1
Sensible
Deprecadono
ComportamientoreadOnly=true, destructive=false, idempotent=true, openWorld=true

Requiere conexión. Indica cuál en cada llamada: header X-Connect-Connection en REST, campo connectionId en el execute de 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 de conexiones.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

CampoTipoRequeridoDescripción
candidatoobjetoBaseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos.
candidato.tipoDte"39" · "41"Tipo de boleta: 39 afecta o 41 exenta.
candidato.montoTotalenteroMonto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII.
candidato.detallestringnoDescripción de la única línea, hasta 80 caracteres.
candidato.medioPagoCodigostringnoCódigo contrastado con el catálogo fresco al preparar.
candidato.receptorobjetonoReceptor opcional; no se inventan valores cuando está ausente.
candidato.receptor.rutstringRUT del receptor validado con módulo 11 y canonizado.
candidato.receptor.razonSocialstringNombre o razón social del receptor.
candidato.receptor.direccionstringDirección del receptor.
candidato.receptor.correostring ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$noCorreo opcional del receptor.
candidato.receptor.telefonostringnoTelé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

CampoTipoRequeridoDescripción
candidatoobjetoBaseline de una línea con cantidad 1; no acepta fecha, folio, referencias ni descuentos.
candidato.tipoDte"39" · "41"Tipo de boleta: 39 afecta o 41 exenta.
candidato.montoTotalenteroMonto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII.
candidato.detallestringnoDescripción de la única línea, hasta 80 caracteres.
candidato.medioPagoCodigostringnoCódigo contrastado con el catálogo fresco al preparar.
candidato.receptorobjetonoReceptor opcional; no se inventan valores cuando está ausente.
candidato.receptor.rutstringRUT del receptor validado con módulo 11 y canonizado.
candidato.receptor.razonSocialstringNombre o razón social del receptor.
candidato.receptor.direccionstringDirección del receptor.
candidato.receptor.correostring ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$noCorreo opcional del receptor.
candidato.receptor.telefonostringnoTeléfono opcional del receptor.
totalesobjetoTotal de la única línea. No acredita un desglose neto/IVA del SII.
totales.totalenteroMonto total entero en CLP. El límite es de representación segura; no acredita un máximo del SII.
advertenciaslista de "receptor_no_informado" · "medio_pago_no_informado" · "confirmacion_humana_pendiente"Advertencias codificadas de la preparación.
previewRefstring ^[A-Za-z0-9_.-]+$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ódigoHTTPReintentableQué hacer
connection_disabled403noReactívala en /connections o usa otra conexión del mismo sistema.
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_busy409Espera unos segundos y reintenta. Es una espera transitoria: no necesitas volver a conectar ni ingresar la credencial otra vez.
upstream_error502Reintenta más tarde. Si persiste, el problema está en el sistema externo, no en tu integración.
timeout504Reintenta. 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.

On this page