The Problem
WHMCS handles refunds, but doesn't generate proper credit note documents. This creates an EU accounting compliance gap.
What WHMCS Does
When you refund an invoice in WHMCS: 1. Invoice status changes to "Refunded" or "Cancelled" 2. Credit is added to client account 3. Transaction is recorded
What WHMCS doesn't do: generate a formal credit note document.
Why This Matters
EU/Belgian VAT regulations require formal credit notes for refunded invoices.
Under EU VAT Directive (Council Directive 2006/112/EC) and Belgian national law, businesses must issue credit notes when: - An invoice is cancelled after payment - A refund is processed - VAT liability needs adjustment - Accounting records need correction
Required credit note elements (Belgium/EU): - Clearly marked as "Credit Note" (not just "Refunded Invoice") - Unique sequential number - Reference to original invoice number and date - Negative amounts with minus (-) sign - VAT adjustment statement: "VAT to be refunded to the state to the extent it was originally deducted" - Complete supplier and customer details - Credit note issue date
Belgium 2026 e-invoicing mandate: Starting January 1, 2026, Belgium requires structured electronic invoices (and credit notes) in Peppol-BIS format for B2B transactions. Credit notes must follow the same e-invoicing rules as regular invoices.
The Compliance Gap
Your accountant gets: - WHMCS invoice marked "Refunded" (still positive amount) - Transaction log entry - No formal credit note document - No proper VAT adjustment documentation
This is insufficient for: - Belgian tax audits (10-year record retention requirement) - VAT reclaim procedures - Proper bookkeeping (negative amounts required) - E-invoicing compliance (from 2026)
Real consequences: - Accountants manually creating credit notes in external software - VAT adjustment errors - Audit complications - Administrative overhead - Potential fines (€25-€5,000 for improper invoicing in Belgium)
The Solution
Credit Notes for WHMCS automatically generates compliant credit note documents when invoices are refunded.
What It Does
Automatic Generation: - Hooks into WHMCS refund process - Creates credit note record in database - Generates PDF document matching WHMCS invoice style - Applies negative amounts (EU compliance) - References original invoice - Adds diagonal "CREDIT NOTE" watermark
Client Access: - "My Credit Notes" section in billing area - View and download PDFs - See credit amount and linked invoice - Automatic email notification (optional)
Admin Tools: - View all credit notes with statistics - Manual generation for edge cases - Resend notifications - Bulk PDF export - Nextcloud integration (if using Nextcloud Invoice Feeder)
Technical Implementation
Database: Creates mod_credit_notes_mapping table: - Invoice/credit linkage - Sequential credit note numbers - Client and amount data - Status tracking - Timestamps
PDF Generation: Uses WHMCS TCPDF library: - Matches invoice template exactly - Diagonal watermark (similar to WHMCS "Refunded" badge) - Negative amounts with minus sign - Company details and VAT ID - Professional layout
Hooks: - InvoiceRefunded - automatic generation trigger - ClientAreaPrimarySidebar - adds menu item - ClientAreaPage - credit notes display page
Storage: - PDFs stored in WHMCS temp directory - Database records permanent - Optional Nextcloud upload
Configuration
Auto Generate: Enable/disable automatic creation (default: enabled)
Auto Email: Send PDF to clients automatically (default: disabled - avoids spam for bulk operations)
Credit Note Prefix: Customize numbering (default: CN)
Description Template: Customize credit line item text
Sequential Numbering: Separate from invoice numbers for accounting clarity
Nextcloud Integration
Optional feature if using Nextcloud Invoice Feeder module.
Folder structure:
Invoices/
└── 2025/
└── Q1/
├── Invoices/
└── CreditNotes/ ← PDFs uploaded here
└── 20250120_CN001.pdf
Features: - Automatic upload on generation - Manual upload for existing credit notes - Bulk upload capability - Duplicate detection - Same folder structure as invoices
File naming: YYYYMMDD_CN###.pdf
When You Need This
Required if: - Operating in Belgium or EU - Subject to VAT regulations - Accountant requires proper credit note documents - Processing refunds regularly - Need e-invoicing compliance (Belgium 2026+)
Not required if: - No refunds ever processed - Operating outside EU with different regulations - Using external accounting system for all invoicing
Installation
- Purchase license here
- Upload to
/modules/addons/credit_notes/ - Activate in Setup → Addon Modules
- Enter license key
- Configure settings (or use defaults)
That's it. Refunds now generate compliant credit notes.
Technical Specifications
Requirements: - WHMCS 8.9+ - PHP 7.4+ - MySQL 5.7+
Languages included: - English - Dutch - French - German - Italian - Russian - Spanish
Security: - Client access validation - SQL injection protection (Capsule ORM) - File access checks (WHMCS constant validation) - PDF generation uses WHMCS TCPDF library
Performance: - Minimal overhead (hooks only fire on refunds) - PDFs generated on-demand - Database queries optimized - No impact on regular operations
Troubleshooting
Credit notes not generating: - Check module activated - Verify "Enable Auto Generate" setting - Check invoice status is "Refunded" - Review WHMCS activity log
Client can't see credit notes: - Verify they have refunded invoices - Check module active - Clear template cache
PDF generation fails: - Verify WHMCS temp directory writable - Check TCPDF library exists (included in WHMCS) - Review error logs
Nextcloud upload fails: - Verify Nextcloud Invoice Feeder module active - Check WebDAV credentials - Test Nextcloud Invoice Feeder with regular invoices first - Review activity log for specific error
Comparison: Before vs After
Before Credit Notes Module:
Refund processed → Invoice marked "Refunded" → Credit added to account
→ Accountant manually creates credit note in Word/Excel
→ File stored separately
→ VAT adjustment calculated manually
After Credit Notes Module:
Refund processed → Module creates credit note automatically
→ PDF generated with negative amounts
→ Stored in database
→ Client can download
→ Optional Nextcloud upload
→ Accountant receives proper document
E-Invoicing Compliance (Belgium 2026)
Current status (2025): - PDF credit notes acceptable - No structured format required yet
From January 1, 2026: - Belgium mandates Peppol-BIS structured e-invoices - Credit notes must be structured (same as invoices) - WHMCS doesn't support this natively
This module: - Generates compliant PDF credit notes now - Integrates with existing Peppol workflows - Doesn't need updates for 2026 compliance
ArkHost's Peppol Workflow
How we handle the 2026 requirement:
WHMCS → Generates invoices/credit notes (PDF)
↓
Nextcloud Invoice Feeder → Stores PDFs in organized structure
↓
Python script → Monitors Nextcloud folders
↓
Billit.be → Uploads to inbox mailbox
↓
Accountant → Reviews and approves in Billit
↓
Peppol Network → Billit converts to Peppol-BIS format and transmits
Key insight: WHMCS doesn't need to generate Peppol-BIS XML. Your accounting software handles the conversion.
Components: 1. WHMCS - Does what it's good at: billing management and PDF generation 2. Credit Notes module - Generates compliant credit note PDFs 3. Nextcloud Invoice Feeder - Organizes documents in yearly/quarterly structure 4. Python automation - Moves PDFs from Nextcloud to Billit inbox (custom script, environment-specific) 5. Billit.be - Accounting software that converts PDFs to Peppol-BIS and transmits
Note: The Python script is custom automation specific to ArkHost's infrastructure. Build your own based on your accounting software's API/import method.
Why this works: - WHMCS stays simple (just PDFs) - Accountant uses proper accounting software (Billit) - Billit is Peppol-certified Access Point - Conversion happens where it should (accounting layer) - No need to turn WHMCS into accounting software
Alternative accounting platforms: - Exact Online - Yuki - Octopus - Any Peppol-certified accounting software
Same principle applies: WHMCS generates PDFs, accounting software handles Peppol conversion.
The wrong approach: Trying to make WHMCS generate Peppol-BIS XML directly. WHMCS is billing software, not accounting software. Leave Peppol compliance to tools designed for it.
Why This Exists
ArkHost operates in Belgium. Our accountant complained that refunded invoices lacked proper credit note documentation. WHMCS has no built-in solution.
Options were: 1. Manual credit notes (time-consuming, error-prone) 2. External accounting software (duplicate data entry) 3. Build WHMCS module (solve it properly)
We built the module. It's in production at ArkHost with 115+ clients. Works reliably.
Made it available to other EU hosting companies facing the same compliance gap.
License
Commercial module licensed per WHMCS installation.
Purchase: Credit Notes for WHMCS
Invalid license disables automatic generation (manual generation still works with warning).