Skip to main content

Overview of Billing Schedule

Zuora

Overview of Billing Schedule

The Billing Schedule feature provides you the capability and flexibility to bill your customers based on contract negotiations or project milestones. You can use this feature to generate invoices based on predefined invoicing dates and amounts.

  • You can customize invoicing dates that do not follow standard billing frequencies such as monthly, quarterly, or annually.
  • You can define invoicing amounts that vary based on certain criteria. 

Without the Billing Schedule feature, you have to use standard billing schedules to bill customers with fixed amounts based on a regular billing period, such as monthly, quarterly, or annually. With this feature, you can bill orders, subscriptions, and charges on customized schedules instead of regular schedules, and then automatically generate invoices for the orders, subscriptions, and charges based on configured invoice schedules. When creating custom invoice schedules, you can either specify a fixed amount or a percentage of the total billing amount for each invoice schedule item.

For example, you want to generate four invoices for a subscription with a term of 12 months and a total amount of $12,000. Without the Billing Schedule feature, you might have to bill $3,000 quarterly in each invoice on the first day of January, April, July, and October. With this feature, you can flexibly bill $3,000 in the first invoice on February 3, $4,000 in the second invoice on July 12, $3,000 in the second invoice on October 20, and the remaining $2,000 in the fourth invoice on November 28.

Additionally, you have the flexibility to charge your customers by specifying percentages during invoice schedule creation, allowing you to synchronize billing with project milestones. For example, in a three-milestone project, you can invoice 10% for milestone 1, 20% for milestone 2, and 70% for milestone 3 through the corresponding invoices.

Feature availability

The Billing Schedule feature is generally available. You must have the Orders or Orders Harmonization feature enabled to enable this feature. You can enable this feature in Sandbox and Production environments with the self-serve interface. For more information, see Enable billing features by yourself.

Key concepts

To get an overall understanding of the Billing Schedule feature, keep the following key concepts in mind:

  • Invoice schedule
    An invoice schedule consists of one or more invoice schedule items that can be picked up by ad hoc bill runs, which are hourly scheduled by Zuora. Each invoice schedule item can trigger an invoice generation process. You can specify the triggering date when an invoice is generated, and specify the amount to be billed in each invoice.
  • Invoice schedule item
    An invoice schedule item contains information that is needed for triggering an invoice generation process. Each invoice schedule item is picked up and triggered by an ad hoc bill run on the scheduled date to generate an invoice with the scheduled amount.

For information on how to start using this feature, see Get started with Billing Schedule.

Invoice generation rules in Billing Schedule

You have the flexibility to create invoice schedules involving one single year or spanning multiple years. The invoice generation rules might vary for invoice schedules with different terms.

Invoice amount allocation to invoice items 

During the invoice generation process, the amount allocated to invoice items follows the following rules:

  • The invoice amount is allocated to invoice items based on the annual price.
  • For multiple charges contained in different subscriptions, charges are consumed in sequential order by charge start date. The charges with the same start date are consumed together and are billed proportionally into the scheduled invoices.
    For a specific use case, see Create single-year invoice schedules for charges with different start dates and end dates within one term.
  • The total billed amount sums to the total amount of the selling price for each individual charge.

The amount allocated to each invoice item is calculated based on the following formula:

(Billed invoice amount ÷ Total invoice amount) × Selling price

For a specific use case, see Create single-year invoice schedules on new subscriptions with the same term.

Service period determination on invoice items

During the invoice generation process, the service period of each invoice item is determined by the charge amount that is billed in the invoice, calculated in the following formula:

(Invoice item amount ÷ Selling price) × Number of months in the subscription term 

The calculation of the service period is determined by month first, and then by day. The calculated result rounds the date up because a portion of that day is consumed.

The calculation of days depends on the option selected for the When prorating a month, assume 30 days in a month or use actual days? billing rule. 

  • To use the actual number of days in the month of a proration, select Use actual number of days
  • To always use thirty days in a month for a proration, select Assume 30 days in a month.

Assume that the calculated service period is 6.7 months indicating 6 months plus 0.7 months, and the charge start date is 01/01/2022. 

  • If the Use actual number of days option is selected, the number of calculated days is actually 21.7 days, the calculation result of 0.7 * 31 days. A portion of 07/22/2022 is consumed, so the service period is set to be 01/01/2022 to 07/22/2022. 
  • If the Assume 30 days in a month option is selected, the number of calculated days is actually 21 days, the calculation result of 0.7 * 30 days. Then, the service period is set to be 01/01/2022 to 07/21/2022.

