Invoice-Level Rounding
By default, Zuora applies the rounding increment against every invoice item. Using these rules, 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, using this feature, invoice and taxation items can be rounded to the nearest one cent, but only the final invoice total will be rounded to the nearest five cents.
Setting the Invoice Rounding Rules
When using this feature, each individual invoice item and tax item will be rounded to nearest one cent. However, you can configure how Zuora will round the total value of the invoice.
For example, you can configure Zuora to round the invoice total up to the nearest 5 cents:
- Click your username at the top right and navigate to Billing > Customize Currencies.
- Click add new currency (or Edit an existing currency).
- Select the Alphabetic Code for the currency and the Rounding Mode. See Customize Currencies for more information about these settings.
- Set a value for the Rounding Increment. By default for most currencies, the Rounding Increment is 1 cent (
0.01
). If you change this value, Zuora displays the option to apply the rounding increment only to the invoice total.
- Optionally, set an Rate for currency conversion.
- Click save.
- In the list of currencies, Zuora notes that for the currency that you just created, the rounding increment will be applied Applied to invoice total only.
Viewing the Rounding Data on Invoices
When using this feature, Zuora performs the following actions in generating an invoice:
- First, Zuora will round all invoice items at the 1-unit increment using the rounding mode (up, down, half up) is specified for that currency.
- Next, Zuora calculates the Total (including tax) for the invoice. If the total does not match your desired rounding increment for the currency, then Zuora will create an additional Rounding Amount invoice item for the invoice that includes the amount required (either positive or negative) to achieve the rounding increment for your invoice total.
The Rounding Amount appears as the last item in an invoice. It is generated as required, and is not tied to any subscription rate plan charge or product rate plan charge in Zuora.
Querying 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>
Rounding Amount Invoice Item Object
The following values are stored for all invoice item fields associated with a rounding amount:
Field | Value |
---|---|
AccountingCode | No value |
ChargeAmount | The amount required to achieve the rounding increment. |
ChargeDate | The date that your invoice is generated |
ChargeDescription | Rounding Amount (this cannot be edited) |
ChargeName | Rounding Amount (this cannot be edited) |
ChargeNumber | No value |
CreatedById | Auto-generated |
CreatedDate | Auto-generated |
InvoiceId | Auto-generated to connect it to the correct invoice. |
ProcessingType | 4 (a rounding amount) |
ProductDescription | No value |
ProductId | No value |
Quantity | 1 |
RatePlanChargeId | No value |
RevRecCode, RevRecStartDate, RevRecTriggerCondition | No value |
ServiceStartDate | Set to the invoice date |
ServiceEndDate | Set to the invoice date |
SKU | Empty string |
SubscriptionId | No value |
TaxAmount | No value |
TaxCode | No value |
TaxExemptAmount | No value |
UnitPrice | The amount required to achieve the rounding increment. |
UOM | Empty string |
UpdatedById | Auto-generated |
UpdatedDate | Auto-generated |
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.