e-Boleta Chile

Changelog

Historial de actualizaciones de e-Boleta Chile. La app recibe mantenimiento y mejoras continuas.

3

Emisores

10

Versiones

Jul 2026

Última actualización

✨ Nueva función 🐛 Corrección 🔬 Investigación técnica ⚠️ Limitaciones 📁 Archivos modificados

Facturas 33 y Notas de Crédito 61 en flujo managed (SII Direct)

Emisión desde administración y autoservicio, con reserva atómica de folios, idempotencia, persistencia transaccional y PDF local. Anulación total mediante Nota de Crédito 61 (parciales pendientes).

Modo demo en el onboarding managed

Alternativa que no solicita certificado, contraseña, API key ni cuenta SII. Documentos demo con tags DEMO-BO-*, DEMO-NC-* y DEMO-FA-*, sin contacto con el SII, sin consumir plan ni enviar correos. Permite completar la revisión de Shopify de principio a fin.

Buscador por número visible de orden

Busca por 33654, #33654 o n33654. Para documentos antiguos consulta Shopify. Pantalla "No se encontraron documentos" separada de tienda sin documentos, debounce de escritura y botón X siempre funcional.

Avisos de consumo desde formularios públicos

Las boletas generadas por enlace o formulario público recuperan la sesión permanente de la tienda y participan en los avisos de consumo aunque el administrador no esté conectado. Si no se recupera la sesión, la emisión no se bloquea.

Asistente paso a paso para acciones manuales en el SII

Muestra nombre y RUT de la empresa, RUT del certificado, los cinco permisos requeridos, enlace a guía oficial y qué enviar al representante. Solo se reanuda tras acciones válidas, sin botón genérico de reintento.

Compatibilidad con certificados PFX

Lectura ampliada para reconocer ambas formas de almacenar el RUT (estructura estándar y alternativa). Un certificado válido ya no se rechaza por formato del proveedor.

Plataforma de certificación SII automatizada (v4)

Preflight de solo lectura (certificado, cinco permisos, receptores), execution intents, operation locks por ruta/tamaño/SHA-256, ledgers durables, claims atómicos y máximo un POST irreversible por operación.

QR en ticket POS desplegado

El ticket POS imprime un código QR (PNG 260×260 en contenedor 360px) para flujo managed y legacy: el cliente lo escanea y accede a su boleta electrónica sin pedir el correo. Desplegado en producción y validado en impresión física (ago 2026).

Catálogo de planes rediseñado desplegado

Nuevo catálogo (Gratis 100 docs / Básico USD 12,99 / Pro USD 24,99 / Retail USD 39,99 / Pro ECP privado) con capacidades reforzadas en servidor. Desplegado en producción (ago 2026).

Mantención de Usuarios SII accionable

Los errores técnicos del portal SII se convierten en instrucciones claras (requires_action) en lugar de mensajes poco accionables.

ACTECO obligatorio y consulta STC robusta

ACTECO es obligatorio al guardar configuración managed. Fallback nativo con TLS 1.2 cuando la consulta STC falla por errores TLS/OpenSSL desde Node.

Desafiliación del sistema gratuito SII detectada

Detección del caso (código 890 / texto SII) con banners accionables en inicio, configuración y generación manual. Solo exige desafiliación si no existe fecha de desautorización.

Reparación de CAF con razón social corrupta

Folios rechazados por CAF con razón social mal codificada se repararon localmente y se reemitieron aceptados, sin descargar CAF nuevo.

Cierre de sesiones SII explícito

Scripts y runtime cierran sesión explícitamente (autTermino.cgi) al terminar, reduciendo el bloqueo por máximo de sesiones autenticadas. Nuevo mensaje claro para ese caso.

Error 404 en "Guía" corregido

Nueva ruta /app/guia con resumen del contenido y botón que abre la documentación completa en pestaña externa.

Billing de Shopify con errores claros

Diferenciación de errores HTTP, GraphQL, red y respuestas vacías. Mensaje seguro al cliente con identificador de seguimiento; detalle técnico solo en logs.

Reconciliación de suscripciones con Shopify

Corrección de suscripciones marcadas vencidas en DB con suscripción ACTIVE vigente en Shopify (caso JJ GLOBAL con 103.951 boletas históricas). Rechazo de webhooks antiguos y sincronización automática.

Botón WhatsApp en Shopify Mobile

Usa el área segura de Shopify (calc(2.5rem + var(--shopify-safe-area-inset-bottom))) y ya no queda tapado por la barra inferior en mobile.

Devoluciones duplicadas de Shopify identificadas

Detección de devoluciones que Shopify reporta dos veces (productos + movimiento de dinero) para no emitir notas de crédito duplicadas.

Auditoría de emisión y suscripciones

168 fallas confirmadas y 103 sin confirmación; 95 órdenes sin DTE en ECP/La Pausa por límite de plan. Auditoría de 215 intentos de notas de crédito Yeppo: 201 correctos, 14 fallidos, sin duplicados.

Diagnóstico Falabella–AnyMarket (22 casos)

Las 18 boletas sí fueron emitidas; el fallo ocurrió al adjuntar el PDF en AnyMarket (limitación de API para órdenes concluidas). Expediente de evidencia preparado para soporte.

Trigger ORDERS_CREATE con estado real de orden

El flujo ahora consulta el estado actualizado de la orden en Shopify antes de decidir si emite boleta, en lugar de depender solo del payload inicial del webhook. Elimina falsos negativos causados por notas incompletas o datos aún no disponibles al momento del evento.

Candidatos de búsqueda más robustos

Se construyen candidatos desde la nota completa, sus líneas individuales y valores de customAttributes. El payload original actúa como fallback cuando no es posible refrescar la orden en vivo.

Modo simple y modo regex para trigger por nota

Dos modos de operación: búsqueda simple (texto fijo) y búsqueda avanzada por regex para casos complejos. Simplifica la configuración para usuarios no técnicos.

Nuevos campos de configuración: triggerNotePattern / triggerNoteSearchMode

Se extendió la configuración de tienda con los nuevos campos. El campo legacy triggerNoteRegex se mantiene temporalmente para compatibilidad.

UI de configuración actualizada con diagnóstico mejorado

La pantalla incorpora selector de modo, validaciones específicas y mensajes de ayuda. Los logs registran origen de datos evaluados, cantidad de candidatos y contexto del match.

API Fase 3: POST /v1/documents/factura y /v1/documents/nota-credito

Nuevos endpoints públicos para emitir facturas y notas de crédito. Compatibles con los tres proveedores (Haulmer, Simple API, BSale) sin ruptura de compatibilidad con endpoints previos.

Nota de crédito referenciada por document_id interno

La nota de crédito debe referenciarse por el document_id del API. El proveedor se deriva del documento origen, que debe estar en estado "emitido" y pertenecer al mismo tenant.

Trazabilidad de anulación entre documentos

Al emitir una nota de crédito, el documento origen pasa a estado "anulado" y la respuesta incluye documento_referencia. Mejora auditoría y consistencia del flujo.

Separación request_id / document id público

Se separaron el request_id (trazabilidad de respuesta) del document id público persistido (identificador estable del recurso). Elimina colisión de identificadores entre reinicios.

app/utils/simpleapi.server.ts

Lógica de emisión Simple API actualizada.

app/utils/dte-simpleapi.server.ts

Flujo DTE Simple API refactorizado.

app/routes/app.dtes.tsx

Listado de documentos con nuevo estado SII.

prisma/schema.prisma

Nuevos campos de trazabilidad y configuración.

Comentarios y preguntas

¿Tienes preguntas sobre alguna versión? Déjalas aquí.