Credit memo generation in Billing Schedule

After an invoice schedule is created for an order, if you cancel a subscription or remove a charge, credit memos are generated automatically for the change.

  • If a charge is removed or a subscription is canceled, a credit memo is generated automatically on the date when the removal or cancellation takes effect to generate credit memos. If the charge for subscription is associated with an invoice schedule that has pending schedule items, the next invoice schedule item in Pending status is automatically processed on the date when the removal or cancellation takes effect.
  • If multiple charges are removed or multiple subscriptions are canceled, a credit memo is automatically generated on the earliest date when any removal or cancellation takes effect. 
  • If a subscription contains invoice schedule charges and non-scheduled charges, the credit memo is generated along with the next invoice.

Invoice generation approaches in Billing Schedule

The following table lists the approaches to generating invoices and their compatibility with the Billing Schedule feature.

Invoice generation approach Compatibility with the Billing Schedule feature

Billing Schedule

With the Billing Schedule feature, Zuora Scheduler automatically generates invoices with specific amounts on predefined dates, and scans any related change every hour. If the dates or amounts of pending invoice schedule items are updated, Zuora Scheduler can pick up the change in the next scan.

Since Zuora Scheduler scans existing invoice schedules hourly and generates ad hoc bill runs for all accounts that apply, the users who create or update invoice schedules must have the Do Bill Runs For Multiple Accounts permission. Otherwise, the auto-generation of the ad hoc bill runs will fail.

  • If the date of an invoice schedule item is updated to the current date in the tenant timezone, the schedule item will be picked up and processed in the next scan.
  • After an invoice schedule is fully processed, if you remove charges or cancel subscriptions associated with the invoice schedule, Zuora Scheduler will automatically generate credit memos in the next scan.

Execute an invoice schedule API operation

You can use the “Execute an invoice schedule” API operation to generate an invoice for a specific invoice schedule item. 

If you do not specify any invoice schedule item in the request, the next invoice schedule item in Pending status is executed.

UI for invoice schedules

You can use the Zuora UI for invoice schedules to generate an invoice for a specific invoice schedule item. 

If an invoice schedule is fully processed, and has credit to be generated, you can trigger an ad hoc bill run from the Zuora UI. The ad hoc bill run can generate a credit memo. For more information, see Execute invoice schedules.

You can use the Zuora UI and REST API to generate invoices for subscriptions associated with invoice schedules by specifying an account or a batch of accounts. Meanwhile, regular subscriptions are also billed

Generate billing documents by account ID API operation

This API operation can work with invoice schedules.

  • If you only specify the account ID, the API operation generates invoices for all the unbilled subscriptions that belong to the account, regardless of whether the subscriptions are associated with invoice schedules. The invoice schedule items with dates earlier than the specified target date are picked up.
  • If you specify a list of subscription IDs in the request, the API operation generates invoices for all the specified subscriptions, regardless of whether the subscriptions are associated with invoice schedules. The invoice schedule items with dates earlier than the specified target date are picked up.

Invoice and collect API operation

You can use the “Invoice and collect” API operation to generate invoices for all the unbilled subscriptions that belong to the account, regardless of whether the subscriptions are associated with invoice schedules. 

The invoice schedule items with dates earlier than the target date are picked up.

Orders API operations

You can use the following API operations to generate billing documents for the charges that are associated with the corresponding invoice schedule:

Generate action (not recommended)

You can use the "Generate" action to generate invoices for all the unbilled subscriptions that belong to the account, regardless of whether the subscriptions are associated with invoice schedules.

The invoice schedule items with dates earlier than the target date are picked up.

Percentage-based amount billing

When creating invoice schedules, you can specify a percentage of the total amount for each invoice schedule item rather than a fixed amount. The sum of the percentage specified for each milestone in each invoice schedule item must equal 100%. 

If you specify a percentage, the actual amount billed during the processing of an invoice schedule item is automatically calculated based on the total amount, and the calculation adheres to the currency rounding settings. If any remaining cents exist after rounding, they are covered by the last invoice schedule item. If you specify a percentage for each invoice schedule item, you cannot make any update to the Amount field.

