In HaloPSA, there are a lot of ways to skin the cat. Especially when it comes to billing One of the ways to handle billing configuration is to use built in categorization fields. We tend to use Category 4 just for that. We are going to utilize the Billing Plan Combinations in HaloPSA to make rules for billing based on this category.
Example: We have sold a project to a customer and invoiced this project off of the sales order. We still want to track the time of the product, but we do not want it to generate an invoice.
Simple problem? Simple solution! Lets get started…
Configure your category groups
- Navigate to your Category Group in the Lookup Codes> https://yoururl.com/config/advanced/lookupcodes?lookupid=62
- Create 2 new lookup codes. One for Projects and one for Help Desk.
Edit your Category 4 Values and Label
- Navigate to the Categorization screen. Edit the Category 4 label and then click “Edit Category 4 Values”.
- Create new Category Values to match your billing objectives. In our example, we want one for projects that have been pre-paid via sales order. So, create Projects > Pre-Pay
Modify your Billing Templates
- Navigate to your Billing Templates > https://yoururl.com/config/billing/billingtemplates
- Modify an existing or create a new Billing Template
- Create a new entry with a lower sequence to capture when the Billing Category (Category 4) is set to “Projects>Pre-Pay” and have it go to the “Don’t Invoice” Billing Plan.
Testing and Troubleshooting
When you create a project and close it, if the Billing Category (Category 4) Value is set to “Projects>Pre-pay” you should see it under the “Ready for Invoicing” screen. If you do, try the following troubleshooting steps:
- Make sure the field is exposed on the ticket type
- Make sure the Billing Template is applied to the customer
- Recalculate billing on the ticket
Recap
To simplify the billing experience for pre-paid projects in HaloPSA (and other billing mechanisms), you can use system level fields in rules within Billing Templates to specify the desired behavior. Other example of this would be to exclude tickets from contracts (i.e., you have determined it is outside of scope, a ticket should not be charged for even though they’re not a managed service client, etc.).