Salesforce Billing: Invoice Batches

  • Blog
  • Salesforce Billing: Invoice Batches
blog image
8
Sep

The Invoice Batch is a multi-select picklist field on the Invoice Scheduler object and on the Order object. They are used first of all to distribute the load of invoice generation evenly.

Invoice schedulers can consider multiple Invoice Batches (multi-select picklist), and an Invoice Batch can be considered by multiple Invoice Schedulers. 

The values that are selected on the Invoice Scheduler are compared against the Invoice Batch value on the Order record. Thus, only orders with matching Invoice Batch values will be picked up for invoice generation. So, if you set an order's Invoice Batch field to be "Batch 1", that order will be ignored by any invoice scheduler that does not have "Batch 1" set as one of the Invoice Batches in its list. This gives a way to control which orders are considered for invoicing. Of course, order products should also qualify for invoice line generation. 

Additional values can be added as needed to the Invoice Batch fields. Make sure to add them both on the Invoice Scheduler and on the Order object.

 If you start using Invoice Batches, then it is necessary to define these on every single order, unless there is an Invoice Scheduler that doesn't have a defined Invoice Batch value which would only pick up orders that also don't have a defined Invoice Batch value. Essentially, the system is matching the value between the two fields on the two objects.

During order generation, an Invoice Batch value can be defaulted and it can also be changed manually, or by automation.

Note that using Invoice Batches could result in separate invoices being generated for the same account on the same day. If a customer has orders in separate Invoice Batches, then the invoices will generate separately, during separate Invoice Runs occurring between different Invoice Schedulers. Keep in mind that the main use of Invoice Batches is not to split invoices, but rather to evenly distribute the load of Invoice Runs to avoid running into issues with timeouts.

Comments (0)

Leave a Comment