When & How to Issue Proforma Invoice Credit Note in WHMCS
As Fast as Possible
This table presents a list of characteristics which are covered in more detail in the next chapters.
Proforma | Invoice | Credit Note | |
---|---|---|---|
Description | Provisional bill of sale | Record of what was sold and what is owed | A negative invoice |
Issuing | Before you deliver your services | When someone owes you payment | To issue refunds, return overpayments, correct invoices |
Fiscal value | No | Yes | Yes |
Required | No | Yes | Yes |
Sequential numbering | No | Yes | Yes |
Payment is due | No | Yes | No |
Can be changed | Yes | No | No |
Can be cancelled | Yes | No | No |
WHMCS support | Yes | Yes | No |
Now the bad news. WHMCS ignores most of these concepts. It's sad to say, but WHMCS treats billing as if it was nothing important. It doesn't even draw a clear distinction between a proforma and an invoice. Credit notes are not supported.
The good news is that Billing Extension fills missing gaps and compensates the billing lacks of WHMCS. But it also introduces new long-awaited features like monthly invoicing, cash flow, Facebook Pixel, PDF invoice archiving and much more.
Before we dig into the topic, we want to point out that the module always shows document type. We use a grey icon for proforma. Invoice and credit note both have a blue icon but the latter has a little yellow tag at the bottom-right corner.
From Addons > Billing Extension > Settings it is possible to customize proforma, invoice and credit note individually. Unlike invoices, proforma and credit notes can be disabled entirely from your system.
What is a Proforma
A proforma is used to produce a document to customers for services that still need to be paid and delivered. WHMCS generates them when customers place new orders and also for renewals.
It's important to underline that a proforma is just a piece of paper with no fiscal value. Simply put, you don't need to send it to your accountant. For simplicity reasons each proforma follows a sequential numbering but there's no legal obligation as they have no fiscal value.
The proforma ceases to exist once the customer pays it. When it happens, the proforma disappears from WHMCS as it is converted into a real invoice. This opens up a whole new scenario.
WHMCS doesn't keep a reference of the original proforma. Customers and administrators could be confused by that. That's why Billing Extension integrates a feature that makes sure proforma number is always included in invoices.
To use this feature, begin visiting Addons > Billing Extension > Settings > Billing Preferences and enable Reference Number. This adds the following variables:
- {$reference_proformanum} for the printable version (viewinvoice.tpl)
- $reference_proformanum for the PDF version (invoicepdf.tpl)
You can place these variables anywhere you want. That's how we placed it in the printable version.
As for the PDF version, we placed it at top-right corner.
We understand that editing invoicepdf.tpl file could be difficult as it uses TCPDF syntax therefore we provide you the snippet we used in the above example.
$pdf->SetFont($pdfFont, 'B', 15);
$pdf->SetFillColor(239);
$pdf->Cell(0, 8, $pagetitle, 0, 0, 'L', '1');
$pdf->SetFont($pdfFont, '', 8);
$pdf->Cell(0, 6, $reference_proformanum, 0, 0, 'R', '1');
$pdf->Ln(8);
This feature also works for invoice suppression. Please refer to WHMCS monthly invoicing for details. In this case proforma numbers are included next to every invoice item.
You can freely customize the description by overriding the following language variable.
$_ADDONLANG['hook']['clientsdetails']['invoice']['referencenum'] = '(Proforma #%proformanum)';
Back to the original topic, it is possible to disable proforma invoicing but it's recommended to use it otherwise every document issued by WHMCS will be a real invoice that needs be recorded as such. This includes unpaid invoices.
What is an Invoice
It's a document you send when someone owes you payment. Due to the nature of business carried out by WHMCS, generally invoices are always issued after the payment is received. In fact providers do not setup hosting accounts neither register domains before the payment is made meaning all invoices in WHMCS are always "Paid".
That said, from time to time you may need to issue unpaid invoices for services you have already delivered to customers. For example it could be a consulting service or a custom job with no upfront payment. In this case Billing Extension lets you convert any proforma into an invoice (or a credit note) in one click.
Once issued, you are not allowed make changes to invoices:
- Seller's name and address (your company)
- Buyers name and address (your customer)
- Dates (created, due, paid)
- Invoice number
- Description of services or products
- Amounts (balance, tax, credit, total etc.)
All these information can't change. It can help thinking that invoices are "freeze". Anyway as administrator you can make changes directly from invoice view by using the following tab.
This opens a new section from which you can alter invoice snapshot and even compare the differences with "live" data but that's another story we treat in updating invoice data snapshot from WHMCS administration article.
Generally speaking, invoice numbering must be sequential and should never contain repeats or gaps. There are also other requirements but don't panic. Billing Extension integrates a system that can detect and prevent invoice mistakes in WHMCS.
What is a Credit Note
A credit note is effectively a negative invoice issued by a seller to a buyer in various situations to correct incorrect invoices, to handle overpayments and refunds. In some countries credit notes are also called credit memo or reverse invoice but they're the same thing.
As we said earlier, WHMCS doesn't support credit notes but our module compensates this lack. To this end, we created a dedicated article that explains how to issue credit note in WHMCS.
As for the rest, credit notes and invoices are like twins. They have the same requirements and need to be managed in the same way.
Like invoices, credit notes can't be changed once issued and they must follow a sequential numbering that should never contain repeats or gaps. Such sequential numbering can be shared with invoices or separated. Here's a comparison.
Shared numering | Dedicated numbering |
---|---|
Invoice #1 | Invoice #1 |
Invoice #2 | Credit Note #1 |
Credit Note #3 | Invoice #2 |
Invoice #4 | Invoice #3 |
Credit Note #5 | Credit Note #2 |
The credit note is often linked to an invoice as it is issued to correct incorrect invoices. However, it is possible to issue them separately. When there's a connection between a credit note and an invoice, Billing Extension always tells you.
Comments (0)