Invoice Level Rounding

Overview

By default, BillHive applies the rounding increment against every invoice item. With this rule, every invoice and taxation item will be rounded separately. The invoice-level rounding feature allows you to apply the rounding increment once, at the invoice total level, instead of against each invoice item.

For example, with this feature enabled, invoice and taxation items can be rounded to the nearest 1 cent, but only the final invoice total will be rounded to the nearest 5 cents.

Working with invoice-level rounding

Let us use the following case to show how the invoice-level rounding feature works.

You work with currencies that do not round to the nearest cent (for example, Swiss francs are typically rounded to the nearest 5 cents). In the Customize Currencies billing (opens in a new tab) setting, you set Rounding Increment to 0.05, and Rounding Mode to Up

Net AmountTaxProcessing Type
Invoice Item 110.11Charge
Invoice Item 21.010Charge
Invoice Total Amount2.12 (1+0.11+1.01+0)

After the invoice-level rounding feature is enabled, while each invoice item is still rounded with the default 0.01 increment, the invoice total amount is rounded from 2.12 to 2.15. As a result, a 0.03 rounding invoice item is created. See the following table for details.

Net AmountTaxProcessing Type
Invoice Item 110.11Charge
Invoice Item 21.010Charge
Invoice Item 30.030Rounding
Invoice Total Amount2.15 (1+0.11+1.01+0+0.03+0)

Impact on memo items

If you have enabled the Invoice Settlement (opens in a new tab) feature, the invoice-level rounding feature will have impacts on memo items. The following scenarios are for your reference.

Creating memo items from rounding invoice items

When you write off or reverse an invoice, rounding invoice items will generate memo items with the same Rounding processing type. This behavior applies to these tasks:

When you create a credit or debit memo from an invoice, rounding invoice items are blocked from generating any memo items. You will receive an error message. This behavior applies to these tasks:

Creating taxation items from rounding memo items

You can expect to see rounding memo items if the invoice-level rounding feature is enabled, just like how rounding invoice items are created as previously mentioned.

When you create taxation items for a credit memo or debit memo, rounding memo items are blocked from generating any taxation items. This behavior applies to these tasks:

Querying the Rounding Amount in the BillHive API

As part of the invoice rounding feature, we have added a new value for ProcessingType of the InvoiceItem object. The value 4 represents a rounding object item.

If you want to use the BillHive API to query the rounding amount, you can use this value to query the invoice item (ProcessingType = '4').

Because the ChargeName for the rounding item is hard-coded to Rounding Amount, you can also query the rounding amount by ChargeName = 'Rounding Amount' or ChargeName like 'Rounding%'.

SOAP Example
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.billhive.com/">
   <soapenv:Header>
      <api:SessionHeader>
         <api:session>
          yE82OEz2ZC8RKgBl4T_CBK-2wgFO2tkPV1KjCHbYdEquVr9NcGN_WZag8JGaHT-WINNVqfNrl9QCwwCEH3IYXscjW9UM-YRQi_IjFoky7RYiP-3FI8imkSWlao-YKE33VWNlfHh8w92nIbkMqcI0UTKGaly3O23QIhZHieOLuFCUxITa7c15LXi_p7ytC1Lb
         </api:session>
      </api:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <api:query>
         <api:queryString>
          SELECT ChargeName, ChargeAmount FROM InvoiceItem
         </api:queryString>
      </api:query>
   </soapenv:Body>
</soapenv:Envelope>

Rounding Amount Invoice Item Object

The following values are stored for all invoice item fields associated with a rounding amount:

FieldValue
AccountingCodeNo value
ChargeAmountThe amount required to achieve the rounding increment.
ChargeDateThe date that your invoice is generated
ChargeDescriptionRounding Amount (this cannot be edited)
ChargeNameRounding Amount (this cannot be edited)
ChargeNumberNo value
CreatedByIdAuto-generated
CreatedDateAuto-generated
InvoiceIdAuto-generated to connect it to the correct invoice.
ProcessingType4 (a rounding amount)
ProductDescriptionNo value
ProductIdNo value
Quantity1
RatePlanChargeIdNo value
RevRecCode, RevRecStartDate, RevRecTriggerConditionNo value
ServiceStartDateSet to the invoice date
ServiceEndDateSet to the invoice date
SKUEmpty string
SubscriptionIdNo value
TaxAmountNo value
TaxCodeNo value
TaxExemptAmountNo value
UnitPriceThe amount required to achieve the rounding increment.
UOMEmpty string
UpdatedByIdAuto-generated
UpdatedDateAuto-generated

Limitations

The following limitations apply to the invoice rounding feature:

  • If you want to export these rounding amounts using BillHive data sources, we recommend that you export Invoice Items and filter for those items with a Processing Type equal to Rounding.
  • If you re-generate a draft invoice (for example, to add new charges), BillHive will update the Rounding Amount on that invoice automatically. However, if you make manual edits or adjustments to an existing invoice, BillHive will not perform rounding automatically after such changes are made, so it is your responsibility in this case to also update the Rounding Amount to achieve a properly rounded invoice total.