How do I Create an Invoice in WHMCS?

Updated on: September 18, 2026

Estimated reading time: 12 minutes

⚡ Quick Answer

To create an invoice in WHMCS, open the client, go to the Invoices tab, and click Create Invoice.

  1. Add line items
  2. Click Save Changes (invoice stays in Draft)
  3. Click Publish or Publish and Send Email

After publishing, the status becomes Unpaid.

⚠️ Recurring products are invoiced automatically by the daily cron. Do not recreate those manually.

WHMCS is built to create, send, and track invoices for hosting, domains, VPS, licenses, and other charges. Recurring products can invoice themselves. You can also raise a custom invoice for one customer when the charge is not a catalog product.

This guide walks through how to create that invoice, add items, publish and send it, record a payment, refund a paid invoice, set automation and reminders, and make payment easier when the client should not have to log in.

If you need a detailed guide, check what WHMCS is and how the WHMCS billing system works.

What is a WHMCS invoice?

A WHMCS invoice is the bill a customer pays. It lists the products, services, or other charges, the due date, tax, and the amount still outstanding.

You can use WHMCS invoices for:

  • Web hosting
  • VPS and dedicated servers
  • Domain registrations and renewals
  • SSL certificates
  • Software licenses
  • Setup fees
  • Maintenance
  • Consulting or development work
  • Other custom charges

WHMCS generates invoices automatically for recurring services. Admins create custom one-time invoices from the client profile when the work is not a product.

How to create an invoice in WHMCS?

Follow these steps to create an invoice in WHMCS:

Step 1. Log in to the WHMCS Admin Area

Sign in to the Admin Area. Confirm you can open clients and invoices. If you cannot see Billing or a client’s Invoices tab, your admin role is missing those permissions.

Step 2. Select the customer

Go to Clients > View/Search Clients or use the header search. Open the customer who should receive the bill. The invoice is stored on that account, with their payments and billing history.

If the person is not in WHMCS yet, add the client first (name, email, billing address, currency). The PDF uses those fields.

Open-the-client

 

Step 3. Open Invoices and click Create Invoice

On the client profile, open the Invoices tab. Click + Create Invoice. WHMCS opens a new invoice already linked to this customer. You type the charge. You do not have to pick a product from the catalog.

Billing > Invoices are for finding invoices that already exist. Start a new custom invoice from the client, as shown below.

Click-Create-Invoice

Step 4. Enter the invoice details

WHMCS fills out the dates for you. The invoice date is today. Due date follows Configuration > System Settings > Automation Settings.

To change the invoice date, due date, or payment method, open the Options tab on the invoice. Leave Options alone when the defaults already match your terms. Customer name, address, and email come from the client profile. Fix those on the profile if the PDF is wrong.

WHMCS saves a custom invoice as a Draft (proforma) until you publish it. The customer cannot see or pay a draft.

Step 5. Add invoice items

For each line, enter:

  • Description
  • Amount
  • Taxed, if tax should apply to that row

Click Add Item for another row. You can put several charges on one invoice.

Example:

Description Amount
VPS hosting, monthly 50.00
Additional IP address 5.00
Server setup 25.00

Write what the customer will recognize on a PDF. “VPS hosting, 4 vCPU, September 2026” is useful. “Service” is not.

Add-line-items

Step 6. Save as Draft and review

Check the customer, dates, items, amounts, tax, any discount, the total, and the payment method. Then click Save Changes.

The invoice stays in Draft. You can still fix a description or amount. Review here, before anyone is billed.

Save-the-invoice

Step 7. Publish the invoice

When the draft looks right, publish it. WHMCS gives you two buttons at the top right:

  • Publish and Send Email publishes the invoice and sends the Invoice Created email to the customer’s registered address.
  • Publish publishes the invoice with no email. Use this if you still want to check the PDF, or you will send the message later.

After publish, the invoice is Unpaid. The customer can see it and pay it. If you later need a change, cancel and create a new invoice, or apply credit. Do not casually rewrite a bill that already went out.

How to send an invoice to a customer

After you create and publish the invoice, you can email it from the WHMCS Admin Area. Use this if you clicked Publish without sending, or if you need to send the message again.

Step 1. Open the invoice

Go to Billing > Invoices. Search by invoice number and open that invoice. You can also open it from the client’s Invoices tab.

Step 2. Send the invoice email

On the invoice screen, find the email template dropdown and the Send Email button.

Select Invoice Created, then click Send Email. WHMCS sends the notification to the customer’s registered email. The message uses your invoice email template and includes the invoice and payment details from this installation.

Send-Invoice-Email

Step 3. Send an invoice reminder

For an unpaid invoice, pick a reminder template from the same dropdown, then click Send Email. Typical templates are:

  • Invoice Payment Reminder
  • First Invoice Overdue Notice
  • Second Invoice Overdue Notice
  • Third Invoice Overdue Notice

Use this when you need a one-off reminder. WHMCS can also send these automatically from Automation Settings (steps below).

How to view and manage WHMCS invoices

Step 1. Open Billing > Invoices

