What's New in POSVelo v2.1

Billing, a platform control plane, loyalty redemption, and the workspace polish — all on top of v2

v2.1 is additive, like v2 was

Everything from v1 (POS) and v2 (HRM, ESS, Payroll, notifications) is unchanged. v2.1 adds the pieces that make POSVelo sellable and operable as a multi-tenant SaaS — billing and a platform console — plus a loyalty redemption engine and a round of workspace and screen polish. None of it is required: Stripe and the HR module each stay dormant until you switch them on.

The Headline Changes

AreaWhat landed in v2.1Read
Subscriptions & BillingReal Stripe billing — checkout, customer portal, invoices, and per-plan resource limits (stores / users / products) enforced before a record is created.Subscriptions & Billing
Platform AdministrationA SUPER_ADMIN console: create/suspend tenants, view usage vs. limits, impersonate a tenant safely, a plan catalog editor, platform-wide audit, maintenance mode, and a cross-tenant broadcast.Platform Administration
Loyalty Points & RewardsCustomers now redeem points for a discount at checkout, earning respects tier multipliers and rounding rules, refunds prorate points correctly, and points can expire — all configurable per tenant.Loyalty Points & Rewards
Multi-day leave & holidaysHolidays can span a date range (e.g. a multi-day Eid), the apply forms have an explicit single-day / date-range toggle, and a shared “who’s out” team leave calendar was added.HRM — Leave & Holidays
Workspace & AppearancePer-account preferences that follow the user across devices: sidebar side, POS cart side, theme, fullscreen, and rebindable keyboard shortcuts.Workspace & Appearance

Billing Lives on /api/v1, Not /api/v2

A natural assumption is that everything new is under /api/v2. It is not. The v2.1 billing and platform-admin features are platform concerns that sit alongside the original POS, so they extend the /api/v1 surface. The HR leave/holiday changes stay on /api/v2/hr and /api/v2/me where the rest of HRM lives.

CapabilityRepresentative endpointWho
Tenant billing (checkout, portal, invoices)/api/v1/billing/*ADMIN (tenant:manage)
Stripe webhook (subscription/invoice sync)POST /api/v1/webhooks/stripeStripe (signature-verified)
Plan-limit usageGET /api/v1/tenants/:id/usageSUPER_ADMIN
Platform console/api/v1/super-admin/*SUPER_ADMIN
Loyalty program settingsPATCH /api/v1/customers/loyalty/programADMIN (loyalty:manage)
Team leave calendarGET /api/v2/hr/leave/calendarHR / managers / ESS

Everything Off-By-Default Stays Off

v2.1 adds features that an existing install can ignore until it opts in. This is deliberate — upgrading to v2.1 changes nothing about a running shop unless you act.

FeatureDefaultHow to turn it on
Stripe billingInactiveUnset STRIPE_SECRET_KEY means a $0 / FREE-style catalog works with no Stripe calls. Set the Stripe keys to enable paid checkout.
Plan limitsGenerous defaultsA static PLAN_LIMITS map applies until you seed a real SubscriptionPlan catalog; null means unlimited.
Upgrading from v2.0

Pull both repositories, reinstall dependencies, and apply the new database migrations on the backend (multi-day holidays, loyalty redemption fields, and the billing/subscription tables). The full step-by-step is in Updating the Project. No data is rewritten — every new column is additive and nullable.

Where to Go Next

If you want to…Read
Charge tenants and enforce plan limitsSubscriptions & Billing
Operate the platform as the providerPlatform Administration
Let customers redeem points at the tillLoyalty Points & Rewards
Set up multi-day leave and holidaysHRM — Leave & Holidays
Customize the workspace per userWorkspace & Appearance