e-Boleta en beta
Configura tu empresa, prepara por API o MCP, confirma en Connect y consulta cada intento sin reenviar.
La beta se habilita por organización. Permite intentar boletas 39 y 41 con sucursal explícita, una línea, cantidad uno e importe entero en pesos. Cada tipo debe estar habilitado en el perfil actual del SII. La cobertura del contrato público y las pruebas locales no acreditan una emisión productiva anterior de tu empresa.
Configura tu conexión
Un owner/admin entra en Conexiones → tu conexión SII → Ajustes → e-Boleta del SII · Beta:
- Consulta el perfil, elige la sucursal y guarda el perfil vigente.
- Confirma el uso exclusivo de e-Boleta del SII y concede el permiso propio de e-Boleta.
- Activa la beta para la organización. El servicio verifica perfil, credencial y consentimiento.
Una organización ya habilitada completa esos pasos por su cuenta. Cada API key o agente que prepare
u ordene el envío también necesita sii:boletas:write; sii:write no lo sustituye.
El RUT de la empresa (empresaRut) y el de quien autentica (loginRut) tienen significados distintos.
No entregues la clave del SII a tu agente: Connect la resuelve en servidor.
Prepara sin emitir
Los ejemplos son sintéticos: no los envíes como una venta real. Usa el catálogo de tu conexión para saber qué datos exige la configuración vigente. Los esquemas vienen del contrato generado de preparación y emisión.
Por REST, POST /api/v1/tools/sii.boleta.previsualizar/execute con bearer Connect,
Content-Type: application/json, X-Connect-Connection: conn_ejemplo y este body:
{
"input": {
"candidato": { "tipoDte": "39", "montoTotal": 1200, "detalle": "Ejemplo sintético" }
}
}Por MCP, descubre la ficha con search_docs y usa la meta-tool indicada. La preparación admite
execute_write con estos argumentos:
{
"tool": "sii.boleta.previsualizar",
"connectionId": "conn_ejemplo",
"params": {
"candidato": { "tipoDte": "39", "montoTotal": 1200, "detalle": "Ejemplo sintético" }
}
}Conserva previewRef en tu aplicación. Es una referencia cifrada ligada al candidato, al propietario,
a la conexión y a su configuración. No cambies los datos después de prepararlos.
Confirma en Connect e inicia el envío
En el panel de e-Boleta, pulsa Actualizar preparaciones, abre la preparación y revisa monto, receptor, detalle y medio de pago. Confirmar esta preparación es el acto humano sobre esos datos. La confirmación no envía ni extiende el plazo: tienes como máximo 15 minutos desde la preparación para iniciar la operación. Si vence o cambian las reglas o el perfil, prepara y confirma nuevamente.
Tu aplicación usa POST /api/v1/tools/sii.boleta.emitir/execute, la misma conexión y bearer,
Idempotency-Key con una UUID v4 nueva para esa operación y {"input":{"previewRef":"<referencia>"}}.
Guarda la clave y los argumentos originales antes de la llamada. Por MCP:
{
"tool": "sii.boleta.emitir",
"connectionId": "conn_ejemplo",
"idempotencyKey": "9a2fd694-b24d-4d07-9e62-d77a833ba10d",
"params": { "previewRef": "<referencia confirmada>" }
}La UUID del ejemplo solo ilustra el formato. Genera una propia por operación.
SDK de TypeScript
El SDK está disponible en el repositorio; consulta esa página sobre su publicación. El contrato tipado generado usa el mismo flujo:
const preparation = await connect.tools.sii.boleta.previsualizar(
{ candidato: { tipoDte: "39", montoTotal: 1200, detalle: "Ejemplo sintético" } },
{ connectionId: "conn_ejemplo" },
);
// Conserva preparation.previewRef y espera la confirmación humana en Connect.
const input = { previewRef: preparation.previewRef };
const options = { connectionId: "conn_ejemplo", idempotencyKey: crypto.randomUUID() };
// Guarda input y options antes de iniciar esta operación.
const response = await connect.tools.sii.boleta.emitir.withResponse(input, options);
// Conserva también response.meta?.operation_request_id.Consulta un resultado pendiente
Connect guarda el compromiso antes de un único POST al SII. Un folio en la respuesta o HTTP 200 no acreditan aceptación: la reconciliación consulta la misma empresa, tipo y folio y exige un reporte completo y concluyente.
Si recibes resultado_desconocido, puedeReintentar:false o una falla de transporte, conserva
operation_request_id cuando esté disponible, la UUID y los argumentos originales. Repite la misma
llamada de emisión con esa UUID para consultar el intento guardado. El replay del compromiso no
reenvía, no vuelve a preparar y funciona aunque la referencia ya haya vencido. Si la respuesta sigue
pendiente, espera la reconciliación automática; entrega a soporte el identificador de la operación
si no logra resolverse. Una UUID diferente puede representar otra emisión: no la uses para salir
de la incertidumbre.
Antes del compromiso, los códigos seguros distinguen perfil, configuración no soportada y datos incompletos. El mensaje indica que la boleta no se envió y qué debes corregir. No compartas cuerpos, credenciales, referencias cifradas ni respuestas privadas en mensajes de soporte.
Revoca el permiso
Revocar permiso e-Boleta cierra la escritura de esa conexión. Desactivar beta para la organización cierra nuevas preparaciones y emisiones de toda la organización. Ambas acciones siguen disponibles fuera del flag beta. Un intento ya comprometido conserva su identidad y se consulta sin reenvío.
Recursos máquina-legibles
Todo el sitio existe en markdown y contratos: pega una URL y descubre el API entero.
Enlace hosted de conexión
Un enlace de un solo uso para que un tercero entregue la clave del SII o del banco: sin cuenta, sin acceso al dashboard y sin que la credencial pase por tu aplicación.