CWFMS Wealth Manager
Documentation
Everything you need to set up, configure and get the most from your CWFMS instance — from first deploy to advanced multi-company configuration.
CWFMS Setup & Finance Guide — PDF Edition
The complete 22-page offline reference covering every module, all statutory deductions, tax planning, troubleshooting and a monthly workflow checklist.
⬇ Download PDF Guide Contact Support01 — Getting Started & Initial Setup
CWFMS runs on PHP 7.4+ on standard shared hosting. No database server, Docker or Node.js required — just a web host with PHP and a domain name.
System Requirements
| Requirement | Details |
|---|---|
| PHP | 7.4 or higher (8.x also supported) |
| Extensions | cURL, JSON, MBString, OpenSSL |
| Web server | Apache / LiteSpeed / Nginx (cPanel-compatible) |
| Storage | Minimum 50 MB for application + data |
| Domain | Any domain or subdomain (yourname.cwfms.com recommended) |
| HTTPS | Strongly recommended — free via Let's Encrypt |
Installation
- 1
Download the zip from your email link or account dashboard after purchase.
- 2
Extract locally — unzip the archive. You will see the full folder structure.
- 3
Upload via cPanel File Manager or FTP — upload the contents of the zip (not the zip itself) to your desired web directory, e.g.
public_html/for root orpublic_html/cwfms/for a subdirectory. - 4
Set permissions — ensure
data/is writable by PHP (chmod 750or755). Most cPanel hosts handle this automatically. - 5
Visit your domain — CWFMS detects first-run and redirects to the setup wizard.
app.yourdomain.com or finance.yourdomain.com to keep CWFMS separate from your main website. Easy to configure in cPanel → Subdomains.First-Run Onboarding
The onboarding wizard walks you through essential configuration. Complete each screen before using the system.
- Admin credentials — set your username and secure password
- Personal profile — name, timezone and preferred currency
- First company — create your primary business entity
- Country & tax jurisdiction — determines payroll and GCT defaults
- Opening balances — optional: enter starting figures for net worth accuracy
User Roles
CWFMS supports four roles. Each role sees only the modules it needs.
| Role | Access |
|---|---|
| Admin | Full access to all modules, settings, users and companies |
| Accountant | Business finance, cashflow, invoices, reports and tax records |
| HR Office | Payroll, employee records, Simple Pay — no financial reporting |
| Employee | Personal finance dashboard only — budgets, goals, net worth |
Company & Currency Setup
Every financial record in CWFMS is attached to a company. Even personal finances use a company record — typically your own name as a sole trader.
- Go to Settings → Companies → Add Company to create a new entity.
- Set the home currency per company — JMD, USD, TTD and all major currencies supported.
- The country field determines the payroll tax jurisdiction for that company.
- Switch between companies at any time using the sidebar Company Selector — no re-login needed.
02 — Personal Net Worth Tracking
Net worth is your total assets minus total liabilities. CWFMS calculates it automatically from everything you enter and tracks it over time.
Adding Assets — Navigate to Personal → Assets
| Asset Category | Examples |
|---|---|
| Cash & Bank Accounts | Chequing, savings, mobile money (NCB, Scotiabank, JN) |
| Property | Land, home, rental property — use current market value |
| Vehicles | Cars, trucks, motorcycles — depreciate over time |
| Investments | Stocks, unit trusts, bonds, pension |
| Business Equity | Value of your business stake — link to a company |
| Other Assets | Jewellery, equipment, receivables, cryptocurrency |
Adding Liabilities — Navigate to Personal → Liabilities
| Liability Type | What to Enter |
|---|---|
| Mortgage | Outstanding balance — not the original loan amount |
| Vehicle Loan | Remaining balance on car finance |
| Credit Card | Total balance currently owed across all cards |
| Personal Loan | Bank or private loans |
| Student Loan | Education financing still being repaid |
| Other Liabilities | Tax owed, hire purchase, family loans |
Investments & Portfolio
Go to Personal → Investments → Add Holding. Select the type (Stocks, Unit Trust, Bond, Pension, Crypto, Other), enter quantity, purchase price and current market price. CWFMS calculates unrealised gain/loss automatically.
Update prices monthly — that's sufficient for most investors. The allocation chart shows your wealth distribution across all asset categories.
03 — Budgets & Savings Goals
Navigate to Personal → Budgets → New Budget to create a monthly plan comparing income against planned and actual expenses.
Standard Expense Categories
| Category | What to Include |
|---|---|
| Housing | Mortgage/rent, maintenance, insurance, property tax |
| Food & Groceries | Supermarket, market, meal prep |
| Transport | Fuel, bus fare, car insurance, maintenance, tolls |
| Utilities | Electricity, water, internet, phone |
| Health | Insurance premiums, medication, doctor visits |
| Education | School fees, books, courses, tuition |
| Entertainment | Dining out, streaming, hobbies, events |
| Savings Transfer | Amount moved to savings goals each month |
| Debt Repayment | Loan and credit card payments beyond minimums |
| Miscellaneous | Gifts, charitable giving, unexpected costs |
Savings Goals
Navigate to Personal → Goals → New Goal. Two goal models exist:
- Savings Account model — for
savings_accountcategory goals. The balance mirrors a linked asset automatically. No manual contributions needed. - Contribution model — for all other categories. Record contributions manually. CWFMS shows progress and projects whether you will hit your target date.
04 — Business Cashflow Setup
The business modules cover cashflow tracking, Quick Sale POS, Petty Cash and Recurring Transactions. Everything resolves per-company — currency, country and tax settings are never shared between companies.
Transaction Fields
| Field | Description |
|---|---|
| Type | Income or Expense |
| Amount | In the company's home currency; foreign currency auto-converted |
| Category | Select from your list or create new |
| Date | Transaction date (not entry date) |
| Reference | Invoice number, cheque number, or payment reference |
| Notes | Client name, project, description |
| Recurring | Mark to set up automatic future entries |
Quick Sale (POS)
A lightweight point-of-sale screen for rapid sales recording — ideal for barbers, market vendors, plumbers and service businesses. Navigate to Business → Quick Sale.
Petty Cash Module
Tracks your on-hand cash float separately from your bank balance. Navigate to Business → Petty Cash. Set an opening float, record payments with categories, top up when low, and reconcile monthly.
Recurring Transactions
Automate regular entries — rent, subscriptions, loan repayments. Navigate to Business → Recurring → New Recurring. Supports Weekly, Bi-weekly, Monthly, Quarterly and Annual frequencies with optional Auto-Post.
05 — Payroll & Simple Pay
The Payroll module handles statutory deductions across 13 supported jurisdictions. Simple Pay covers contractors and irregular payments.
Statutory Deductions — Jamaica (JMD)
| Deduction | Rate |
|---|---|
| NIS (National Insurance Scheme) | Employee: 3% · Employer: 3% (up to ceiling) |
| NHT (National Housing Trust) | Employee: 2% · Employer: 3% |
| Education Tax | Employee: 2.25% · Employer: 3.5% |
| PAYE (Income Tax) | Tax-free threshold applies; progressive rates above |
| HEART (where applicable) | Employer: 3% of gross payroll |
tax_jurisdictions.json. Always verify against the relevant tax authority for the latest figures.Simple Pay for Contractors
Navigate to Business → Simple Pay → New Payment for one-off or irregular contractor payments.
06 — Tax Planning & GCT Records
GCT Tracker
Navigate to Business → GCT Tracker. Records GCT-able sales and purchases, calculates the net GCT position for each return period, and generates summary reports for filing.
Self-Employed Tax Module
Navigate to Personal → Self-Employed Tax. Enter estimated gross income and allowable expenses. CWFMS calculates your estimated taxable profit, tax liability and monthly set-aside figure. Use Reports → Self-Employed Summary as a basis for your S01 return at year end.
13 Supported Jurisdictions
The active jurisdiction is set per company via the Country field. CWFMS ships with pre-configured tax data for all of the following:
07 — Reports, Exports & Documents
| Report | Area | What It Shows |
|---|---|---|
| Net Worth Statement | Personal | All assets, liabilities and net position |
| Cashflow Statement | Business | Income vs expenses over a period |
| Profit & Loss | Business | Revenue, COGS and expenses |
| Budget vs Actual | Personal | Planned vs real spend by category |
| GCT Summary | Business/Tax | Output tax, input tax, net GCT for a period |
| Payroll Summary | Business | Employee earnings and deductions |
| Self-Employed Tax | Personal/Tax | Estimated annual tax and monthly set-aside |
| Goals Progress | Personal | All goals with balance and completion % |
| Investment Portfolio | Personal | Holdings, values and unrealised gain/loss |
| Expense by Category | Both | Spend breakdown for any period |
| Transaction Ledger | Both | Full paginated list with filters |
Every report has an Export button: PDF (formatted, print-ready), CSV/Excel (raw data), or JSON (structured, technical).
08 — Multi-Company Configuration
CWFMS supports unlimited companies in one instance with complete data isolation. Each company has its own transactions, payroll, invoices, GCT registration, currency and reporting periods.
companyContext() internally. Never hard-code currency or country in custom reports — always use the system context helpers.Consolidated Views
| Metric | Description |
|---|---|
| Total Revenue (All Companies) | Sum of all income across all entities |
| Total Expenses (All Companies) | Sum of all expenses across all entities |
| Net Position | Consolidated profit across all businesses |
| Net Worth (Personal + Business) | Personal net worth plus business equity stakes |
The consolidated view converts all amounts to your personal home currency using exchange rates set in Settings → Currency Rates. Update rates monthly for accurate reporting.
09 — Cart & POS Module
The Cart & POS plugin turns CWFMS into a full point-of-sale system for retail counters, service desks, food & beverage, and any business that takes in-person payments. Sales post directly to the company ledger and the correct bank or cash account.
Enabling Cart & POS
Go to Settings → Features and enable Cart & POS (requires Business module). A Cart & POS link then appears under the Finance group in each company sidebar. You can also enable or disable it per-company from Cart & POS → Settings.
First-Time Setup
- Generate API Key — Cart & POS → Settings → Cart POS API Key → Generate. Copy the key immediately — it is shown once in full then masked.
- Map Payment Accounts — Settings → Account Mapping. Link each payment method to a company account (Cash → Petty Cash, Card → Checking). Sales post to these accounts automatically.
- Add Products — Products are pulled from Business → Products. Add items with prices, SKUs and stock quantities.
- Open a Session — Navigate to Cart & POS and click Open Session. Enter the opening cash float. A session tracks all sales for that shift.
Standalone POS
The standalone POS is a full-screen interface designed for a dedicated terminal or tablet — no sidebar, no CWFMS shell. Access it from Cart & POS → Settings where the URL is shown with an Open → button. Bookmark it on the device. The layout is two columns: product grid on the left, cart and checkout panel on the right.
Processing a Sale
Tap a product card to add it to the cart. Use the −/+ buttons to adjust quantities or ✕ to remove. For unlisted items, use the manual entry bar at the bottom. Apply a discount (percent or fixed) from the discount row. Select a payment method, enter cash tendered if paying cash — change is calculated automatically — then click Charge.
Payment Providers
Three providers are always available with no configuration. External providers appear in the POS only after credentials are saved in Cart & POS → Settings → Payment Providers.
| Provider | Type | Notes |
|---|---|---|
| 💵 Cash | Offline | Change calculated automatically |
| 💳 Card | Offline | Records terminal reference — no external processing |
| 🏦 Bank Transfer | Offline | Records reference — add bank details in Settings |
| 💳 Stripe | Online | Checkout Sessions — redirects to Stripe hosted page |
| 🅿 PayPal | Online | Orders API v2 — redirects to PayPal approval page |
| 🇯🇲 WiPay | Online | Caribbean — JMD, TTD, BBD supported |
| 🟡 AmberPay | Online | Jamaican digital payments |
Receipt Printing
After every sale a receipt is generated. Three print modes are supported — configure in Cart & POS → Settings → Printer Profile.
| Mode | How it works | Best for |
|---|---|---|
| Browser | Opens receipt tab, triggers window.print() | Any device — default |
| Network | Sends ESC/POS over HTTP or TCP to printer IP | Epson, Star, dedicated thermal |
| Web Serial | Chrome/Edge direct USB — no driver needed | USB thermal on HTTPS site |
Sessions & Void
Each cashier opens a session with a cash float and closes it at shift end. View session summaries at Cart & POS → Sessions. Admins can void receipts from the receipt detail page — voiding reverses the transaction, restores stock, and records a reason.
10 — Troubleshooting & Common Issues
Blank page or 500 error on first visit
Check that the data/ directory is writable (chmod 750 or 755). Check your PHP error log for the exact message.
Currency showing incorrectly
The currency always comes from the selected company. Switch to the correct company using the Company Selector in the sidebar.
Payroll deductions seem wrong
Verify the company Country setting — statutory rates load per country. Check Settings → Payroll for the correct rate file and ceiling figures.
GCT return period is off
Set your return frequency (Monthly/Bi-monthly) in Business → GCT Tracker → Settings. Ensure the period start date matches your TAJ registration.
Goal balance not updating
For savings_account category goals, the balance mirrors a linked asset. Check that the goal is linked to the correct asset record in Goal settings.
Budget categories showing as negative
Expense transactions must be recorded with negative amounts. Check that expense entries use minus values.
Cannot log in after first setup
Clear browser cookies and try again. If still stuck, check data/settings.json — if admin_pass is blank, navigate directly to /admin/setup.php.
Exchange rates not converting
Go to Settings → Currency Rates. The rates object must be a flat dictionary {"JMD": 156.25} — not an array of objects. Check JSON formatting carefully.
Backup & Restore
CWFMS stores all data in the data/ directory as JSON files. No database restore needed — just upload the folder contents to restore.
- Manual backup: Download the entire
data/folder via cPanel File Manager or FTP. Do this at minimum monthly, ideally weekly. - Automated backup: Use cPanel's built-in backup scheduler to include your web files in nightly or weekly backups.
- Before upgrades: Always take a full backup before uploading a new version of CWFMS.
Monthly Workflow Checklist
Follow this routine each month to keep data accurate and reports meaningful.
Personal Finance
- ☐ Update asset values (property, vehicles, investments)
- ☐ Reconcile bank account balances in CWFMS
- ☐ Record all income and expenses for the month
- ☐ Review budget vs actual — identify any overspending
- ☐ Make goal contributions and record them
- ☐ Check net worth vs prior month
Business Finance
- ☐ Post all outstanding sales and purchase transactions
- ☐ Reconcile petty cash float
- ☐ Process payroll for the pay period
- ☐ Review GCT position (if registered)
- ☐ Send any outstanding invoices
- ☐ Chase overdue invoice payments
- ☐ Run monthly cashflow report
Invoicing
Navigate to Business → Invoices → New Invoice. CWFMS generates branded PDF invoices with GCT line items, payment terms and client records.
Invoice Fields
| Field | Notes |
|---|---|
| Client | Saved to client records — reusable across invoices |
| Line Items | Description, qty, unit price, GCT rate per line |
| Payment Terms | Due date, bank details, payment instructions |
| Currency | Inherits from company — override per invoice |
| Status | Draft → Sent → Paid → Overdue (auto-flagged) |
Mark invoices as paid to automatically post the corresponding income transaction. Overdue invoices are flagged on the dashboard and trigger alert emails if configured.
Bills & Vendors
Navigate to Business → Bills and Business → Vendors. Bills tracks what you owe to suppliers; Vendors stores supplier profiles for reuse.
- Create a vendor record once — reuse across all bills
- Bills track due dates and payment status (Unpaid → Paid)
- Paying a bill posts the expense transaction automatically
- Overdue bills appear on the dashboard and in alert emails
- Filter bills by vendor, date range or status from the Bills list
Customers & Services
Business → Customers stores your client records — used across invoices, receipts and sales history. Business → Services stores your reusable service catalogue for quick invoice line entry.
- Customer records include name, email, phone, address and tax number
- Customer revenue history is visible from each customer profile
- Service items include description, default price and GCT rate — added to invoice lines in one click
- Both are company-scoped — each company has its own customer and service lists
Import — Bank, Broker & Crypto
CWFMS supports bulk import of historical data from three sources. Navigate to Tools → Import.
Bank Statement Import
Upload a CSV export from your bank. CWFMS maps columns (date, description, debit, credit) and creates transactions in bulk. Duplicates are detected by date + amount + description.
Broker / Investment Import
Import portfolio holdings and trade history from a broker CSV. Maps to the Investments module — holdings, purchase prices and quantities are created automatically.
Crypto Import
Import crypto wallet or exchange transaction history. Supports BTC, ETH and major altcoins. Each transaction is mapped to a crypto asset holding in Personal → Assets.
After any import, review the preview table before confirming — you can exclude rows or correct mappings before they are committed.
Global Search
Press / from any page or click the search bar in the top navigation. Global search covers transactions, invoices, customers, employees, products, receipts and documents across all companies you have access to.
- Results are grouped by type — Transactions, Invoices, Customers, etc.
- Filter results by type using the tabs below the search bar
- Search by amount, reference, description, name or date
- Results respect your role — HR users only see payroll-related results
- Clicking a result navigates directly to the record
Notifications
The bell icon in the top navigation shows system notifications. Configure what triggers a notification at Settings → Alerts.
- Invoice overdue — flagged when a sent invoice passes its due date
- Bill due — reminder when a supplier bill is approaching or past due
- Budget limit reached — when spending hits 80% or 100% of a category budget
- Goal milestone — when a savings goal hits 25%, 50%, 75% or 100%
- Payroll due — reminder before the next scheduled payroll run
- GCT return period ending — 7-day warning before a GCT return period closes
- Recurring transaction posted — confirmation when an auto-entry is created
- Cart POS sale completed — logged when a POS sale is finalised
Email notifications use the SMTP configuration in Settings → Email. The monthly summary digest can also be enabled to send a consolidated report at month end.
User Management
Navigate to Settings → Users (Admin only). Add, edit and manage all system users from this page.
Adding a User
- Click Add User and enter the name, username and email
- Set the role — Admin, Accountant, HR Office or Employee
- A temporary password is generated — the user should change it on first login
- Optionally restrict the user to specific companies
Roles Summary
| Role | Access |
|---|---|
| Admin (Owner) | Full system access — all modules, users, settings, companies |
| Accountant | Business finance, invoices, cashflow, GCT, reports — no HR or settings |
| HR Office | Payroll, employees, Simple Pay — no financial reporting |
| Employee | Personal finance dashboard only — budgets, goals, net worth |
Force password reset, deactivate or delete users from the user list. Deactivated users cannot log in but their data is preserved.
Security & 2FA
Navigate to Settings → Security or My Profile → Security.
Two-Factor Authentication (2FA)
- CWFMS supports TOTP-based 2FA (Google Authenticator, Authy, 1Password)
- Enable 2FA per user from My Profile → Security → Enable 2FA
- Admins can require 2FA for all users in Settings → Security
- Backup codes are generated at setup — store them securely
Passkeys (WebAuthn)
CWFMS supports passkey login on supported browsers (Chrome, Safari, Edge). Register a passkey from My Profile → Security → Add Passkey. Passkeys replace the password entirely for that device.
Session Management
- Sessions expire after the configured idle timeout (default 2 hours)
- Admins can terminate all active sessions from Settings → Security
- Login history and IP addresses are logged to the Audit Log
Audit Log
Navigate to Settings → Audit Log (Admin only). Every significant action in the system is recorded with a timestamp, user, IP address and description.
Events logged include: user logins, settings changes, transaction creates/edits/deletes, payroll runs, invoice status changes, Cart POS sales, license validations and user management actions.
- Filter by date range, user or action type
- Export the full audit log as CSV from the top of the page
- Admins can prune old entries (older than 90 days) from Tools to keep the log manageable
- Audit entries cannot be edited or deleted by any user role
System Tools
Navigate to Tools in the sidebar (Admin only). System Tools provides data management, backup and export utilities.
Backup & Restore
Create an on-demand ZIP backup of all company data from Tools → Backup. The backup includes all JSON data files — transactions, payroll, invoices, products, settings. Download immediately or restore from a previous backup file.
Data Export
- Full Export — all data as JSON, suitable for migration or archive
- Accounting Export — transactions formatted for import into accounting software
- Tax Export — GCT returns and payroll summaries formatted for TAJ submission
- Performance Export — system metrics and usage statistics
Maintenance
- Orphan Cleanup — removes dangling references left by deleted records
- Prune Audit Log — removes audit entries older than a configurable threshold
- System Health — checks PHP version, file permissions, data directory writability and license status
API & Integrations
CWFMS exposes a REST API at /api/v1/ for programmatic access. Authentication uses a Bearer token set in Settings → Integrations → API Key.
Available Endpoints
| Endpoint | Description |
|---|---|
GET /api/v1/transactions | List transactions with optional filters |
POST /api/v1/transactions | Create a new transaction |
GET /api/v1/invoices | List invoices by company |
GET /api/v1/products | List company products |
POST /api/v1/cart/complete | Complete a POS cart sale externally |
License API
The CWFMS license is validated against cwfms.com/api/license.php. On first activation, CWFMS sends the license key hash and domain. A signed token is cached locally for 48 hours — no remote call on every page load. If the server is unreachable, the cached token is honoured until it expires.
Scheduled Tasks (Cron)
For automated recurring transactions and email alerts, set up a cron job on your server to call the CWFMS cron endpoint daily:
0 7 * * * curl -s https://yourdomain.com/cron.php?key=YOUR_CRON_KEY > /dev/null
Set the cron key in Settings → Integrations → Cron Key. The cron job handles: auto-posting recurring transactions, sending scheduled alert emails, and flagging overdue invoices and bills.
Live Demo
A fully loaded demo environment is available at demo.cwfms.com. It contains pre-loaded company data across three entities (JMD, USD and KYD jurisdictions) covering all major modules.
Demo Credentials
| Role | Username | Password | Access |
|---|---|---|---|
| 👑 Admin (Owner) | admin | password123 | Full system |
| 📊 Accountant | marcus.levy | accountant123 | Finance & reports |
| 👥 HR Office | derek.washington | hroffice123 | Payroll & employees |
| 🧑💼 Employee | kezia.campbell | employee123 | Personal finance |
Demo data is reset periodically. Do not enter real personal or financial information in the demo environment.
→ View the full demo page with role descriptions at cwfms.com/demo.php
This documentation is updated with each major CWFMS release. For questions not covered here, email support@cwfms.com.
CWFMS v2.26.94 · Wealth Manager · cwfms.com