This functionality facilitates aligning your billing with project milestones. For example, you can create an invoice schedule for a three-milestone project:

  • Bill 10% of the total amount for milestone 1 through the processing of invoice schedule 1.
  • Bill 20% of the total amount for milestone 2 through the processing of invoice schedule 2.
  • Bill 70% of the total amount for milestone 3 through the processing of invoice schedule 3.

During invoice schedule creation, no $0 schedule item is allowed. In a billing plan like 50/0/50, the second milestone cannot be recorded in the invoice schedule object. An invoice schedule containing two invoice schedule items is created, each item covering half of the total billing amount.

If the total amount is increased or decreased due to an order change, such as adding a product, percentage update behaviors vary based on the invoice schedule status.

  • If all invoice schedule items are pending, you can update the percentage specified in each invoice schedule item. If you do not update any percentage, the actual amounts are updated automatically according to the total amount.
  • If any invoice schedule item has been processed, you cannot update the percentage specified in any invoice schedule item. Invoice schedule items are billed with their existing actual amounts. The last invoice schedule item gets the unbilled amount.

If the total amount remains unchanged for an invoice schedule, you can update the percentage for any pending invoice schedule items. Then, the actual amounts billed during the processing of the affected schedule items are recalculated automatically according to the percentage updates.

For detailed information about a common use case, see Create percentage-based invoice schedules for professional services during project milestone billing.

Multiple invoice schedules for one single order

With the Billing Schedule feature, you have the flexibility to create multiple invoice schedules for separate subscriptions or individual charges for one single order.

  • You can choose one or multiple one-time or recurring charges from your subscriptions for billing. With this functionality, you can bill specific charges at custom intervals, while billing others in regular billing cycles.
  • You can also set up multiple invoice schedules for distinct subscriptions of the same order. This approach ensures a precise alignment with the corresponding contract structure.

For detailed information about a common use case, see Create multiple invoice schedules for a single order within a multiyear contract.

When you have multiple invoice schedules for one order, the following diagram shows how the invoice schedules are associated with the order, subscription, charge, and billing documents.

Custom Billing Schedule - Object Model.png

  • The fields or objects in Green are newly introduced by the Billing Schedule feature.
  • If multiple invoice schedules are created for separate subscriptions within the same order, the order is linked with the last invoice schedule. The invoiceScheduleId field on the Order object refers to the last Invoice Schedule object.
  • If multiple invoice schedules are created for individual charges within the same subscription, the subscription is linked with the latest invoice schedule. The invoiceScheduleId field on the Subscription object refers to the last Invoice Schedule object.
  • If multiple invoice schedules are created for different terms of a subscription, the invoiceScheduleId field on the Subscription object stores the latest invoice schedule. 
  • The charge is linked with the invoice schedule which the charge is included into. The invoiceScheduleId field on the Rate Plan Charge object refers to the Invoice Schedule object that the charge belongs to.
  • After an invoice schedule item is executed and generates an invoice, the invoice schedule item is associated with the generated invoice. If a credit memo is generated during execution because charges are removed or subscriptions are canceled, the invoice schedule item is also associated with the credit memo. The invoiceId and creditMemoId fields on the Invoice Schedule Item object maintain the relationships.
  • Each invoice item on the invoice is associated with the corresponding invoice schedule item used for its generation. If a single invoice consolidates items from various invoice schedules, each invoice item is associated with its respective invoice schedule and invoice schedule item. The association also applies to credit memo items. The invoiceScheduleId and invoiceScheduleItemId fields on the Invoice Item and Credit Memo Item objects maintain the relationships.

Invoice schedules for ramp deals

With the Billing Schedule feature, you have the flexibility to create invoice schedules for a ramp deal.

  • You can define an invoice schedule with the schedule items for generating invoices for your defined invoice amounts and dates, not necessarily aligning with each ramp deal interval.
  • You can also change the subscription and define an invoice schedule specific to the change, for example, adding or replacing a product.

For detailed information about a common use case, see Create invoice schedules for ramp deals.

Restrictions and limitations

When using the Billing Schedule feature, keep the following restrictions and limitations in mind:

Item Restrictions and limitations

Charge types

Only one-time or recurring charges are supported. Recurring charges with the Delivery Pricing charge model are not supported.

The Billing Schedule feature requires that one-time charges be credited back if they are removed or canceled. If you set the Enable credit back for removing or canceling one-time charge billing rule to No, you cannot remove or cancel one-time charges.

