Appearance
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 —
Accounttable replaces the oldLedgerAccountenum. Per-merchant + Vecnet-house accounts coexist; resolved lazily vialib/accounts/resolve.ts. AddsAccountType(asset / liability / revenue / expense / equity) +AccountKind(9 values including newacquirer_clearingandvecnet_iva_payable). Journalmodel — one row per financial event, groups itsLedgerEntrylegs with denormalisedgross / fee / iva / net / rrtotals. See accounting-posting.- IVA on the fee writer —
MerchantFee.ivaRateBps+ivaIncluded. OUT fee pair becomes three legs: DR merchant_pending (fee+iva), CR vecnet_revenue (fee), CR vecnet_iva_payable (iva). Newfee_iva_outcategory. The Resumen XLSX renders real IVA now (was $0 placeholder). BalanceSnapshotmodel + worker —workers/daily-snapshots.tsruns at 23:30 America/Mexico_City, upserts one row per(accountId, date). Surfaced at/finances/snapshotsand the per-account sparkline./financesUI module — Treasury landing + Accounts + Journals + Snapshots + Settlements (Tonder usrv-finances structure, port-ed to Next.js + Prisma). See finances.- Per-merchant
Finance configtab — 4 module toggles (MerchantFinanceConfig). Mirrors Tonder'sConfigTable. - Settlement workflow polish —
displayId(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.hashedPassworddropped, replaced withclerkId @unique./loginserver-action page gone — Clerk hosts sign-in. Webhook at/api/clerk-webhookssyncsAdminUserrows onuser.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(samefilter-btnshape, 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.mdin the dashboard repo. A 3,274-word single-page TL;DR of the production finance logic, grounded intonderio/usrv-financessource with file paths + line numbers. Complements the multi-page Tonder Reference subsection on this site.docs/changelog.md(this page) +docs/surfaces/finances.md+ theChangelogtop-nav entry.
Changed
- Home KPI strip revised: dropped
Tarifa promedioframing, addedPagos 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_a1b2c3d4toLIQ-2026-NNNfor human legibility. Transaction IDs renamed toTRX-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 buildpasses cleanly after each polish round; the unusedmaskClabeimport was dropped fromapp/finances/page.tsxafter 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).