目录 / siimaster
MCP
鉴权未知
未评级
已上架
siimaster
Asesor contable tributario chileno con IA. 100 herramientas para SII: F29, F22, DJs (1879/1887/1948/3325/3500), DTE (factura, boleta, NC, ND, guía, factura compra), BHE, SISPAs, RCV, contabilidad PyME completa (libros, EERR, Balance, RLI, simulador, comparador 14D N°3 vs N°8), auditoría IVA, flujo de caja, cartas legales templated, multi-empresa. Específico para SII Chile y cualquier régimen tributario
该来源不提供完整文件导出(国内平台多为平台内托管),仅存元数据与原链
接入信息
- 传输形态
- http
- 鉴权方式
- 鉴权未知
- 端点
https://siimaster--vicente-litvak.run.tools
鉴权方式未标注,请核对官方文档后再接入——不要直接使用以下片段
{
"mcpServers": {
"siimaster": {
"url": "https://siimaster--vicente-litvak.run.tools"
}
}
}
能力清单
| 工具 | 说明 |
|---|---|
| listar_entidades | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista todas las entidades (empresas y personas naturales) gestionadas. Úsalo al inicio o si el usuario menciona una entidad que no conoces. USAR CUANDO: necesitas saber qué entidades (empresas/personas) están registradas en el sistema. NO USAR CUANDO: ya conoces el slug de la entidad — usa resumen_entidad o leer_perfil directamente. EJEMPLO: {} → devuelve [{"slug": "spiralway", "rut": "...", ...}] |
| subir_certificado_dte | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Sube y registra el certificado digital (.pfx) requerido para emitir DTE. El certificado se valida abriéndolo con el password antes de persistir; si el password no abre el .pfx, devuelve error sin guardar nada. El password se cifra con Fernet en cred_store. Requiere scope 'full'. USAR CUANDO: el usuario carga su .pfx por primera vez (se cifra con Fernet en disco). |
| eliminar_entidad | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, destructivo=true, idempotente=false] Elimina una entidad de tu cuenta SIIMaster (registry + clave cifrada). Requiere scope 'full'. NO borra el archivo histórico de la entidad (data/entidades/...) — eso queda para retención y auditoría. Sólo puedes eliminar entidades de tu propia cuenta. USAR CUANDO: eliminar PERMANENTEMENTE una entidad y todos sus datos del archivo (irreversible). |
| editar_entidad | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Actualiza campos editables de una entidad existente sin re-crear. RUT, slug, tipo y account_id NO son editables (cambios de identidad requieren borrar + re-crear). Requiere scope 'full'. |
| cambiar_clave_entidad | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Cambia la clave SII de una entidad (re-cifra y guarda). Útil cuando el SII te obliga a cambiar la clave o cuando quieres rotarla. Requiere scope 'full'. USAR CUANDO: el usuario cambió su clave SII y hay que actualizar (re-cifrada Fernet). |
| registrar_entidad | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Registra una empresa o persona natural en tu cuenta SIIMaster. Requiere scope 'full' (no disponible en plan Free). La clave SII se cifra antes de almacenarse. Si verificar=True intentamos un login al SII; si rechaza la clave, no se guarda nada. Devuelve: { entidad: {...}, verificacion: { ok, error? } } |
| resumen_entidad | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Sumario ejecutivo de una entidad: DJ presentadas, F22, F29, BHE, giros. Úsalo PRIMERO cuando la pregunta sea amplia sobre una entidad. Args: entidad: slug (e.g. "acme", "juan-perez") o RUT. USAR CUANDO: el usuario pregunta '¿cómo está X?' o necesitas un vistazo rápido de qué hay en el archivo de la entidad. NO USAR CUANDO: necesitas datos completos consolidados — usa snapshot_entidad o estado_tributario. |
| leer_perfil | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Snapshot del perfil tributario: régimen, giros, domicilio, capital. Args: entidad: slug o RUT. USAR CUANDO: necesitas régimen tributario, giros, domicilio o capital de la entidad. NO USAR CUANDO: buscas estado de F29/BHE/giros — esas tienen tools dedicadas. |
| leer_dj | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Detalle de una Declaración Jurada para un AT. Args: entidad: slug o RUT. dj: número de DJ (e.g. 1879, 1887, 1948). at: año tributario (e.g. 2026). USAR CUANDO: el usuario pregunta por una Declaración Jurada anual específica (1879, 1887, 1948, 3325, 3500). NO USAR CUANDO: no sabes qué número de DJ — primero pregunta al usuario o usa listar_analisis_previos. |
| leer_f22 | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Detalle del F22 anual (Renta) para un AT. Args: entidad: slug o RUT. at: año tributario. USAR CUANDO: necesitas el F22 anual (Renta) de un AT. |
| leer_f29 | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Detalle del F29 mensual: códigos, total, estado, folio. Args: entidad: slug o RUT. anno: año (e.g. 2026). mes: 1-12. USAR CUANDO: necesitas el detalle del F29 de un mes específico ya capturado en el archivo (folio, códigos, total). NO USAR CUANDO: no hay F29 capturado para ese período — usa capturar_f29_periodo primero (live SII). EJEMPLO: {"entidad":"spiralway","anno":2026,"mes":5} |
| listar_bhe | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista BHE de un mes. Cada BHE: folio, estado, monto bruto, receptor. Args: entidad: slug o RUT. anno: año. mes: 1-12. emitidas: True = BHE emitidas por el contribuyente, False = recibidas. USAR CUANDO: necesitas las BHE emitidas o recibidas en un mes. EJEMPLO: {"entidad":"spiralway","anno":2026,"mes":5,"emitidas":false} # recibidas |
| leer_giros | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Giros vigentes (deudas) del SII: folio, monto, vencimiento, formulario. Args: entidad: slug o RUT. USAR CUANDO: necesitas listar deudas/giros vigentes del SII. |
| listar_sispas | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista peticiones administrativas SISPA: folio, materia, estado, BHE asociada. Args: entidad: slug o RUT. USAR CUANDO: el usuario pregunta por peticiones administrativas ya presentadas o pendientes. |
| listar_analisis_previos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista análisis MD ya generados (auditorías, esquemas tributarios). Args: entidad: slug o RUT. |
| leer_analisis | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Devuelve el contenido completo de un análisis MD. Args: entidad: slug o RUT. nombre: nombre del archivo .md (sin extensión, e.g. "RESUMEN_FINAL"). USAR CUANDO: leer un análisis previamente guardado en data/entidades/.../analisis/. |
| plan_cuentas | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Plan de cuentas chileno PyME usado por SIIMaster. Args: filtro: opcional, filtra por substring en código o nombre (e.g. "iva", "1.1", "honorarios"). |
| armar_asientos_mes | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera asientos contables del mes desde DTEs+BHE+F29 del archivo. Aplica las reglas: DTE emitido/recibido, BHE recibida/emitida (con retención 13.75%), F29 pagado, RPM Mercado Pago. Devuelve los asientos generados + resumen por fuente. Si `persistir=True`, los guarda en el archivo de la entidad para que después puedas consultar libro_diario / libro_mayor. Args: entidad: slug o RUT. anno: año (e.g. 2026). mes: 1-12. persistir: si True, guarda en disco (sobrescribe asientos previos del mes). USAR CUANDO: el usuario quiere generar asientos contables automáticos desde DTEs+BHE+F29 del mes. |
| listar_meses_asientos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista los períodos con asientos persistidos para la entidad. USAR CUANDO: saber qué meses tienen asientos generados (antes de armar EERR/BG). |
| libro_diario | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Libro diario del mes: asientos cronológicos con número correlativo. Requiere que `armar_asientos_mes` se haya corrido con persistir=True. USAR CUANDO: el usuario quiere ver asientos diarios de un mes. |
| libro_mayor | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Libro mayor del mes (todas las cuentas o filtrado por código). Args: entidad: slug o RUT. anno, mes: período. cuenta: opcional, código específico (e.g. "1.1.02" para Banco). Sin filtro devuelve resumen de todas las cuentas con saldo. USAR CUANDO: movimientos por cuenta contable acumulado. |
| libro_compras_ventas | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Libro Compras o Ventas del mes (formato SII). Lee directamente de los DTEs persistidos, no de los asientos. Args: tipo: "ventas" o "compras". USAR CUANDO: libro CV mensual (ventas/compras IVA crédito/débito). |
| balance_tributario | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Balance tributario de 8 columnas para el mes. Formato chileno tradicional: sumas (debe/haber) + saldos (deudor/acreedor) + inventario (activo/pasivo) + resultado (pérdida/ganancia). Requiere asientos persistidos. USAR CUANDO: balance 8 columnas tributario para un mes. |
| estado_resultado | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Estado de Resultado para un mes o rango de meses. Si solo pasas anno_desde/mes_desde, calcula ese mes. Si pasas también anno_hasta/mes_hasta, calcula el acumulado del rango (e.g. 2026-01 a 2026-04 para un trimestre). Args: entidad: slug o RUT. anno_desde, mes_desde: período inicial. anno_hasta, mes_hasta: período final (default = mismo que desde). incluir_saldos_apertura: aplica saldos de apertura del año. USAR CUANDO: EERR de un período (ingresos - gastos = utilidad). |
| balance_general | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Balance General clasificado a fecha de cierre. Acumula todos los asientos desde enero del año hasta el mes pedido. Suma saldos de apertura si están configurados. Args: entidad: slug o RUT. anno, mes: fecha de cierre. incluir_saldos_apertura: True (default) suma saldos iniciales. incluir_resultado_ejercicio: True (default) calcula utilidad neta y la agrega al patrimonio para que cuadre. USAR CUANDO: balance general (activos/pasivos/patrimonio) a fecha. |
| setear_saldo_apertura | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Setea el saldo de apertura de una cuenta para un año. Útil al inicializar un año (saldos al 01-01 = cierres al 31-12 anterior) o para cargar manualmente saldos históricos. Args: entidad: slug o RUT. anno: año tributario (e.g. 2026). cuenta: código del plan de cuentas (e.g. "1.1.02"). monto: saldo en CLP (positivo en su naturaleza normal — débito para activos, crédito para pasivos/patrimonio). USAR CUANDO: setear el saldo inicial de una cuenta contable (primer período del año). |
| cargar_saldos_apertura | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Lista los saldos de apertura configurados para un año. USAR CUANDO: cargar masivamente saldos de apertura desde un balance previo. |
| auditar_entidad | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Auditoría completa: detecta BHE atípicas (caso fraude $31M), asientos descuadrados, saldos contra naturaleza, DTEs duplicados, F29 faltantes, BHE VIG sin SISPA. Devuelve anomalías ordenadas por severidad (CRITICA / ALTA / MEDIA / INFO) con acción sugerida. Args: entidad: slug o RUT. anno: opcional, año a auditar (default = año actual). USAR CUANDO: auditoría completa de inconsistencias en el archivo (asientos vs DTEs vs F29 vs RCV). |
| conciliar_banco_csv | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza movimientos bancarios (CSV del banco) con DTEs emitidos/recibidos del mes. Match por monto + fecha (±30d) + RUT (si está en descripción). Devuelve matches con confianza 0-1 + movimientos sin match (potencial boleta no DTE) + DTEs sin pago/cobro detectado. USAR CUANDO: el usuario subió cartola bancaria CSV y quiere matcheo con asientos contables. |
| registrar_dte_desde_foto | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Extrae datos de una foto de factura usando Vision API y la registra como DTE recibido. Si la confianza < 60% no persiste — devuelve datos para revisión humana. Diferencial vs Defontana/Nubox: ellos piden subir XML. Acá foto. USAR CUANDO: el usuario sube foto de una boleta/factura física y queremos extraer datos vía OCR (experimental). |
| detectar_y_encolar_alertas | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Detecta vencimientos próximos (F29 día 12, giros TGR), BHE atípicas, y las persiste en `alertas.json` del account para mostrar en UI / enviar por WhatsApp si está configurado. USAR CUANDO: ejecutar reglas de alertas + encolar para notificación al usuario. |
| listar_alertas_pendientes | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista alertas no leídas del account actual. |
| registrar_trabajador | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Registra un trabajador. Calcula liquidaciones automáticas con tablas AFP/Salud/AFC 2026. |
| listar_trabajadores | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista trabajadores activos. |
| liquidar_mes | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Calcula liquidaciones del mes con AFP, Salud, AFC, impuesto 2da. USAR CUANDO: liquidar IVA + PPM + retenciones del mes para alimentar el F29. |
| generar_lre | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera CSV del LRE para subir al portal Dirección del Trabajo. USAR CUANDO: generar Libro de Remuneraciones Electrónico (LRE). |
| generar_link_pago | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Genera un link de pago para enviar al cliente (WhatsApp/email). Requiere setear MERCADOPAGO_ACCESS_TOKEN en Fly secrets para MP real. Sin keys usa mock provider (link simulado). USAR CUANDO: generar link Khipu/Webpay para que el cliente pague una factura emitida. |
| listar_pagos_pendientes | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista links de pago pendientes + actualiza estado consultando provider. |
| registrar_activo_fijo | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Registra un activo fijo con depreciación automática. |
| listar_activos_fijos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista activos fijos con valor libro actualizado a la fecha. |
| depreciacion_mensual | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Calcula depreciación del mes + asiento contable sugerido. USAR CUANDO: calcular depreciación de activos fijos del mes. |
| registrar_producto | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Registra un producto/servicio en el inventario. |
| listar_productos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista productos del inventario. |
| ajustar_stock | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Suma o resta stock de un producto. |
| stock_critico | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Productos con stock <= stock_minimo. USAR CUANDO: productos con stock bajo el mínimo configurado. |
| registrar_sucursal | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=false] Registra una sucursal de la entidad. |
| listar_sucursales | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista sucursales registradas de la entidad. |
| comparar_con_peers | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Compara métricas de la entidad (margen bruto, ratio IVA, gasto operacional) con benchmarks anónimos del sector. Detecta sector por código de actividad SII (CIIU), devuelve por cada métrica si la entidad está mejor / en promedio / peor que sus peers. USAR CUANDO: comparar la entidad contra promedios sectoriales (margen, IVA débito/crédito, etc.). |
| detectar_obligaciones_legales | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza giros, DTEs, BHE, asientos para detectar obligaciones SII pendientes: DJs faltantes (1879/1887/1948/3325), Verificación FE, asociados que requieren DJ 1948, Certificado Residencia Tributaria. USAR CUANDO: detectar obligaciones formales pendientes (timbraje, IVA crédito perdido, etc.). |
| proyectar_impacto_iva | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Calcula cómo cambia el F29 del mes si agregás ventas/compras hipotéticas. Útil para 'si vendo $5M más este mes, ¿cuánto más pago?'. Considera régimen actual para PPM correcto. USAR CUANDO: proyectar saldo IVA del mes en curso. |
| consultar_regimen_actual | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Detecta el régimen tributario de la entidad (14A / 14D N°3 Pro Pyme General / 14D N°8 Transparente / 14B Renta Presunta / Profesional) desde el perfil capturado, y devuelve tasas IDPC, PPM y características. Útil al inicio para que el resto de las tools (RLI, IDPC, F29 simulador, término giro) usen los parámetros correctos de tu régimen. USAR CUANDO: saber régimen vigente sin consultar SII live (usa archivo). |
| f29_simulador | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Calcula F29 hipotético: IVA débito/crédito, PPM, total a pagar. Si pasás `entidad`, detecta el régimen automáticamente. Útil para 'qué pasaría si vendo X' o cierre rápido del mes antes de capturar el F29 oficial del SII. USAR CUANDO: simular escenarios F29 (qué pasa si vendo X más, compro Y, etc.). |
| convenios_pago_simulador | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Simula cuotas mensuales de un convenio TGR/SII por sistema francés. USAR CUANDO: simular cuotas de un convenio de pago TGR (N cuotas, intereses, etc.). |
| consultar_carpeta_tributaria | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Compendio del estado tributario: perfil + F22 + F29 últimos 6m + giros. Útil para due-diligence rápido sin tocar SII. USAR CUANDO: necesitas el PDF de la Carpeta Tributaria (todos los datos consolidados). |
| listar_resoluciones_sii | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista resoluciones del SII guardadas en el archivo histórico. USAR CUANDO: listar resoluciones SII guardadas en el archivo. |
| cobranza_administrativa_estado | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Devuelve giros vigentes + convenios activos. USAR CUANDO: verificar si la entidad está en cobranza administrativa (RAV/SISPA/RAF). |
| cesion_factoring_info | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] URL e instrucciones para ceder un DTE en factoring (sii.cl). USAR CUANDO: info sobre cesión de DTEs a empresas de factoring. |
| categorizar_dte_recibido_automatico | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Categoriza DTEs del mes en grupos (arriendo, telecom, energia, software, servicios_profesionales, logistica, alimentacion, otros) por heurísticas sobre razón social del emisor. USAR CUANDO: auto-clasificar DTEs recibidos por tipo de gasto para asientos contables. |
| consultar_certificado_residencia_tributaria | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Cómo solicitar Certificado de Residencia Tributaria (CDT). USAR CUANDO: el usuario necesita certificado para usar convenio doble tributación con país extranjero. |
| aviso_inicio_actividades_info | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] URL + checklist para presentar Aviso Inicio de Actividades (Art. 68 CT). USAR CUANDO: el usuario pregunta cómo iniciar actividades (info de procedimiento, no ejecuta). |
| modificar_actividad_economica_info | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] URL + consideraciones para modificar el giro de la entidad. USAR CUANDO: info para modificar giros / actividades. |
| consultar_devolucion_pendiente | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Lee F22 del AT y devuelve estado de la devolución (si la hay). Si hay devolución no cobrada, sugiere reclamarla con redactar_carta_a_sii(tipo='solicitud_devolucion'). USAR CUANDO: verificar si hay devoluciones de Renta o IVA pendientes de cobro. |
| simulador_termino_giro | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Proyecta IDPC final + deuda con TGR/SII + pasos para cerrar la empresa. Útil cuando un cliente está pensando en cerrar — le mostrás la cifra estimada antes de tomar la decisión. USAR CUANDO: simular impacto tributario de cerrar la empresa (IDPC final, devoluciones, FUT). |
| analizar_rcv_diferencias | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza RCV (Registro Compras y Ventas SII) vs DTEs locales. Detecta documentos en RCV sin DTE local y viceversa. Diferencias > 5 docs sugieren scraper desactualizado. USAR CUANDO: comparar 2 snapshots RCV (qué cambió: nuevos/anulados/modificados). |
| detectar_dte_recibido_no_facturado | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza DTEs recibidos del mes vs asientos contables y devuelve los documentos sin asiento — riesgo de IVA crédito perdido. USAR CUANDO: detectar DTEs recibidos que faltan en libro de compras. |
| chat_con_archivo | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] Devuelve contexto compacto del archivo de la entidad para que el LLM cliente (Claude/ChatGPT) responda preguntas tributarias. Incluye: perfil + últimos F29/F22 + giros + BHE recientes + análisis disponibles. La idea es que en una sola llamada tengas todo el contexto relevante para responder sin tener que llamar 8 tools distintas. USAR CUANDO: el usuario hace pregunta abierta sobre los documentos del archivo de la entidad. |
| redactar_carta_a_sii | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Redacta cartas formales al SII listas para imprimir y firmar. Templates disponibles: - condonacion_multa: para multa por F29/F22 fuera de plazo - prescripcion_deuda: alegar Art. 200 CT (3 años IVA, 6 años Renta) - reconsideracion_administrativa: recurso Art. 123 bis CT contra resolución - descargo_giro: impugnar un giro emitido (Art. 124 CT) - solicitud_carpeta_tributaria: pedir carpeta certificada - solicitud_devolucion: cobrar devolución pendiente Devuelve markdown con la carta + hint para revisar antes de firmar. USAR CUANDO: ayudar a redactar una carta o respuesta formal al SII. |
| proyectar_flujo_caja_mes | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Proyecta caja del mes usando histórico DTE + giros pendientes + F29 anterior. Devuelve {historico, promedio_historico, egresos_ciertos, proyeccion, alertas}. Ideal para anticipar tensión de caja antes de que ocurra. USAR CUANDO: proyectar flujo de caja del próximo mes (ingresos esperados - obligaciones). |
| auditoria_anomalias_iva | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza F29 (cód 538/519) vs DTEs emitidos/recibidos del mes y detecta discrepancias significativas (>1% o >$5K). Útil para encontrar: - Ventas declaradas en F29 sin DTE correspondiente - DTEs emitidos no incluidos en el F29 (riesgo sub-declaración) - Compras con IVA crédito tomado sin DTE recibido - DTEs recibidos sin IVA crédito (oportunidad de rectificación) - Folios DTE duplicados (bug del scraper o doble emisión) Devuelve la lista de anomalías ordenadas por severidad. USAR CUANDO: buscar anomalías específicas de IVA (cruces compras-ventas-F29). |
| cierre_mensual | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Workflow completo cierre mensual: genera asientos desde DTEs/BHE/F29, audita, calcula libros, calcula EE.RR. del mes y acumulado. Una sola llamada que orquesta lo equivalente a varias horas de un contador. Devuelve dashboard consolidado. USAR CUANDO: workflow de cierre: armar asientos + libros + validaciones para un mes. |
| generar_f22 | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Propuesta F22 (Renta Anual) para AT (anno+1). Devuelve los códigos del formulario (628 RLI, 643 IDPC, 36 PPM, 91/87 saldo) con la fuente de cálculo de cada uno para auditabilidad total. Args: anno: año comercial (2026 → propuesta AT 2027). USAR CUANDO: generar F22 (Renta) anual con todos los códigos. |
| calcular_rli | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Calcula la Renta Líquida Imponible del año (base IDPC en F22). Aplica los ajustes art. 33 LIR sobre el resultado contable: + Agregados (gastos no deducibles registrados) - Deducciones (ingresos exentos) Devuelve RLI, IDPC determinado al 25.5%, créditos (PPM + retenciones BHE), e IDPC neto a pagar. Cita Art. 31 (gastos), Art. 33 (ajustes), Art. 14 D LIR (régimen Pro Pyme). USAR CUANDO: el usuario quiere la Renta Líquida Imponible para un año (Art. 33 LIR — agregados + deducciones). |
| proyectar_idpc | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Proyecta el IDPC anual desde los meses ya cargados (proyección lineal). Args: entidad: slug o RUT. anno: año en curso. meses_corridos: cuántos meses tienen asientos cargados (1-12). Útil para planificar caja: "voy camino a pagar $X de IDPC en abril 2027". USAR CUANDO: proyectar IDPC anual basado en RLI YTD. |
| simular_escenario | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Simula impacto en RLI/IDPC de gastos hipotéticos. Args: entidad: slug o RUT. anno: año. escenarios: lista de gastos con keys: - fecha (YYYY-MM-DD) - monto (CLP) - deducible (bool, default true) - tipo (str, e.g. "activo_fijo", "honorario", "gasto_general") - descripcion (str) Devuelve delta RLI, delta IDPC, ahorro tributario. Ejemplo: "¿Qué pasa si compro $5M en notebooks en diciembre?" USAR CUANDO: el usuario quiere ver el impacto tributario de un gasto o ingreso hipotético antes de incurrirlo. |
| comparar_regimenes | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Compara régimen 14D Pro Pyme General vs 14D N°8 Transparencia. Args: entidad: slug o RUT. anno: año. valor_uta: valor UTA al cierre en CLP (default $75.000 aprox 2026). socios_distribucion: {"socio_x": 0.6, "socio_y": 0.4}. Default unipersonal. Devuelve carga total de cada régimen y recomendación. Limitaciones: usa tabla IUSC simplificada; no considera otros ingresos del socio ni timing de retiros. Útil como primera aproximación. USAR CUANDO: el usuario evalúa cambiar de régimen 14D N°3 a N°8 o viceversa (compara IDPC bajo cada régimen). |
| cierre_anual | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera el asiento de cierre que provisiona el IDPC del ejercicio. El asiento traslada el resultado del ejercicio a IDPC por pagar: Debe: 5.2.09 IDPC del ejercicio (gasto) Haber: 2.1.06 IDPC por pagar (pasivo) Sin este asiento el balance descuadra por el monto del IDPC. Con persistir=True se agrega al archivo de diciembre del año (idempotente — reemplaza cierre previo). USAR CUANDO: cierre del año tributario (RLI, IDPC, distribución utilidades). |
| perfil_dump | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Snapshot perfil tributario en vivo desde el SII (login + consulta + persiste). Lento (~30s — abre Chrome). Requiere clave SII configurada para la entidad. USAR CUANDO: necesitas refrescar el perfil tributario completo desde el SII (régimen, giros, domicilio, capital). |
| capturar_f29_periodo | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Sync F29 de un período desde SII y persiste al archivo. Útil al recién pagar/declarar un F29 para tener el snapshot oficial. USAR CUANDO: necesitas datos frescos del SII para un período (porque no hay capturado o cambió). |
| saneamiento_iniciar | Abre un expediente de saneamiento y detecta TODOS los hallazgos. Lee el archivo persistido (offline) y agrega findings deduplicados al expediente AT-{at}. Es la primera tool del flujo de saneamiento. Detecta: F22 retención + observaciones, DJ observadas/no-presentadas, F29 observados, giros vencidos, SISPAs pendientes, régimen mismatch. Idempotente: re-correr no duplica, solo refresca campos descriptivos. Próximo paso después: `saneamiento_diagnosticar` para enriquecer cada finding con causa/acción/cruces, o `dj_diagnosticar_rechazos` / `f29_observaciones` para profundizar findings específicos. Para datos frescos del SII, antes ejecutar `perfil_dump` + `capturar_f22_at`. |
| saneamiento_diagnosticar | Enriquece cada finding DETECTADO con causa, acción y reconciliación. Segundo paso del flujo de saneamiento, después de `saneamiento_iniciar`. Para cada finding ejecuta su diagnosticador específico: - F22_RETENCION → cruza con F22_OBSERVACION + GIRO_VENCIDO del expediente - F22_OBSERVACION → expande DJ implicadas (parsea F95) - DJ_OBSERVADA / DJ_NO_PRESENTADA → reconcilia con BHE/F29 propios - F29_OBSERVADO → cruza con RCV propio del mes - GIRO_VENCIDO → calcula prioridad y opciones (pago/convenio/compensación) Transiciona findings DETECTADO → DIAGNOSTICADO. Idempotente. |
| saneamiento_proponer_acciones | Tercer paso del flow. Para cada finding DIAGNOSTICADO genera propuestas concretas de acción (PROPUESTA) y transiciona los findings a PROPUESTA. Luego el agente puede listar y aprobar una a una. |
| saneamiento_listar_acciones | Lista las acciones del expediente (con estado, payload, preview). |
| saneamiento_aprobar_accion | Marca una acción PROPUESTA como APROBADA (y finding como AUTORIZADO). |
| saneamiento_ejecutar_accion | Ejecuta la acción aprobada llamando al tool MCP correspondiente. Por ahora el executor está stubbeado a no-op simulado — la integración real con los tools de escritura (anular_boleta_honorario, dj_subir_csv, sispa_crear_y_presentar, etc) se conecta en pasos posteriores. |
| saneamiento_cancelar_accion | Cancela una acción propuesta o aprobada. Si era la única del finding, devuelve el finding a DIAGNOSTICADO. |
| saneamiento_confirmar_accion | Marca acción EJECUTADA → CONFIRMADA; finding → CERRADO. Llamar después de re-sync con SII que muestra el cambio reconocido. |
| saneamiento_estado | Devuelve cifras agregadas + breakdown por estado + top críticos. Útil al inicio de cada sesión para ver el avance del saneamiento. |
| saneamiento_siguiente_paso | Recomienda LA acción concreta más alto-impacto a hacer ahora. Devuelve el `comando_sugerido` listo para copiar/pegar/ejecutar. |
| diagnosticar_browser | Smoke test del browser nodriver SIN tocar SII. Levanta Chrome + CDP + abre about:blank. Devuelve info estructurada de qué falló (binario, DISPLAY, proxy, stderr de Chrome) o el tiempo de arranque en ms si todo OK. Útil cuando otras tools live (capturar_f22_at, perfil_dump, etc) tiran "CDP no respondió" — ejecuta esta primero para aislar si el problema está en el browser o en el flujo SII. |
| capturar_f22_at | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Sync F22 (Renta anual) de un AT desde SII y persiste al archivo. Trae folio, remanente solicitado/devuelto, evento de tramitación y datos del contribuyente para el AT. Necesario para consultar_devolucion_pendiente. USAR CUANDO: necesitas detalle del F22 (Renta) de un AT: folio, remanente solicitado/devuelto, evento de tramitación. Requerido por consultar_devolucion_pendiente.. NO USAR CUANDO: ya hay F22 reciente del AT en el archivo (usa leer_f22). EJEMPLO: {"entidad":"spiralway","at":2026} |
| sispa_listar_materias | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Lista las ~120 materias del catálogo SISPA con value y label. Útil para descubrir el value correcto antes de crear una SISPA nueva. Por ejemplo: 35='Anulación de BHE', 169='Solicitud folios FE'. |
| sispa_crear_borrador | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=false] Crea un borrador SISPA con materia + descripción. Si presentar=False: queda como borrador (sin folio público hasta envío). Si presentar=True: tras guardar el borrador clickea 'Enviar Petición' y captura el folio público asignado por el SII. Validaciones: - descripcion <= 1024 caracteres - materia_value debe existir en el catálogo Pre-requisito: clave SII configurada. Para SISPAs de 'Anulación de BHE' usar entidad del emisor (no el receptor). Para presentar un borrador YA guardado en sesiones previas, usa sispa_presentar_borrador_pendiente. USAR CUANDO: crear borrador SISPA sin presentar todavía (para revisar después). |
| sispa_crear_y_presentar | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] Crea borrador SISPA + lo presenta formalmente + reutiliza docs en una sola pasada. Flujo descubierto via sniff 2026-05-10: 1. Llena materia + descripción y guarda borrador (ServicePeticion.agregarPeticion) 2. Click "Generar Petición" → ServicePeticion.generaPeticionAtravesBorrador (asigna folio público) 3. Click "Reutilizar" en docs obligatorios → updateCompletarAntecedentesInternet 4. Devuelve folio público asignado Si "Reutilizar" no es viable (doc no indexado en SII) usar la web para upload manual. El cliente registra todos los pasos en `steps` y, al fallar, dumpea los botones disponibles en `botones_disponibles_al_fallar` para diagnóstico. Pre-requisito: clave SII configurada para entidad. Para SISPA sobre empresa, autenticarse como representante legal (persona natural) — el SII detecta el contribuyente desde la sesión. USAR CUANDO: el usuario quiere presentar formalmente una petición administrativa (rectificar F29 vencido, anular giro, condonación). EJEMPLO: {"entidad":"spiralway","materia_value":"179","descripcion":"...","docs_reutilizar":["Formulario 29"]} |
| sispa_presentar_borrador_pendiente | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] Toma el primer borrador SISPA pendiente, lo presenta formalmente al SII y devuelve el folio público asignado. Navega a `?item=itemConsulta`, busca filas con opción 'Completar Borrador', abre el form precargado y clickea 'Enviar Petición'. Captura el folio público (11 dígitos) asignado. Útil cuando el borrador fue guardado en una sesión previa (web o sispa_crear_borrador con presentar=False). USAR CUANDO: presentar formalmente un borrador SISPA guardado previamente. |
| bhe_sync | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Re-captura BHE recibidas del período desde el SII. Usa los CGI legacy `TMBCOC_InformeMensualBheRec.cgi` para descargar el listado actualizado y persiste a `bhe/recibidas/{anno}/{mm}.json` mergeando con la data previa. Reporta cambios de estado (e.g. ObU → ANU) que es la información clave para saber si las anulaciones administrativas surtieron efecto. Idempotente. NUNCA pierde data: si una BHE desaparece del listado (típicamente porque se anuló), la mantiene marcada como "ANU_INFERIDO" para preservar trazabilidad. USAR CUANDO: refrescar listado BHE recibidas mensual + detectar ANU_INFERIDO (BHE que desaparecieron). |
| sispa_sync | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Re-captura todas las SISPAs activas + históricas desde el SII. Login + scrape de itemTareas + itemConsulta + persistencia en ArchivoEntidad (peticiones-sispa/{folio}/estado.json). Devuelve nuevas, cambios de estado, sin_cambios. Idempotente — re-correr no rompe data; si la captura nueva no detecta materia, conserva la previa. Útil cuando se sospecha que la data local está vieja o cuando se presentaron SISPAs nuevas que no están en archivo. USAR CUANDO: sincronizar listado SISPAs con el SII para detectar cambios de estado. |
| snapshot_entidad | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] USAR CUANDO el usuario hace una pregunta abierta sobre la entidad ('cómo está X?', 'qué pasa con Y?'). Devuelve en 1 call paralelo: perfil + F29 actual y anterior + giros vigentes + BHE emitidas y recibidas del mes + SISPAs + alertas heurísticas derivadas. NO USAR CUANDO necesitas un dato muy específico (un folio puntual, un detalle) — usa la tool individual correspondiente para eso. Reemplaza típicamente 5-7 calls secuenciales del LLM con 1. |
| agente_recomienda_hoy | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] USAR CUANDO el usuario pregunta 'qué tengo que hacer?', 'qué falta?', 'cuál es la prioridad?'. Aplica reglas determinísticas sobre el snapshot y devuelve lista de acciones priorizadas con tool sugerida + razón. Reglas activas: PPM08 → SISPA materia 179, F29 vencimiento próximo → revisar propuesta, giros vencidos → consultar convenio TGR, BHE recibidas pendientes → responder anulación, SISPAs pendientes acción. Reduce hallucination al consolidar reglas de negocio en código en lugar de dejarlas al criterio del LLM. |
| siimaster_capacidades | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] USAR CUANDO necesitas saber qué se puede hacer con esta entidad ahora mismo: tiene clave SII? cert? DAS aprobada? puede emitir DTE? puede crear SISPA? Cada capacidad lista bloqueos si está deshabilitada. Útil al inicio de una sesión para que el LLM no sugiera acciones bloqueadas (ej. emitir DTE sin certificado). |
| estado_tributario | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] Devuelve la historia tributaria completa: timeline de eventos + alertas accionables + resumen ejecutivo. Lee SOLO archivos locales (no toca SII en vivo). Reconstruye eventos desde F29 capturados, BHE recibidas, giros, SISPAs, DAS. Idempotente. Útil cuando un contador (humano o IA) necesita entender el caso de una entidad de un golpe: qué pasó, qué está pendiente, qué hacer. Reemplaza la necesidad de abrir 5+ archivos para reconstruir contexto. USAR CUANDO: necesitas timeline + alertas + resumen ejecutivo para entender el caso de un golpe (recupera contexto sin re-consultar SII). |
| f29_observaciones | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Consulta SII en vivo y devuelve observaciones del F29 ya presentado. Loguea al SII como la entidad y ejecuta los GWT-RPC del SPA sifmConsultaInternet para obtener los códigos de observación (PPM08, OBS_xxx, IVA_xxx, RET_xxx, etc.) con sus descripciones literales y código F29 afectado (e.g. el código 151). Pre-requisito: F29 del período debe estar capturado vía capturar_f29_periodo antes (necesita el `codigo` interno). Útil cuando: declaración aparece "Observada" o "Impugnada" en SII y el contador necesita saber qué corregir antes de rectificar. USAR CUANDO: necesitas saber si el SII tiene observaciones (PPM08, IVA, RET) sobre un F29 ya presentado. |
| enviar_sispa_borrador_live | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] ⚠ ESCRITURA SII. Envía un borrador SISPA "No enviada" formalmente. dry_run=True (default): solo previsualiza. dry_run=False: ENVÍA REAL. Requiere clave SII configurada para la entidad. USAR CUANDO: enviar (presentar) un borrador SISPA específico por su folio. |
| dj_anular | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, destructivo=true, idempotente=false] Anula una DJ presentada en djconsultarentaui. Útil cuando los datos originales ya no son válidos y rectificar a cero no es viable (SII rechaza CSV vacío con H017/H073/H1540/H2990). Anula = retira el folio del registro como si nunca se hubiera presentado. confirmar=False (default) verifica que el botón Anular existe (dry-run). confirmar=True ejecuta el clickeo + auto-acepta el modal. USAR CUANDO: anular una DJ ya presentada (queda nula, requiere presentar de nuevo después). |
| sispa_desistir | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] Desiste una SISPA — clickea 'Desistir' en el listado. Útil para retirar borradores 'No enviada' que ya no son necesarios (por ejemplo, SISPAs duplicadas o spam de anulación BHE que dejaste sin enviar). El link 'Desistir' está visible en la columna Opciones para SISPAs en estado borrador. Args: folio: identificador SISPA (ej. '77326345182'). confirmar: True ejecuta. False solo verifica que la SISPA exista y reporta su estado (dry-run). USAR CUANDO: el usuario quiere retirar una SISPA pendiente. |
| dj_rectificar_desde_bhe | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera el CSV de rectificación DJ leyendo BHE recibidas del archivo. Para DJ 1879: lee BHE recibidas año comercial (anno-1), filtra anuladas + folios excluidos, agrupa por RUT emisor (profesional), genera registros consolidados y produce el CSV vía dj_generar_csv. Si NO hay BHE legítimas, retorna mensaje sugiriendo CSV vacío vs anular. USAR CUANDO: calcular qué cambia en una DJ tras anulaciones BHE. |
| dj_generar_csv | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera un CSV listo para subir al importador DJ del SII. Formato: cp850 (MS-DOS), separador `;`, decimal `.`, RUT en 2 columnas. Persiste en archivo y retorna `path`. Soporta DJ 1879 (otras DJ pendientes). Args: registros: lista. Para DJ 1879 cada item tiene: {rut_receptor, monto_honorarios_42n2, monto_directores_48, meses: ['ENE','FEB',...], monto_isla_pascua, monto_3pct_prestamos, numero_certificado} USAR CUANDO: generar el CSV de una DJ desde datos del archivo (BHE+RCV+F29) para subirlo al SII. |
| dj_subir_csv | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] Sube el CSV al importador DJ del SII vía nodriver. Flow: hub perfilamientodjui → click 'Importador' → llena input file → click 'Validar' → captura mensajes. Con `confirmar=True` además clickea 'Enviar' final (RECTIFICA EN EL SII). Args: csv_path: si vacío, usa el último generado por `dj_generar_csv`. confirmar: True envía la rectificación al SII. Default False = solo valida. Lento (~60s). Requiere clave SII. USAR CUANDO: subir un CSV ya generado al portal de DJs. |
| dj_presentar_ceros | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] ⚠ ESCRITURA SII. Rectifica DJ a 0 (1 registro RUT propio, todo 0). Caso uso: cerrar observación SII donde no hubo movimiento real. Soporta DJ 1879 (honorarios) y 1948 (retiros/dividendos). `confirmar=False` (default) solo valida; `True` envía al SII. El CSV vacío rebota (H017/H073/H1540/H2990); 1 registro con todos los montos en 0 sí lo acepta el importador. Si igualmente rebota, hay que ir al form UI (TODO). USAR CUANDO: presentar DJs en cero (sin movimiento) cuando aplica. |
| dj_1879_presentar | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] ⚠ ESCRITURA SII. Presenta DJ 1879 (Honorarios Art. 42 N°2 / Directores Art. 48). DJ 1879 NO admite presentación 'sin movimientos'. Cada receptor debe tener: RUT ≠ declarante, ≥1 monto retenido > 0, ≥1 mes marcado. Args: receptores: [{rut_receptor, monto_honorarios_42n2, monto_directores_48, meses: ['ENE',...], monto_isla_pascua, monto_3pct_prestamos, numero_certificado}, ...]. confirmar: False (default) valida; True envía al SII. Si la entidad no pagó honorarios reales en el año, NO presentar la DJ. Si ya está presentada con datos inválidos, usar `dj_anular`. USAR CUANDO: presentar DJ 1879 (retención BHE 2da categoría) AT específico, opcionalmente desde CSV. |
| dj_1948_presentar_socios | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] ⚠ ESCRITURA SII. Presenta DJ 1948 informando socios sin movimientos. Caso para SA/SpA que no distribuyeron dividendos pero deben informar estructura societaria al 31/12. Args: socios: [{rut_socio, cantidad_acciones, certificado?}, ...]. Ejemplo ACME socio único: [{"rut_socio":"12345678-5","cantidad_acciones":100}] confirmar: False (default) valida; True envía al SII. Verificado aceptado por el SII (ACME AT 2025 con 100 acciones Juan, sin retiros, todos los montos 0). USAR CUANDO: presentar DJ 1948 (retiros y créditos socios). |
| dj_abrir_detalle | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Abre la pantalla de detalle de una DJ específica (clickea su fila). Equivale a clickear la DJ desde la lista. Devuelve URL final, texto del body y acciones disponibles (incluidos botones Rectificar/Anular si los hay). Útil después de `dj_diagnosticar_rechazos` para llegar al formulario. USAR CUANDO: necesitas el detalle live de una DJ específica. |
| dj_diagnosticar_rechazos | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Diagnóstico completo de DJ rechazadas/observadas en Operación Renta. Para un AT (e.g. 2026), lista TODAS las DJ presentadas con casos observados, descarga las observaciones formales del SII (códigos R71/R467/etc + glosa + orientación RECTIFICAR/ANULAR), extrae las filas específicas observadas y aplica heurística de patrones comunes. Persiste cada DJ al archivo `declaraciones-juradas/DJ-{n}/AT-{anno}/` con snapshots históricos. Lento (~60s — abre Chrome + varias llamadas API). Requiere clave SII. Returns: {ok, rut, anno, n_djs_observadas, djs: [{ dj, titulo, folio, estado, casos, observaciones_formales: [{codigo, descripcion, glosa, orientacion, nivel}], filas_observadas: [{seccion, sub, fila_idx, valores_por_header}], heuristicas: [...], # patrones detectados (ej. "meses ENE-DIC vacíos") accion_recomendada, # "RECTIFICAR" | "ANULAR" | etc. }]}. USAR CUANDO: el SII rechazó una DJ y necesitas saber qué observaciones (R08/R467/etc.) tiene. |
| rcv_sync | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Sync RCV (compras + ventas) de un período y reporta cambios desde el snapshot anterior. Detecta anulaciones de DTEs sin que te enteres por otro canal. Lento (~60s — abre Chrome y hace scraping). Persiste snapshot al archivo en `RCV/{compras|ventas}/{anno}/{mes:02d}/`. Retorna {ok, periodo, cambios: [...], resumenes: {COMPRA, VENTA}}. Cada cambio tiene: tipo, operacion, tipo_doc, detalle, valor_previo, valor_actual. USAR CUANDO: refrescar Registro de Compras y Ventas + detectar anulaciones. |
| consultar_sispa_detalle | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Trae el detalle/respuesta de una SISPA desde el SII y persiste al archivo. Para SISPAs Cerradas: navega itemTareas/itemConsulta, ubica la fila del folio y clickea el botón 'Ver Respuesta' (o equivalente) para extraer la resolución. Útil cuando necesitamos saber si una solicitud fue aprobada, rechazada, o requiere antecedentes adicionales. Lento (~30-40s — abre Chrome). Requiere clave SII de la entidad. USAR CUANDO: necesitas el detalle completo de una SISPA por folio (incluye antecedentes y respuesta del SII). |
| anular_boleta_honorario | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, destructivo=false, idempotente=false, entidad_tipo=persona] ⚠ ESCRITURA SII. Anula una BHE en plazo (≤30 días). dry_run=True (default): solo previsualiza. dry_run=False: ANULA REAL. Para BHE >30 días usar SISPA con F2117 en lugar de este tool. USAR CUANDO: el usuario pidió anular una BHE específica por folio (BHE emitidas por persona natural). NO USAR CUANDO: la entidad es una empresa (las empresas reciben BHE, no las emiten). |
| listar_anulaciones_bhe_pendientes | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Lista BHE recibidas con anulación pendiente de respuesta del receptor. Cuando un emisor pide anular una BHE donde la entidad figura como receptor, el SII queda esperando aceptar/rechazar. Esta tool muestra la cola actual. Usar antes de `responder_anulacion_bhe_recibida` para confirmar folios. Returns: {ok, cantidad, pendientes: [{folio, rut_emisor, nombre_emisor, fecha_emision, fecha_solicitud, monto_bruto, monto_liquido, motivo}, ...]} USAR CUANDO: listar BHE recibidas con anulación pendiente de respuesta (plazo 7 días). |
| responder_anulacion_bhe_recibida | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] ⚠ ESCRITURA SII. Acepta o rechaza la anulación de una BHE recibida. Args: entidad: slug receptor (ej "acme"). folio: número BHE. rut_emisor: RUT del emisor (ej "12345678-5"). aceptar: True → BHE queda nula (rectificar libros si estaba contabilizada). False → BHE sigue vigente. confirmar: False (default) devuelve preview con el body POST. True ejecuta. Notas: - SII puede mostrar "IMTCTS-IMTCTC-1-5" como error UI con el POST completado correctamente; el email del SII confirma la operación. - Tras aceptar: rectificar libros, F29 y DJ 1879 si correspondía. USAR CUANDO: el receptor de una BHE necesita aceptar o rechazar una solicitud de anulación enviada por el emisor. |
| conciliacion_giros | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Sync giros vigentes (deudas SII) de la entidad y persiste al archivo. Lento (~30s — abre Chrome). Para refrescar el dashboard de deudas. USAR CUANDO: conciliar giros TGR con asientos contables. |
| listar_giros_pendientes | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Lista detallada de giros pendientes con monto reliquidado al día. Para cada giro: folio, formulario, período, fecha vencimiento, deuda neta, monto actualizado (con reajuste + intereses + multas). Incluye link al portal de pago. |
| consultar_convenio_tgr | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Convenios TGR (Tesorería) — STUB no automatizado. Devuelve link al portal TGR + reglas tributarias relevantes (giros nuevos no entran al convenio vigente; cláusula "no contraer nuevas deudas"). El acceso real requiere ClaveÚnica del representante legal. USAR CUANDO: el usuario tiene giros vencidos y quiere saber si hay convenio TGR vigente o opciones de pago. |
| verificar_habilitacion_fe | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] Diagnóstico de capacidad de Facturación Electrónica. Cruza régimen tributario, segmento, giros, TIBVS, DAS y respuestas SISPA para devolver veredicto accionable: qué tipos DTE puede emitir hoy, qué le falta, y los pasos concretos para destrabar. Args: refrescar: True (default) llama TIBVS en vivo (~30s), False lee solo archivo. Returns: {ok, regimen_codigo, regimen_descripcion, segmento, actividades, documentos_timbrados, inscrito_mipyme, das_aprobada, puede_emitir: [33,34,...], bloqueos: [...], recomendaciones: [...]} USAR CUANDO: el usuario quiere saber si está habilitado para emitir Facturación Electrónica (DAS + actividades + MiPyme + régimen). |
| workflow_planner | [TAGS: tipo=meta, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera plan de acciones SII multi-paso para resolver un problema tributario. Útil cuando hay varias acciones encadenadas (anular boletas + rectificar F29 + presentar SISPA). Devuelve plan con dependencias entre pasos. USAR CUANDO: planificar un workflow complejo paso a paso (usa Claude API si está habilitado). |
| generar_pdf | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera un PDF de un libro o reporte contable. Args: entidad: slug o RUT. tipo: uno de: - "libro_diario" - "libro_mayor" (filtrable con `cuenta`, detalle con `detallado=True`) - "libro_ventas" / "libro_compras" / "libro_compras_ventas" (default ventas) - "balance_tributario" - "estado_resultado" (acumulado del año hasta el mes) - "balance_general" (a fecha de cierre del mes) anno, mes: período. cuenta: opcional, solo para libro_mayor (e.g. "1.1.02"). detallado: opcional, para libro_mayor incluir movimientos por cuenta. Devuelve {ok, path, size_bytes} — el path del PDF en `data/entidades/{slug}/contabilidad/reportes/`. USAR CUANDO: convertir markdown de análisis en PDF para enviar al cliente. |
| dte_emitir_boleta | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite Boleta Electrónica (DTE 39 afecta o 41 exenta). Para B2C anónimo (típico retail) usar receptor_rut='66666666-6'. Para boleta nominativa con detalle del cliente, pasar RUT real. USAR CUANDO: venta a consumidor final (boleta tipo 39 afecta o 41 exenta). |
| dte_emitir_factura_compra | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite Factura de Compra Electrónica (DTE 46) — autofacturación. Cuando un proveedor no entrega DTE pero necesitas el crédito IVA, el comprador emite una factura de compra en su nombre. USAR CUANDO: emitir factura de compra (tipo 46) — proveedor extranjero o sin facturación electrónica. |
| dte_emitir_liquidacion_factura | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite Liquidación-Factura (DTE 43) para corredores y comisionistas. Quien presta el servicio actúa como emisor; el mandante (cliente final) como receptor. Cada item del DTE = una operación liquidada. USAR CUANDO: emitir liquidación de factura (tipo 43) consignaciones. |
| dte_emitir_factura | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, requires_cert=false, idempotente=false] Emite una factura electrónica (tipo 33 afecta o 34 exenta). Args: entidad: slug o RUT del emisor (e.g. "acme" o "76543210-K"). receptor_rut: RUT del cliente. receptor_razon_social: nombre legal del cliente. items: lista de items, cada uno {nombre, cantidad, precio_unitario, exento?, descuento_porcentaje?, descuento_monto?, codigo?, unidad_medida?, descripcion_extra?}. receptor_giro/direccion/comuna: opcionales. fecha_emision: ISO YYYY-MM-DD; default hoy. referencia_oc_chilecompra: folio de OC ChileCompra (mercado público). referencia_oc_fecha: fecha de la OC (ISO). afecta_iva: True para 33, False para 34. confirmar: True envía al SII; False deja en TEMPORAL para revisar. Devuelve datos del DTE + `_resumen` legible. USAR CUANDO: el usuario quiere emitir una factura electrónica (tipo 33 afecta o 34 exenta). EJEMPLO: {"entidad":"spiralway","tipo":33,"emisor":{...},"receptor":{...},"items":[...]} |
| dte_emitir_guia_despacho | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite una Guía de Despacho Electrónica (DTE 52). Args: tipo_traslado: 1=venta(+IVA), 2=ventas por efectuar(sin IVA), 3=consignaciones, 4=entrega gratuita, 5=traslados internos, 6=otros traslados, 7=devolución, 8=traslado export, 9=venta export(+IVA). tipo_despacho: 1=sin despacho (cliente retira), 2=cuenta receptor, 3=cuenta emisor a domicilio, 4=cuenta emisor otro destino. direccion_origen/comuna_origen: de dónde sale la mercadería. direccion_destino/comuna_destino: a dónde va. rut_chofer/nombre_chofer/patente: opcionales (recomendado para autotransporte). Para guía de venta (tipo 1 ó 9): el SII grava IVA al emitir. Para guía de traslado (tipo 2-8): IVA queda en 0; se factura después. USAR CUANDO: amparar traslado de mercaderías (tipo 52). El tipo_traslado define si va con IVA. |
| dte_facturar_guias | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite una factura (33/34) que consolida 1+ Guías de Despacho previas. Caso típico: emitiste guías 52 con tipo_traslado=2 (ventas por efectuar) sin IVA, y ahora la factura grava el IVA y consolida. Args: folios_guias: folios de las Guías de Despacho a referenciar. fecha_guia: fecha ISO común de las guías. Si null, usa fecha_emision. USAR CUANDO: convertir guías de despacho previas en factura única. |
| dte_emitir_nota_credito | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite una Nota de Crédito (tipo 61) referenciando una factura. Args: motivo: "anula" / "corrige_texto" / "corrige_monto". factura_folio: folio de la factura original. factura_fecha: fecha de la factura (ISO). items: lo que se anula/corrige (formato igual al de facturas). USAR CUANDO: anular/corregir un DTE ya emitido (referencia obligatoria al doc original). |
| dte_consultar_estado | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Consulta el estado en el SII de un DTE emitido. Si el DTE estaba en ENVIADO_SII, esta consulta puede actualizarlo a ACEPTADO/RECHAZADO según lo que devuelva el SII. USAR CUANDO: necesitas saber si un DTE emitido fue aceptado por el SII (RECEPCIONOK / ACEPTADOOK). |
| dte_listar_emitidos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista DTEs emitidos por una entidad, opcionalmente filtrado. Args: tipo: 0 = todos, o un código DTE (33, 34, 39, 61, etc). desde/hasta: fechas ISO YYYY-MM-DD. USAR CUANDO: necesitas lista de DTEs emitidos por la entidad. |
| dte_descargar_pdf | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Genera el PDF de un DTE emitido y lo guarda en disco. Devuelve `{path, size_bytes}` — abre ese path para ver el PDF. USAR CUANDO: necesitas el PDF de un DTE específico para enviar al cliente o respaldo. |
| dte_validar_pre_emision | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Valida un DTE antes de emitir: detecta duplicados recientes y advierte si el RUT receptor no es conocido o tiene DV inválido. Útil cuando armas una factura desde lenguaje natural y quieres confirmar antes de mandarla. Si hay duplicado exacto en últimas 24h o el RUT tiene DV inválido, recomienda revisar antes de proceder. USAR CUANDO: validar datos de un DTE antes de emitirlo (prevenir errores comunes). |
| dte_listar_plantillas | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista plantillas DTE recurrentes guardadas para una entidad. Las plantillas son útiles para clientes recurrentes: hosting mensual, suscripciones, retainers. Una plantilla guarda receptor + items para emitir con un click. USAR CUANDO: el usuario tiene plantillas de DTE guardadas y quiere reutilizarlas. |
| dte_emitir_desde_plantilla | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=true, idempotente=false] Emite un DTE usando una plantilla guardada. Si pasas `sobreescribir_items`, reemplaza los items de la plantilla (útil cuando la factura mensual de hosting este mes lleva un item extra). Modo `confirmar=False` deja en TEMPORAL para revisar. USAR CUANDO: el usuario quiere emitir reusando una plantilla guardada para no escribir todos los datos. |
| dte_listar_recibidos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista DTEs que la entidad recibió de proveedores (donde es receptor). Útil para preguntas como "¿qué facturas recibí este mes?" o "¿cuál es mi proveedor más caro?". Si `solo_pendientes_aceptacion=True`, filtra los que faltan aceptar comercialmente (Ley 19.983, plazo 8 días). USAR CUANDO: necesitas DTEs recibidos (compras) para conciliar. |
| dte_aceptacion_comercial | [TAGS: tipo=escritura, requires_browser=true, requires_clave_sii=true, idempotente=false] Marca aceptación o rechazo comercial (Ley 19.983) de un DTE recibido. Si `aceptado=False`, el motivo es obligatorio (ej: "mercadería no recibida", "monto no corresponde"). Plazo legal: 8 días corridos. USAR CUANDO: aceptar/rechazar comercialmente un DTE recibido (Ley 19.983 — plazo 8 días). |
| entidad_status_dte | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Diagnóstico: ¿qué falta para que una entidad emita DTEs reales? Revisa cert digital cargado, CAFs disponibles, config emisor, ambiente. Devuelve checklist + sugerencia de ir a /onboarding/dte si hay pasos pendientes. USAR CUANDO: saber qué tan listo está el setup DTE (cert, DAS, régimen, CAF disponibles). |
| dte_resumen_mes | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Resumen ejecutivo de un mes: ventas, IVA débito/crédito, PPM, retenciones, total a pagar F29. Útil para preguntas como "¿cómo cerró el mes pasado?" o "¿cuánto debo pagar este F29?". Usa cálculos de F29 sin generar la propuesta formal — más rápido y barato en tokens. USAR CUANDO: vista consolidada de DTEs emitidos+recibidos del mes. |
| dte_refresh_estados | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Re-consulta el SII por todos los DTEs en ENVIADO_SII de una entidad. Si el SII ya los procesó, los pasa a ACEPTADO/RECHAZADO en el storage. Útil cuando un track_id está colgado mucho rato. USAR CUANDO: actualizar estados de DTEs emitidos pendientes (RECEPCIONOK → ACEPTADOOK). |
| dte_chequear_folios | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Chequea folios disponibles para un tipo de DTE. Si quedan menos del threshold (default 10%), recomienda solicitar nuevos folios en sii.cl. Útil para alertas proactivas a fin de mes. USAR CUANDO: verificar disponibilidad de folios CAF (queda poco?). |
| dte_buscar | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Busca DTEs emitidos por receptor, folio, monto o fecha. `query` puede ser: - Folio numérico ("187") - RUT con o sin puntos ("60.803.000-K", "60803000-K") - Parte de razón social ("municipalidad") - Fecha YYYY-MM-DD - Monto exacto ("297500") Útil para preguntas naturales: "¿cuándo le facturé a la Muni?" USAR CUANDO: buscar un DTE por folio, RUT receptor, fecha o monto. |
| proximos_vencimientos | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Próximos vencimientos tributarios para una entidad. Cubre F29 mensual, F22 anual, DJ 1879 (honorarios). Ordenado por días restantes para que el usuario pueda priorizar. USAR CUANDO: el usuario pregunta por fechas críticas próximas (F29, F22, DJs, giros). |
| f29_analisis | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Analiza el F29 de un mes con cruces + anomalías para revisión LLM. Genera la propuesta numérica del F29 (códigos 502/538/519/91/62/89...), la cruza contra DTEs emitidos, DTEs recibidos, BHE retenidas y patrones históricos. Devuelve `{propuesta, cruces, anomalias, semaforo, resumen_para_llm}` — datos estructurados para que tú (Claude) generes un análisis narrativo en español chileno. **Tu trabajo después de llamar este tool**: 1. Si el semáforo es ROJO → recomendar NO presentar y describir qué corregir (cruces graves, BHE no declaradas, etc). 2. Si es AMARILLO → listar puntos a verificar antes de presentar. 3. Si es VERDE → confirmar que cuadra y proponer presentar tras aprobación humana. No omitas las anomalías "leve" — nombrarlas brevemente. Cita los códigos F29 por su número (538, 519, 91, etc.) cuando hables. Args: entidad: slug o RUT (e.g. "acme"). anno, mes: período tributario. regimen: por ahora solo "14D_propyme" calcula PPM auto (0,25%). remanente_anterior: crédito IVA arrastrado del mes anterior (CLP). USAR CUANDO: analizar diferencias entre F29 capturados (mes vs mes). |
| f29_propuesta | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=true, idempotente=true] Solo la propuesta numérica F29 (sin cruces ni anomalías). Útil cuando ya analizaste con `f29_analisis` y quieres mostrar solo los códigos para llenar el formulario. USAR CUANDO: necesitas la propuesta del SII para un F29 (auto calcula desde RCV+BHE). NO USAR CUANDO: el F29 ya está presentado — usa leer_f29. |
| dte_estado_certificado | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Devuelve info del cert cargado: subject, vigencia, días para vencer, proveedor. NO expone la pass ni la llave privada. Útil para diagnósticos previos a emisión o alertas de vencimiento próximo. USAR CUANDO: verificar si el certificado .pfx está cargado y vigente (no expirado). |
| dte_borrar_certificado | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, destructivo=true, idempotente=false] Elimina el .pfx local + pass cifrada del cred_store. Idempotente. Útil cuando se rota el certificado o se desactiva una entidad. NO afecta la centralización en el SII (esa hay que removerla por separado). USAR CUANDO: el certificado expiró o cambió y hay que reemplazarlo. |
| dte_centralizar_certificado_sii | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=false] Sube el .pfx al SII vía `uploadCertDigitalInternet` para firma server-side. SCAFFOLD: el upload multipart al SII aún no está implementado (pendiente sniff). Hoy esta tool valida pre-requisitos y devuelve instrucciones para el flujo manual. Cuando esté implementado: cargará el cert + pass del storage, abrirá sesión SII como titular del cert, hará multipart POST a uploadCertDigitalInternet, y devolverá ok/error según respuesta del SII. USAR CUANDO: subir el certificado .pfx al SII para que firme DTEs server-side (vía MIPYME). |
| dte_diagnosticar_emisor | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Cruza régimen + segmento + estado del cert para recomendar emisor y listar bloqueos. Útil antes de intentar emitir: te dice si la entidad está lista, qué backend (MIPYME / SII Nativo) le corresponde, y qué falta destrabar. USAR CUANDO: saber qué emisor (MIPYME / SiiNativo) se va a usar y qué falta. |
| siguientes_tools_sugeridas | USAR CUANDO acabás de ejecutar una tool y querés saber qué hacer después. Devuelve top-N tools sugeridas con razón por la que tiene sentido en el flujo. Ejemplo: tras `leer_f29` sugerimos `f29_observaciones` (verificar si SII observó) y `f29_propuesta` (comparar con la propuesta auto). |
| perfilamiento_dj_api | USAR CUANDO necesitas saber qué régimen, segmento y DJs aplican al contribuyente para un AT, vía API REST directa. Llama `perfilamientodjui` (SPA del SII) sin DOM scraping. Devuelve: - atributos: régimen (14A/14D-N°3/14D-N°8/etc.), segmento, giros - djs_aplicables: DJs específicas según régimen - djs_comunes: DJs comunes (renta + otros) - djs_otras: DJs adicionales (1879, 1948, 1887) Más rápido que perfil_dump (no requiere DOM scraping pesado). |
| dj_panorama_api | USAR CUANDO necesitas saber qué DJs aplican al AT y el estado de cada una sin abrir el SPA. Llama API REST djconsulta directamente. Devuelve listado de DJs anuales con keys (necesarias para resumen/ detalle) + datos del contribuyente. Mucho más rápido que el scraper. |
| dj_preview | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] USAR CUANDO el usuario quiere ver QUÉ tendría que declarar este AT antes de generar el CSV o presentar. Genera el conjunto de registros desde data del archivo (BHE, F29, LRE, perfil) + valida cruzado vs F29 anual + devuelve resumen + warnings. NO presenta — solo preview. Para presentar usar dj_generar_csv + dj_subir_csv (o dj_1879_presentar / dj_1948_presentar_socios). DJs soportadas: - 1879: honorarios percibidos (persona natural emisora de BHE) - 1887: sueldos pagados a trabajadores (requiere LRE) - 1948: retiros + créditos socios SpA (devuelve plantilla) - 3325: honorarios pagados (BHE recibidas anuales) |
| rcv_detalle_dte | USAR CUANDO necesitas el detalle completo de un DTE específico ya indexado en el RCV (ej. para conciliación o respuesta a consulta puntual del cliente sobre un folio). Pre-requisito: tener `dhdr_codigo` y `det_codigo` que se obtienen de una llamada previa a `getDetalleCompra/Venta` para el período. NO USAR CUANDO necesitas el detalle de un DTE NUEVO recién emitido — esos no están indexados todavía. Para eso usa `dte_consultar_estado`. |
| rcv_resumen_api | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, idempotente=true] USAR CUANDO necesitas el resumen RCV (compras o ventas) sin depender del SPA scraper. Llama directamente facadeService.getResumen via fetch desde browser autenticado. Soporta operacion='VENTA' confiablemente (a diferencia de rcv_sync que tenía el problema del guard ui-router en el SPA). Devuelve filas tipadas con código DTE, cantidad, neto, IVA, total. |
| buscar_en_archivo | USAR CUANDO el usuario pregunta '¿en qué archivo dice X?' o necesita encontrar información puntual sin saber dónde está. Recorre todos los archivos `.md`, `.json`, `.txt` del archivo de la entidad y devuelve líneas que matchean `query` con preview + path. Útil para: encontrar un folio, buscar un nombre de cliente, ubicar el análisis donde se discutió X tema, etc. |
| exportar_archivo_entidad | USAR CUANDO el usuario quiere backup/export del archivo de la entidad para migración, auditoría o soporte. Devuelve metadata + manifest del zip generado (no devuelve los bytes en el response MCP — usar el endpoint REST `POST /api/v1/archivo/export/{entidad}` para descargar el binario). El zip incluye `_manifest.json` con sha256 de cada archivo para validación al restaurar. |
| playbook_listar | USAR CUANDO el usuario pregunta por workflows pre-armados o flujos completos (rectificar F29, emitir factura end-to-end, cierre mensual, anular BHE). Cada playbook orquesta múltiples tools en orden con manejo de errores y dependencias. |
| playbook_ejecutar | Ejecuta un playbook paso a paso. Por default pausa antes del primer paso de escritura para permitir confirmación humana. USAR CUANDO el usuario pide tareas compuestas que reconoces como playbook ('rectificar F29 con SISPA', 'emitir factura end-to-end', 'cierre mensual'). Reduce orchestration que tendría que hacer el LLM. Pattern de uso: 1. dry_run=True para preview 2. dry_run=False, confirmar_escritura=False para ejecutar lecturas + pausar antes de escritura 3. dry_run=False, confirmar_escritura=True para ejecutar todo |
| fce_exterior_preview | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Arma una Factura de Compra Electrónica tipo 46 contra un proveedor digital extranjero, sin emitir todavía. Convierte el monto USD a CLP usando el dólar observado del día del cargo (Banco Central). Calcula neto, IVA 19% (cambio de sujeto, Art. 11 letra e DL 825) y total. USAR CUANDO el usuario pagó un SaaS extranjero (Anthropic, AWS, OpenAI, etc.) y quiere recuperar el IVA emitiendo Factura de Compra. Devuelve preview con warnings — no emite hasta que esté el sniff del flujo MIPYME para tipo 46. El proveedor se resuelve contra el catálogo interno: si no está, se usa RUT genérico 55.555.555-5. |
| fce_exterior_mes_preview | [TAGS: tipo=analisis, requires_browser=false, requires_clave_sii=false, idempotente=true] Procesa un batch de cargos del exterior y devuelve N previews + totales. USAR CUANDO el usuario tiene una cartola bancaria o estado de cuenta de tarjeta con varios cargos a SaaS extranjeros del mismo mes y quiere emitir todas las FCE 46 de una vez. Devuelve: previews individuales, totales agregados (neto/IVA/total CLP), y lista de cargos fallidos con el motivo (ej. proveedor sin catálogo, fecha sin TC publicado). |
| fce_exterior_guardar_borrador | [TAGS: tipo=live_browser, requires_browser=true, requires_clave_sii=true, requires_cert=true, idempotente=false] Submitea el form FCE 46 al portal MIPYME como BORRADOR (no emite). Útil para validar el form contra el SII antes de emitir definitivo. El borrador queda guardado en "Administración de Documentos" del portal MIPYME y se puede revisar/eliminar manualmente. Pre-requisitos: cert digital centralizado en SII, sesión MIPYME activa (rep legal personal identificado contribuyente empresa), proveedor con RUT del padrón SII (no genérico 55.555.555-5). USAR CUANDO el usuario quiere validar el form de FCE 46 contra el SII sin emitir todavía. Buen paso intermedio antes del emitir real. |
| fce_exterior_listar_proveedores | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Lista los proveedores digitales del catálogo interno con su RUT asignado (o RUT genérico si aún no se verificó contra el padrón SII). USAR CUANDO el usuario quiere saber qué proveedores reconoce el sistema o necesita verificar el RUT que se usará al emitir una FCE 46. |
| fce_exterior_desde_cartola | Cierra el loop end-to-end de FCE-IVA exterior desde una cartola: 1. Parsea el CSV de la tarjeta de crédito con el perfil del banco indicado y detecta cargos en USD a proveedores SaaS extranjeros conocidos (Anthropic, OpenAI, AWS, Microsoft, etc.). 2. Convierte cada cargo USD → CLP con dólar observado del día del cargo (Banco Central), genera previews FCE 46 (Factura de Compra Electrónica) con neto/IVA/total. 3. Persiste los previews en `data/entidades/.../{rut}/FCE-exterior/{anno}/{anno-mm}.json` para que los siguientes pasos (asientos contables, F29) los reconozcan como confirmados. USAR CUANDO el usuario tiene una cartola/estado de cuenta del mes y quiere generar todas las FCE 46 de una pasada — workflow típico: bajar CSV del portal del banco → llamar este tool → revisar previews → cuando el sniff MIPYME tipo 46 esté listo, emitir cada uno. Devuelve: resultado de parseo (n cargos detectados, fallidos), previews generados con sus totales, y path donde quedaron persistidos. |
| iecv_preview | Arma el XML `LibroCompraVenta` (IECV) sin firmar ni enviar al SII. Lee los DTEs emitidos (VENTA) o recibidos (COMPRA) persistidos en el archivo de la entidad para el mes pedido, los normaliza, calcula totales por TpoDoc y devuelve el XML completo más un resumen ejecutivo (n_documentos, totales globales) y warnings de sanidad (ratio IVA/Neto fuera de rango, archivo vacío, etc.). USAR CUANDO el contador quiere revisar el libro antes de firmar y subir al SII. Es el paso intermedio entre "tengo los DTEs" y "envío formal". Si todo cuadra, firmar con el cert digital y subir. |
| iecv_enviar | Sube un EnvioLibro IECV firmado al SII vía `/cgi_dte/UPL/DTEUpload`. Reutiliza la misma infraestructura que el envío de DTEs — mismo endpoint, multipart y autenticación por TOKEN cookie. El SII discrimina por el root tag del XML. Pre-requisitos: 1. XML del libro YA GENERADO con `iecv_preview` y FIRMADO con XMLDSIG (la infra de firma está en `dte/sii_native/firma_xmldsig`). 2. Token SII fresco vía `sii_ws_auth.autenticar()` con el cert digital del firmante. 3. Para producción: certificación previa exitosa en maullin. USAR CUANDO ya validaste el XML con `iecv_preview`, firmaste con cert digital, obtuviste el token y querés subir formalmente. PRIMERO probar en 'maullin' (certificación) antes de tocar 'palena' (producción). Devuelve `trackid` para consultar estado con `QueryEstUp.jws` (tool pendiente). |
| boleta_enviar | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, destructivo=true, idempotente=false] Sube un archivo XML con boletas electrónicas al SII vía API REST. El XML debe estar previamente firmado siguiendo Schema Boleta 720. Devuelve `trackid` para consultar el estado del envío. Default `ambiente=certificacion` para evitar enviar boletas reales por error. Para producción usar `ambiente=produccion`. USAR CUANDO: subir XML firmado con boletas electrónicas (tipo 39 o 41) al SII. Devuelve trackid para luego consultar estado. NO USAR CUANDO: el usuario quiere emitir UNA boleta interactiva (eso es UI/frontend) o si no tiene el XML armado. |
| boleta_consultar_envio | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=false, idempotente=true] Consulta el estado de un envío de boletas por su trackid. Devuelve estado del envío (REC/EPR/CRT/etc) + estadísticas (informados/aceptados/rechazados/reparos por tipo). USAR CUANDO: saber estado de un envío de boletas (REC/EPR/RCH/etc) por su trackid + ver estadísticas. |
| boleta_consultar_estado | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=false, idempotente=true] Estado de una boleta puntual: DOK/DNK/FAU/FNA/FAN/EMP/TMD/TMC/etc. USAR CUANDO: consultar estado puntual de una boleta por (tipo, folio, receptor, monto, fecha) — devuelve DOK/DNK/FAU/etc. |
| boleta_catalogo | [TAGS: tipo=lectura, requires_browser=false, requires_clave_sii=false, idempotente=true] Devuelve los códigos+glosas oficiales del SII para mapear en UI. No requiere autenticación — es info pública. USAR CUANDO: mapear códigos SII a glosas oficiales (tipo, estado, nivel error, sección documento). Útil para enriquecer UI sin hardcodear. |
| dte_estado_avanzado | [TAGS: tipo=live, requires_browser=false, requires_clave_sii=false, idempotente=true] Consulta AVANZADA de estado DTE (QueryEstDteAv). Devuelve más detalle que la consulta normal: trackid asociado al envío + flag RECIBIDO separado del ESTADO. Requiere `firma_dte`. USAR CUANDO: necesitas más detalle que la consulta normal: trackid del envío + flag RECIBIDO separado del ESTADO. Requiere FirmaDte (SignatureValue del XML). NO USAR CUANDO: no tienes el SignatureValue del DTE — usar dte_consultar_estado normal. |
| dte_solicitar_reenvio_correo | [TAGS: tipo=escritura, requires_browser=false, requires_clave_sii=false, idempotente=true] Pide al SII reenviar el correo de validación de un envío DTE. Útil cuando un receptor reclama no haber recibido la factura. El correo va al email del emisor registrado en el SII. USAR CUANDO: un receptor reclama no haber recibido la factura por email — pide al SII reenviar el correo de validación al emisor para diagnosticar. |
纠错与举报(发现条目失效、署名有误或涉及侵权?)
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。