Go to Billing > Invoices. Search by invoice number, client, date, status, or amount. This list is the place to manage invoices that already exist.

Step 2. Open the invoice

From the list, or from the client’s Invoices tab, open the record. You can review:

  • Invoice items
  • Payments and transactions
  • Outstanding balance
  • Status (Draft, Unpaid, Paid, Cancelled, Refunded, Collections, Payment Pending)
  • PDF, print, and email

You can also open the same invoice from the client profile if you are already on that account.

How to Customise the WHMCS Invoice Template

You can customise the appearance and content of WHMCS PDF invoices by editing the invoice template files in your active WHMCS system theme. This method is available for self-hosted WHMCS installations and is not currently supported for WHMCS Cloud.

Step 1. Log in to the WHMCS Admin Area

WHMCS stores its PDF invoice template in the active system theme. The main file responsible for the PDF invoice is:

/templates/invoicepdf.tpl

This file controls the layout and content displayed in the generated PDF invoice.

Step 2: Edit the invoicepdf.tpl File

Open invoicepdf.tpl using a code editor and modify the existing PHP/Smarty template code. You can customise elements such as:

Element What it controls
Layout Overall invoice structure
Text and labels Static wording on the invoice
Customer information Name, address, contact details
Company information Your business details
Invoice totals Subtotal, tax, total amounts
Invoice items Line-item listing
Images Logo and other visuals
Formatting and styling Fonts, spacing, colors

⚡ NOTE

WHMCS generates PDF invoices using TCPDF, so basic knowledge of PHP and the template structure is recommended before making extensive changes.

Step 3: Customise the Invoice Header and Footer

For multi-page invoices, you can create separate header and footer templates:

  • invoicepdfheader.tpl
  • invoicepdffooter.tpl

Place these files in the same directory as invoicepdf.tpl. WHMCS will automatically include the header or footer on every page of the PDF when the corresponding file exists.

Step 4: Change the Invoice Logo

The PDF invoice logo is stored in:

/assets/img/

Replace the existing logo with your own logo.jpg or logo.png file. You can also adjust the logo width directly in invoicepdf.tpl.

Step 5: Add Custom Invoice or Client Information

WHMCS provides several variables that can be used inside invoicepdf.tpl:

Variable Displays
$invoiceid Invoice ID
$invoicenum Custom invoice number
$datecreated Invoice creation date
$duedate Due date
$datepaid Payment date
$userid Client ID
$clientsdetails[“firstname”] / [“lastname”] Client name
$companyname Your company name
$companyaddress Your company address
$invoiceitems Invoice line items
$subtotal, $tax, $credit, $total Invoice amounts
$paymentmethod Payment method used
$notes Invoice notes

You can also display client custom fields. First configure the relevant custom field under Configuration > System Settings > Custom Fields and select Show on Invoice.

How to record a payment for an invoice

Step 1. Let the gateway record online payments

If the customer pays in the Client Area through a configured gateway, WHMCS should mark the invoice Paid on its own. Do not click Add Payment on top of that. A second manual payment creates duplicates and odd credit.

Step 2. Add a manual payment for bank transfer or cash

If the money arrived outside a gateway, open the Unpaid invoice and use Add Payment. Enter amount, payment date, payment method, and transaction ID. Save. The invoice moves to Paid when the balance is zero.

How to refund an invoice

Only a Paid invoice can be refunded. Draft and Unpaid invoices cannot.

Step 1. Open the paid invoice

From the client profile > Invoices, or Billing > Invoices filtered to Paid, edit that invoice.

Step 2. Use the Refund tab

  • Choose the transaction to refund.
  • Enter the amount, or leave it blank for a full refund.
  • Choose the refund type: through the gateway (if the module supports it), manual refund, or add to the client’s credit balance.
  • Tick Reverse Payment if you want WHMCS to undo automated actions that payment triggered, where that is possible.
  • Tick send email if the customer should get a confirmation.
  • Click Refund.

How WHMCS automatically generates invoices

For recurring products, addons, and domains, you do not click Create Invoice each cycle. The daily cron raises the invoice before the next due date.

Step 1. Open Automation Settings

Go to Configuration > System Settings > Automation Settings (WHMCS 8 and later). Older builds used Setup > Automation Settings.

Step 2. Set invoice generation

Find Invoice Generation. The usual default is 14 days before the due date. The cron must be running or nothing generates.

When-WHMCS-generates-invoices-for-you

Step 3. Adjust by billing cycle if you need to

Use Advanced Settings to generate monthly, quarterly, and annual invoices on different lead times. Annual invoices often go out earlier because customers need more notice.

Generation will not run if the service is already invoiced for that period, terminated, or has invoicing disabled.

Need recurring custom invoices without creating products?

WHMCS can recur Billable Items on month-based cycles. That still lives on the client. If you want custom recurring invoices without creating a product or service, including a 7-day cycle, use the WHMCS Recurring Invoice Management module.

