Skip to main content

ONESOURCE Indirect Tax Determination App V2

Zuora

ONESOURCE Indirect Tax Determination App V2

Introduces how to get started with the ONESOURCE Indirect Tax Determination App V2.

Zuora’s tax app now supports the OneSource Indirect Tax Determination V2 App, which is built on a new tax platform and integrates with the latest OneSource Indirect Tax Determination product. The existing ONESOURCE Indirect Tax Determination app is built on OneSource legacy SOAP (Simple Object Access Protocol) API. Migrating from the existing OneSource SOAP configuration to REST has several key improvements and benefits, such as improved security, built-in void functionality, API version support, customization flexibility, and so on.

The V2 application integrates with ONESOURCE Indirect Tax Determination using the latest REST API and operates independently as a separate tax solution. Introducing the V2 App will have no impact on users currently utilizing the ONESOURCE Indirect Tax Determination App.

Prerequisites

Difference between legacy OneSource App and new App V2

The existing ONESOURCE Indirect Tax Determination app is built on OneSource legacy SOAP API. while the new App V2 is built on a new tax platform and integrates with the latest REST API. This section highlights the difference between existing OneSource App and new App V2. Here are the key differences:

  • Authentication
    The legacy ONESOURCE App supports various authentication methods including Basic-Auth, BearedId, OAuth 2.0. whereas REST exclusively uses OAuth2 for enhanced security.
  • Void Functionality
    ONESOURCE App V2 includes a straightforward built-in void/reverse feature. The legacy ONESOURCE App’s void function involves sending a negative total amount of the previous transaction, though this method is not recommended.
  • API Version
    OneSource recommends using the REST API version moving forward, as updates to their legacy SOAP API are no longer supported.

Configure Tax Engine

  1. Navigate to Settings > Billing > Setup Tax Engine and Tax Date.
  2. Select Global Tax Hub from the drop-down list next when setting up a new engine.
  3. Configure the necessary data as shown in the following image:

OneSource_REST supports only OAuth 2.0 kind of authentication.

  1. Enter the Access Token URL as specified:
  2. Click Save.
  3. 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 %}
            ]
        }
    ]
}
  1. Customize the fields in the template. You can refer to ONESOURCE Indirect Tax Calculation REST API to understand the request payload fields for tax calculation API.
    • externalCompanyId: The unique identifier used by your business application to indicate which company to use in Determination. This element may be passed at the header level, or with each document, and is passed through to the Determination response. There is a specific requirement for this value to be unique, more on that in a later section.
    • callingSystemNumber: A brief description of the calling system, the origin of the transaction.
    • hostSystem: The name of the ERP instance sending the transaction.
    • companyRole: The role the company plays in a given transaction: Buyer (B), Middleman (M) or Seller (S). Each role results in different transaction tax and reporting requirements.
    • processingOption: Several options are available, make sure the responseSummary needs to be “Full Details”. 
  2. Enter the following to void the default template:

 Refer to ONESOURCE Indirect Tax Calculation REST API 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"]}}"
}
  1. Click Save.

Migration Guidelines

  • Migrating existing ONESOURCE Indirect Tax Determination app customers to App V2 may require template redesign.
  • Certain fields like companyId/externalCompanyId and companyRole remain similar between two Apps.