Registro de cambios
Sigue cada hito en el desarrollo de dTax — desde el motor principal hasta la plataforma fiscal completa.
Conversiones de Binance.US y escaneo de riesgos corregido
Las conversiones y órdenes de compra/venta de Binance.US realizadas fuera del libro de órdenes (Convert y similares) ahora se sincronizan; antes solo las operaciones spot. Solo se guardan las órdenes liquidadas y una orden en curso se incorpora cuando se liquida. El escaneo de riesgos previo a una auditoría ya no marca todas las disposiciones como sin base de costo: ahora usa el mismo cálculo FIFO que el informe fiscal predeterminado. Una disposición sin precio en USD se muestra aparte, y la revisión de wash sale ahora cruza el cambio de año. Se eliminó la columna vacía de ganancia/pérdida en las transacciones recientes del panel (ganancias y pérdidas aparecen en sus informes). Los periodos fallidos en la sincronización con un exchange se reintentan tras una pausa en lugar de abandonarse en segundos. También se sincronizan las conversiones de saldos pequeños (dust).
La sincronización de Binance se completa en cuentas grandes
Sincronizar una cuenta de Binance o Binance.US con muchas operaciones ya no falla con «Unknown API error». Cada sincronización lee un tramo de tiempo limitado, recuerda dónde se quedó y la página continúa automáticamente hasta 10 rondas; si queda algo, sincronice de nuevo. Las operaciones se guardan por lotes, los depósitos y retiros se leen por ventanas de tiempo, y los mercados o periodos que no se pueden leer aparecen en el resultado en lugar de omitirse en silencio; para ellos, exporte un CSV. Un tiempo de espera de la pasarela ahora muestra un mensaje claro. La primera sincronización de una conexión existente vuelve a leer el historial una vez; no se crean duplicados.
Reglas UK de mismo día y 30 días, corrección de la base de coste multianual y detalle de ventas en libras
UK Share Pooling aplica ahora a cada venta el orden de identificación de HMRC: primero la regla del mismo día, luego la de 30 días (bed and breakfasting) y después el pool de la Sección 104, contando días naturales del Reino Unido; las compras de un mismo día se tratan como una sola compra a su coste medio. Un nuevo detalle de ventas UK (Pro) lista cada venta con la regla que fijó su coste, la fecha de la posición asignada y totales de ventas, ingresos, costes deducibles, ganancias y pérdidas en libras esterlinas; cada compra y cada venta se valora al tipo de referencia del euro del BCE de su propio día. dTax no calcula su Impuesto sobre Ganancias de Capital ni la exención anual. Corrección importante para todos los métodos de base de coste: el informe de un año fiscal tiene ahora en cuenta primero las ventas de años anteriores, de modo que los lotes ya vendidos no se vuelven a asignar y una venta ya no puede asignarse a un lote adquirido después. Los métodos de coste medio (pool UK, promedio total, PMPA, ACB de Canadá) ya no se desvían tras ventas sucesivas. Por ello, las cifras de informes generados antes pueden diferir de un nuevo cálculo. Si el recálculo automático tras una sincronización cambia un informe guardado, se elimina el archivo exportado antes y el correo indica el cambio; vuelva a exportar. La detección de wash sales ahora ve compras de reemplazo en los primeros 30 días del año siguiente, usa la cantidad comprada y una pérdida no admitida en un año anterior se suma al coste del lote de reemplazo. Al elegir lotes manualmente, las ventas de años anteriores no identificadas se tratan como primero en entrar, primero en salir. Las reglas UK aparecen en la descripción del Formulario 8949 de cada venta. Autoalojamiento: las imágenes de contenedor son privadas; solicite acceso al soporte, vea la guía.
Sincronización de wallets: las cadenas omitidas ahora son visibles en lugar de silenciosas
Corrige una carencia por la que la sincronización de wallets blockchain podía omitir en silencio cadenas que no pudo consultar (falta de clave API en el servidor para esa cadena concreta, o un límite de frecuencia o error transitorio) y aun así informar de que la sincronización estaba completa. Una wallet cuya única actividad estuviera en una de las cadenas afectadas mostraba 'sincronización completa' sin ningún indicio de que esa cadena nunca se había comprobado. Ahora el motor de sincronización registra cada cadena omitida con un motivo legible por máquina (falta de clave, límite de frecuencia, configuración bloqueada, etc.) y un indicador de si merece la pena reintentarla. Cuando se omiten cadenas, la tarjeta de la wallet muestra un aviso claro en línea (por ejemplo, 'base, cronos — configuración de la plataforma pendiente') en lugar del engañoso banner 'ya está actualizado' que aparecía antes en cualquier caso. Los detalles internos de implementación (nombres de proveedores externos, nombres de comprobaciones de seguridad) nunca se muestran en este mensaje: solo una categoría orientada al usuario y los nombres de las cadenas afectadas. Se añadieron pruebas de regresión que cubren las rutas de omisión de cadenas personalizadas, EVM y Solana que antes no estaban probadas.
Sincronización de la API de Binance.US: corregido el rechazo de conexiones IPv6
Se corrigió un fallo de conexión que afectaba a la sincronización de la API de Binance.US en algunos entornos de alojamiento. Node.js 17+ cambió su orden de resolución DNS predeterminado y dejó de preferir IPv4; en hosts con salida de red IPv6 habilitada, esto podía dirigir las solicitudes salientes a una dirección IPv6 en dominios que tienen registros A y AAAA. La API de Binance.US rechaza expresamente las conexiones de clientes IPv6, lo que los usuarios veían como un error de conexión genérico y poco útil. El servidor de la API ahora prefiere IPv4 en toda la resolución DNS saliente al arrancar; esto no desactiva IPv6 para lo que lo necesite, solo cambia la familia de direcciones que se prueba primero. Se aplica de forma preventiva a todas las conexiones API de exchanges, no solo a Binance.US.
Conectar API de exchange: mensajes de error más claros
Cuando fallaba la conexión de un exchange mediante clave API, el mensaje de error era siempre el mismo genérico 'Failed to verify API keys with exchange.' sin importar la causa real: clave no válida, restricción de IP, desfase del reloj, permisos insuficientes o exchange no compatible parecían idénticos. Esto hacía imposible diagnosticar por cuenta propia una conexión fallida. Ahora la respuesta de error incluye el motivo real de rechazo del exchange (por ejemplo, el error de autenticación concreto devuelto por la API del exchange), de modo que puedes saber de inmediato si el problema es una clave incorrecta, un problema de permisos u otra cosa. Se aplica a todos los exchanges compatibles, no solo a uno.
Binance.US: nuevo formato CSV y compatibilidad con la sincronización por API
Binance.US cambió su exportación CSV a un nuevo formato no documentado (con columnas separadas Base Asset / Quote Asset / Primary Asset) que dTax no reconocía, lo que provocaba el error 'No valid transactions found in CSV' al importar. Se añadió compatibilidad con el nuevo formato junto al existente: ambos se detectan automáticamente, sin necesidad de seleccionar el formato manualmente. Gestiona operaciones spot de dos lados (compra/venta, tipificadas correctamente tanto frente a moneda fiat como a stablecoins) y filas de un solo activo (depósitos, retiros, recompensas de staking, distribuciones, comisiones de referidos). También se añadió Binance.US como opción de sincronización directa por API (además de la importación por CSV); Binance.US es solo spot, por lo que la opción de futuros/perpetuos correctamente no aparece.
Informes en PDF: corregidas las columnas superpuestas
Se corrigió un error de maquetación por el que las columnas (f)/(g)/(h) del Form 8949 podían dibujarse sobre la columna (e) Cost Basis, produciendo texto ilegible como '(e) Cost Ba(g)sis Adj.' en el encabezado y números superpuestos en las filas de totales; la causa era una fórmula de ancho de columna que no tenía en cuenta dónde terminaba realmente la columna anterior. También se corrigió una superposición relacionada en las secciones Connected Accounts y Transaction Register del informe Audit Defense, causada por una peculiaridad del renderizado PDF: al dibujar varias columnas en la misma fila con el cursor de avance automático de la biblioteca, estas se desplazaban hacia abajo unas respecto a otras. Ambos informes ahora maquetan las columnas con anchos explícitos y verificados que suman exactamente el área de contenido de la página.
Transacciones manuales: añade una fuente para la asignación de costo base por wallet
Se corrigió un error por el que una transacción añadida manualmente (por ejemplo, una operación OTC o una transferencia introducida a mano) no podía asociarse con las transacciones importadas por CSV a efectos de costo base cuando está activado el seguimiento de costo base por wallet (strictSilo), porque las entradas manuales no tenían forma de indicar a qué wallet o exchange pertenecían. El formulario Añadir transacción ahora incluye un campo Fuente, de modo que los lotes y disposiciones introducidos manualmente pueden asignarse al grupo de costo base correcto y asociarse correctamente con el seguimiento de costo base por wallet, igual que las transacciones importadas.
Corrección de reimportación CSV — Filas soft-eliminadas ya no bloquean actualizaciones
Corrige un bug donde las transacciones eliminadas desde la UI seguían contando como duplicados al re-subir un CSV. La lógica original saltaba todas las coincidencias sin importar el estado de borrado para evitar violaciones de restricción única — pero esto bloqueaba a los usuarios que intencionalmente soft-eliminaban y modificaban su CSV. Ahora la importación particiona las coincidencias en tres categorías: duplicados activos (saltados como antes), coincidencias soft-eliminadas (resucitadas — deletedAt limpiado, campos actualizados desde el nuevo CSV, clasificación IA y enriquecimiento de precios reiniciados para reprocesamiento), y filas nuevas (insertadas como antes). La respuesta ahora devuelve `resurrected` junto a `imported` y `skipped`. Reportado por nuestro primer cliente de pago, corrección desplegada en 24 h.
Blindaje del pipeline de facturación y nuevas herramientas de administración
Actualización importante de fiabilidad en el flujo de suscripción junto con nuevas capacidades de administración. Facturación: identificamos y eliminamos un escenario en el que una confirmación de suscripción retrasada podía provocar cargos duplicados al reintentar. Tres capas de defensa protegen ahora la ruta de checkout — reconciliación con Stripe antes de crear cualquier suscripción nueva (repara suscripciones huérfanas por fallos de webhook), protección de planes Lifetime (bloquea compras duplicadas de PRO para suscriptores vitalicios) y un guard de duplicación del mismo plan que corta el checkout cuando ya existe una suscripción activa o una concesión de cortesía vigente. Todos los clientes afectados han recibido reembolsos completos. Ampliamos la cobertura de webhooks para manejar eventos customer.subscription.created, de modo que las suscripciones creadas fuera del flujo estándar de checkout (p. ej. concesiones de cortesía de administradores) se sincronicen correctamente con nuestra base de datos. Herramientas de administración: acción en un clic «Otorgar PRO 12 meses» que crea una concesión con caducidad automática y sin renovación automática — sin necesidad de suscripción Stripe. Acción «Eliminar usuario» permanente con confirmación por correo electrónico escrito y borrado en cascada transaccional de todos los registros relacionados. Endpoint de suscripción de administrador extendido para aceptar currentPeriodEnd, cancelAtPeriodEnd y status para control más fino. Corregido un error de etiqueta donde la fecha de caducidad se mostraba como «fecha de registro». Seguridad: cinco nuevos guards del lado del servidor en endpoints de suscripción de administrador previenen la automodificación (separación de deberes), limitan la duración de concesiones a 24 meses, rechazan fechas de caducidad pasadas, protegen suscripciones Stripe activas de sobrescritura de campos de facturación (previene deriva BD/Stripe) y requieren concesión Lifetime previa para elevación a estado Lifetime. Pruebas: 16 nuevos casos cubriendo todas las rutas de defensa y seguridad.
Parche de Seguridad y Fiabilidad
Mejoras internas de seguridad y fiabilidad en la API y el frontend. Seguridad: los tokens de restablecimiento de contraseña ahora se almacenan como hashes SHA-256 (el token original nunca se persiste en la base de datos). Protección SSRF actualizada con validación de nombre de host a nivel DNS para bloquear ataques de rebinding. Prevención de inyección en el nombre de archivo del encabezado Content-Disposition. Rutas de exención de autenticación usan coincidencia exacta. Fiabilidad: condición de carrera en la encola de trabajos eliminada con transacciones PostgreSQL serializables. El enriquecimiento de precios ahora usa lotes de 20 escrituras concurrentes. Tiempo de espera de 30 segundos para flujos R2. Tiempo de espera de 5 minutos para el worker de cálculo fiscal. Frontend: compatibilidad de descarga CSV/PDF/JSON en Firefox restaurada. Fuga de intervalo de sondeo fiscal corregida. Navegación de incorporación migrada al router de Next.js. La lista de informes se actualiza correctamente tras eliminación.
Cálculo de Impuestos Asíncrono, Filtro Multi-Activo y Filtros URL Persistentes
Tres mejoras de UX. (1) El cálculo de impuestos ahora es asíncrono — en lugar de bloquear la interfaz, el motor encola un trabajo en segundo plano y muestra un indicador de progreso en tiempo real; los resultados aparecen automáticamente al finalizar. (2) Filtro multi-activo: la barra de filtros de transacciones muestra ahora un menú desplegable multi-selección cargado dinámicamente desde tu historial real — selecciona BTC, ETH, SOL y más con un clic. El estado del filtro también se restaura desde la URL. (3) Filtros URL persistentes: cada filtro y criterio de ordenación se escribe en la URL, por lo que al actualizar o compartir un enlace se preserva la vista exacta.
Escáner de Sanciones OFAC y Análisis de Trading Emocional
Dos nuevas funciones gratuitas. Escáner OFAC: comprueba automáticamente todas las direcciones de billetera conectadas contra la lista SDN del Tesoro de EE. UU. (actualización diaria, O(1), caché 24h). Patrones de trading emocional: detecta compra-alto/venta-bajo basándose en el historial propio — precio medio ponderado de compra como referencia racional, recuento de persecución de máximos, ventas en pánico, pérdida emocional (USD) y puntuación emocional 0–100. Disponible en todos los planes.
Escáner CARF, Seguimiento TDS India y 29 Parsers
Escáner de exposición CARF/DAC8: evalúa exchanges por jurisdicción y estado de adopción CARF, estima transacciones reportables y nivel de exposición. Seguidor TDS India (Sección 194S): calcula 1% TDS en transacciones superiores a ₹50,000. 3 nuevos parsers indios: WazirX, CoinDCX y ZebPay — total de parsers dedicados: 29.
PDF de Defensa de Auditoría y Snapshot de Tenencias
Dos nuevos formatos PRO. PDF de defensa de auditoría: paquete IRS de 4 secciones (carta de presentación, resumen ejecutivo, metodología, registro de transacciones). PDF de snapshot de tenencias: certificado de activos con ganancias/pérdidas no realizadas, bloque de firma CPA y atestación de metodología.
Métodos Fiscales Internacionales y Soporte en 10 Idiomas
5 nuevos métodos de base de coste específicos por país: descuento CGT australiano, ACB canadiense, impuesto sobre activos virtuales coreano, VDA indio, CGT español. Total: 13 métodos. i18n ampliado de 7 a 10 idiomas — francés, turco y alemán añadidos.
Multi-cadena UTXO: LTC, DOGE, BCH, DASH
La sincronización de billeteras ahora soporta Litecoin (LTC), Dogecoin (DOGE), Bitcoin Cash (BCH) y Dash (DASH), elevando el total a 22 blockchains. Impulsado por la API pública de Blockchair (gratuita, sin clave). Detección automática de direcciones, cálculo de saldo UTXO y clasificación de transacciones como TRANSFER_IN/OUT/INCOME.
Pipeline fiscal totalmente automático
Importa las transacciones una vez — dTax se encarga de todo automáticamente. Después de cada importación CSV, sincronización de billetera o conexión de exchange, el enriquecimiento de precios se ejecuta en segundo plano, seguido de la generación automática del informe fiscal FIFO para el año fiscal anterior y el actual. Se envía un correo resumen cuando tu informe está listo, mostrando la ganancia/pérdida neta por año. Los usuarios PRO pueden volver a calcular con LIFO, HIFO u otros métodos desde el panel.
Integridad de sincronización de billeteras y mejoras UX
Correcciones de integridad: paginación Solana (hasta 12.500 txns), límite Moralis 20→200 (hasta 20.000 txns), sincronización incremental EVM con cursor persistente. Comisiones USD rellenadas automáticamente. Hash de transacción ahora muestra enlace al explorador. Filtro para ocultar transacciones $0. Precio enriquecido automáticamente tras sincronización (enfriamiento 5 min). Botón «Limpiar datos» por billetera. Consejos de flujo de trabajo en el Dashboard.
Filtros avanzados y gestión de columnas
Filtra transacciones por precio faltante para encontrar entradas que necesitan precio manual. Filtra por varios activos a la vez (ej. "BTC, ETH, SOL"). Activa columnas opcionales de cadena, dirección y TxHash en la tabla. Las páginas de transferencias y conciliación ahora paginan resultados grandes.
Mejoras UX: pares de activos, paginación de IA e i18n
Las transacciones bidireccionales (swaps, depósitos LP) muestran "BTC → USDT" en la columna de activos. Nuevos tipos LOST y STOLEN. El historial del asistente de IA ahora pagina. Botones de actualización de precios del portafolio con tooltips. Cobertura completa de i18n en 7 idiomas.
Refuerzo de seguridad
Corregidas 4 vulnerabilidades de una auditoría independiente: bypass de cuota (H-1), acceso de sesión CPA caducada (H-3), limitación de velocidad en eliminación de cuenta (L-3), y validación de userId en Stripe Webhook (C-2).
Sincronización de Cartera Bitcoin
Sincroniza direcciones de Bitcoin directamente — todos los 4 formatos soportados: Legacy (1...), Nested SegWit (3...), Native SegWit (bc1q...) y Taproot (bc1p...). Impulsado por la API Blockstream Esplora — gratuita, sin necesidad de clave API. Detecta automáticamente ingresos de minería (transacciones coinbase → tipo INCOME), calcula correctamente el importe neto enviado considerando salidas de cambio UTXO, con respaldo en mempool.space.
Sincronización CEX — Spot y Futuros
Conecta claves API de exchanges (Binance / Binance.US, OKX, Bybit, Kraken, Coinbase, KuCoin, Gate.io) para sincronizar automáticamente operaciones spot, depósitos y retiros. El Plan-43 extiende esto a futuros, contratos perpetuos y trading con apalancamiento — incluyendo tasas de financiación y liquidaciones mapeadas como tipos MARGIN_TRADE y LIQUIDATION.
Clasificación LP + Chains Personalizadas
Clasifica tokens LP automáticamente por protocolo (Uniswap V2 LP, PancakeSwap LP, Curve 3CRV, Balancer BPT y 8+ más) como LP_DEPOSIT/LP_WITHDRAWAL. Soporte de chains EVM personalizadas (compatibles con MetaMask, URLs protegidas contra SSRF). 29+ parsers CSV con nuevos formatos Bitstamp, Upbit y Robinhood.
17 Cadenas + Mejoras de Transacciones
Soporte para 17 chains: ETH, Polygon, BSC, Arbitrum, Optimism, Avalanche, Base, Linea, Scroll, Mantle, Blast, Gnosis, Sonic, Monad, Sei, Cronos + Solana. Columnas Source/Chain/ContractAddress añadidas al CSV export, import y lista de transacciones. Visibilidad de columnas personalizable. BSC migrada de Moralis a Etherscan V2.
Posicionamiento Ley GENIUS y mejoras en el simulador
Nueva sección de cumplimiento de stablecoins de la Ley GENIUS en la página de características y la tabla de comparación de la página de inicio. Comparación de 7 métodos en el simulador (antes 3). Serie de artículos sobre regulaciones (3 × 7 idiomas). El historial de informes ahora muestra la hora de generación al calcular. Hoja de ruta: modo de instrumento de pago en stablecoins planificado pendiente de orientación del IRS.
Cumplimiento CARF y UK Share Pooling
UK Share Pooling (Section 104) como 8.° método de base de costo, cuenta regresiva CARF 2027 en la página de impuestos, estado de adopción CARF de 15 países en tasas globales, endpoint de exportación de transacciones CARF (PRO/CPA), sistema AI multi-proveedor (15+ proveedores LLM con BYOK), consola de operaciones AI, control de acceso por suscripción y contenido CARF en todas las páginas de marketing.
Motor Fiscal Global
3 métodos internacionales de base de costo (Alemania FIFO con exención de 12 meses, Francia PMPA promedio ponderado, Japón Promedio Total), página comparativa de tasas de 15 países y 8 guías fiscales por país.
Inteligencia fiscal 2026
Reporte de ingreso ordinario (staking/minería/airdrops), clasificación cubierto vs no cubierto del 1099-DA, alertas regulatorias de PARITY Act y tarjetas de resumen fiscal mejoradas.
Fase B: Páginas del sitio web
Se agregaron páginas de Precios, Funcionalidades, Seguridad y Exchanges con soporte completo de i18n.
Fase A: Páginas principales
Página de inicio, páginas legales (Términos, Privacidad, Aviso legal) y asistente de configuración para nuevos usuarios.
Página de inicio
Página principal de marketing con funcionalidades destacadas, tabla comparativa competitiva y resumen de precios.
Tema y experiencia de usuario
Alternador de tema claro/oscuro con detección de preferencia del sistema, navegación responsiva y límites de errores.
Mejora del panel
Tarjetas de acciones rápidas, widget de resumen de fuentes de datos y guía de 3 pasos para nuevos usuarios en el panel.
Soporte DeFi y NFT
12 nuevos tipos de transacciones DeFi/NFT, parsers DeFi de Etherscan y Solscan, y transferencia de base en wrap/unwrap.
Parsers de exchanges
20 parsers de formato CSV de exchanges incluyendo Coinbase, Binance / Binance.US, Kraken y 17 más con auto-detección.
Reportes fiscales
Exportación de Form 8949 en PDF/CSV, resumen de Schedule D con arrastre de pérdidas y detección de wash sale con ventana de 30 días.
Motor principal
Cálculo de base de costo FIFO, LIFO y HIFO, pipeline de importación CSV y panel básico con resumen fiscal.
Lanzamiento inicial
Motor fiscal con pruebas unitarias exhaustivas, frontend Next.js con i18n y API Fastify con Prisma ORM.