Invoice-level rounding
The invoice-level rounding feature allows rounding to be applied at the invoice total level, rather than on individual invoice items, ensuring more accurate final totals.
By default, Zuora 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.
This feature is in the Early Adopter phase. If you want to have access to the feature, submit a request at Zuora Global Support.
Impact on memo items
If you have enabled the Invoice Settlement feature, the invoice-level rounding feature will have impacts on memo items. The following scenarios are for your reference.
Create 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:
-
Create a credit or debit memo from an invoice through the Zuora UI
Create 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:
Query the Rounding Amount in the Zuora 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 Zuora 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.zuora.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>
Limitations
The following limitations apply to the invoice rounding feature:
-
If you want to export these rounding amounts using Zuora data sources, we recommend that you export Invoice Items and filter for those items with a
Processing Type
equal toRounding
. -
If you re-generate a draft invoice (for example, to add new charges), Zuora will update the Rounding Amount on that invoice automatically. However, if you make manual edits or adjustments to an existing invoice, Zuora 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.