Skip to content

Changelog

What's actually been built and shipped in the live dashboard at vecnet-dashboard.vercel.app. The build spec in the rest of this site captures the production architecture; this page captures the dashboard's journey toward it. Newest entries at the top.


2026-06 — v0.3: admin platform — finance module + Clerk auth

Added — admin app (vecnet-admin)

  • Chart of Accounts model — Account table replaces the old LedgerAccount enum. Per-merchant + Vecnet-house accounts coexist; resolved lazily via lib/accounts/resolve.ts. Adds AccountType (asset / liability / revenue / expense / equity) + AccountKind (9 values including new acquirer_clearing and vecnet_iva_payable).
  • Journal model — one row per financial event, groups its LedgerEntry legs with denormalised gross / fee / iva / net / rr totals. See accounting-posting.
  • IVA on the fee writerMerchantFee.ivaRateBps + ivaIncluded. OUT fee pair becomes three legs: DR merchant_pending (fee+iva), CR vecnet_revenue (fee), CR vecnet_iva_payable (iva). New fee_iva_out category. The Resumen XLSX renders real IVA now (was $0 placeholder).
  • BalanceSnapshot model + workerworkers/daily-snapshots.ts runs at 23:30 America/Mexico_City, upserts one row per (accountId, date). Surfaced at /finances/snapshots and the per-account sparkline.
  • /finances UI module — Treasury landing + Accounts + Journals + Snapshots + Settlements (Tonder usrv-finances structure, port-ed to Next.js + Prisma). See finances.
  • Per-merchant Finance config tab — 4 module toggles (MerchantFinanceConfig). Mirrors Tonder's ConfigTable.
  • Settlement workflow polishdisplayId (synthetic readable IDs), per-channel composer (one settlement per channel per cycle), Spanish XLSX "Resumen de Liquidación" export, audit→accept→confirm state machine with manual adjustments.

Changed — admin app

  • Auth: NextAuth → Clerk (full cutover). AdminUser.hashedPassword dropped, replaced with clerkId @unique. /login server-action page gone — Clerk hosts sign-in. Webhook at /api/clerk-webhooks syncs AdminUser rows on user.created/updated. requireSession() contract preserved across 50 call sites. See auth.
  • Sidebar simplified — 8 sidebar entries → 5. Finances parent is clickable, children always render. Dropped /finances/fee-rules (duplicated /merchants/[id]/fees), /finances/configurations (moved to merchant tab), /finances/settlements/treasury (merged into /finances). Flattened /finances/balances/* to /finances/journals
    • /finances/snapshots.

Added — docs

  • Deploy guide — end-to-end runbook for Vercel + Supabase + Clerk + optional Redis workers.

2026-05 — v0.2: Terminales, Liquidaciones polish, Disputas restored

Added

  • Terminales module at /terminales. Sub-MID Sucursales hierarchy with drill-down to per-terminal payment history. Three device families: countertop (Verifone V200c), mobile (PAX A920), tap-to-phone (iPhone Tap to Pay). Status states: online / offline / error / maintenance. Inspired by Mollie's in-person payments UI. New surface page: Terminales.
  • Disputas submodule in /transactions. KPI strip (open disputes, total disputed, win rate), status filter tabs (Requiere respuesta / En revisión / Ganada / Perdida), table, detail panel with timeline + evidence-upload form. Spanish copy throughout.
  • Date range + amount filters in /finances → Liquidaciones tab. UI matches the filter dropdowns on /transactions (same filter-btn shape, same network-amount icon, same Clear / Apply behavior).
  • "Descargar Excel" button in the settlement detail panel. Emits a CSV with two sections (Encabezado + Desglose) and a UTF-8 BOM so Excel autodetects encoding. Filename liquidacion-LIQ-2026-NNN.csv.
  • Method-network logos on the Método column of /transactions. Visa, Mastercard, SPEI, Amex, Carnet, OXXO — served from /public/methods/*.svg.
  • docs/finances-logic.md in the dashboard repo. A 3,274-word single-page TL;DR of the production finance logic, grounded in tonderio/usrv-finances source with file paths + line numbers. Complements the multi-page Tonder Reference subsection on this site.
  • docs/changelog.md (this page) + docs/surfaces/finances.md + the Changelog top-nav entry.

Changed

  • Home KPI strip revised: dropped Tarifa promedio framing, added Pagos exitosos, Tasa de aceptación, Disputas, Terminales activas, Ticket promedio.
  • VECNET wordmark now uppercase next to the symbol in the sidebar.
  • Settlement IDs renamed from stl_a1b2c3d4 to LIQ-2026-NNN for human legibility. Transaction IDs renamed to TRX-2026-NNN.
  • Settlements table on /finances → Liquidaciones dropped the Cuenta de tesorería column. Bank/CLABE is still visible inside the settlement detail panel.
  • Filter dropdowns close each other when opened, so only one is open at a time.

Removed

  • YTD preset on the global date-range chip. Today / 7D / 30D / 90D remain.
  • Organización tab in /settings. Three tabs left: Métodos de pago / Equipo / Mi perfil. The single-tenant data (org name, RFC, CLABE, departments) had no matching backend wiring yet, so it was removed to avoid implying capability.

Fixed

  • TypeScript / npm run build passes cleanly after each polish round; the unused maskClabe import was dropped from app/finances/page.tsx after the bank column was removed.

2026-04 — v0.1: Initial dashboard cut

Initial public deploy. Spanish-only UI with teal palette. Surfaces:

  • Inicio — KPIs and home page.
  • Transacciones — full transactions list with filters, detail panel, refund modal, raw-data viewer.
  • Finanzas — Saldos + Liquidaciones tabs, daily-balance table, settlements table, detail panel.
  • Links de Pago — public payment-link generation.
  • Configuración — Métodos de pago, Equipo, Mi perfil, Organización (the last was removed in v0.2).
  • Desarrolladores — API keys + webhooks.
  • Copiloto — AI-chat surface.

Brand mark: vecnet-symbol-black.svg. Sidebar wordmark uses warm-beige active state (#F5F2F0 background, #141313 text), teal accent buttons (#14b8a6#0d9488#0f766e).

Vecnet — Build Spec v0.2 · Obsidian Terminal