Salesforce Billing: Holding Billing

  • Blog
  • Salesforce Billing: Holding Billing
blog image
9
Jun

Under certain business circumstances, it might be necessary to change the date when invoices and invoice lines are generated for certain order products.

It's important to note here that only activated order products are included on Invoices. Order activation is important because it can have implications outside of Billing, like provisioning or fulfillment indicating that the order is ready for fulfillment. Suppose we don't want to generate an invoice just yet for a certain product without impacting the activation process. In that case, there's a setting on the order product that allows Billing to not pick up an order product for invoice generation. The Hold Billing field defaults to No when the order product is generated, but we can set it to Yes. When this field on the order product is set to Yes, it suspends billing for this order product. The product will be billed as soon as the value of the field is set to No or null. Remember that holding billing this way doesn't have an impact on the amount that is billed for this order product. This functionality is useful when Purchase Orders are accepted instead of immediate payment. Purchase orders are a promise for payment from the customer. So, we can activate the order to kick off the provisioning process and not invoice for that product.

Salesforce Billing also offers the possibility to edit certain dates on the order and order products during the billing cycle. It is best practice to make these changes at the order and order product level and not at the invoice or invoice line level to avoid Error statuses on the Invoice Run Processing Status on the related order product. If this happens, Salesforce Billing won't create invoice lines for other lines on the invoice.

We can make direct manual changes to the Start Date, End Date, and Billing Day of Month, but this can impact price calculations. Override Next Billing Date field on the order product record lets you control when the invoice scheduler picks up certain order products for invoicing.

By default, the invoice scheduler looks at the Next Billing Date field and compares it to the specified Target Date to determine whether order products qualify for invoicing. Order Products are picked up for invoicing if Next Billing Date falls on or before the Target Date. However, if the Override Next Billing Date is populated, this date will be used. Note that after the resulting invoice for this Order Product is created and posted, Salesforce Billing clears this field because this is a one-off adjustment and then automatically calculates a new Next Billing Date according to the system logic. The Next Billing Date is updated continuously throughout the order's contract life-cycle. Note that when Invoice Run Processing Status is "Completed", meaning that "the invoice run created and posted an invoice line for the order product" and that "the order product won’t create any more invoice lines", Next Billing Date is null.

Keep in mind that users shouldn't directly change the Next Billing Date value because this is a system field. It is calculated based on the order's Billing Day of Month, Billing Frequency, and Billing Type. Also, note that you cannot override Next Billing Date when using invoice plans and cannot override the Next Billing Date (or Bill Through Date) for an order product that's already billed.

Comments (0)

Leave a Comment