Loading

Best Practices to Implement Invoice Plans With Salesforce Billing

Data pubblicazione: Sep 23, 2025
Descrizione

Invoice Plans are a flexible and powerful way to create a fully customized billing schedule for your customers. These can be created automatically, manually, or a combination of both. Keep in mind that there are limitations and set up requirements that are important to observe in order to be successful.

Risoluzione

The Billing Schedule object holds the Billing Transactions which are used to create Invoice Lines. Billing Schedules and Billing Transactions can be created automatically or manually. Billing Schedules have a lookup relationship to the Order Product. Billing Transactions have a Master-Detail relationship to the Billing Schedule. 

For automatic creation, if the Service Period Start or Service Period End date fields on the Invoice Plan Line are set to null or 'Create without Date', then the Billing Transaction will be created with these fields set to null. These dates on the Billing Transaction can then be fully customized as needed. Note that if these fields are left null, then the Invoice Line start and end dates will also be null. Best practice is to make sure the Service Period Start or Service Period End date fields on the Billing Transaction are populated before invoicing. These fields can not be updated on the invoice line and, if null, will cause revenue schedule creation to error out. 

Invoice Plan order products do not use the Pending Billing Amount field. Upon activation this field is set to 0.

Invoice Plan Order Products must have Charge Type set to Recurring and Billing Frequency set to Invoice Plan. It is not supported to add a Billing Schedule and Billing Transactions to an Order Product when the Billing Frequency is not Invoice Plan. This can lead to unexpected outcomes and cause downstream errors.

Changing the Billing Frequency from Invoice Plan to a periodic value (Monthly, Quarterly, Semiannual, or Annual) is best performed before the order product is activated for the first time. After activation, changing this either way will not trigger a validation error (as of Spring 24), but can lead to incorrect invoicing and is not supported. In addition, adding a Billing Schedule to an order product that has Billing Frequency set to a periodic value can also lead to incorrect invoices and is not supported.  To make changes on an activated order product, the following must be performed: 

From Invoice Plan to Periodic 

  • Deactivate the Order Product. 
  • Delete the Billing Schedule, or cancel all Billing Transactions by setting their Override Status field to Cancelled.
  • Change the Billing Frequency and add Billing Type if not set.
  • Activate the Order Product. This will set the Pending Billing Amount field and update the Next Billing Date and Next Charge Date fields to the correct value
  • Use Override Next Billing Date if a different Next Billing Date is required. 

From Periodic to Invoice Plan

  • Deactivate the Order Product
  • Change the Billing Frequency to Invoice Plan
  • Activate the Order Product. Note that Pending Billing Amount is not updated to 0. This does not affect invoicing and it is ignored for this order product.
  • The Billing Schedule will be created automatically if the Invoice Plan on the Billing Treatment is set up where Billing Schedule Creation = Order Product Activation.

Since it is not allowed to deactivate an order product if it has generated any posted invoice lines, the only way to change the Billing Frequency if the order product can not be deactivated is to either:

  • Cancel and Rebill all invoices that have been generated from this order product and then deactivate it. 
  • Cancel the Subscription and replace it with the same product with the desired new Billing Frequency. Note that cancellation is different for Standalone Orders and for Orders created from Quotes. 

To amend a subscription and change the Billing Frequency to or from Invoice Plan, cancel the existing subscription and add the product with the new Billing Frequency. An Invoice Plan product must have a Cancellation Invoice Plan in order to be canceled. The Cancellation Invoice Plan can be a different Invoice Plan than the New Order Invoice Plan. 

To override the Next Billing Date on the Order Product, use the Override Billing Target Date field on the current Billing Transaction.

To cancel the Billing Transaction, set the Override Status field on the Billing Transaction to Cancelled.

Changing the Charge Type from Usage or One-Time to Invoice Plan or vice versa is not supported. To change an Invoice Plan product to one-time billing, create a Billing Transaction for 100% of the amount to be charged.

  • Billing Transactions can be cancelled using the Override Status field.
  • The amount to be charged can be changed using the Override Amount field.
  • The Billing Date can be changed using the Override Billing Target Date field.

Invoice Plan products do not support amending to increase or decrease quantity. To increase or decrease quantity, cancel the existing subscription and create a new one for the new amount. 

Invoice Plans are an excellent way to migrate legacy data because they allow a great deal of customization of the amounts and dates to be invoiced from the migrated orders. When migrating Billing Schedules or creating them manually, it's very important to populate the key fields for invoices to be created correctly. These fields include: 

  • Status = Pending
  • Source = External
  • Billing Target Date or Override Billing Target Date
  • Amount
  • Quantity
  • Lookup to a Billing Schedule on an Order Product
  • Service Period Start
  • Service Period End

 

Notes:

  • Triggers must be enabled when the Billing Transactions are created so that the Order Product will update with the correct Next Billing Date. Alternatively, if there are so many Billing Transactions that disabling triggers is required, a field update to the Override Billing Target Date will be needed to sync the Billing Transaction to the the Order Product.
  • Updating Billing Day of Month (BDOM) on an Order that has been activated will delete the value in the Next Billing Date field on Invoice Plan Order Products. Unless Next Billing Date is reset, the order product will not invoice. To reset Next Billing Date, either deactivate and reactivate the Order or update the billing target date on a billing transaction.
Numero articolo Knowledge

002473649

 
Caricamento
Salesforce Help | Article