Configure Tax Engine
Learn how to configure the tax engine in the billing settings, including setting up a new tax engine, entering company and seller information, and adjusting advanced settings.
- Navigate to Settings > Billing > Setup Tax Engine and Tax Date.
- Click Setup New Tax Engine and select ONESOURCE Indirect Tax Determination V2 from the dropdown list.
- Toggle Use Test Environment if you want Billing to use the test service URL. This enables you to test tax calculations during your Billing setup.
- Enter the following details in the Basic Information section:
- Engine Name - The name of the engine.
- Use On-Demand or On-Premise Deployment - Use the toggle to control whether custom API URLs are configured:
No (Default) – Zuora uses the tax vendor's standard API URLs.
Yes – Enables configuration of custom API URLs for tax-related calls. When the toggle is set to Yes, the following additional fields are displayed:
Tax Calculation URL - Enter the URL that Zuora will use for tax preview, tax void, and related tax API calls.
Authentication Type - The default authentication type is OAuth 2.0. Enter the Client ID and Client Secret provided by your tax vendor.
-
In the
General Settings
section,
select a value from the Void Call Handling drop-down list. This setting specifies how Zuora handles calls to the tax vendor when a transaction (such as an invoice or credit memo) is voided. The supported options are:
Enable (default) - Allows Zuora to send a void request to the tax vendor. The tax vendor either processes the void or returns an error. Select this option if you want full synchronization between Zuora and the tax vendor when transactions are voided.
Pass Through - Allows the void operation to proceed in Zuora without sending a void request to the tax vendor. Select this option if you want to void transactions in Zuora without impacting tax records in the external tax system.
Block - Prevents the void operation from proceeding and returns an error. Select this option if you want to prevent voiding transactions that have already been reported to the tax vendor.
- Enter the following in the Company and Seller Information section:
- Company Code - A unique identifier for the company in the AvaTax system, used to link billing information to the appropriate business entity. This field is critical for ensuring the correct company is referenced in tax calculations.
- Origin Address - The address where transactions originate from, which is essential for accurate tax calculation. The tax rate can vary depending on the origin location, as different jurisdictions may have different tax rules. This field helps ensure that the correct tax rates are applied based on where the transaction begins.
- Add Company - The option to add new company details.
- Select the required authentication type from the drop-down list.
- Toggle to enable Advanced Settings and adjust the Settings as needed.
- Click Save .
- Toggle to enable Advanced Settings and adjust the Settings as needed.
Field
Description
Request Template
Configure the template as required. Click Use Default Template to use the preconfigured template.
Zuora uses the Request Template in Text/XML or Application/JSON format to populate invoice information according to your setup. Templates are rendered dynamically using the Liquid Template Language, available in Text/XML or Application/JSON format.
Note: The template uses the isCredit API field to indicate whether a line item is a credit (true) or a charge (false) for auditing and reporting. By default, all items in a credit memo are credits. If a credit memo contains negative items, isCredit is set to false for those charges. Conversely, if an invoice includes negative items representing credits, isCredit is set to true.The template uses the ONESOURCE API field, isCredit, to indicate whether a line item is a credit. A true value means the line item is a credit for both auditing and reporting purposes.
By default, all line items in a credit memo are considered credits. However, if a credit memo contains negative items, the isCredit field will be automatically set to false for those items to identify them as charges. Similarly, when an invoice includes negative items that represent credits against previous charges, the isCredit field will be automatically set to true to identify them as credits.Ensure the utilization of Context Objectinformation while creating a tax template.
Note: Transaction_items is no longer supported as a context object for template rendering in V2; instead, the default document_items must be used. In V1, transaction_items were specifically tailored to exclude discount charges from being sent to Taxamo as negative transaction lines. In V2, however, we now manage discount and credit items as negative transaction lines by default, so transaction_items are no longer necessary.Custom Fields
Choose from the available custom fields from the tax engine.
Response Field Mapping: Field Mappings
The option to retrieve data from the tax engine response and store it on the Taxation Item object. For more information on Flexible Field Mapping, see Flexible Tax Mapping.
Network : Timeout
Net Read Timeout
The timeout period for tax requests. The available options are 1 minute, 2 minutes, 5 minutes, and 10 minutes.
Request Headers
Additional headers to tax requests are beneficial in scenarios requiring authentication through firewalls or other specific cases.
You can also enter the following in the Standard section of Request Templates:
Default Standard Template { "callingSystemNumber": "SAP1000", "hostSystem": "VGD", "companyRole": "S", "externalCompanyId": "DPPZUORADEV_1000", "processingOptions": { "chargeIncludedInAmounts": false, "chargeResponse": "SeparateAuthority", "responseSummary": "FullDetails", "documentAmountType": "GrossAmount" }, "documents": [ { "documentType": "Sales Invoice", "documentNumber": "{{document["invoiceNumber"]}}", "currencyCode": "{{document["currency"]}}", "addresses": [ { "type": "shipFrom", "country": "{{seller["country"]}}", "region": "{{seller["state"]}}", "city": "{{seller["city"]}}", "postcode": "{{seller["zipCode"]}}" }, { "type": "shipTo", "country": "{{customer["country"]}}", "region": "{{customer["state"]}}", "city": "{{customer["city"]}}", "postcode": "{{customer["zipCode"]}}" } ], "documentDate": "{{document["invoiceDate"]}}", "lines": [ {% for document_item in document_items %} {% if forloop.first != true %},{% endif %} { "lineNumber": "{{document_item["id"]}}", "amount": "{{document_item["totalAmount"]}}", "productCode": "{{document_item["productName"]}}" } {% endfor %} ] } ] } - < Optional > Enter the following to void the default template: Note: Refer to to understand the request payload fields for reverse or void tax API.
{ "callingSystemNumber": "SAP1000", "companyRole": "S", "documentNumber": "{{document["invoiceNumber"]}}", "externalCompanyId": "DPPZUORADEV_2000", "hostSystem": "VGD", "documentDate": "{{document["documentDate"]}}" } - Click Save .