> ## Documentation Index
> Fetch the complete documentation index at: https://test-docs.upayments.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Latest updates and improvements to FinMI

# Changelog

## March 26, 2026

### Inngest Migration — Parallel Sync Infrastructure

* **Migrated from Railway worker to Inngest** — all NMI sync now runs on Vercel via Inngest functions
* **Parallel processing** — all merchants sync simultaneously (was sequential on Railway)
* **5 Inngest functions**: health check, NMI sync cycle (15m cron), NMI sync merchant, CRM enrichment cycle (30m cron), CRM enrich merchant
* Each sync step has automatic retry, concurrency limits, and 5-minute timeouts
* Demo accounts with invalid credentials automatically excluded from sync

### GoHighLevel CRM Enrichment

* **CRM-agnostic provider framework** — shared interfaces for future HubSpot, Close, Pipedrive support
* **GHL provider** with rate-limited API client (80 req/10s) covering:
  * Contacts (search by email, get by ID)
  * Opportunities/Pipelines (deals, stages, monetary values)
  * Subscriptions (native recurring billing data)
  * Transactions (GHL payment records)
  * Calendar/Appointments
* **Automatic enrichment** every 30 minutes — matches customers by email, merges CRM data into `metadata.crm`
* **CRM subscriptions** created from GHL data (source: `crm_ghl`) — more accurate than pattern detection
* **CRM Insights card** on customer detail page showing company, tags, lead source, opportunities, appointments
* **Real connection test** via GHL `/locations/{id}` API
* **7-day re-enrichment cooldown** to avoid unnecessary API calls
* Enabled in Integrations marketplace — connect with API Key + Location ID

### Timezone & Accessibility

* All dates display in the user's configured timezone (profile setting)
* Text size toggle in header: Small / Medium / Large — scales text only, not spacing
* Sidebar width scales with text size to prevent label truncation

### Sync Improvements

* Fixed NMI date format (was MMDDYYYY, now YYYYMMDD)
* Incremental syncs use `result_order=reverse` (newest first) — new transactions on page 0
* 7-day lookback catches APPROVED→SETTLED status updates
* Sync history shows actual DB totals instead of processed count
* Disabled Vercel cron sync (Inngest handles everything)

***

## March 24, 2026

### Functional Upsells — Order Bumps, Post-Purchase, Downsells

* **Order bumps** render as checkbox cards on the checkout form — checking adds the amount to the total in a single charge
* **Post-purchase upsells** use NMI Customer Vault for one-click charging after payment — no re-entering card details
* **Downsells** automatically shown if customer declines the post-purchase offer — lower-priced alternative
* Live preview panel shows all enabled upsells grouped by when they appear
* Delete confirmation dialogs and inline feedback toasts on all operations
* Upsell charge API at `/api/payments/upsell`

### Product Catalog Integration

* **Product selector** in payment page builder — auto-fills title, description, amount, type, frequency from product
* **Product picker** in invoice creation — adds pre-filled line items from product catalog
* **Quick-create** inline product form available in both contexts
* **Subscription products** — billing frequency, free trial days, billing cycles, setup fee
* Product selector shows recurring badges, trial days, and SKU

### Customer Creation on Internal Payments

* All payment page payments automatically create/update Customer records
* All invoice card payments automatically create/update Customer records
* Customers linked to transactions, tracking totalSpent and lastPurchaseAt

### Payment Page Editing

* Full builder at `/payment-pages/{id}/edit` with all fields pre-filled
* Works for ACTIVE, DRAFT, and PAUSED pages
* Status actions clarified: "Publish & Go Live", "Pause Page", "Reactivate"

### Google Address Autocomplete

* Google Places API integrated on billing address fields
* Auto-fills city, state, ZIP, country from selected address
* 80+ countries supported, alphabetically sorted
* Browser autofill hints on name, email, phone fields

### Performance & Security