However, if you want not to provide credit for one-time charges after they are billed, you can first set the billing rule to Yes as an alternative option. Then, in this case, you have to write off the corresponding credit memo.

Discount charge models

Both one-time and recurring charges with the Discount - Percentage charge model are supported. The Discount - Fixed Amount charge model is not supported.

The discount support applies to both rate plan and subscription levels, while account-level discounts are not supported.

Charge settings

For the charges in orders, you must configure the following settings:

  • Set Billing Cycle Type to Charge Trigger Day, Term Start Date, or Term End Date appropriately.
  • Set Billing Period Alignment to Align to ChargeAlign to Term Start Date, or Align Term End Date appropriately.

If you set Billing Cycle Type to Term Start Date or Term End Date for charges, you cannot change the term start date and term end date for the current term after creating the corresponding invoice schedule.

Orders

Only termed subscriptions are supported.

  • Orders with evergreen subscriptions are not supported.
  • Orders with usage charges and order line items are supported, but usage charges and order line items are automatically excluded from invoice schedules.
Orders Harmonization With the Orders Harmonization feature, you can create orders through Orders API operations, and create invoice schedules for orders through the REST API, and change subscriptions through the Amendment UI, the Amend action, or Orders API operations. The Orders UI is not available.

Subscriptions

If you use the Flexible Billing Attributes feature, subscriptions associated with an invoice schedule must have the same billing attributes including bill-to contacts, payment terms, invoice templates, and sequence sets. For more information about the Flexible Billing Attributes feature, see Flexible Billing Attributes.

Billing periods

The billing period of a rate plan charge must be equal to or greater than the term length of the rate plan charge. For example:

  • If the subscription term is 12 months, the billing period of the rate plan charges in the subscription must always be equal to or greater than 12 months. It is not allowed to set the billing period to four months.
  • If the subscription term is 36 months, the billing period of the rate plan charges in the subscription must be equal to or greater than 36 months.

Order actions

Some order actions are not supported in specific scenarios.

  • If the charges in subscriptions created in an order are included in an invoice schedule, the following order actions are not supported for the orders associated with the invoice schedule:
  • If an invoice schedule has been processed, the following order actions are not supported for the orders associated with the invoice schedule:

For detailed information about the order actions supported by invoice schedules in different statuses, see Supported order action types.

Data limits

The following data limits exist for the Billing Schedule feature.

  • One invoice schedule can have at most 50 invoice schedule items through the Zuora UI and REST API.
  • One invoice schedule can be associated with at most 10 orders through the Zuora UI and REST API.
  • One invoice schedule can be associated with at most 50 subscriptions through the Zuora UI and at most 300 subscriptions through the REST API.

Supported order action types

For orders associated with invoice schedules, which types of order actions are supported depends on the status of the associated invoice schedule.

The following table lists the mapping between the types of supported order actions and the status of invoice schedules.

Order action types Invoice schedule status
Pending Partially Processed Fully Processed

Creating a subscription

Adding a product to a subscription

Note that new products will not be included in the existing invoice schedule.

Removing a product from a subscription

Updating a product from the beginning of a rate plan charge

🚫

🚫

Updating the price, including the unit price and quantity, from the middle of a rate plan charge

🚫

🚫

🚫

Updating custom fields from the middle of a rate plan charge

Note that the contract effective date must fall into the unbilled service period. If you want to update custom fields for a billed period, you must first reverse the invoices previously generated during the period.

🚫

Canceling a subscription

Changing the owner of a subscription

Note that if all charges within an invoice schedule have been fully billed, you can transfer a subset of subscriptions or all subscriptions associated with an invoice schedule to a new invoice owner account. However, if the charges haven't been fully billed, you must transfer all subscriptions as you did previously.

Renewing a subscription

Note that you must enable the Splitting Segments setting.

Early renewals, covering the Remove Product, Add Product, and Update Terms and Conditions order actions

Updating the terms and conditions but not extending recurring charges

Extending recurring charges through the Update Terms and Conditions order action

This order action is only supported in some cases, see Update subscription term start and service activation dates to align with GLD.

🚫

🚫

🚫

Removing a product before a future-dated removal

Cancelling a subscription before a future-dated removal

Updating a product before a future-dated removal

Note that you can update a rate plan charge from the beginning.

🚫

🚫

Suspending or resuming a subscription

🚫

🚫

🚫