CWFMS Wealth Manager
Complete reference for installing and using CWFMS — the self-hosted personal and business wealth management system built for Caribbean businesses and individuals.
Requirements
| Component | Requirement |
|---|---|
| PHP | 7.4 or higher (8.x recommended) |
| Extensions | curl, json, mbstring, zip |
| Database | None — flat-file JSON storage. No MySQL or SQLite required. |
| Web Server | Apache / LiteSpeed / Nginx. Standard shared hosting supported. |
| Writable dirs | data/ and all sub-directories must be writable by the web server |
CWFMS uses a flat-file JSON store — no database server needed. Deploy on any cPanel shared hosting in minutes.
Installation
- Purchase and download
cwfms-system.zipfrom your customer account. - Upload and extract to your desired path — CWFMS supports subdirectory installs (e.g.
yourdomain.com/bo/). - Ensure the
data/directory is writable:chmod 775 data/
- Visit the install path in your browser — CWFMS auto-detects a fresh install and prompts for setup.
- Complete the setup wizard and activate your license key from Admin → Settings → License.
First-Run Setup
On first access CWFMS detects no settings file and walks you through initial configuration:
- Company name and currency — your base currency is set here and used for all stored amounts.
- Administrator account — email and password. Store it securely.
- Select modules — enable personal, business, or both.
- Complete Setup — data directories are created and you are redirected to the dashboard.
Base currency warning: Change the base currency only before entering data. Existing stored amounts are not retroactively converted.
Net Worth
Track all personal assets and liabilities in one place — bank accounts, property, vehicles, loans, credit cards, and investment portfolios. The net worth dashboard shows your total position with trend charts over time.
- Assets: bank accounts, property, vehicles, investments, other
- Liabilities: loans, mortgages, credit cards, other debts
- Net worth = Total Assets − Total Liabilities
- Historical tracking with configurable snapshots
Budgets & Goals
Set monthly budgets per category and track actual spending against targets. Savings goals track progress toward a target amount — linked to a savings account for automatic balance mirroring, or updated via manual contributions.
Investments
Full investment portfolio tracker — stocks, bonds, real estate, crypto, unit trusts and funds. Per-holding: instrument, units, buy price, current price, unrealised P&L and asset class allocation. Live portfolio summary KPIs including principal invested, market value, and net portfolio value.
Companies
CWFMS supports multiple companies under one install. Each company has its own transactions, employees, accounts, invoices, customers, and reports. Switch between companies from the navigation — data is fully isolated per company.
Business Cashflow
Record all business income and expenses with full categorisation. The business dashboard shows income vs. expenses, net cashflow, and trend analysis per company. Recurring transaction templates automate regular entries.
| Field | Description |
|---|---|
| Date | When the transaction occurred |
| Amount | Positive = income, negative = expense |
| Category | Revenue, COGS, OPEX, Other Income/Expense |
| Account | Which bank or cash account this affects |
| Recurring | Set frequency for automatic template-based entries |
Payroll
Process payroll with statutory deductions across 24 Caribbean tax jurisdictions. Supports Simple Pay for contractors. Each payroll run generates a net pay figure and posts automatically as a business expense transaction.
If you also use Folio, payroll expenses can be pushed automatically from Folio to CWFMS when a payroll run is marked as paid. See Folio CWFMS Integration →
Invoicing
Generate professional invoices per company — add line items, apply tax rates, and track payment status. Invoices are stored as JSON and can be exported to PDF. Customer records track total revenue per client.
Quick Sale POS & Petty Cash
The Quick Sale POS provides a simple point-of-sale interface for retail transactions — search products, set quantities, apply discounts, and complete sales in a business context. Petty cash tracks small cash expenses outside the main ledger.
The POS is enabled per-company. Go to Settings → Cart & POS → toggle for the relevant company.
Tax & GCT
The GCT (General Consumption Tax) tracker records tax collected and paid per company per period. The self-employed tax module helps freelancers and sole traders organise income records across 24 supported Caribbean tax jurisdictions for quarterly and annual filings.
Roles & Access
| Role | Access |
|---|---|
| Admin/Owner | Full access — all modules, settings, user management, all companies |
| Accountant | Financial access — transactions, reports, payroll for assigned companies |
| HR | Employee records, payroll view, leave — no financial transactions |
| Employee | Own payslip and leave balance view only |
Reports & Exports
- Business cashflow report — by company, date range, category
- Payroll reports — gross, deductions, net per employee
- Invoice reports — outstanding, paid, by customer
- Net worth history — snapshot over time
- All exports available as PDF and CSV
REST API
CWFMS includes a lightweight REST API for integrations. Enable it in Settings → Integrations → API and generate an API key.
| Endpoint | Description |
|---|---|
| GET /api/v1/status | API health check |
| GET /api/v1/companies | List companies |
| GET /api/v1/business/transactions | List business transactions for a company |
| POST /api/v1/business/transactions | Create a business transaction |
| GET /api/v1/business/employees | List employees for a company |
| POST /api/v1/business/invoices | Create an invoice |
All requests require: Authorization: Bearer {api_key}
The Folio CWFMS integration uses this API to post payroll expenses automatically. See Folio Docs → CWFMS Integration.
Settings
| Setting | Description |
|---|---|
| Company Name | Displayed in header, reports and exports |
| Base Currency | Storage currency for all transactions — set once before entering data |
| API | Enable REST API and generate key for integrations |
| License | Activate and manage your CWFMS license key |
| Backups | Automated rolling backups with 5-backup retention via cron |
| Webhooks | Fire HTTP callbacks on key events (invoice created, payroll processed etc.) |
Security
- Passwords hashed with bcrypt — never stored in plaintext
- Session regeneration on login — prevents session fixation
- CSRF tokens on every POST
- API key auth via
Authorization: Bearerheader - Data directory blocked from web access via
.htaccess - All user input escaped with
htmlspecialchars()before rendering
Troubleshooting
| Issue | Resolution |
|---|---|
| Blank page on first load | Ensure data/ is writable (chmod 775). Check PHP error log for details. |
| API returning 401 | API must be enabled in Settings → Integrations. Check the Bearer token matches the generated key exactly. |
| API returning 403 | API is disabled. Enable it in Settings → Integrations → API enabled. |
| Payroll push from Folio fails | Confirm the API is enabled and the API key in Folio matches CWFMS. See Folio Docs. |
| Currency toggle does nothing | Check browser console (F12) for JS errors. Confirm exchange rates are configured in Settings. |
| POS not showing for a company | POS must be enabled per-company in Settings → Cart & POS. |
| LimitExcept error in .htaccess | LimitExcept is incompatible with LiteSpeed. Remove it from .htaccess. Use SecRuleEngine Off for API endpoints if ModSecurity is blocking them. |
Also See
CWFMS manages your money. Folio manages your people. They're designed to work side by side.