* Forecasting data cached for 10 minutes (in-memory TTL cache)
* Tier blur gate renders placeholder skeletons instead of blurred real data (DevTools-proof)
* Connection pool optimized: limit=3, timeout=15s
* Session reporter frequency reduced to prevent connection exhaustion

***

## March 23, 2026

### Mercury-Inspired UI Overhaul

* New design system: neutral color tokens, 14px base font, tighter spacing
* Standardized tabs across all pages (consistent pill-style)
* Compact sidebar with left-border active indicator
* Reduced chart heights and simplified tooltips
* Updated table styling: normal-case headers, denser rows

### Settings Redesign

* **Profile editor** with country-code phone input, timezone selector, job title
* **Email and password change** via secure dialogs
* **Active sessions** tracking (device, IP, location via ipinfo.io)
* **Split notifications** into real-time (payment pages/invoices) and digests (synced NMI data)
* **Split webhooks** into internal events and synced data events
* Removed NMI Integration tab (now on Merchants page)
* Removed Payment Methods page (capabilities shown on merchant detail)

### Pricing Update

* 4-tier structure: Lite $49 / Starter $149 / Growth $499 / Scale $799
* Data retention: 6mo / 12mo / 24mo / 36mo
* Users: 1 / 3 / 5 / 10
* Added DisputeProof add-on (\$99/mo)
* Blurred tier gates with upgrade CTA on locked features

***

## March 22, 2026

### Subscription Detection

* Auto-detect recurring patterns from transaction history
* Configurable sensitivity (2+, 3+, 4+ payments)
* Description keyword matching (built-in + custom terms)
* Include/exclude term filters
* Per-merchant detection settings saved for auto-detection
* Remove (dismiss) individual detected subscriptions

### Card BIN Enrichment

* 374K+ BIN database for debit/credit identification
* Card issuer, category, and country from BIN lookup
* Enriched data displayed on transaction detail pages
* Card brand breakdown on dashboard with debit/credit split

### NMI Response Code Mapping

* 200+ NMI response codes mapped to human-readable decline reasons
* Categories: Soft (retry), Hard (permanent), Fraud, Error
* Applied across Recovery, Fraud, and transaction detail pages

***

## March 21, 2026

### Railway Background Worker

* Dedicated worker for NMI sync (no more Vercel timeout issues)
* Chunked processing with self-continuation
* Duplicate job prevention
* Stale job cleanup (10-minute timeout)
* Customer extraction from transaction emails
* Materialized view refresh after each sync cycle

### Merchant Onboarding Redesign

* 3-step wizard: Connect Gateway → Business Details → Initial Sync
* NMI profile query auto-fills business information
* Gateway URL validation and credential testing
* Tabbed merchant detail (Overview / Gateway & Sync / Settings)

### Transaction Enrichment

* `order_description` captured as transaction description
* `source` field (api, virtual\_terminal, recurring, internal)
* Entry mode, processor ID, response code
* BIN data for card type identification

***

## March 20, 2026

### Payment Page Builder Enhancements

* Comprehensive color audit: field background, border, text colors affect all elements
* Preview vs live link distinction with preview banner
* Icon selector for trust badges (12 icons)
* Editable footer text
* Image upload via Supabase Storage
* Conditional webhook payload based on form settings
* Auto-success preview on Post-Payment step

### Data Accuracy Fixes

* Customer health scores: fixed negative values from incorrect totalTransactions
* Forecasting: MRR trend uses subscription startDate, not createdAt
* Cohort retention uses first transaction date, not customer extraction date
* Revenue calculations exclude internal/settlement transactions

***

## March 19, 2026

### Initial Platform Launch

* Multi-tenant architecture (ISO → Merchants → NMI Accounts)
* Transaction sync from NMI Query API
* Customer and subscription management
* Payment page builder with 8 templates
* Invoicing with 5 PDF templates
* Recovery and fraud analytics
* Forecasting with MRR trends and cohort retention
* 14 report types with PDF generation
* PostHog analytics integration
* 5 role-based access levels with 40+ permissions
