Invoicing

From WHMCS Documentation

Revision as of 15:41, 4 October 2010 by Matt (talk | contribs) (Refunding Payments)

Automatic Invoice Generation

WHMCS automatically generates invoices for products and services that are due in advance of the due date. Exactly how far in advance they generate you can configure yourself in Config > Automation Settings but by default it is 14 days.

The cron performs the generation each day so it is important you have this configured for it to work.

Invoice Reminders & Notices

WHMCS will send one reminder after generation but before the due date if the invoice has not been paid and then up to 3 overdue notices once the due date has passed. These can be used to warn the user about an upcoming suspension or termination of service. You can configure exactly which days these notices go out on again in Config > Automation Settings.

Creating Custom Invoices

With WHMCS, you can generate an invoice whenever you want. This is very useful for many reasons, some examples are:

  • Overusage Charges
  • Web Design
  • Other Services
  • One Off Sales/Custom Pricing

The steps to do this are below...

  1. Locate the client you wish to generate an invoice for
  2. From the client summary page, click the Create Invoice link in the Actions panel
  3. You will now be presented with a new blank invoice
  4. To add items to the invoice, simply enter a description and amount in the empty boxes at the bottom of the list of Invoice Items
  5. Once you have added all the items to the invoice, select the "Options" tab at the top - from here you can configure the payment method, invoice date and due date - on completion, click Save
  6. Finally, to send the client an email letting them know about the new invoice, click the "Send Invoice Created Email" button located on the Summary tab (top right)

Grouping Items into a Single Invoice

WHMCS will automatically group products & services, addons and domains with the same due date onto a single invoice for the customer. This means the customer only needs to make one transaction making it easier for them and reducing your transaction fees.

Credit Card Processing Settings

If you use a credit card merchant gateway with WHMCS, you can configure the way in which charges are handled automatically in Setup > Automation Settings. You have 3 different options which are explained below:

Attempt Charges Daily

This is the default setting and means WHMCS attempts to capture payments for all unpaid invoices that are due each day

Attempt Only Once

Ticking the box for this will mean that WHMCS only attempts to capture payment for an invoice once and if it fails, will send an email to the client notifying them and not attempt it again until the client logs in and enters new credit card details

Retry Every Week Week For

With this setting, you can specify for WHMCS to attempt to capture the payment for due invoices on the due date and then once every week after that until it succeeds or until the limit you specify for retries is reached.

Continuous Invoice Generation

Continuous Invoice Generation refers to whether invoices are created for items that are unpaid. It is best explained through the use of an example.

Take for example a hosting account paid monthly. The user places their order in January. They receive an invoice and they pay their invoice. In the following month, the user gets their next invoice and they pay that. Then in March, the user receives their invoice but they don't pay it because they no longer wish to use the account or simply because they miss the emails about it. With continuous invoice generation disabled, the user would not receive any furthur invoices until the March invoice has been paid. However, with continuous invoicing enabled, the user would receive invoices every month until the account is set to terminated, regardless of whether the item has been paid for or not.

Enabling Continous Invoicing

To enable this feature, go to Setup > General Settings > Invoicing and tick the checkbox next to this setting. After enabling this option, if there are then users who are due invoices for months which have not yet been invoiced, there will be one invoice generated on each cron run for the user for the following days after enabling this.

Proforma Invoicing/Sequential Invoice Numbering

This feature is primarily aimed at EU based companies where for accounting reasons, it is sometimes necessary to ensure paid invoice numbers are sequential. This feature in WHMCS can of course be used by all though.

Enabling Sequential Invoice Numbering

  1. To enable this feature, begin by going to Setup > General Settings
  2. Then click on the Invoices tab
  3. Next, tick the box labelled "Sequential Paid Invoice Numbering"
  4. In the field below, you can then specify the format you want to use for the numbering - it doesn't just have to be a number - you could for example include your companies initials and the year to differentiate invoices for each year - eg. WHMCS2007-{NUMBER} - {NUMBER} placeholder gets replaced with that invoices number
  5. The final field allows you to set the next number to be assigned to an invoice. Each time an invoice is paid, the number increases by 1. You can alter the number here, such as when removing an invoice or at the beginning of a new year if you want to start at 1 again.

That's all there is to it! Sequential invoice numbering is now enabled and each time an invoice is paid, the next number in the sequence will be applied.

Proforma Invoicing

The sequential numbering is most often used in conjunction with proforma invoicing. If you want to do this, then you need to make a few template changes aswell to reflect the different names - Proforma invoice when unpaid and Invoice once paid. Instructions can be found in the viewinvoice.tpl and invoicepdf.tpl files where the changes need to be made - just need to uncomment the commented out code you will find in those files.

Refunding Payments

If you are using a gateway in WHMCS that has automated refunds implemented (PayPal, Authorize.net, eWay, Quantum at the time of writing), then WHMCS allows you to issue a refund without ever logging into your gateway. A real time saver!

Even if the refund can't be automated, you can still use this process to enter the refund billing entry into WHMCS which will update the income totals and reflect the refund on the invoice. Then you would go to your gateway and actually send the refund from there.

And as a final alternative you can issue a refund to the clients credit balance with you which instead of losing the money entirely allows you to just give the user a credit against future purchases or renewals from you.

So to perform a refund, simply follow these steps below:

  1. Locate the invoice you wish to issue a refund for either by searching or from Billing > List Paid Invoices and click the invoice ID to view it
  2. Select the Refund tab
  3. Choose the transaction you want to refund if more than one has been applied towards the invoice
  4. Enter the amount you want to refund if only giving a partial refund or leave blank for full
  5. Then select the Refund Type from the options "Refund through Gateway", "Add to Client's Credit Balance" or "Record Only"
  6. Click the Refund button to submit

if "Refund through Gateway" is chosen, the results of the refund will then be displayed. If successful the relevant transaction entry will also be added. If it fails, you can check in Transactions > Gateway Log for the detailed response from that gateway as to why.

Setting the Starting Number

WHMCS allows you to set the next invoice number that is generated. This is useful for if you want to start invoicing at a number other than 1 or start invoices for a new year from a new number. You do this as follows:

  • Go to General Settings > Invoicing
  • Enter the next number to assing in the "Invoice Starting #" field
  • Click Save

The value will then disappear from the field but the next invoice will be assigned that number.