Admins create the recurring invoice in the admin area. The module generates the next invoices on the cycle you pick: 7 days, monthly, quarterly, semi-annually, or annually. That fits maintenance, consulting, management fees, and similar charges that should not be catalog products. More on weekly billing: can you raise weekly recurring invoices in WHMCS?

How to set up WHMCS invoice payment reminders

Step 1. Stay in Automation Settings

The reminder fields are in the same Billing Settings block as invoice generation: Configuration > System Settings > Automation Settings.

Step 2. Set the reminder days

WHMCS can send one reminder before the due date and up to three overdue notices after. Enter the number of days for each, or 0 to disable that notice. Late fees, if you use them, are configured here too.

Step 3. Save and rely on the cron

Save the settings. Reminders send when the daily cron runs. This cuts manual follow-up and helps on-time payment.

How to make WHMCS invoice payments easier

Creating the invoice is half the job. The customer still has to pay. In default WHMCS they open the Client Area, log in, then pay. That stalls when they forgot the password, or when an accountant needs to pay and was never given a login.

WHMCS does not include a built-in “pay this invoice without logging in” flow. You need an addon for a direct pay link.

Pay WHMCS invoices without login

The Invoice Pay Without Login module creates a secure payment link for that invoice. You can send the link to the customer or to the person who actually pays. They open it and pay. They do not get the rest of the Client Area.

What it is useful for:

  • Pay without a Client Area login
  • Share a direct pay link with an accountant or finance team
  • Add the pay link (and optional QR code) to invoice emails
  • Let customers scan a QR code on a phone
  • Track when a link was opened
  • Track when a link was opened

Use this after Publish and Send Email so the message can carry a pay link instead of a login wall. Invoice Pay Without Login for WHMCS

WHMCS invoice best practices

Use clear descriptions: Prefer “VPS hosting, 4 vCPU, 8 GB RAM, September 2026” over “Service charge.” Accounting teams should understand the line without a ticket.

Check tax and discounts before you publish: Confirm tax ticks, discounts, and the total while the invoice is still Draft.

Set a due date that matches your terms: If the auto due date is wrong for this bill, change it on the Options tab before you publish.

Automate recurring products: Do not clone last month’s hosting invoice by hand. Let Automation Settings and the cron do it. Use recurring billable items or the Recurring Invoice Management module only for custom charges that are not products.

Make payment easy: A published invoice that requires a forgotten password will sit Unpaid. A direct pay link helps when the payer does not need full Client Area access.

Conclusion

WHMCS covers one-time and recurring invoices from the Admin Area. Create a custom invoice on the client, add items, save as Draft, review, then Publish or Publish and Send Email. Recurring products invoice themselves from Automation Settings. Reminders cut follow-up. Record gateway payments automatically and Add Payment only for bank transfer or cash.

When you need more than core WHMCS, the Recurring Invoice Management module raises custom recurring invoices without extra products, and Invoice Pay Without Login lets the customer or a third party pay from a link instead of the login screen.

Looking for Something More? We can help!

Our WHMCS experts are ready to accept your custom requirements.

WHMCS Invoice FAQ

Yes. Open the client, Invoices tab, Create an invoice. Add items, Save Changes, then Publish or Publish and Send Email.

Yes, for recurring products, addons, and domains, when the daily cron runs. Timing is under Configuration > System Settings > Automation Settings.

Yes. Add each description and amount, click Add Item, then Save Changes before you publish.

Change freely while it is Draft. After publishing, treat it as a sent bill. If it is wrong, cancel and create a new invoice, or apply for credit. Paid invoices should be refunded, not rewritten.

Products recur on their billing cycle. Billable Items can recur on month-based intervals. For custom recurring invoices without a product, including 7 days, use the WHMCS Recurring Invoice Management module.

Not in default WHMCS. The Client Area expects a login. For a direct pay link, use Invoice Pay Without Login.

With a direct pay link, an authorized person such as an accountant can pay that invoice without the account password. Default WHMCS still expects a Client Area login.

Publish only makes the invoice Unpaid and visible. Publish and Send Email also sends Invoice Created to the registered email.

No. Only Paid invoices can be refunded. Cancel a draft or unpaid invoice if it should not have gone out.

Have more questions?
Our support team loves answering questions
Custom Development

Need a Custom Solution?

Looking for an integration or billing automation? Our team builds bespoke solutions designed around your stack and business requirements.

Discuss your requirement
Support & Maintenance

WHMCS Support & Maintenance Plans

Keep your billing platform secure, updated, and running smoothly with ongoing support from experienced WHMCS specialists.

  • ✓ WHMCS upgrades and security patching
  • ✓ Module and theme compatibility fixes
  • ✓ Priority support from WHMCS experts
See maintenance plans
Complete Setup

Starting a Web Hosting Business?

We help you set up your complete hosting platform, including WHMCS, client area, payments, order forms, and server automation.

01 WHMCS installation, licensing and setup
02 Hosting theme, client area and order forms
03 Payment gateways, tax rules and checkout
04 Server provisioning and automation
Request a setup quote
Need advice? Our WHMCS specialists are at your service 24/7. Reach out now