Complete reference for CWInvoice v1.0.0 โ installation, invoicing, recurring billing, reports, users and troubleshooting.
17-chapter PDF guide included with your purchase โ installation, all modules, SMTP setup, user permissions, and a production go-live checklist.
โฌ Download User Guide PDFCWInvoice is a self-hosted, flat-file invoicing system built for Caribbean freelancers and small businesses. It runs on standard cPanel hosting with PHP 7.4 or higher and requires no database โ everything is stored in JSON files on your server.
CWInvoice does one thing well: invoicing. For full double-entry accounting, bank reconciliation and financial statements, consider upgrading to CWBooks.
json, session, curl, opensslpublic_html/ (root) or public_html/invoice/ (subdirectory).data/ directory is writable (755 or 775). Set via File Manager โ Change Permissions.https://invoice.yourdomain.com. You will be redirected to the setup wizard automatically.CWINV-XXXX-XXXX-XXXX-XXXX license key.data/ directory after installation โ it contains all your invoices, clients and settings.
The Quick Setup wizard collects: Company Name, Currency (JMD, USD, TTD etc.), Country, Admin Name, Email Address, Password (min 8 chars), and your License Key.
After installation, add your address, phone, website and tax number under Settings โ Company. Configure tax rates (GCT, VAT etc.) under Settings โ Tax Rates.
Go to Invoices โ New Invoice. Select a client, set issue and due dates, choose currency, then add line items (description, quantity, unit price, tax rate). The total calculates live.
Click Record Payment on the invoice detail page. Enter amount, date, method (Bank Transfer, Cash, Cheque, Card) and an optional note. Partial payments are fully supported.
Every invoice has a PDF button generating a downloadable PDF with your company details, client details, line items, tax breakdown and payment terms. No external library required.
Estimates work like invoices. Send one to a client for approval. Once they accept, use Convert to Invoice to create a draft invoice with all line items pre-filled โ no re-entry.
Statuses: Draft โ Sent โ Accepted / Declined โ Invoiced (after conversion) or Void.
Every invoice and estimate must be linked to a client. Each client record stores name, email, phone, address, tax number (TRN, VAT, etc.), preferred currency and internal notes.
The client profile page shows all linked invoices and estimates, plus total revenue collected from that client.
Go to Recurring โ New Recurring. Set up a template with the same fields as a regular invoice, plus a schedule: Frequency (weekly, monthly, quarterly, yearly), Start Date, optional End Date, Due Days, and Auto-Send (emails the generated invoice automatically if SMTP is configured).
CWInvoice checks for due templates on every authenticated page load, once per day. No cron job required.
Use Pause to temporarily stop a template without deleting it. Use Resume to restart.
Monthly revenue breakdown with a bar chart (invoiced vs collected), KPI tiles (total invoiced, total collected, outstanding, collection rate), and a month-by-month table. Use the year selector to switch years.
Groups all outstanding invoices by days overdue: Current, 1โ30, 31โ60, 61โ90, and 90+ days. Each row has a Remind button to email a payment reminder directly from the report.
Two roles: Admin (full access) and User (module-level access). Admin can create users and assign permissions per module: Invoices, Estimates, Clients, Recurring Invoices, Reports. Settings, Users, and Audit Log are always Admin-only.
Go to Users โ New User to add a staff account. Check/uncheck module boxes to control access. Users only see nav links for modules they have permission for.
{PREFIX}-{YEAR}-{NNNN})Admin-only. Records every create, update, delete, send, payment, void, login and logout event with user, email and timestamp. Append-only โ cannot be edited. Stored in data/audit.json, capped at 2,000 entries with automatic pruning.
Configure in Settings โ Email / SMTP:
mail.yourdomain.commail.yourdomain.com, port 587, encryption TLS. Same credentials as your webmail login.
CWInvoice requires a CWINV-XXXX-XXXX-XXXX-XXXX license key. It is validated against cwfms.com and cached on your server for 48 hours. Find your key in your purchase confirmation email or My Purchases.
To update: Settings โ License Key โ enter new key โ Save. The old cache clears immediately.
public/.htaccess containing RewriteEngine Off/api/license.php if ModSecurity is activedata/ is writable (chmod 755); check PHP error log via cPanel โ Errorsdata/settings.json is missing; ensure data/ was not excluded during uploadStill stuck? Email admin@cwfms.com
CWPay is a self-hosted payment link manager that integrates directly with CWInvoice. When a customer pays a CWPay payment link that references one of your invoices, CWInvoice automatically marks it as paid โ no manual action required.
INV-2026-0012) in the Invoice / Reference field.Go to Settings โ CWPay Integration:
https://your-cwinvoice.com/webhook/cwpayIn your CWPay installation โ Settings โ Integrations โ CWInvoice:
INV-2026-0012 not INV2026-12.
CWPay supports the following payment methods, all of which trigger the automatic reconciliation webhook when payment is confirmed:
data/ directory not publicly accessible (test: yourdomain.com/data/ should return 403)public/.htaccess in placedata/ directory backed upGet CWInvoice for $39.00 โ instant download, full source code, license key delivered by email.
Buy CWInvoice โ $39.00 โ