Variable Invoicing Schedules
Variable invoicing schedules allow you to send periodic invoices on a different cycle than the billing cycle of the contract/plan.
Configuring Variable Invoicing Schedules
1. Configure the global invoicing schedule (optional)
see API: Global Invoicing Preferences
This step is optional - if you have a mix of self-serve and negotiated contracts, we recommend setting the invoicing schedule on a per plan or per contract level (Step 3)
In this example invoices will be sent every 1 quarter, on the first day of the quarter. You can configure it to be every nth day (cycle_start_offset
) of the month, quarter or year (cycle
). If you do not set cycle_start_offset
the invoice cycle will be aligned with the start of the contract or the end of the free trial (if any). cycle_count
configures periodicity - so 1 means every quarter, 2 means every 2 quarters and so on.
2. Create a customer (if not already created previously)
3. Create/Sign a (new) contract for the customer
see API: Subscribe Customer to a Plan
If you haven’t configured a global schedule (or want to overwrite it), you can specify a custom invoicing schedule when subscribing a customer to a new plan. In this example, the plan has unit-based pricing, so we need to specify the purchased unit count:
In this example, invoices are generated every two months.
Working with Variable Invoicing Schedules
Mid-Cycle Upgrades
Once the contract is active
, the customers entitlements will reflect the contracted unit count.
You can perform a mid-cylce upgrade of the contract to change the purchased unit count at any point:
This will perform a mid-cycle upgrade, prorating the amounts already paid in the current billing cycle and create new charges for them. The invoicing schedule set during the initial signing of the contract will carry over into the new period.
Once the next invoice scheduling period has passed, a rolled-up invoice will be generated, containing all charges that occurred in this invoice schedule cycle.
Manually Trigger Invoices
see API: Manually Trigger Invoice Generation
Optionally, If you want to issue an invoice outside the invoicing schedule cycle, you can manually trigger an invoice creation that will contain all new charges up to this point.