Using NetSuite Billing Schedules on Sales Orders
NetSuite Billing schedules are records used to determine the recurring billing that an order or individual line should use to generate invoices. It allows invoices generated from sales orders to properly date themselves and behave according to the schedule. This blog post covers creation of billing schedules as well as some automation capabilities available with them.
Setting up Billing Schedule
The flexibility of configuration allows users to easily create different billing schedules based on business needs. With many options available, schedules can be built so that they are re-usable for multiple orders and lines using the schedule’s header level options. Additionally, using the line level detail allows for ‘specific use’ schedules that offer great flexibility and the use of irregular periods.
Generic Multi-Use Schedules
Using the header level fields to make use of generic multi-use schedules, the Initial Amount will be billed on the start date for the order or line. The remaining amount will then be divided evenly using the Recurrence Count, with billing schedule dates being generated automatically according to the Recurrence Frequency.
The Bill in Arrears checkbox indicates if a schedule should bill on the back of a period (checked) or at the start of the period (un-checked).
Specific use schedules
Selecting a Recurrence Frequency of Custom provides access to below line detail information. This section allows you to create a completely custom schedule including irregular billings.
Using this line level detail is pretty simple.
- The Count determines how many Units from the previous bill date the next in the schedule should be (Note: you can preview this date on the line).
- The first line will base itself on the start date, so at 0 units the below example will bill 10% of the line on the start date.
- Amount on the line can be entered as either a dollar value or a percentage of the total line amount.
- Dropping down the Units field presents the user with a Custom option. Selecting this will require the user to manually determine the date for the selected line.
- Future recurrence lines after the Custom line will still be set relative to the last line in the list.
Viewing billing schedule on salesorder
Once a schedule has been created, applied and salesorder saved, the overall recurring billing schedule can be seen under Billing > Schedule subtab.
Automation capabilities for billing schedule
Automation is available with billing schedule record in NetSuite via SuiteScript. Auto creation of billing schedule can happen as long as rules are date based. For example, subscription to be billed on a monthly basis starting X date.
The complexity of billing schedule scripts can differ greatly. It can be simple as creating pre-made billing schedules, or others using more complex logic to apply irregular periods and custom lines to the recurrence list. The following are a few guidelines to be aware of when building these automation via SuiteScript.
- Keep any real processing relegated to scheduled or map/reduce scripts.
While it may not matter for more simple versions, building custom schedules increases processing by a great amount when either schedule lengths increase or larger numbers of items appear on orders. Because of this, it is usually nice to have the larger governance limit available with scheduled or map/reduce scripts
- When creating a custom schedule using the line level functionality for recurring $0 billing, the Amount field must be entered using percentages.
This is because NetSuite bases its’ invoicing on the line Quantity. As a result, NetSuite calculates the % that the amount represents, and invoices the same % of the Quantity. When the recurrence line has a %, it simply invoices that % quantity on the invoice. This means that it is possible to have a $0 line on a Sales Order bill multiple times
- Be aware of SuiteScript 2.0 behavior when it comes to % based amount.
In SuiteScript 2.0 it is impossible to set recurrence line Amount using % value. In order to set the field as % value, automation MUST be done in SuiteScript 1.0
We hope this post will be a useful starting point for users to learn how to leverage NetSuite billing schedules!
If you have any NetSuite customization needs, PLEASE FEEL FREE TO CONTACT US!