Invoice Line Items
Invoice line items represent the individual billable positions of an invoice. Usually, they originate from items when billing subscriptions, or, with the generic invoice run, from arbitrary source records. In addition, users can create them manually.
You can customize the invoice line item display on the invoice PDF using custom CSS rules.
Invoice Line Item Types
Invoice line items can be of different types.
|Default type, subject to the subtotal calculation. Is displayed in the invoice line item table, with the price broken down to net price, discounts, taxes.
|Specific type for applicable shipping fees. Is included after the subtotal calculation and, by default, displayed as a net value below the invoice line item table.
|Specific type for applicable handling fees. Is included after the subtotal calculation and, by default, displayed as a net value below the invoice line item table.
|Specific type for items that are put on the invoice for informational purposes only, exempt from the total calculation. Is displayed in the invoice line item table, including any defined price, but is ignored on calculation.
|Specific type for deposit invoices, is produced when a deposit rate or a deposit value is defined. Is usually displayed in the invoice line item table, with the price broken down to net price and taxes.
|Specific type, used to offset tax rounding differences. Is not displayed on the invoice PDF but included in the calculation.
or any other custom type
|Specific type for "hidden" items. Is not displayed but included in the calculation.
Invoice Line Item Calculation
Except for net or gross, there are numerous other parameters that control an invoice line item's price. The calculation is fairly complex – so which data comes into play at what stage?
Think of a three-tier calculation process.
Unit price and quantity information
First, JustOn multiplies the unit price with the provided quantity information and, in case of recurring items, with the billing factor. This makes up the position price.
- The unit price can be a fixed amount, an aggregated value, or an individual price determined by some custom condition – that depends on your invoice line item source data. For commission pricing, however, the given unit price is multiplied with the commission rate before proceeding.
- The quantity is taken from the invoice line item source data as well. You either propagate a given value from the order, quote, subscription, etc., or have aggregated some usage data count. If your business usually handles very large quantities, you can use a custom factor to produce "manageable" quantity values.
The billing factor is a multiplier that is relevant with recurring items, where JustOn must consider the billing period (the time interval after which the item is subject to the invoice run), given in a billing unit. For example, the billing unit
Monthcombined with the billing period
3results in a billing factor of
3, that is, the recurring item is invoiced every three months with the price multiplied by three.
The recurring item's billing period determines the resulting invoice line item's service period.
Once the position price is determined, JustOn deducts the applicable discounts:
- The item-based discount is individually applied to an invoice line item, based on a given percentage or fixed amount.
- The order discount amount is the invoice line item's "share" of the order discount, which originally reduces the (net) subtotal of the complete invoice.
Deducting the discounts results in the position price discounted.
Unless you use gross invoicing, JustOn finally adds the applicable taxes. You can either:
- Feed a precalculated tax from an external system, or
- Have JustOn internally determine the calculated tax based on the discounted position price and one or more tax rates – most probably determined by tax rules.
This calculation produces the position total gross price, which, in turn, becomes part of the invoice's grand total.
Invoice Line Item Rounding
Depending on the JustOn Billing & Invoice Management version, the invoice line item price calculation applies different rounding approaches:
- With the invoicing engine v1, the rounding of invoice line item amounts has been done as late as possible:
With the invoicing engine v2 (as of JustOn 2.88),
PosPriceDiscountedare rounded already, so that
PosTotalGrossare calculated from rounded values.
As of JustOn Billing & Invoice Management v2.88, the Invoice Line Item field
Invoicing Engine controls the rounding approach.
1 (or empty)
|Indicates that the old rounding mode is applied. The discounted position price is calculated using all passed decimal places, and the rounding is done only on
|Indicates that the new rounding mode is applied. The discounted position price is rounded already, passing the rounded value to the tax calculation and order discount application.
For new invoices,
Invoicing Engine is set to
2, indicating that
PosPriceDiscounted are rounded for all newly created invoices. For existing invoices after upgrading from a previous JustOn version,
Invoicing Engine is empty, indicating that the previous rounding mode is applied.
For details on the invoice line item calculation, see Invoice Line Item Fields and Formulas.
Rounding on Invoice Cancelation
When canceling an invoice, the cancellation invoice uses the same invoicing engine as the canceled (original) invoice. This ensures that there will be no amount differences between the canceled (original) invoice and the cancelation invoices.
If you create a new invoice from the same source data, however, you may get a different amount. Assume the following scenario:
(1) You have created an invoice with a JustOn version <2.88, that is, using the invoicing engine v1.
(2) You upgrade JustOn Billing & Invoice Management to v2.88 or newer.
(3) You notice that the previously produced invoice is not correct – you cancel it. The cancellation invoice uses the same invoicing engine v1.
(4) You create a new, correct invoice from the same source data. Now the new invoice uses the invoicing engine v2, applying the new rounding mechanism – which may produce slightly different amount values.
Rounding on Invoice Cloning
When cloning an invoice, the new invoice always uses the invoicing engine v2, regardless of the invoicing engine used for the original invoice. Since the invoicing engine may be different between the original and the new invoice, there may be some rounding-related differences in the invoice line item amounts.
With multiple currencies enabled, you can specify the number of decimal places (number of digits to the right of decimal point) for each currency. Consequently, JustOn takes the number of decimal places used for a specific currency from the relevant currency configuration, copying it to the field
Decimal Places of the invoice line item. This value is then used to round amounts in certain formulas when calculating the invoice line item price, taxes, etc.
JustOn falls back to two decimal places if multiple currencies are not enabled, no currency set up for an invoice, or if the field
Decimal Places is not (yet) set for an invoice line item.
To avoid inconsistencies, make sure to not change the value of the invoice line item field
Decimal Places manually, because other parts of the business logic (not immediately related to the invoice line item price calculation) also use the decimal places configuration.
Be aware of the following limitations:
Currently, JustOn supports only 0, 1 or 2 decimal places.
If you specify more than 2 decimal places, JustOn automatically limits their number to 2 to prevent errors.
The following features currently ignore the decimal places configuration:
- Booking data creation and recognition rules
- Discount calculation