Changelog
Historial de actualizaciones de e-Boleta Chile. La app recibe mantenimiento y mejoras continuas.
3
Emisores
8
Versiones
Abr 2026
Última actualización
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.
Lookup automático de resolución SII por RUT
El wizard consulta automáticamente el endpoint del SII y parsea la respuesta para obtener N° Resolución y Fecha Resolución. Los datos se persisten si la consulta fue exitosa.
Fallback controlado a configuración gestionada
Si el lookup automático falla, se habilita acceso a configuración manual como alternativa. Al guardar correctamente, el flag de fallback se limpia.
Clasificación de errores del SII
Se diferencia entre: not_found (contribuyente no autorizado), network (fallo de red o timeout) y parse (cambio en el formato de respuesta del SII). El wizard muestra un banner con CTA según el tipo de fallo.
Normalización automática de fecha
La fecha obtenida del SII en formato DD-MM-YYYY se normaliza automáticamente a YYYY-MM-DD antes de persistirse.
Dependencia del formato de respuesta del SII
El parser depende del formato actual de respuesta del SII. Si cambia, el parseo falla — se mitiga con clasificación de error y fallback manual.
Ambiente de certificación pendiente validación funcional
Se recomienda prueba adicional en ambiente de certificación del SII para confirmar comportamiento completo.
Ciclo completo de emisión Simple API
5 pasos implementados: (1) generación del DTE, (2) construcción del sobre, (3) envío al SII, (4) captura del TrackID, (5) consulta del estado del envío.
Trazabilidad tributaria por documento
Cada documento almacena: TrackID, estado SII, mensaje de respuesta, fecha de envío, fecha de última consulta y sobre XML asociado.
Validación antes de operaciones derivadas
Se bloquean conversiones, anulaciones, notas de crédito y refunds si el documento base aún no está aceptado por el SII.
Estado SII visible en interfaz
El estado tributario aparece en el listado de documentos, el detalle y el portal público. Se puede actualizar manualmente cuando existe TrackID.
Validación funcional con SII real
La base técnica está implementada. Falta validación en ambiente real o de certificación del SII con documentos reales.
MVP API Intermediaria Multi-Proveedor
Servicio backend independiente para emitir boletas con una sola API frente a múltiples proveedores (Haulmer, Simple API, BSale). Endpoint público POST /v1/documents/boleta con autenticación por API key, control de duplicados e idempotencia.
Seguridad base del API
Hash SHA-256 para API keys, cifrado AES-256-GCM para secretos de proveedores y scope dte:write.
Configuración AnyMarket Beta
La sección "Envío de boletas a terceros" aparece solo en tiendas con AnyMarket beta activo. Permite enviar boletas electrónicas a marketplaces como Walmart y Paris.
Fechas incorrectas en escenario Make
Se agregó un módulo de parseo de fechas y se reforzó la validación de formato para evitar el envío de fechas inconsistentes al SII.
Google Analytics GA4 (híbrido cliente + servidor)
El tracking server-side garantiza que conversiones críticas (boletas generadas, errores, anulaciones) lleguen a GA4 aun cuando bloqueadores de anuncios afecten el cliente.
Wizard: banner beta con requisitos previos
Al seleccionar Simple API o BSale se muestra advertencia con lista de requisitos. Botón de soporte integrado directamente en el wizard.
Wizard: cotejo y bloqueo de navegación
El botón "Continuar" permanece desactivado hasta confirmar disponibilidad de requisitos. El cotejo se resetea al cambiar de proveedor.
Integración BSale Beta
e-Boleta ahora soporta BSale como emisor. No requiere migración del sistema existente y abre el mercado de PyMEs que ya usan BSale como POS.
Bloqueo efectivo al superar límite de plan
El comportamiento anterior solo enviaba notificaciones. Ahora se bloquea la generación cuando el límite está agotado. Los pedidos bloqueados reciben el tag DTE-NO-GENERADO.
Respuesta 403 en APIs manuales
Las APIs de generación manual retornan HTTP 403 con upgradeRequired:true cuando el límite está agotado. Los webhooks retornan 200 para evitar reintentos de Shopify.
Emisión automática de boletas
Webhook orders/paid genera la boleta y envía email con enlace de descarga al cliente.
Notas de crédito automáticas
Generadas desde cancelaciones y reembolsos. Anula automáticamente la boleta original.
Portal de autoservicio Boleta → Factura
Formulario público con token único por pedido para que el cliente solicite factura con RUT, Razón Social, Giro y Dirección.
Etiquetado automático
Tags #BO-{folio} y #NC-{folio} en pedidos para trazabilidad directa boleta-pedido.
Compatibilidad Shopify POS
Genera boletas en ventas físicas y las envía por email al momento de la venta.
Dashboard de gestión
Estadísticas, filtros por fecha/estado/tipo y visualización de uso vs límite del plan.
Integración base Openfactura (Haulmer)
Soporte para documentos tipo 39 (boleta), 41 (boleta exenta), 33 (factura), 34 (factura exenta) y 61 (nota de crédito). Requiere cuenta Openfactura, certificación SII y API Key.
Comentarios y preguntas
¿Tienes preguntas sobre alguna versión? Déjalas aquí.