Professional Documents
Culture Documents
INDIRECT TAX
DETERMINATION
PROGRAMMER GUIDE
VERSION 5.5.1.0
ii
2013 Thomson Reuters/ONESOURCE. All Rights Reserved. Proprietary and confidential information of Thomson Reuters.
Disclosure, use, or reproduction without the written authorization of TR/S is prohibited. In compliance with the license agreements
for the Open Source Libraries leveraged by Thomson Reuters, our customers can obtain copies of these libraries by contacting
Customer Support at https://customer.sabrix.com.
Nadler; Jeffrey Evan (Portland, OR), Barta; James Donovan (Hillsboro, OR), Blotner; Joseph Allen (Portland, OR), Christian; Eric
Thomas (Beaverton, OR), Fong; Carolyn Brauner (Beaverton, OR), Seymour, Jr.; James Madison (Hillsboro, OR), Waterhouse;
Thomas William (Lake Oswego, OR), Woolsey; Gregory Alan (Newberg, OR). Sabrix, Inc. (Lake Oswego, OR). Universal Tax
Engine. US Patent 7,933,803, filed June 15, 2004, and issued April 26, 2011.
Portions of ONESOURCE Indirect Tax Determination include third-party components governed by the following licenses:
Apache License, Version 1.0. Copyright 2000. The Apache Software Foundation. All rights reserved. ONESOURCE Indirect Tax
Determination includes software developed by the Apache Software Foundation (http://www.apache.org/). This software
consists of voluntary contributions made by many individuals on behalf of the Apache Software Foundation. For more information
on the Apache Software Foundation, please see <http://www.apache.org/>. Portions of this software are based upon public
domain software originally written at the National Center for Supercomputing Applications, University of Illinois, UrbanaChampaign.
Apache License, Version 2.0. Copyright January 2004. ONESOURCE Indirect Tax Determination includes software licensed
under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may
obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in
writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under
the License.
Artistic License. This package is provided "as is" and without any express or implied warranties, including, without limitation, the
implied warranties of merchantibility and fitness for a particular purpose.
ASM. Copyright (c) 2000-2011 INRIA, France Telecom. All rights reserved. ONESOURCE Indirect Tax Determination includes
software licensed by ASM. Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions
and the following disclaimer; 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
the following disclaimer in the documentation and/or other materials provided with the distribution; 3. Neither the name of the
copyright holders nor the names of its contributors may be used to endorse or promote products derived from this software
without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Common Development and Distribution License (CDDL). Version 1.0.1. Disclaimer of warranty. Covered software is provided
under this license on an as is basis, without warranty of any kind, either expressed or implied, including, without limitation,
warranties that the covered software is free of defects, merchantable, fit for a particular purpose or non-infringing. The entire risk
as to the quality and performance of the covered software is with Thomson Reuters/ONESOURCE. Should any covered software
prove defective in any respect, Thomson Reuters/ONESOURCE (not the initial developer or any other contributor) assumes the
cost of any necessary servicing, repair or correction. This disclaimer of warranty constitutes an essential part of this license. No
use of any covered software is authorized hereunder except under this disclaimer.
Eclipse Public License. Version 1.0. No Warranty: Except as expressly set forth in this agreement, the program is provided on an
"as is" basis, without warranties or conditions of any kind, either express or implied including, without limitation, any warranties or
conditions of title, non-infringement, merchantability or fitness for a particular purpose. Each recipient is solely responsible for
determining the appropriateness of using and distributing the program and assumes all risks associated with its exercise of rights
under this agreement , including but not limited to the risks and costs of program errors, compliance with applicable laws, damage
to or loss of data, programs or equipment, and unavailability or interruption of operations. Disclaimer of Liability: Except as
expressly set forth in this agreement, neither recipient nor any contributors shall have any liability for any direct, indirect, incidental,
special, exemplary, or consequential damages (including without limitation lost profits), however caused and on any theory of
liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use or distribution
of the program or the exercise of any rights granted hereunder, even if advised of the possibility of such damages.
E. Wray Johnson. ODMG license. Copyright 1999. <ejohnson@carolina.rr.com>. All rights reserved. ONESOURCE Indirect Tax
Reporting contains portions of this free software. This software is free and provided "as-is" by the author E. Wray Johnson who
assumes liability to the extent of the amount that is hereby being charged for the software.
iii
GNU Lesser General Public License, Version 2.1. Copyright 1991, 1999, Free Software Foundation, Inc., 51 Franklin Street, Fifth
Floor, Boston, MA 02110-1301 USA.
Indiana University Extreme! Lab. Version 1.1.1 Copyright 2002. All rights reserved.ONESOURCE Indirect Tax Determination
includes software developed by the Indiana University Extreme! Lab. For further information please visit
http://www.extreme.indiana.edu/.
International Business Machines Corporation and others. Copyright 1995-2008. All rights reserved. ONESOURCE Indirect Tax
Determination includes software licensed by IBM. The software is provided "as is", without warranty of any kind, express or
implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and no infringement of third
party rights. In no event shall the copyright holder or holders included in this notice be liable for any claim, or any special indirect or
consequential damages, or any damages whatsoever resulting from loss of use, data or profits, whether in an action of contract,
negligence or other tortuous action, arising out of or in connection with the use or performance of this software.
Jason Hunter & Brett McLaughlin. Copyright 2000-2004 . All rights reserved. ONESOURCE Indirect Tax Determination includes
software developed by the JDOM Project (http://www.jdom.org/).
Jaxen License. Copyright 2003-2006. This software is provided by the copyright holders and contributors "as Is" and any express
or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are
disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or
consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or
business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence
or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
JGroups. Portions of the ONESOURCE Indirect Tax Determination were developed using the open source JGroups library
(http://www.jgroups.org/javagroupsnew/docs/index.html). The JGroups library is distributed under the GNU Lesser General
Public License (LGPL). Under the LGPL, you can download the JGroups library separately from the Customer Center
(https://customercenter.sabrix.com/sabrixcc) for viewing or modification. Contact Customer Support for additional details.
MetaStuff, Ltd. Copyright 2001-2005. All Rights Reserved. ONESOURCE Indirect Tax Determination includes software provided
by Metastuff, Ltd. and contributors as is and any expressed or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall Metastuff, Ltd. or its contributors
be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to,
procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any
theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of
this software, even if advised of the possibility of such damage.
Mozilla Public License Version 1.1. The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");
you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/.
OpenReports licensed by Open Source Software Solutions to Thomson Reuters/ONESOURCE, Inc. under the OpenReports
Commercial License. This license grants the right to use, reproduce, and distribute OpenReports under the terms and conditions
of the Apache License, Version 2.0.
Open Source Libraries. In compliance with the license agreements for the Open Source Libraries leveraged by ONESOURCE
Indirect Tax Determination, our customers can obtain copies of these libraries by contacting Customer Support at (866) 4722749.
OpenSymphony Group. Version 1.1. Copyright 2001-2004. All rights reserved. OSCore software is provided by the copyright
holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of
merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright owner or contributors be liable
for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of
substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability,
whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even
if advised of the possibility of such damage.
Sun Microsystems, Inc., Java Web Services Developer Pack, Version 1.5. ONESOURCE Indirect Tax Determination includes
software licensed by Sun Microsystems. All classes are released to the public domain and may be used for any purpose
whatsoever without permission or acknowledgment. Portions of the CopyOnWriteArrayList and ConcurrentReaderHashMap
classes are adapted from Sun JDK source code. These are copyright of Sun Microsystems, Inc, and are used with their kind
permission, as described in the license.
The Werken Company. Copyright 2003-2006 All Rights Reserved. ONESOURCE Indirect Tax Determination includes software
licensed by the Werken Company. This software is provided by the copyright holders and contributors "as is" and any express or
implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are
disclaimed. In no event shall the copyright owner or contributors be liable for any direct, indirect, incidental, special, exemplary, or
consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or
business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence
or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.
X Fire License. Copyright 2005. Envoi Solutions LLC. Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including
iv
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to the following conditions. The copyright notice and this
permission notice shall be included in all copies or substantial portions of the Software. The software is provided "as is", without
warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular
purpose and non-infringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability,
whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other
dealings in the software.
January 2013
TABLE OF CONTENTS
Introduction
Calculating Tax
Transaction Structure
Input Model
Output Model
Custom Integration Options
Using the Tax Calculation Web Service
7
8
10
10
10
10
11
13
14
14
15
16
How It Works
16
17
19
20
20
21
23
25
25
25
26
27
27
28
29
29
29
35
CompanyService
36
CustomerManagementPortType
38
EstablishmentService
38
ExemptionCertificatePortType
40
ExemptionCertificateService
42
ProductMappingService
45
UserService
47
49
50
vi
50
53
55
55
56
Import Hierarchy
57
Naming Conventions
57
57
58
59
60
62
67
70
72
73
75
77
78
82
85
89
90
92
94
96
98
100
104
107
107
Authentication
107
Database Keys
107
108
110
111
111
112
113
115
115
116
116
116
117
Element Types
118
XML Elements
119
120
vii
123
146
166
168
170
176
184
185
Descriptions
185
Allocation Rollup
197
199
199
200
<ADDRESS> Elements
200
<MESSAGE> Elements
202
203
203
204
viii
Introduction
INTRODUCTION
ONESOURCE Indirect Tax Determination enterprise transaction tax management software is
a highly scalable and reliable service for all business applications that need consolidated tax
determination, calculation and recording. A three-tier application built on industry standard
J2EE technology and state-of-the art object oriented design principles, Determination is
designed to optimize performance, reliability, interoperability, manageability, and security.
For each transaction, the system:
l
l
l
l
ONESOURCE Indirect Tax Determination directly supports US Sales and Use tax, as well as
VAT and other taxes in Europe, Canada, Latin America, and many other regions.
Introduction
How The Programmer Topics Are Organized
Introduction
Database Tier: A relational database that stores your transaction tax data and application
metadata (tax data and policy configurations).
Integration Tier: This is either out-of-the-box software or code that you develop to
integrate the financial system with Determination.
Middle Tier: A Java compliant application server that accepts transactions from the
financial system, calculates tax, and returns the results to the Integration Tier. This also
serves up the web pages for the User Tier.
User Tier: Determination is the web-based tool where tax professionals set tax policy
configurations.
Introduction
ONESOURCE Indirect Tax Determination Overview
Calculating Tax
CALCULATING TAX
There are two interfaces you can use to integrate (connect) financial systems with
ONESOURCE Indirect Tax Determination:
l
l
l
ONESOURCE Indirect Tax Integration Process Flow (page 6): An overview of the process
for connecting to Determination
Transaction Structure (page 7): The hierarchy of transaction data
Custom Integration Options (page 10): Information specific to the two main calculation
interfaces
Testing Custom Integration Transactions (page 14): Tips for testing your transactions
directly with the Determination interfaces
Calculating Tax
ONESOURCE Indirect Tax Integration Process Flow
Calculating Tax
Transaction Structure
TRANSACTION STRUCTURE
This topic describes the hierarchy of the input and output data fields used in tax transactions.
The input fields are sent to Determination by your financial system through your custom
integration software. The output fields are returned to your financial system from Determination
following a tax calculation.
See Appendix A: Special Transaction Considerations (page 203) for additional
tips aboutXML transactions.
Input Model
The input data model has these main levels:
Indata: Data on this level contains detail about transaction batches.
Invoice: Data on this level identifies invoices. Multiple invoices can be present in the
Indata.
Line: Data on this level contains item information. Multiple lines can be present in
each Invoice.
The relationship between these levels is as follows:
Indata
Invoice 1
Line 1
Line 2
Line n
Invoice 2
Line 1
Line 2
Line n
Invoice n
Line 1
Line 2
Line n
Note that some identical elements may appear in both the Input Invoice and the Input Line data
structure. Depending on your tax calculation requirements, both can be used per the following:
l
If a data element value appears at the Input Invoice level, it does not need to be repeated at
the Input Line level.
However, if an element value appears at the Input Invoice level, and is populated differently
at the Input Line level, the Input Line level value overrides that which is at the Input Invoice
level for that line only.
Calculating Tax
Transaction Structure
An example of this is a multi-line invoice where most items are shipped to the address at Input
Invoice level, but one Input Line item may be shipped to a different address. For tax calculations,
this distinction is critical, so the unique address is specified for that Input Line.
Output Model
The output data model has these main levels:
Outdata: Data on this level contains detail about transaction batches.
Invoice: Data on this level identifies invoices. Multiple invoices can be present in the
Outdata.
Line: Data on this level contains item information. Multiple lines can be present in
each Invoice.
Tax: Data on this level identifies taxes for specific lines. Multiple tax blocks can
be present in each Line.
The relationship between these levels is as follows:
Outdata
Invoice 1
Line 1
Tax 1
Tax 2
Tax n
Line 2
Tax 1
Tax 2
Tax n
Line n
Tax 1
Tax 2
Tax n
Invoice n
Line 1
Tax 1
Tax 2
Tax n
Line n
Tax 1
Tax 2
Tax n
Calculating Tax
Transaction Structure
10
Calculating Tax
Custom Integration Options
Using the ONESOURCE Indirect Tax Integration Java SDK (page 13)
In the list of Determination web services, click on the link for TaxCalculationService.
XSD: See the field comments for detailed descriptions. You can find the XSD link in the
WSDL listed above. To view the comments in the most readable format, we recommend
that you open the XSD in a text or XML editor instead of a browser.
Online Help or the Determination User Guide: The Determination User Guide is a PDF
version of the Online Help. These resources contain some business logic behind the XSD
elements. The Determination User Guide is in the documentation directory of the software
distribution.
Tax Calculation XML Elements (page 117): This is a series of lists containing details about
elements. Much of this overlaps with the XSD descriptions.
Calculating Tax
11
The SOAP header is examined for a valid Determination user name and password .
If you enable authentication, Determination evaluates the user name and password
found on the batch level (IndataType) for each invoice.
l
l
The user must be associated with the company specified on the invoice.
The user must be granted either the Source System role or a custom role with
the Application type of Calculate Tax.
To ensure that the service is never interrupted by an expired password,
exempt the user from password expiration. See the option Password Never
Expires in the Help topic Edit Users. The best practice is to change passwords
periodically to maintain security.
If there are no values for the user name or password on the batch level,
Determination relies on those values in the SOAP header.
12
Calculating Tax
Custom Integration Options
Logging
There are two Configuration parameters in Determination that control Tax Calculation web
service logging. See the Configuration topic in Help for valid values:
l
LOG_LEVEL (for application-wide logging): This controls logging across the entire
application.
LOG_LEVEL:<package name> (for package-level logging): This controls which packages
(and classes) appear in the logs. For example, if you use LOG_
LEVEL:COM.SABRIX.TAX.CALCINTERFACE, you see log messages for this package
and its classes. To log multiple packages, add separate parameters for each package.
Passwords are not recorded in logs.
Calculating Tax
13
14
Calculating Tax
Testing Custom Integration Transactions
Tax Calculation Service Transactions: Third Party SOAP Tools (page 14)
Calculating Tax
15
The host and port are for the application server hosting Determination. Paste your XML directly
into the input area on the Tax Calculator page and click Calculate Tax. The output XML is
generated and displayed in the browser window. If there is an error in the XML, the tool
generates an error message.
16
Calculating Tax
Testing Custom Integration Transactions
If you do not have readily available test input XML from your business source system, you can
generate it in the Workbench:
1. Log on to Determination.
2. Navigate to Menu > Workbench.
3. Create your transaction scenario.
4. Click Actions > XML Input.
5. In the pop-up window, right click on the XML window and choose View Source.
If you do not use View Source but instead try to paste directly from the
browser into the tool, the extra formatting characters added by the
browser will cause errors.
6. Select the XML from the Edit window and paste it into the tool (if you are simulating a tax
call from a financial system, you may want to remove Workbench-specific elements such as
SCENARIO_NAME).
7. Click Calculate Tax.
How It Works
xmlInvoiceClient is a Java program that you copy to the machine from which you want to test
Determination. This machine needs to have network access to Determination via HTTP(S); in
other words, you need to be able to reach your Determination URL from the machine where
you are initiating the test transactions.
Create an XML file containing one or more transactions. To build this file, you can either
compose it in a text or XML editor, or you could use the Workbench to generate a test case. The
Workbench only generates the XML for one transaction at a time; so, if you want multiple
transactions in your test tile, copy and paste the additional transactions into the file.
Calculating Tax
17
After you prepare your transaction file, configure either a Microsoft Windows batch file (.bat) or
a shell script (.sh) to execute xmlInvoiceClient (see the instructions below). When you execute
the program from a command line, it sends your transaction file across the network to
Determination and returns the results in the filename you specify. You can then inspect the XML
results manually, or you could write software programs to analyze the results.
18
Calculating Tax
Testing Custom Integration Transactions
19
While each of these approaches uses different technologies--one uses a SOAP web service
and the other uses a Java servlet--they both compare submitted XML zone elements against
records in the database and return enhanced zone detail if it can be determined.
The following topics describe the structure of zone lookups, Determination parameters affecting
zone lookup, and details about the two zone interfaces:
l
20
ZONE STRUCTURE
This topic describes the hierarchy of the input and output data fields used in zone lookup. The
input fields are ones that your financial system sends to Determination through your custom
integration software. The output fields are the ones returned to your financial system from
Determination following a zone lookup.
See Appendix A: Special Transaction Considerations (page 203) for additional
tips aboutXML transactions.
Here is an example of the request structure in plain XML (without a SOAP wrapper).
<ADDRESS>
<COUNTRY>US</COUNTRY>
<STATE>NY</STATE>
<COUNTY>Tompkins</COUNTY>
<CITY>Ithaca</CITY>
<POSTCODE>14850</POSTCODE>
</ADDRESS>
21
Zone Structure
<COUNTRY>
<NAME>UNITED STATES</NAME>
<CODE>US</CODE>
<CODE3>USA</CODE3>
<ISOCODE>840</ISOCODE>
</COUNTRY>
<STATE>
<NAME>NEW YORK</NAME>
<CODE>NY</CODE>
</STATE>
<COUNTY>
<NAME>TOMPKINS</NAME>
</COUNTY>
<CITY>
<NAME>ITHACA</NAME>
</CITY>
<POSTCODE>
<NAME>14850</NAME>
</POSTCODE>
</ADDRESS>
22
<MESSAGE>
<LOCATION>AddressSelector.findSelections</LOCATION>
<CATEGORY>ADDRESS VALIDATION</CATEGORY>
<CODE>AV_SUCCESSFUL_PROCESSING</CODE>
<MESSAGE_TEXT>Successful processing.</MESSAGE_TEXT>
<SEVERITY>0</SEVERITY>
</MESSAGE>
</ADDRESS_VALIDATION_RESPONSE>
23
Default
Setting
Description
AV_INTL_TAXPROVIDER
Sabrix
INTL Tax
Data
AV_PARTIAL_MATCH_
STATES
Null (Off)
AV_PLUS_FOUR_
ALTERNATES_ENABLED
Null (Off)
AV_US_TAXPROVIDER
Sabrix US
Tax Data
24
Parameter
COUNTRIES_USING_
POSTCODE_LOOKUP_
POLICY
Default
Setting
Null
(Off)
Description
Set this parameter if you want Determination to
evaluate postcodes and cities in countries other than
the US. For example, if you are doing transactions in
Puerto Rico and use
<COUNTRY>PR</COUNTRY>, you would insert
PR into this parameter. Note that this value is casesensitive.
If you want several countries to use this lookup
policy, then separate each value with a comma. If
you use both two and three character codes for a
country, include each separated by a comma.
This parameter uses Determination's default logic for
postcodes and cities. For instance, if a city spans
multiple counties, and no Zip +4 is provided,
Determination selects the default city.
Warning: If you decide to use this parameter, be
sure that your source system supplies postcode data
for the selected countries.
SINGLE_ZONE_ALIAS_
ENABLED
Null
(Off)
25
In the list of Determination web services, click on the link for ZoneLookupService.
XSD: See the field comments for detailed descriptions. You can find the XSD link in the
WSDL listed above. To view the comments in the most readable format, we recommend
that you open the XSD in a text or XML editor instead of a browser.
Online Help or the Determination User Guide: The Determination User Guide is a PDF
version of the Online Help. These resources contain some business logic behind the XSD
elements. The Determination User Guide is in the documentation directory of the software
distribution.
XML Elements Reference: This is a series of lists containing details about elements. Much
of this overlaps with the XSD descriptions.
l
26
27
28
2. Enter address elements, using those found in Zone Lookup Input XML (page 199).
3. If desired, select the checkbox to view address validation results in another window.
4. Click Validate Address to complete the address.
5. The servlet displays the complete address and any associated errors.
29
30
In the list of Determination web services, click on the WSDL link for the particular service you
want to use.
Mapping Data Elements
To map the tax configuration elements from the financial system to those in Determination,
consult the following:
l
Understanding the Logic of Tax Configuration Web Services (page 35): This topic
contains some basic business logic behind the various web services.
XSD: See the field comments for detailed descriptions. You can find the XSD link in the
WSDL listed above. To view the comments in the most readable format, we recommend
that you open the XSD in a text or XML editor instead of a browser.
Online Help or the Determination User Guide: The Determination User Guide is a PDF
version of the Online Help. These resources contain some business logic behind the XSD
elements. The Determination User Guide is in the documentation directory of the software
distribution.
By default, all the Tax Configuration web service calls require a valid Determination user and
password. If you turn off passwords for the Tax Configuration web services, you must still
include a valid Determination user with appropriate roles for the affected companies.
31
To turn off the password validation, apply the appropriate parameter and value on the
Configuration page of Determination:
l
CompanyService
EstablishmentService
ExemptionCertificateService
ProductMappingService
UserService
EXEMPTION_CERTIFICATE_MANAGEMENT_SERVICE_AUTHENTICATION_REQUIRED:
Set this to N to turn off authentication for ExemptionCertificatePortType.
CUSTOMER_MANAGEMENT_SERVICE_AUTHENTICATION_REQUIRED: Set this to N to turn
off authentication for CustomerManagementPortType.
Password Expiration
If you are using passwords, exempt the user from password expiration so that the service is
never interrupted by an expired password. See the option Password Never Expires in the
Help topic Edit Users. The best practice is to change passwords periodically to maintain
security.
32
The ReferenceId is an optional, user-defined ID used primarily to track error messages. Keep
the following in mind when using this:
l
It is populated on the reply only if you supply the ID in the request and there is a failure;
responses for successful calls do not contain these IDs.
This ID is transient and only applies within the context of a web services call.
We recommend that this value remain unique (although this is not a requirement).
This is simplified batch transaction behavior that is designed to help you debug any problems
you encounter with your request:
l
For each request, all entities either succeed or fail with a single error messagethe entire
batch is either committed or rolled back.
Entities are processed in order so the items before the failure are assumed to be correct.
Success/Failure Messages
There is a variety of standard error messages. Each message includes a description: successful
calls have messages stating they were successful, and calls that fail have messages describing
the failures. Review the following table for information about return messages:
End-Point
Type
Number of
Entities
Status
Message
Create
1-N
SUCCESS
Create
1-N
FAILED
33
End-Point
Type
Number of
Entities
Status
Message
Find
ENTITY_
FOUND
Find
ENTITY_NOT_
FOUND
Update
1-N
SUCCESS
Update
1-N
FAILED
Modify
SUCCESS
Modify
FAILED
Delete
1-N
SUCCESS
Delete
1-N
FAILED
All users are granted access to companies through the assignment of roles. Use the table below
as a guide to roles that are appropriate for Tax Configuration web service users:
Role
Certificate Manager
Users with this role can execute web service operations on customers and
exemption certificates.
Company
Administration
This role has the privileges that allow users to update or delete
Determination companies.
This role has all privileges for Tax Configuration web services, except for
some operations in the Company service:
l
Source System
This role has all privileges for Tax Configuration web services, except for
some operations in the Company service:
l
<Custom Role>
If you want more control over specific web services, create a custom role
and grant specific privileges to Determination applications. For example,
you could create a custom role that limits access to Create, Update and
Find operations, with no access to Modify or Delete operations.
34
Logging
There are two Configuration parameters in Determination that control Tax Configuration web
service logging. See the Configuration topic in Help for valid values:
l
LOG_LEVEL (for application-wide logging): This controls logging across the entire
application.
LOG_LEVEL:<package name> (for package-level logging): This controls which packages
(and classes) appear in the logs and applies to all Tax Configuration web services except
CustomerManagementPortType and ExemptionCertificatePortType. For example, if you
use LOG_LEVEL:ORG.APACHE.CXF.INTERCEPTOR, you see log messages for this
package and its classes. To log multiple packages, add separate parameters for each
package.
Passwords are not recorded in logs.
SequenceId
The SequenceID is also known as the transaction ID and is generated automatically for the first
failed transaction in a request. Like ReferenceID, you can also use this for troubleshooting
transactions:
l
The Sequence ID provides a consistent way for you to identify which entity on the request
caused a particular error. For example, if ten entities were placed in a Create request and
the fifth one failed, then a SequenceID of 5 would be included in the return.
XSD Validation
All Tax Configuration web service calls are validated automatically against the XSD (this cannot
be altered or configured).
Case Sensitivity
The XML validation requires the element names and attributes from the payload to match the
definition. The data passed in the web services is also case sensitive.
35
Purpose
Version
2011-09-01
2011-05-27
2011-09-01
2011-05-27
2011-09-01
2011-09-01
2011-09-01
36
CompanyService
Version:2011-09-01
Operation
Purpose
CreateCompany
ModifyCompany
UpdateCompany
FindCompany
DeleteCompany
37
To use this operation, the user needs the appropriate role. See Determination Users and Roles
(page 33) for details.
UpdateCompany
You can change numerous company attributes with this operation; however, you can only
change the parent, company name, or external company id using the ModifyCompany
operation. You can also change multiple companies in a single batch by inserting additional
Update Company elements for each company.
Many of the elements contained in Extended Company Attributes are about configurations for a
particular business function. For example, if you are modifying a child company, you can
configure it so that it uses the TransEditor group of a parent company.
Parent companies cannot use the business functions of child companies; for
example, parents cannot use the TransEditor Groups of their children.
However, child companies can use the business logic of their parents or
grandparents instead of their own.
In the case of a grandchild company that wants to use its grandparent's
business logic, the grandchild company would need to specify this directly and
not go through the parent.
FindCompany
Use this operation to find the attributes of a company. Data is returned only for the requested
companynot for any child companies. You must look up the child companies in separate
requests.
This operation is only available for individual companiesnot batches of companies.
DeleteCompany
You can remove companies at any level below Administration, but note that this deletion
operation also removes all companies nested below the one you are deleting.
We do not recommend deleting companies in production environments;
however, if you must remove companies, use extreme caution because these
changes are irreversible.
This will delete the company, all of its children, and related data. If there are
users that only had access to one of the deleted companies, they will not be able
to log on to Determination. Also, a user cannot delete its default company.
This operation is only available for individual companiesnot batches of companies.
To use this operation, the user needs the appropriate role. See Determination Users and Roles
(page 33) for details.
38
CustomerManagementPortType
Version: 2011-05-27
Operation
Purpose
CreateUpdateCustomer
DeleteCustomer
CustomerExists
Use this service to add one or more Determination customers. If you are adding multiple
customers, insert additional Request elements for each customer.
In the following Customer Management operations, Customer Group
Reference is not used when it is contained in Customer Reference.
CreateUpdateCustomer
Use this operation to create or update one or more Determination customers. You can also
upload multiple customer groups, each with multiple customers. To upload customers for more
than one customer group, insert additional Request elements for each group; then, inside each
Request, insert additional Customer elements for each customer.
In each request, identify the customer by the Customer Number.
DeleteCustomer
Use this operation to remove one or more Determination customers. If you are deleting multiple
customers, insert additional Request elements for each customer.
Identify the customer by the Customer Number.
CustomerExists
Use this operation to confirm the existence of one or more Determination customers. If you are
searching for multiple customers, insert additional Request elements for each customer.
Identify the customer by the Customer Number.
EstablishmentService
Version: 2011-09-01
Operation
Purpose
ModifyEstablishment
ModifyTopLevelEstablishment
39
Use this service to specify the locations in which your company is established (has a physical
presence). You can set establishments either on the level of the geographic zone or taxing
authority. The zone and authority levels exist in a hierarchy where the zone settings are at the
top. The following shows an example of the city food/beverage authority type in the state of
Alabama (United States):
Alabama (Zone)
AL - MOBILE, CITY FOOD SERVICE ESTABLISHMENT TAX(Authority)
AL - THOMASVILLE POLICE JURISDICTION, CITY FOOD SERVICE ESTABLISHMENT TAX
(Authority)
AL - THOMASVILLE, CITY FOOD SERVICE ESTABLISHMENT TAX (Authority)
The establishments from the zone level are inherited by the child authorities. However, you can
also override these zone-level settings by configuring establishments at the lower, authority
level.
The following sections explain special considerations for the establishment operations.
ModifyTopLevelEstablishment
Use this to set zone-level establishments. Besides indicating whether an entire zone should be
set for the establishment, you are also setting two other fields:
l
l
ModifyEstablishment
Use this to set authority-level establishments. This has no effect on Zone-level establishments,
except that the settings here take precedence over the zone level.
Just like ModifyTopLevelEstablisment, you can set Override Tax Type and Interstate Tax Type
(US transactions only), but you also need to set Authority Name Or Type. This means that you
either supply the exact authority name (for example, AL - MOBILE, CITY FOOD SERVICE
ESTABLISHMENT TAX) or your supply the type of authority, such as City Food/Beverage.
The data for Authority Name Or Type is case sensitive, as it is for all the XML
elements.
40
ModifyEstablishment provides more granular options for setting the location than
ModifyTopLevelEstablishment because you are setting specific authorities. Choose from the
zone-related values to specify the location. See the Zones topic in Help for details about zones.
Ensure that you supply enough address information so that Determination can
make a match; otherwise, you may receive a Partial Zone Tree error.
ExemptionCertificatePortType
Version: 2011-05-27
Operation
Purpose
CreateUpdateExemptionCertificate
ExemptionCertificateExists
DeleteExemptionCertificate
Exemption certificates are used to exempt all or part of transactions from tax. They are issued
by taxing authorities and have certain characteristics:
l
Apply to a particular customer. You can manually create or automatically create customers
using exemption certificates as necessary.
Are valid in a particular country or related authority type/authority (US and International) or
state or related authority type/authority (US only).
Are valid for transactions meeting certain criteria, including a particular product or service.
Have an exemption amount or rate associated with the exempted product or service.
Certificates always exist in relation to customers and companies, and companies can have
multiple customer groups.
In the following exemption certificate operations, Customer Group Reference is
not used when it is contained in Customer Reference.
CreateUpdateExemptionCertificate
Use this operation to do the following:
l
41
All actions require you to identify the Company Name and the Customer Group Name.
You can only add customers to existing customer groupsnot create customer groups.
To change both the Customer Number and the Customer Name in the same request, do
the following:
1. Insert the current Customer Number inside the Customer Reference element for
Customer.
2. Insert the new Customer Name and Customer Number inside the Detail element for
Customer.
To change the certificate number at the same time as the Customer Name and/or
Customer Number, do the following:
1. Complete the previous steps for changing the Customer Number and/or Customer
Name.
2. In the same request as above, insert the new Customer Number inside the Customer
Reference element for Exemption Certificate Reference.
3. Insert the existing Certificate Number inside ExemptionCertificate Reference.
4. Include Valid From or Exempt Reason for the existing certificate inside
ExemptionCertificate Reference.
5. Insert the new Certificate Number inside Exemption Certificate Detail.
ExemptionCertificateExists
Use this operation to detect if one or more exemption certificates exists. If you are searching for
multiple exemption certificates, insert additional Request elements for each certificate.This
operation requires the following:
l
Company
Customer Group
Customer Number
42
DeleteExemptionCertificate
Use this operation to delete one or more exemption certificates. If you are deleting multiple
certificates, insert additional Request elements.
You can select the certificate to delete using up to four parameters which can be placed in any
order in the Exemption Certificate element:
l
ExemptionCertificateService
Version:2011-09-01
Operation
Purpose
ModifyCertificateAuthority
ModifyLimitedUseCertificate
ModifyTopLevelCertificateAuthority
FindExemptReason
ModifyExemptReason
DeleteExemptReason
FindExemptCertificatesByCustomer
Although some of the operations of this service overlap with the general operations of
ExemptionCertificatePortType (page 40), this service is designed to help you manage various
certificate attributes:
l
General Attributes:Certificates have many attributes such as dates for which they are
valid, exemption amounts, and customer details.
Limited Use: The default type is a blanket certificate, but you can apply conditions that
make a certificate apply only under certain criteria of use.
Authority Attributes: Certificates are issued by taxing authorities, and you may need to
indicate which level of taxing authority is applicable for each certificate. There are two
separate operations that allow you to control this setting: you can either set the top-level
zone (which sets all child authorities) or you can set child authorities individually.
Exempt Reasons: Some companies want to include codes in certificates indicating the
rationale for the exemption. You can find, add, and modify these company-specific codes.
The following sections explain special considerations for the exemption certificate detail
operations.
43
ModifyCertificateAuthority
Use this operation to change the authority for a certificate. If you are changing multiple
authorities, add additional Certificate Authority elements for each authority.
Authorities exist in the context of zones (locations). So, to set an authority, you must specify its
zone, along with its name. When you use this operation, you can set any number of authorities
based on your zone settings. For example, you could use this service to set up a certificate to be
exempt in one or two particular authorities in the US state of Illinois (instead of exempting all
transactions in the entire state).
As an example in the United States, if you want to exempt the city of Lombard, Illinois for food
and beverage taxes, do the following:
1. Specify the zone information in the request:
l
country=US
state=IL
county=DuPage
city=Lombard
2. Specify either the AuthorityName (IL - LOMBARD, CITY FOOD AND BEVERAGE TAX)
or the AuthorityType (City Food/Beverage).
The operation then looks through all the locations (zones) you specified for that particular
authority.
ModifyLimitedUseCertificate
Limited use certificates have custom conditions that need to be satisfied for a certificate to apply.
These conditions are composed of an XML element and a value pattern (a literal value or a
regular expression). For example, a limited use certificate could require the data in
INVOICE.INVOICE_NUMBER to equal the regular expression %1234_$.
Use this operation to do the following:
l
This operation requires you to identify an existing certificate that you want to change. It does not
allow you to create a new certificate. Be sure to include the ExemptReason and ValidFrom
values in the request.
To create a new certificate, use the CreateUpdateExemptionCertificate
operation in the ExemptionCertificatePortType service.
44
ModifyTopLevelCertificateAuthority
Use this operation to set all authorities under one or more zones as exempt. If you are changing
multiple zones, insert additional Top Level Certificate Authority elements for each zone to
modify.
In this operation, you specify either the country or state. The operation then sets all authorities
under the country or state as exempt. If the Country is US, then use only the State element. If
the country is anything other than US, use only the Country element.
This operation removes all individual settings under the country or state. Check
with your tax professional before executing this.
FindExemptReason
Use this operation to find the exempt reasons for a particular company and customer group.
Remember that exempt reasons are specific to customer groups, so be sure to specify the
correct company/customer group combination in your search.
The Exempt Reason Long Code and Exempt Reason Short Code are optional elements. If you
do not supply them, you receive a complete listing of the exempt reasons for that combination of
company and customer group.
ModifyExemptReason
Use this operation to change the exempt reasons for a company and customer group.
You must use the exempt reason long code, short code, and the description in this operation,
but long code and short code function as keys, so you cannot change both of these in one
request; otherwise, you will add a new record.
For example, if you want to change a long code and description, you must identify the exempt
reason record by the existing short code. Alternatively, if you want to change the short code and
the description, identify the record by the existing long code.
DeleteExemptReason
Use this operation to delete an exempt reason for a company and customer group. Identify the
exempt reason to delete by the long code, short code, and description.
45
FindExemptCertificatesByCustomer
Use this operation to find the certificates for particular customers. Supply the customer number,
company name, and customer group name.
This operation returns the following basic information in its confirmation:
l
Customer Number
Certificate Number
Valid From
Active
ProductMappingService
Version:2011-09-01
Operation
Purpose
FindProductMapping
UpdateProductMapping
CreateProductMapping
DeleteProductMapping
Product mappings allow you to associate products in your business system with those that
reside in the Determination software. They consist of both a product code from your financial
system and the related product category in a hierarchical list of products in Determination.
For example, you might have product code from your business system labeled Exer_Course
that you need to map to the product category called Exercise Classes in Determination's
product hierarchy. The product category Exercise Classes is at the bottom of one branch of the
Determination product hierarchy:
91 Personal and Domestic Services
Personal Appearance
Spa and Workout and Rejuvenation Facilities
Exercise Classes
When you make these product code mappings, you do so in the context of a Determination
company. Within a company, these mappings are categorized by product group (for example,
US) and by product mapping groups (collections of similar product mappings).
46
Most of the operations for this web service require you to identify the product mapping either by
the Product Mapping Natural Key or the Product Mapping Id:
l
Product Code
The following sections explain special considerations for the product mapping operations.
FindProductMapping
This operation helps you find details about a particular product mapping. This operation returns
the product mapping id that you can use to perform other operations on product mappings, such
as updates.
This operation requires you to identify the product mapping either by the Product Mapping
Natural Key or the Product Mapping Id.
In the response, you are provided a list of products. The sequence of the list items represents
the hierarchy of products. For example, if your financial system product code labeled Exer_
Course is mapped to the Determination product category Exercise Classes, the output of a
FindProductMapping request for Exer_Course would include a list containing these elements:
91 Personal and Domestic Services
Personal Appearance
Spa and Workout and Rejuvenation Facilities
Exercise Classes
This operation is available only for single searchesnot for batch operations.
UpdateProductMapping
Use this operation to change one or more product codes in existing product mappings. For
example, if your financial system product code Exer_Course has changed to Exercise_Course,
you could use this operation to change its mapping to Exercise Classes in Determination.
This operation only updates the product code portion of the product mapping
not the product category in Determination.
If you are changing multiple product mappings, include additional Product Mapping elements for
each mapping.
47
This operation requires you to identify the product mapping either by the Product Mapping
Natural Key or the Product Mapping Id.
CreateProductMapping
Use this operation to create one or more product mappings. If you are creating multiple product
mappings, insert additional Product Mapping elements for each mapping.
This operation requires you to identify the product mapping by the Product Mapping Natural
Key.
Once you identify the company and product mapping, specify the path to the product category in
Determination. Construct the hierarchy by inserting Path elements for each level of the
hierarchy. For example, if you are mapping to Exercise Classes in the default product tree, you
would include the following:
91 Personal and Domestic Services
Personal Appearance
Spa and Workout and Rejuvenation Facilities
Exercise Classes
If you are mapping to a custom product in the Determination product tree, set Custom Product
to true. This directs the operation to search Determination's custom product tree.
DeleteProductMapping
Use this operation to remove one or more product mappings. If you are removing multiple
product mappings, insert additional Product Mapping blocks for each deletion.
This operation requires you to identify the product mapping either by the Product Mapping
Natural Key or the Product Mapping Id.
UserService
Version:2011-09-01
Operation
Purpose
FindUser
DeleteUser
CreateUser
UpdateUser
Users always exist within the context of a Determination company. Each user is granted a role
or roles that determine what actions they can perform within each company. A single user may
have multiple roles associated with one or more companies. For example, a user may use the
Determination DBA and License Manager roles for one company, and the Certificate Manager
and User Administrator roles for another company.
The following sections explain special considerations for the user operations.
48
FindUser
Use this operation to view details about particular users. You can use this to determine if a user
exists and to see the user's attributes.
This operation is available only for single usersnot for batch operations.
DeleteUser
This operation deletes users based on User Name. To delete multiple users, insert additional
User elements for each user.
This action is a logical deletionnot a physical one. It deactivates the user so it is no longer
visible in the Determination Tax Control Panel. The effect of this is that you cannot create
another user with the same name as any of the deactivated ones.
CreateUser
Use this operation to create one or more new users. To create multiple users, insert additional
User elements for each user.
If you are adding multiple roles for a particular user, insert additional Role elements for each
role.
Although this operation is dependent upon roles, it does not allow you to create a role. You can
create roles through the Determination Tax Control Panel.
UpdateUser
Use this operation to update one or more users. To update multiple users, insert additional User
elements for each user.
If you are adding multiple roles for a particular user, insert additional Role elements for each
additional role.
49
l
l
Import monthly US and International Content Updates from Thomson Reuters. You can
configure this importation to be wholly or partially automated, or you can download and
install updates manually.
Back up a Determination company.
Move data between instances of the same Determination version (by exporting and reimporting data). The current compatibility version is G, which spans releases from version
5.0.0.0 to the current release.
Create import files so that you can upload data from your financial system to ONESOURCE
Indirect Tax Determination. Data types include exemption certificates, customers, licenses,
materials, products, product mapping files, and others.
The following topics explain two special features of the Import/Export interface:
l
50
Determination provides two tools to enable command-line export and import operations. You
can use these tools to transfer various configurations from one installation of ONESOURCE
Indirect Tax Determination to another or to import zipped tax data. While you can perform the
same tasks using Import/Export in Determination, there are two instances when you may prefer
to use these command-line tools:
l
To bypass browser and other memory limitations that can hang exports and imports of large
data files.
To perform batch operations without the need to access the Determination.
The import tool is designed to import zipped XML data--not plain text files such
as comma separated value files (CSV) used in the simple file format imports.
Each tool is a Java program which performs an http (or https) request to a Determination
instance and performs imports or exports according to the parameters provided. You can
execute each tool on the command line, or you can use either the shell script or batch file
provided in the client directory of ONESOURCE Indirect Tax Determination software
distribution: entityExportClient.bat and entityImportClient.bat or entityExportClient.sh and
entityImportClient.sh. You can execute the programs from any environment that has the
following:
l
All the .jar files contained in the client directory of ONESOURCE Indirect Tax Determination
software distribution
51
Usage
java -classpath \
.\commons-io-1.3.1.jar; \
.\commons-lang-2.4.jar; \
.\jsap-2.1.jar; \
.\taxengine-client-5.5.0.0.jar \
com.sabrix.entityconversion.EntityExportClient \
--url=<URL of app server> \ --companyName=<name of company> \
--outfile=<name of file to write data to> \
--exportType=<export type> \
--proxyhost=<Optional: address of proxy server>
--proxyport=<Optional: proxy server port> \
--customerGroupName=<Optional: name of customer group> \
--filterGroupName=<Optional: name of filter/transeditor group> \
--productMappingGroupName=<Optional: name of product mapping group> \
--startDate=<Optional: start date> \
--endDate=<Optional: end date> \
--fileType=<Optional: XML|XMLUNZIPPED>
Parameters
Parameter
Description
Required?
-classpath
Yes
--url
Yes
--companyName
Yes
--outfile
The name of the .zip file to which you want to write the results.
Yes
--exportType
Yes
l
l
l
l
l
l
company
audit
user
customerGroup
filterGroup
productMappingGroup
--proxyhost
No
--proxyport
No
52
Parameter
Description
Required?
Export options
Yes
l
l
--startDate
An optional start date for audit data records (audit export only).
No
--endDate
An optional end date for audit data records (audit export only).
No
--fileType
No
53
Parameters
Parameter
Description
Required?
-classpath
Yes
--url
http[s]://<server>:<port>/sabrix/import (<server>:<port> is
the server and port on which ONESOURCE Indirect Tax
Determination is running).
Yes
--infile
Name of the input file with the extension to use for the import.
Yes
--username
Yes
--password
Yes
--proxyhost
No
--proxyport
No
54
Example
Concurrent imports may result in data corruption. Always ensure that an import
has completed before beginning the next import and that another user is not
currently running an import on the target Determination instance.
55
CSV import files are a very powerful tool. Because the imported data replaces existing data,
use caution before you proceed. Please read Best Practices for Importing Data with CSV Files
(page 58) for tips about safely using CSV import files.
56
Copy the code example below into a text editor and replace the values with your own data.
Create the file in a text editor. Make sure to represent each column name in the header and
separate columns from one another by a comma in the data.
Use a spreadsheet to set up the file, using a different column for each value. When you save
the file, select the CSV format to create a comma-delimited file. In CSV files, column
headings and values are separated by commas, even if a column contains no data.
Use a Determination-supplied template. Templates contain only the required fields; if you
have data in optional columns, you must include the column name in the header and a value
for the column.
Each supported import type requires a CSV file. The file contains the import type, all of the
column headers separated by commas, and values for the imported data (also separated by
commas). The following example shows a Product Categories import with 8 products:
sdiType=ProductCategories
ProductPath,Description,CommodityCode
Office Supplies,Office Supplies,OS1111
Office Supplies.Paper,Paper,OS2222
Office Supplies.Paper.Recycled,Recycled Paper,
Office Supplies.Paper.Photo,Photo Paper,
Office Supplies.Paper.Glossy,Glossy Paper,
Office Supplies.Furniture,Office Furniture,OF1234
Office Supplies.Furniture.Desks,Desks
Office Supplies.Furniture.Chairs,Chairs
The first line defines the import type (sdiType=ProductCategories). This line is optional; if you
do not include it, the Import Wizard prompts for the type when you import the data. If you include
it, add trailing commas to represent column separators. In the example above, there are three
column headers (ProductPath, Description, and CommodityCode), so you would add two
commas:
sdiType=ProductCategories,,
The second line defines the columns for this import type (ProductPath, Description,
CommodityCode). Each import type has its own column definition, including required and
optional columns.
57
In the example, the following eight lines contain the data to import. Each column has its own
requirements for the values you can enter, including data type, size, and order. Click a link in the
Supported CSV Files (page 55) list above to see a table with format requirements for each
import type.
Warning: Blank spaces at the end of lines, as well as blank rows, cause all or part of an import
to fail.
Import Hierarchy
Several of the import types cannot be imported until referenced data is present in the database.
For example, exemption certificates cannot be loaded until the owning customers are present.
l
Naming Conventions
Your import file can use any name, as long as it does not contain the / or \ characters and has
the .csv suffix.
Altova XMLSpy
Review the documentation for your editor to determine how to use the UTF-8 character set.
Throughout the simplified CSV descriptions, column types such as varchar2(100) and varchar2
(50) indicate the number of single-byte characters that can be successfully contained within the
element. If you include multi-byte characters, you need to account for their size when submitting
data. Most Western accented and currency characters are 2 bytes; most Asian characters are 3
bytes.
58
Avoid using special characters if your data does not require them (for example, <, >, &, ", ').
Blank spaces at the end of lines, as well as blank rows, cause all or part of an import to fail.
Overlapping records within the same file are not validated (for example, dates and product
mappings).
Dates must be in the MM/DD/YYYY format (for example, 11/30/08 is interpreted as
11/30/0008).
Booleans must be Y or N. If you enter Yes or No, the values default to N (worst case is Yes
= N).
In updated records, if you do not include data in optional columns or fields, the default value
is NULL .
Each import type has its own column definitions, including required columns, optional
columns, and prerequisites.
An error log lists every error encountered while performing the import.
To search and view log data, use the menu system to navigate to System > About > Log Search
page.
Using Imports to Add or Modify Data
Typically, simplified CSV imports are used to add new data to ONESOURCE Indirect Tax
Determination and the examples shown in each simplified CSV description describe how to do
so. You can also use imports to modify data that already exists, but modifying only the columns
with data changes. Each import type imposes its own update restrictions as described in the
individual CSV file format topics.
If you import data, you must provide complete data for the imported entity. For
example, if you import an exemption certificate to modify the expiration date,
you must import all fields on the certificate or the existing data is replaced by
blank data.
59
Format
Required?
Description
Name
varchar2
(100)
AuthorityName
varchar2
(100)
CustomAuthority
varchar2(1)
MaterialSetName
varchar2
(100)
Description
varchar2
(200)
ProcessOrder
number
StartDate
mm/dd/yyy- Y
y
EndDate
mm/dd/yyy- N
y
MaterialSetListName
varchar2
(100)
ProductPath
varchar2
(100) (see
note)
CustomProduct
varchar2(1)
RateCode
varchar2
(50)
ErpTaxCode
varchar2
(200)
60
For more information about formatting a CSV file, see CSV File Format (page 56).
Updating an Existing Authority Rate Set
You can update an existing rate set record by including data in the AuthorityName,
CustomAuthority, MaterialSetName, and ProcessOrder columns to match a rate set rate; then
modifying additional columns as needed.
Authority Rate Set File Import Prerequisites
You need to create any desired target companies, custom authorities, custom products, and
material sets and lists before importing authority rate sets with the Import/Export Wizard.
Authority Rate Set File Import Options
When importing an authority rate set file, the Import/Export Wizard prompts for:
l
Company Selection. Select the desired company which owns the associated material
sets and lists.
Product Group Selection. Select the product group containing the products listed in the
import file.
61
The commodity code replaces a full product path in a product mapping. The CSV file specifies
the commodity codes to map to a product code and whether it is a custom product. You can use
this alternative method of mapping your source system product codes to either standard
Determination products or to your own custom products as long as these products have a
commodity code.
For information about using CSV format files, see Best Practices for Importing Data with CSV
Files (page 58).
Example CommodityMappings File Format
SDITYPE=CommodityMappings-US
Column Name
Format
Required?
Description
CommodityCode
varchar2
(100) (See
Description)
ProductCode
varchar2
(100) (See
Description)
CustomProduct
varchar2
(100) (See
Description)
62
The Company CSV can only be used to insert new companies, not to update existing
company records in ONESOURCE Indirect Tax Determination.
If you are adding a new company that has a parent, the parent company must already exist
in ONESOURCE Indirect Tax Determination.
If the company you are adding does not have a parent, then insert Top Level Company in
the ParentCompany field.
Do not insert values for the Provider, Owner, and Group columns if they refer to the
company that you are inserting. For example, if you are importing the Acme company, and
the Acme company will be the TransEditor Group Owner, then leave that owner field
blank and the import process will supply this value for you. However, if your company is a
child, and you are referring to a parent company for a particular Provider, Owner, or Group,
then you must insert the value in the CSV.
If you attempt to create a new Parent company using CSVimport, avoid including default
US Exempt Reason and default INTL Exempt Reasons.The exempt reason elements are
successful only if the following apply:
l
l
l
l
The new company being created is a Child of a Parent company that already exists.
The Parent company already has at least one exempt reason.
The default settings for both US and INTL Exempt Reasons have been established.
The Exempt Certificate Customer Group Owner for the Child company is the Parent
company.
For information about using CSV format files, see Best Practices for Importing Data with CSV
Files (page 58).
63
Format
Required?
Description
ParentCompany
varchar2
(100)
CompanyName
varchar2
(100)
Name of company
Active
varchar2
(1)
Type
varchar2
(1)
Indicates whether
company is internal or
external. Valid values are I
and E.
ShortName
varchar2
(10)
LegalEntityName
varchar2
(200)
ExternalId
varchar2
(200)
HomeMenuUrl
varchar2
(200)
UsesB2b
varchar2
(1)
B2bAutoCreateCompanies
varchar2
(1)
B2bAutoCreatedCompanyParent
varchar2
(100)
B2bUseParentCompanyPreferences
varchar2
(1)
If this is a top-level
company and does not
have a parent, enter Top
Level Company (This is
case-sensitive).
64
SDITYPE=Companies
Column Name
Format
Required?
Description
UsesExemptionCerts
varchar2
(1)
EcAutoCreateExemptionCerts
varchar2
(1)
Indicates if exemption
certificates should be
automatically created.
Valid values are Y and N.
EcAutoCreateCustomers
varchar2
(1)
Indicates if customers
should be automatically
created. Valid values are Y
and N.
EcExemptTemporaryCertificateTransactions
varchar2
(1)
Indicates if temporary
certificates are applied to
the affected invoice's tax
calculations. Valid values
are Y and N.
EcActiveExemptCertCustomerGroupOwner
varchar2
(100)
Active Exemption
Certificate Customer
Group Owner
EcActiveExemptCertCustomerGroup
varchar2
(100)
Active Exemption
Certificate Customer
Group
EcDefaultExemptionCertificateStatus
varchar2
(1)
Default Exemption
Certificate Status. Valid
values are A, I, T, or U:
l
l
l
l
A (Approved)
I (In Review)
T (Temporary)
U (Unapproved)
EcDefaultDaysValid
NUMBER
EcDefaultUsExemptReason
varchar2
(2)
EcDefaultIntlExemptReason
varchar2
(2)
ProductMappingGroupOwner
varchar2
(100)
ProductMappingGroup
varchar2
(100)
65
SDITYPE=Companies
Column Name
Format
Required?
Description
RegistrationGroupOwner
varchar2
(100)
RegistrationGroup
varchar2
(100)
Registration Group
UsProductGroup
varchar2
(100)
US Product Group
IntlProductGroup
varchar2
(100)
UsTaxDataProvider
varchar2
(100)
UsCustomDataProvider
varchar2
(100)
UsEstablishedAuthorityDataProvider
varchar2
(100)
US Established Authority
Data Provider
UsCurrencyExchangeProvider
varchar2
(100)
US Currency Exchange
Provider
IntlTaxDataProvider
varchar2
(100)
IntlCustomDataProvider
varchar2
(100)
IntlEstablishedAuthorityDataProvider
varchar2
(100)
International Established
Authority Data Provider
IntlCurrencyExchangeProvider
varchar2
(100)
International Currency
Exchange Provider
MessageThresholdPreference
NUMBER
Message threshold
preference. Valid values
are 0, 1, and 2:
l
l
l
0 (Informational)
1 (Warning)
2 (Severe)
XmlOutputGroupOwner
varchar2
(100)
XmlOutputGroup
varchar2
(100)
TransEditorGroupOwner
varchar2
(100)
TransEditorGroup
varchar2
(100)
TransEditor Group
66
SDITYPE=Companies
Column Name
Format
Required?
Description
AllocationGroupOwner
varchar2
(100)
AllocationGroup
varchar2
(100)
Allocation Group
67
Note that the format of a CSV file is case-specific. For more information about formatting a CSV
file, see Creating CSV Import Files (page 55).
Import/Export Wizard Steps
The following screens appear as you import your company CSV:
l
Format
Required?
Description
CustomerName
varchar2
(100)
Customer name.
CustomerNumber
varchar2
(100)
Customer number.
CustomerComment
varchar2
(2000)
Optional comment.
68
SDITYPE=Customer
Column Name
Format
Required?
Description
DbaName
varchar2
(100)
Address1
varchar2
(60)
Address2
varchar2
(60)
Address3
varchar2
(60)
Address4
varchar2
(60)
Country
varchar2
(2)
Province
varchar2
(50)
Province.
State
varchar2
(50)
State.
County
varchar2
(50)
County.
City
varchar2
(60)
City.
District
varchar2
(50)
District.
PostCode
varchar2
(50)
BusinessPhone
varchar2
(20)
69
SDITYPE=Customer
Column Name
Format
Required?
Description
ContactName
varchar2
(60)
Contact name.
ContactEmail
varchar2
(60)
ContactPhone
varchar2
(20)
ContactTitle
varchar2
(100)
ContactDepartment
varchar2
(100)
Contact department.
ContactFax
varchar2
(20)
FullyExempt
varchar2
(1)
70
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Customer
You can update a customer record by including data in the CustomerName and
CustomerNumber columns to match a customer; then modifying additional columns as needed.
Customer File Import Prerequisites
You need to create any desired target companies and customer groups before importing
customers with the Import/Export Wizard.
Customer File Import Options
When importing a customer file, the Import/Export Wizard prompts for:
l
l
Format
Required?
Description
LicenseTypeName
varchar2
(100)
71
SDITYPE=CustomerLicense
Column Name
Format
Required?
Description
LicenseTypeStartDate
mm/dd/yyy- Y
y
CustomerName
varchar2
(100)
CustomerNumber
varchar2
(100)
StartDate
date
EndDate
date
LicenseNumber
varchar2
(100)
LicenseURL
varchar2
(1000)
TemporaryLicenseFlag
varchar2(1)
ExternalId
varchar2
(100)
72
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Customer License
You can update a customer license by including data in the LicenseTypeName,
LicenseTypeStartDate, CustomerName, CustomerNumber, StartDate, and LicenseNumber
columns to match a license and then modifying additional columns as needed.
Customer Licenses File Import Prerequisites
You must create the desired company into which you want to import licenses, as well as the
associated license types, customer groups, and customers, before running the Import/Export
Wizard.
Customer Licenses File Import Options
When importing a customer license file, the Wizard prompts for:
l
Format
Required?
Description
Name
varchar2(100)
Description
varchar2(2000)
DateExpression
varchar2(2000)
73
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Date Determination Logic Expression
You can update an existing date determination logic expression by including matching data in
the Name column, then entering a new Description and/or Date Expression.
Date Determination Logic File Import Prerequisites
You must create the desired company into which you want to import the Date Determination
Logic records before running the Import/Export Wizard.
Date Determination Logic File Import Options
When importing a Date Determination Logic file, the Import/Export Wizard prompts for
Company Selection. Select the desired company.
SDITYPE=DateDeterminationRule-US, DateDeterminationRule-INTL
Column Name
Format
Required?
Description
RuleOrder
number
74
SDITYPE=DateDeterminationRule-US, DateDeterminationRule-INTL
Column Name
Format
Required?
Description
DateType
varchar2
(50)
AuthorityName
varchar2
(100)
AuthorityType
varchar2
(100)
CustomAuthority
varchar2(1)
ProductPath
varchar2
(100)
(See
Description)
CustomProduct
varchar2(1)
DateDeterminationLogicName
varchar2
(100)
DocumentType
varchar2
(50)
MovementType
varchar2
(100)
StartDate
mm/dd/yyy- Y
y
EndDate
mm/dd/yyy- N
y
CustomerName
varchar2
(100)
CustomerNumber
varchar2
(100)
75
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Date Determination Rule
You can update an existing date determination rule by submitting RuleOrder, DateType,
AuthorityName, CustomAuthority, and DateDeterminationLogicName columns which match a
rule, then modifying the other columns as desired.
Date Determination Rules File Import Prerequisites
You must create the desired company into which you want to import date determination rules,
as well as any associated date determination logic records, authorities, products, and
customers, before running the Import/Export Wizard.
Date Determination Rules File Import Options
When importing a date determination rules file, the Import/Export Wizard prompts for
Company Selection. Select the desired company.
For information about using CSV format files, see Best Practices for Importing Data with CSV
Files (page 58).
76
In both cases, the file format is the same; only the sdiType is different (either EstablishmentsUS or Establishments-INTL).
Established Zones Format
SDITYPE=ZoneEstablishments-US or ZoneEstablishments-INTL
Column Name
Format
Required?
Description
StateName or
ZoneName
varchar2
(50)
Established
varchar2
(50)
EstablishmentStartDate
mm/dd/yyyy
EstablishmentEndDate
mm/dd/yyyy
77
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Established Zones Import Prerequisites
A company to which you want to import this data must already exist.
Established Zones Import Options
When you import establishment data, the Import/Export Wizard prompts for Company
Selection. Select the desired company to link to the established zone.
Format
Required?
Description
FromCurrencyCode
number
ToCurrencyCode
number
StartDate
mm/dd/yyy- Y
y
EndDate
mm/dd/yyy- Y
y
Rate
number
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Exchange Rate
You can update an existing exchange rate by including matching data in all columns except
Rate, then entering a new rate in that column.
78
Exchange Rate Source Selection. Select the desired exchange rate source.
Format
Required?
Description
CertificateNumber
varchar2
(100)
Certificate number.
CustomerName
varchar2
(100)
CustomerNumber
varchar2
(100)
Status
varchar2
(100)
A (Approved)
I (In Review)
T (Temporary)
U (Unapproved)
79
SDITYPE=ExemptionCertificates
Column Name
Format
Required?
Description
ExemptReasonCode
varchar2(2)
ValidFromDate
mm/dd/yyyy
ExpiresDate
mm/dd/yyy- N
y
Active
varchar2(1)
FullyExempt
varchar2(1)
TaxDataType
varchar2
(50)
US
INTL
CertificateImagePath
varchar2
(1000)
ExemptAmount
NUMBER
CurrencyCode
varchar2
(50)
Y*
BasisPercent
NUMBER
CustomerTaxId
varchar2
(100)
CustomerLicenseNumber
varchar2
(50)
CustomerBusinessType
varchar2
(100)
CustomerComments
varchar2
(2000)
80
SDITYPE=ExemptionCertificates
Column Name
Format
Required?
Description
SellerName
varchar2
(100)
SellerNumber
varchar2
(100)
SellerDbaName
varchar2
(100)
SellerTaxId
varchar2
(100)
SellerLicenseNumber
varchar2
(100)
ProductCode
varchar2
(100)
81
In this case, there is no ExemptReasonCode, so you include the header but leave the value
blank. Note that the second line wraps so that all of the text is visible. In your file, all text for each
row should be on one line.
sdiType=ExemptionCertificates
CertificateNumber,CustomerName,CustomerNumber,Status,ExemptReasonCode,
TaxDataType,ValidFromDate,Active,FullyExempt
199A,Aurora Forest Products,589247,A,,US,03/05/2007,Y,Y
28945,Sequoia Office Services,649823,I,,US,03/04/2007,Y,Y
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Exemption Certificate
You can update an exemption certificate record by including data in the CertificateNumber,
CustomerName, CustomerNumber, ExemptReasonCode, and ValidFromDate columns to
match a certificate and then modifying additional columns as needed.
Note: To perform an update, make sure your CSV file contains values for all the exemption
certificate fields that are populated in Determination; otherwise, the existing data will be
removed. Also, if you are updating an existing certificate, you must include the
ExemptReasonCode header in your CSV file. If you are not using exempt reason codes, simply
include the header ExemptReasonCode and leave its value blank.
Exemption Certificate File Import Prerequisites
Before you import exemption certificates using the CSV import file, you must define the
following:
l
Target company
Customer
Customer group
Zones
Authority type
Authority
82
All certificates are imported as blanket use. If you want to create a limited or single-use
certificate, import the certificate, then use ONESOURCE Indirect Tax Determination to add
limited use criteria.
In both cases, the file format is the same; only the valid values in the ZoneName column are
different.
83
Format
Required?
Description
ZoneName
varchar2
(100)
varchar2(1)
CustomerName
varchar2
(100)
CustomerNumber
varchar2
(100)
ExemptReasonCode
varchar2(2)
CertificateNumber
varchar2
(100)
ValidFromDate
mm/dd/yyy- Y
y
84
You would leave the value blank, as shown in the following lines.
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Exemption Certificate Zone Record
You can update an exemption certificate zone record by including data to match an existing
record in all columns except Exempt. In other words, the only value that can be updated for a
particular record is the Exempt value.
Exemption Certificate Zones Import Prerequisites
In order, you must create in advance: authority types, and authorities.
You also need to create any desired target companies, customer groups, customers,
certificates, and exempt reasons before importing exemption certificates with the Import/Export
Wizard.
Exemption Certificate Zones Import Options
When importing exemption certificate zone data, the Import/Export Wizard prompts for:
l
l
85
Format
Required?
Description
CertificateNumber
varchar2
(100)
Certificate number.
CustomerName
varchar2
(100)
CustomerNumber
varchar2
(100)
Status
varchar2
(100)
ExemptReasonCode
varchar2(2)
A (Approved)
I (In Review)
T (Temporary)
U (Unapproved)
ValidFromDate
mm/dd/yyyy
ExpiresDate
mm/dd/yyy- N
y
Active
varchar2(1)
FullyExempt
varchar2(1)
86
SDITYPE=ExemptionCertificatesLimitedUse
Column Name
Format
Required?
Description
TaxDataType
varchar2
(50)
US
INTL
CertificateImagePath
varchar2
(1000)
ExemptAmount
NUMBER
CurrencyCode
varchar2
(50)
Y*
BasisPercent
NUMBER
CustomerTaxId
varchar2
(100)
CustomerLicenseNumber
varchar2
(50)
CustomerBusinessType
varchar2
(100)
CustomerComments
varchar2
(2000)
SellerName
varchar2
(100)
SellerNumber
varchar2
(100)
SellerDbaName
varchar2
(100)
SellerTaxId
varchar2
(100)
SellerLicenseNumber
varchar2
(100)
87
SDITYPE=ExemptionCertificatesLimitedUse
Column Name
Format
Required?
Description
ProductCode
varchar2
(100)
XmlElement
varchar2
(100)
Value
varchar2
(200)
88
If you want to import more than one Value for an individual certificate, then you must create
additional lines in the same file. These lines will be identical except for the Value field. For
example, if you wanted to add an additional value to certificate 199A, you would add a second
line in the file:
199A,Aurora Forest Products,589247,A,US,03/05/2007,INVOICE.USER_
ELEMENT.ATTRIBUTE2,service
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating an Existing Exemption Certificate
You can update an exemption certificate record by including data in the CertificateNumber,
CustomerName, CustomerNumber, ExemptReasonCode, and ValidFromDate columns to
match a certificate; then modifying additional columns as needed.
Note: To perform an update, make sure your CSV file contains values for all the exemption
certificate fields that are populated in Determination; otherwise, the existing data will be
removed. Also, if you are updating an existing certificate, you must include the
ExemptReasonCode header in your CSV file. If you are not using exempt reason codes, simply
include the header ExemptReasonCode and leave its value blank.
Exemption Certificate File Import Prerequisites
You need to create any desired target companies, customer groups, customers, and exempt
reasons before importing exemption certificates with the Import/Export Wizard.
89
Format
Required?
Description
LicenseTypeName
varchar2
(100)
DefaultTerm
number
TemporaryDaysValid
number
LicenseMask
varchar2
(100)
Description
varchar2
(200)
EndDateRequiredFlag
varchar2(1)
LicenseNumberRequiredFlag varchar2(1)
PhysicalLicenseRequiredFlag
varchar2(1)
StartDate
mm/dd/yyy- Y
y
EndDate
mm/dd/yyy- N
y
90
Format
Required?
Description
MaterialSetName
varchar2
(100)
MaterialSetListDescription
varchar2
(200)
MaterialSetListName
varchar2
(100)
91
Format
Required?
Description
MaterialSetListStartDate
date
MaterialSetListEndDate
date
AuthorityName
varchar2
(100)
CustomAuthority
varchar2(1)
AuthorityMaterialSetStartDate
date
AuthorityMaterialSetEndDate
date
ProductPath
varchar2
(100)
CustomProduct
varchar2(1)
MaterialSetListProductStartDate
mm/dd/yyy- Y
y
MaterialSetListProductEndDate
mm/dd/yyy- N
y
92
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating Existing Data
You can update a material set record by including data in the MaterialSetName and
MaterialSetListName columns to match a Material Set and then modifying additional columns
as needed.
Materials File Import Prerequisites
You need to create any desired target companies, authorities, and products before importing
material sets with the Import/Export Wizard.
Materials File Import Options
When importing a materials file, the Import/Export Wizard prompts for Company Selection.
Select the desired company. A second prompt asks for the desired Product Group. Specify
the desired group.
93
When you import a product categories file, all records in the file are imported into a single
Product Group (such as US or INTL) and placed beneath the parent product category you
specify. Therefore, do not mix products belonging to different product groups and with different
parents in the same file. Instead, create multiple import files. For example:
l
You want to add the same set of products to the US, Canada, and Independent product
groups. In each case, the parent product category is the same. Create a single import file
and import it three times, once for each Product Group.
You want to add a set of products to the US and Canada product groups, and a similar
set to the Independent product group. The parent product category is the same. Create
two import files, one for the US and Canada and one for Independent. Import the files as
appropriate for each Product Group.
You want to add the same set of products to all Product Groups, but in each Product
Group the parent product category differs. Create a single import file, then specify a
different parent product category when you import it for each Product Group.
You want to add different products to each Product Group, and within each group the
parent product category is different. Create multiple import files, one for each unique
Product Group/Parent Product Category combination.
For information about using CSV format files, see Best Practices for Importing Data with
CSV Files (page 58).
Product Categories File Format
SDITYPE=ProductCategories
Column Name
Format
Required?
Description
ProductPath
varchar2
(100)
(See
Description)
Description
varchar2
(250)
CommodityCode
varchar2
(50)
The ProductPath delimiter is a dot (.) by default. This delimiter can be changed to another
supported character by setting the SDI_HIERARCHY_DELIMETER Configuration parameter
using Determination. See the Help or User Guide for more information.
94
Products do not need to be stored in a hierarchy; you can create a single container for all of your
products, or go as many levels deep as necessary based on your business requirements.
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Updating a Product Category Record
You can update a product category record by including ProductPath data to match an existing
record and then updating the Description and/or CommodityCode columns as desired.
Product Categories Import Options
You need to create any desired parent product categories (the root categories into which you
will import the product data) on the target system before importing data with the Import/Export
Wizard.
Product Categories Import Prerequisites
When importing product categories, the Import/Export Wizard prompts for:
l
Parent Product Category Selection. Select the desired parent product category. All
child product categories, and their children, will be imported relative to this parent product.
95
For information about using CSV format files, see Best Practices for Importing Data with CSV
Files (page 58).
Traditionally, a product mapping maps your ERP codes to a product in the Determination
product tree. This requires specifying the entire product path, which is cumbersome and
error-prone. If you wish, you can map a commodity code directly to a product code. See
Commodity Mappings CSV Format (page 60).
Format
Required?
Description
ProductPath
varchar2
(100) (See
Description)
ProductCode
varchar2
(100)
CustomProduct
varchar2(1)
96
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).For
information about formatting a CSV file to map commodity groups, see Commodity Mappings
CSV Format (page 60).
Product Mappings Import Prerequisites
You need to import or create any desired product categories on the target system before
importing product mappings data with the Import Wizard.
Product Mappings Import Options
When importing product mappings, the Import Wizard prompts for:
l
Product Mapping Group Selection. Select the desired Product Mapping Group.
In both cases, the file format is the same; only the valid values in the ZoneName column are
different.
97
Format
Required?
Description
ProductPath
varchar2
(100) (See
Description)
ZoneName
varchar2
(100)
mm/dd/yyy- Y
y
EndDate
mm/dd/yyy- N
y
Exempt
varchar2(1)
OverrideLocals
varchar2(1)
The ProductPath delimiter is a dot (.) by default. This delimiter can be changed to another
supported character by setting the SDI_HIERARCHY_DELIMETER Configuration parameter
using Determination. See the Help or User's Guide for more information.
Example Product Zones File
This file creates multiple product zone records for a single product category. Note that the
EndDate column is omitted as these product exceptions do not expire.
sdiType=ProductZones-US
ProductPath,ZoneName,StartDate,Exempt,OverrideLocals
Office Supplies.Paper,WASHINGTON,03/05/2005,Y,Y
Office Supplies.Paper,IDAHO,03/05/2005,Y,N
Office Supplies.Paper,CALIFORNIA,03/05/2005,N,N
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
98
Required?
Description
RefListName
RefListStartDate
Value
99
SDITYPE=ReferenceValue
Column Name
Required?
Description
ValueStartDate
ValueEndDate
Optional
Start and end dates for reference list values do not have to fall within the
reference list start and end dates. For reference lists, values are valid only when
they intersect the list start and end dates.
Example Reference Value File
This code sample uses the list and values from the MyHawaiianList example. Note that only the
dates that fall within the reference list dates are valid.
sdiType=ReferenceValue
RefListName,RefListStartDate,Value,ValueStartDate,
ValueEndDate
MyHawaiianList,08/01/2008,Kapari,07/01/2008,
MyHawaiianList,08/01/2008,Breadfruit,09/01/2008,
MyHawaiianList,08/01/2008,Poi,06/01/2008,08/15/2008
In the MyHawaiianList reference list, the StartDate is 08/01/2008 and the EndDate is
08/31/2008. The values in the code sample are valid in the reference list, with the exceptions
noted:
l
For Value = Kapari, ValueStartDate = 07/01/2008 (Starts before List Start Date. Valid only
08/01/2008 through 08/31/2008).
For Value = Breadfruit, ValueStartDate = 09/01/2008 (Starts after the List End Date. Will
never be a valid value).
For Value = Poi, ValueStartDate = 06/01/2008,ValueEndDate = 08/15/2008 (Starts before
List Start Date and ends before List End Date. Valid only 08/01/2008 through 08/15/2008).
Any company to which you want to import this data must already exist.
The reference list to update with new values must already exist, and your CSV must use the
same start date as this existing list.
100
Company Name
101
l
l
The logic statement IF (A or B) AND (C or D) THEN is not valid TransEditor logic. This
statement must be rewritten as: IF (A AND (C OR D)) OR (B AND(C OR D)) THEN.
You cannot nest OR statements within each other. An (OR) cannot contain a second (OR).
The logic must be unambiguous - for example, you cannot list a mix of ANDs and ORs with
no parentheses, and each open parenthesis must have a matching close parenthesis in the
appropriate location.
If you enter a math expression in the Element field, the upload will not validate the
expression. When you view the TransEditor in the UI, you will need to correct any failing
expression before you save the data and leave the page.
SDITYPE=TransEditors
Column
Name
Format
Required?
Description
GroupName
varchar2
(100)
EditorName
varchar2
(100)
ParentName
varchar2
(100)
Condition
varchar2
(5)
Open
varchar2
Element
varchar2
(250)
102
SDITYPE=TransEditors
Column
Name
Format
Required?
Description
Operator
varchar2
(15)
=
!=
<
>
>=
<=
IS EU
IS NOT EU
IS NULL
IS NOT NULL
LIKE
varchar2
(250)
Y*
A constant value.
l
varchar2
(250)
Y*
103
SDITYPE=TransEditors
Column
Name
Format
Required?
Description
ReferenceList
varchar2
(250)
Y*
varchar2
Comment
varchar2
(1000)
104
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
TransEditor Groups Import Prerequisites
This type of import imposes no prerequisites before using the Import/Export Wizard.
TransEditor Groups Import Options
When importingTransEditor Groups, the Import/Export Wizard prompts for Company
Selection. Select the desired company.
Once the group is imported, you need to view the data in Determination to verify the accuracy of
the import, create the appropriate start and end dates for the group, and check the group in
before using it.
105
In both cases, the file format is the same; only the valid values in the ZoneName and
LevelApplied columns are different.
Zone Alias File Format
SDITYPE=ZoneAlias-US or SDITYPE=ZoneAlias-INTL
Column
Name
Format
Required?
Description
Alias
varchar2
(50)
Value
varchar2
(50)
The value to which the aliased text will be set; the resulting
name once the alias is applied must be a valid zone name or
the alias will fail.
If an underscore is included in an Alias, in most cases it will
need to be in the Value as well. For example, if you are
matching the prefix alias SO to SOUTH, include the
underscore on both (SO_ and SOUTH_). In this case, SO
BOSTON would be transformed to SOUTH BOSTON.
The exception to this rule is when you want a prefix to be
concatenated to the alias string. For example, if you had an
Alias of FT_ to the Value of FORT, FT DEFIANCE would be
transformed to FORTDEFIANCE.
Type
varchar2
(2)
106
SDITYPE=ZoneAlias-US or SDITYPE=ZoneAlias-INTL
Column
Name
Format
Required?
Description
ZoneName
varchar2
(50)
World
Country
LevelApplied
varchar2
(50)
World
Country
State
Country
Province
County
City
County
City
For more information about formatting a CSV file, see Creating CSV Import Files (page 55).
Zone Alias Import Prerequisites
Any company to which you want to import this data must already exist.
Zone Alias Import Options
When you import zone alias data, the Import/Export Wizard prompts for Company Selection.
Select the desired company.
107
REVIEWING HISTORICAL
TRANSACTIONS
There is an interface called the Audit Invoice Servlet (auditinvoice) that you can use to re-create
the XML for transactions that have already been processed by ONESOURCE Indirect Tax
Determination. This is a useful tool for troubleshooting particular transactions. See the following
sections for details about this interface:
l
Browser: By using a supported browser, you can either select parameters or enter the XML
manually. This is the approach most commonly used by tax professionals. See The Audit Invoice
User Interface (page 108) for details.
Programmatically: You can also call the servlet programmatically using its URL. This is usually
used by programmers who are automating the troubleshooting process for tax professionals.
Authentication
If the CALC_AUTHENTICATION_REQUIRED Configuration parameter is set to Y, you will
always need to authenticate your auditinvoice transactions by using the Username and
Password fields/elements described in The Audit Invoice User Interface (page 108). Also, see
the Configuration topic in Help for more information on setting this parameter.
If you are using this servlet programmatically, exempt the user from password expiration. See
the option Password Never Expires in the Help topic Edit Users. The best practice is to
change passwords periodically to maintain security.
Database Keys
Each invoice is stored in the Audit Database using a unique key (or keys). The keys used to
refer to invoices are dependent on both your Configuration settings as well as the capabilities of
your specific ERP system and ONESOURCE Indirect Tax Integration. The keys consist of the
following elements in combination:
108
When performing Audit lookups, Determination may make use of one or both keys depending
on the settings of Configuration parameters and a specific Company Option. For information on
this topic, contact Customer Support.
The user interface enables you to either select or enter parameters from the list (upper pane) or
enter the input XML directly (lower pane).
If input XML is present on the page, it always takes precedence over any data selected or
entered above, regardless of which Submit button is clicked.
To trigger the servlet, enter or select data and click Submit. The resulting output XML appears
in a new window.
109
Field
Description
Detail Level
all: The resulting XML includes invoice, line, and tax data. Default.
invoice: The resulting XML includes invoice data with line and tax
data rolled up into the invoice.
line: The resulting XML includes invoice and line data, with tax data
rolled up into the line(s).
External Company ID
Invoice Number
An invoice date range for the search. See the Note following this table.
Invoice Date To
Fiscal Date From
A fiscal date range for the search. See the Note following this table.
Fiscal Date To
Transaction Date From
A transaction date range for the search. See the Note following this table.
Transaction Date To
Calling System
Number
Host System
A unique name for your ERP system. The combination of Calling System
Number, Host System, and Unique Invoice Number form a unique key for
an invoice in the Audit Database.
Invoice UUID
The unique identifier assigned to the invoice in the database. This data
can only be accessed by this servlet; it is not part of the calculations
output data.
Username Password
110
Date ranges, which are optional, are specified as follows: A From date alone limits the search to
dates matching the entered date and later. A To date alone limits the search to dates matching
the entered date an earlier. A From and To date pair limits the search to dates between the two,
inclusive of the From and To dates.
<EXTERNAL_COMPANY_ID> company</EXTERNAL_COMPANY_ID>
</AUDIT_DETAILS>
Description
<AUDIT_DETAILS>
all: The resulting XML includes invoice, line, and tax data.
invoice: The resulting XML includes invoice data with line and tax
data rolled up into the invoice.
line: The resulting XML includes invoice and line data, with tax data
rolled up into the line(s)
mostRecentInvoice=N|Y
l
l
<CALLING_SYSTEM_
NUMBER>
<EXTERNAL_
COMPANY_ID>
<FISCAL_DATE_
FROM>
<FISCAL_DATE_TO>
<HOST_SYSTEM>
A unique name for your ERP system. The combination of Calling System
Number, Host System, and Unique Invoice Number form a unique key for
an invoice in the Audit Database.
111
Description
<INVOICE_DATE_
FROM>
<INVOICE_DATE_
TO>
<INVOICE_
NUMBER>
<INVOICE_UUID>
<PASSWORD>
<TRANSACTION_
DATE_FROM>
<TRANSACTION_
DATE_TO>
<UNIQUE_INVOICE_
NUMBER>
<USERNAME>
Date ranges, which are optional, are specified as follows: A From date alone limits the search to
dates matching the entered date and later. A To date alone limits the search to dates matching
the entered date and earlier. A From and To date pair limits the search to dates between the
two, inclusive of the From and To dates.
112
113
The example contains hard-coded exchange rates that you could use for initial testing;
however, for your implementation, you would replace these examples with code that calls
your external exchange rate provider.
In your implementation, you can pass the exchange rate date (exchangeRateDate) to the
method getExchangeRates() to help you make the correct rate selection.
Determination requires a non-NULL list of rates. Add error handling so that if the External
Exchange Rate Finder causes or receives an error, it returns an empty list to Determination.
When Determination receives an empty list, it returns the application message
EXCHANGE_RATE_NOT_FOUND.
Insert your class file into the classes directory under sabrix in your application server
directory structure.
114
Determination does not cache the exchange rate results from the external
provider. Each transaction gathers all exchange rates for all countries, unless you
manage caching.
115
116
117
Line and Allocation Line Level Output XML Elements (page 176)
Batch-level elements set the defaults for all invoices in the batch. They can be overridden by
invoice-level elements of the same name.
If the element type is structural, the elements in the structure are listed immediately following,
and are indented and italicized for easy scanning.
For XML Output Elements, an additional column describes if the element is saved to the audit
tables.
118
ELEMENT TYPES
Each element is one of the following types:
l
Number: A number.
Date: A date in YYYY-MM-DD format (ISO 8601). The representation in your database is
dependent on your database configuration settings. The Output XML always returns the
format shown above.
Boolean: The Output XML always returns true or false. In the Input XML, you can also
specify Y or N as a convenience to enable backwards compatibility.
Throughout this reference, elements listed as types such as varchar2(100) and
varchar2(50) indicate the number of single-byte characters that can be
successfully contained within the element. If you include multi-byte characters,
you need to account for their size when submitting data. Most Western
currencies and accented characters are 2 bytes; most Asian characters are 3
bytes; depending on your database character set setting, multi-byte characters
may require more than 2 or 3 bytes of storage space.
119
XML Elements
XML ELEMENTS
Menu Path: Menu > System > XML Elements
On this page you can view all ONESOURCE Indirect Tax Determination XML elements.
If desired, use the Show list to select only the attribute types in which you are interested: Filter,
Input, Output or Tax Code Qualifier.
120
Type
varchar2
(100)
Req?
No
Description
A pass-through element that contains a
descriptor of the calling system sending the
transaction.
Note: ONESOURCE Indirect Tax
Determination supports two audit keys to
enable the lookup of audit records. The two
combinations are as follows:
HOST_SYSTEM
CALLING_SYSTEM_NUMBER
UNIQUE_INVOICE_NUMBER
or
MERCHANT_ID
INVOICE_NUM
INVOICE_DATE
Configuration parameters can modify which
keys are used and in which order.
<COMPANY_ID>
number
No
<COMPANY_NAME>
varchar2
(100)
Yes*
<COMPANY_ROLE>
varchar2(20)
Yes
121
Element Name
<EXTERNAL_
COMPANY_ID>
Type
Req?
Description
varchar2
(100)
Yes*
<HOST_REQUEST_
INFO>
structural
No
<HOST_REQUEST_
ID>
varchar2
(100)
No
<HOST_REQUEST_
LOG_ENTRY_ID>
varchar2
(100)
No
varchar2
(100)
No
<HOST_SYSTEM>
varchar2(16)
Yes*
122
Element Name
Type
Req?
Description
<SCENARIO_ID>
number(10)
No
<SCENARIO_NAME>
varchar2
(100)
No
<USERNAME>
varchar2(60)
Yes*
<XML_GROUP_NAME>
varchar2(30)
No
<XML_GROUP_OWNER>
varchar2
(100)
No
<INVOICE>
structural
Yes
123
Type
Req?
Description
<ALLOCATION_
GROUP_NAME>
varchar2
(100)
No
<ALLOCATION_
GROUP_OWNER>
varchar2
(100)
No
<ALLOCATION_NAME>
varchar2
(100)
No
<AUDIT_MESSAGE_
THRESHOLD>
varchar2(1)
No
<AUTO_CREATE_
CERTIFICATES>
boolean
No
124
Element Name
Type
Req?
Description
<AUTO_CREATE_
CUSTOMERS>
boolean
No
<BASIS_PERCENT>
number
No
<BILL_TO>
structural
No
<BUYER_PRIMARY>
structural
No
<CALCULATION_
DIRECTION>
varchar2(1)
No
125
Element Name
<CALLING_SYSTEM_
NUMBER>
Type
varchar2
(100)
Req?
No
Description
A descriptor of the calling system sending the
transaction.
Note: Determination supports two audit keys
to enable the lookup of audit records. The two
combinations are as follows:
HOST_SYSTEM
CALLING_SYSTEM_NUMBER
UNIQUE_INVOICE_NUMBER
or
MERCHANT_ID
INVOICE_NUM
INVOICE_DATE
Configuration parameters can modify which
keys are used and in which order.
<COMPANY_ID>
number
No
<COMPANY_NAME>
varchar2
(100)
Yes*
<COMPANY_ROLE>
varchar2(20)
Yes
<COUNTRY_OF_
ORIGIN>
varchar2
(100)
No
<CURRENCY_CODE>
varchar2(3)
Yes
126
Element Name
<CUSTOMER_GROUP_
NAME>
Type
varchar2
(100)
Req?
No
Description
Name of the Customer Group to use for this
transaction. Customers will be looked up in
this group, overriding the settings of the
transacting company's Company
Preferences.
Note: The list of valid groups for this element
consists of Customer Groups owned by the
transacting company and its ancestors.
<CUSTOMER_GROUP_
OWNER>
varchar2
(100)
No
<CUSTOMER_NAME>
varchar2
(100)
No
<CUSTOMER_NUMBER>
varchar2
(100)
No
<DELIVERY_TERMS>
varchar2
(100)
No
127
Element Name
Type
Req?
Description
<DEPT_OF_CONSIGN>
varchar2
(100)
No
<DOCUMENT_TYPE>
varchar2(50)
No
<END_USE>
varchar2
(100)
No
<END_USER_NAME>
varchar2
(100)
No
<ESTABLISHMENTS>
structural
No
structural
No
boolean
No
structural
No
<BUYER_ROLE>
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<MIDDLEMAN_
ROLE>
128
Element Name
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<SELLER_ROLE>
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<EXEMPT_AMOUNT>
Type
Req?
Description
boolean
No
structural
No
boolean
No
structural
No
129
Element Name
<COUNTRY>
Type
Req?
Description
number
No
structural
No
varchar2
(100)
No
structural
No
varchar2(20)
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
<EXEMPT_
CERTIFICATE>
<COUNTRY>
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
<EXEMPT_REASON>
<COUNTRY>
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
130
Element Name
<EXTERNAL_
COMPANY_ID>
Type
varchar2
(100)
Req?
Yes*
Description
The unique identifier used by your business
application to indicate which company to use
in Determination. This identifier also
distinguishes between different calling
applications that may be used by your
company.
This element may be passed at the batch
level or with each invoice, and is passed
through to the Determination output and the
audit tables.
(*) This element is Required if <COMPANY_
NAME> is not populated.
<FILTER_GROUP_
NAME>
varchar2
(100)
No
<FILTER_GROUP_
OWNER>
varchar2(30)
No
<FISCAL_DATE>
date
No
<HOST_SYSTEM>
varchar2
(100)
No
<INCLUSIVE_TAX_
INDICATORS>
structural
No
131
Element Name
Type
Req?
Description
<AUTHORITY_
TYPE>
varchar2
(100)
No
<FULLY_
INCLUSIVE>
boolean
No
varchar2(50)
No
<INPUT_RECOVERY_
TYPE>
See <INPUT_RECOVERY_
AMOUNT/PERCENT> for more information.
<INVOICE_DATE>
date
Yes
132
Element Name
<INVOICE_NUMBER>
Type
varchar2
(200)
Req?
Yes*
Description
This number is passed through to the audit
tables and acts as a reference in the audit
tables as well as for credit transactions.
(*) Required if <IS_AUDITED> is true.
Note: Determination supports two audit keys
to enable the lookup of audit records. The two
combinations are as follows:
HOST_SYSTEM
CALLING_SYSTEM_NUMBER
UNIQUE_INVOICE_NUMBER
or
MERCHANT_ID
INVOICE_NUM
INVOICE_DATE
Configuration parameters can modify which
keys are used and in which order.
<IS_AUDITED>
boolean
No
<IS_AUDIT_UPDATE>
boolean
No
<IS_AUDITING_
MESSAGES>
boolean
No
<IS_BUSINESS_
SUPPLY>
boolean
No
133
Element Name
Type
Req?
Description
<IS_CREDIT>
boolean
No
<IS_EXEMPT>
structural
No
<ALL>
boolean
No
<COUNTRY>
boolean
No
structural
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
<IS_NO_TAX>
boolean
No
134
Element Name
<COUNTRY>
Type
Req?
Description
boolean
No
<GEOCODE>
<IS_REPORTED>
boolean
No
<IS_REVERSED>
boolean
No
<IS_ROUNDING>
boolean
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
135
Element Name
<IS_
SIMPLIFICATION>
Type
boolean
Req?
No
Description
Indicates an override to any triangulation
simplification determinations. Valid values
are true and false.
If set to true, you must pass registrations in
for the Buyer, Seller, and Middleman in the
transaction or a warning message will be
returned.
<LICENSES>
structural
No
structural
No
<NUMBER>
varchar2
(100)
No
<TYPE>
varchar2
(100)
No
<NUMBER_
TYPE>
not
applicable
No
structural
Yes
<CUSTOMER_
LICENSE>
<LINE ID="N">
structural
No
<BILL_TO>
varchar2(30)
No
Bill To location.
<MIDDLEMAN>
varchar2(30)
No
Middleman location.
<ORDER_
ACCEPTANCE>
<ORDER_ORIGIN>
varchar2(30)
No
varchar2(30)
No
<SHIP_FROM>
varchar2(30)
Ship
From
location.
No
136
Element Name
Type
Req?
<SHIP_TO>
Description
varchar2(30)
Ship To
location.
No
<SUPPLY>
varchar2(30)
No
Supply location.
<LOCATION_SET>
varchar2(60)
No
<MIDDLEMAN>
structural
No
<MODE_OF_
TRANSPORT>
varchar2(50)
No
<MOVEMENT_DATE>
date
No
<MOVEMENT_TYPE>
varchar2
(100)
No
<NATURE_OF_
TRANSACTION_CODE>
varchar2(2)
No
<ORDER_
ACCEPTANCE>
structural
No
<ORDER_ORIGIN>
structural
<ORIGINAL_
DOCUMENT_ID>
varchar2
(100)
No
<ORIGINAL_
DOCUMENT_ITEM>
varchar2
(100)
No
137
Element Name
Type
Req?
Description
<ORIGINAL_
DOCUMENT_TYPE>
varchar2
(100)
No
<ORIGINAL_
INVOICE_DATE>
date
No
<ORIGINAL_
INVOICE_NUMBER>
varchar2
(200)
No
<ORIGINAL_
MOVEMENT_DATE>
date
No
<OVERRIDE_AMOUNT>
structural
No
<COUNTRY>
number
No
structural
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
<OVERRIDE_RATE>
138
Element Name
<COUNTRY>
Type
Req?
Description
number
No
varchar2(1)
No
<PORT_OF_ENTRY>
varchar2
(100)
No
<PORT_OF_LOADING>
varchar2(5)
No
<PRODUCT_MAPPING_
GROUP_NAME>
varchar2
(100)
No
<PRODUCT_MAPPING_
GROUP_OWNER>
varchar2
(100)
No
<REGIME>
varchar2
(100)
No
<REGISTRATIONS>
structural
No
varchar2(25)
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
<POINT_OF_TITLE_
TRANSFER>
<BUYER_ROLE>
varchar2(25)
No
<SELLER_ROLE>
varchar2(25)
No
139
Element Name
<SELLER_PRIMARY>
Type
structural
Req?
No
Description
The seller company's home or primary
address.
See Address Level Input XML Elements
(page 166) for a description of the individual
elements in this structure.
<SHIP_FROM>
structural
No
<SHIP_TO>
structural
No
<STATISTICAL_
PROCEDURE>
varchar2(6)
No
<SUPPLY>
structural
No
<SUPPLY_EXEMPT_
PERCENT>
structural
No
<COUNTRY>
number
No
See above.
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
140
Element Name
Type
Req?
Description
<TAX_CODE>
varchar2(50)
No
<TAX_
DETERMINATION_
DATE>
date
No
<TAX_EXCHANGE_
RATE_DATE>
date
No
<TAX_POINT_DATE>
date
No
<TAX_TREATMENT>
varchar2
(100)
No
D (Deferred).
DI (Deferred Invoice).
DP (Deferred Payment).
varchar2
(100)
No
141
Element Name
<TRANSACTION_
TYPE>
Type
varchar2(2)
Req?
Yes*
Description
The transaction type, which is required to
apply the correct type of taxes to the
transaction. In many countries, there are two
transaction types: Goods and Services. In
EU and other countries, additional transaction
types apply.
Valid types are:
AT - Ancillary Transport Services
CL - Customer Location Services
DS - Default Services
ES - Electronic Services
GS - Goods
IN - Installation Services
IS - Intermediary Service
MV - Movement for Excise
PC - Prime Contracting
PP - Physical Performance
RR - Rental
SI - Supplied and Installed Goods
T1 - Chain Transaction 1
T2 - Chain Transaction 2
TS- Transport Services
WG - Work on Goods
For a complete description of these
transaction types, see Transaction Types in
Help.
(*) This is required on the invoice level only if
it is not specified on the line level.
142
Element Name
<UNIQUE_INVOICE_
NUMBER>
Type
varchar2
(500)
Req?
No
Description
The unique identifier for this invoice, as
assigned by the ERP system.
Note: Determination supports two audit keys
to enable the lookup of audit records. The two
combinations are as follows:
HOST_SYSTEM
CALLING_SYSTEM_NUMBER
UNIQUE_INVOICE_NUMBER
or
MERCHANT_ID
INVOICE_NUM
INVOICE_DATE
Configuration parameters can modify which
keys are used and in which order.
Note: Unique Invoice Numbers must be
unique within an individual batch of invoices.
To re-process an invoice, include it in another
batch.
<USER_ELEMENT>
structural
No
<NAME>
varchar2
(200)
No
<VALUE>
varchar2
(200)
No
<VAT_GROUP_
REGISTRATION>
varchar2(25)
No
<VENDOR_NAME>
varchar2
(100)
No
143
Element Name
Type
<VENDOR_NUMBER>
varchar2
(100)
Req?
No
Description
The vendor's number. If this is a B2B
transaction and the Company is the buyer,
the Company becomes the Customer and the
Vendor becomes the Company for the
transaction.
144
Tax Type elements and related sub-elements are described separately in this table:
Element Name
Format
Req?
Description
<TAX_TYPE>
structural
No
RS - Rental Sales
CA - Custom Authority
(see Note 1 below)
RU - Rental Use
CA1 - Custom
Authority 1
(see Note 1 below)
SA - Sales
CU - Consumer Use
SI - Standard
Interstate
DS - Distance Sale
SN - Special Rate
(see Note 2 below)
EC - European
Community Sales
STK - Stock
ER -Intra EU Reverse
Charge
TR - Triangulation
ES - Exported Service
EXC - Excise
IC - Intra-Company
IM - Import
IR - International
Reverse Charge
(supplier outside the
EU)
IS - Imported Services
MA - Markup
Adjustment
MP - Markup
Percentage
MVT - Movement
NL - Not Liable
RC - Reverse Charge
or Rental Consumer's
Use
S - Standard
TE - Taxable Export
UN - Unregistered
Seller
US - Use
VG - VAT Group
ZC - Zero-rated
Intra-Community
Dispatches within the
European Union (EU)
ZE - Zero-rated
Exports leaving the
EU, or Zero-rated
Exports from non-EU
countries
ZR - Zero-rated Item
(rule specifies rate of
zero)
145
Element Name
Format
Req?
Description
<TAX_TYPE>
continued
structural
No
<ALL>
varchar2(20)
No
<COUNTRY>
varchar2(20)
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
146
Type
Req?
Description
<ACCOUNTING_CODE>
varchar2
(100)
No
<ALLOCATION_
GROUP_NAME>
varchar2
(100)
No
<ALLOCATION_
GROUP_OWNER>
varchar2
(100)
No
<ALLOCATION_NAME>
varchar2
(100)
No
<BASIS_PERCENT>
number
No
147
Element Name
<BILL_TO>
Type
structural
Req?
No
Description
The Bill To address.
See Address Level Input XML Elements (page
166) for a description of the individual elements
in this structure.
<BUYER_PRIMARY>
structural
No
<CALCULATED_UNIT_
AMOUNT>
number
No
148
Element Name
<COMMODITY_CODE>
Type
varchar2(50)
Req?
No
Description
A code that can be assigned to a product by a
particular authority. In the EU, many member
states have moved to using Harmonized
Codes (similar to Commodity Codes) which
can also be stored in this element. Commodity
Codes provide an alternate way (in addition to
product mappings) to match ONESOURCE
Indirect Tax Determination products.
Note: When commodity codes are evaluated
by the calculation engine, it first attempts to
match the full code, and then strips off
characters from the end of the code, one at a
time, until a match is made or no code remains.
<COUNTRY_OF_
ORIGIN>
varchar2
(100)
No
<CUSTOMER_GROUP_
NAME>
varchar2
(100)
No
<CUSTOMER_GROUP_
OWNER>
varchar2
(100)
No
<CUSTOMER_NAME>
varchar2
(100)
No
<CUSTOMER_NUMBER>
varchar2
(100)
No
See <INVOICE>.<CUSTOMER_NUMBER>
for details.
<DELIVERY_TERMS>
varchar2
(100)
No
<DEPT_OF_CONSIGN>
varchar2
(100)
No
<DESCRIPTION>
varchar2
(200)
No
149
Element Name
Type
Req?
Description
<DISCOUNT_AMOUNT>
number
No
<END_USE>
varchar2
(100)
No
<ESTABLISHMENTS>
structural
No
structural
No
boolean
No
structural
No
<BUYER_ROLE>
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<MIDDLEMAN_
ROLE>
150
Element Name
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<SELLER_ROLE>
<BILL_TO>
<BUYER_
PRIMARY>
<MIDDLEMAN>
<ORDER_
ACCEPTANCE>
<ORDER_
ORIGIN>
<SELLER_
PRIMARY>
<SHIP_
FROM>
<SHIP_TO>
<SUPPLY>
<EXEMPT_AMOUNT>
Type
Req?
Description
boolean
No
structural
No
boolean
No
structural
No
151
Element Name
<COUNTRY>
Type
Req?
Description
number
No
structural
No
varchar2
(100)
No
structural
No
varchar2(20)
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
<EXEMPT_
CERTIFICATE>
<COUNTRY>
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
<EXEMPT_REASON>
<COUNTRY>
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
152
Element Name
<GROSS_AMOUNT>
Type
number
Req?
Yes*
Description
This is the amount that is required to compute
tax in forward calculations (see the invoicelevel input element <CALCULATION_
DIRECTION>).
When you execute reverse calculations, the
value of GROSS_AMOUNT is affected by the
values of two Configuration parameters:
l
Reverse-from-tax: USE_CALC_
GROSS_AMT_AS_GROSS_AMT_
CALC_DIR_R
Reverse-from-total: USE_CALC_
GROSS_AMT_AS_GROSS_AMT_
CALC_DIR_T
number
No
153
Element Name
Type
<INCLUSIVE_TAX_
INDICATORS>
structural
Req?
No
Description
Contains information on whether to treat some
or all authority taxes for this invoice as
inclusive, regardless of the selected rule.
For more information, see the Inclusive Taxes
topic in Help.
<AUTHORITY_
TYPE>
varchar2
(100)
No
<FULLY_
INCLUSIVE>
boolean
No
<INPUT_RECOVERY_
AMOUNT>
number
No
<INPUT_RECOVERY_
PERCENT>
number
No
<INPUT_RECOVERY_
TYPE>
varchar2(50)
No
<INVOICE_DATE>
date
No
<IS_ALLOCATABLE>
boolean
No
<IS_BUSINESS_
SUPPLY>
boolean
No
<IS_CREDIT>
boolean
No
154
Element Name
<IS_EXEMPT>
Type
Req?
Description
structural
No
<ALL>
boolean
No
<COUNTRY>
boolean
No
<GEOCODE>
<IS_
MANUFACTURING>
boolean
No
<IS_NO_TAX>
structural
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
boolean
No
<COUNTRY>
boolean
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
155
Element Name
<IS_
SIMPLIFICATION>
Type
boolean
Req?
No
Description
Indicates an override to any triangulation
simplification determinations. Valid values are
true and false.
If set to true, you must pass registrations in for
the Buyer, Seller, and Middleman in the
transaction or a warning message will be
returned.
<ITEM_VALUE>
number
No
<LICENSES>
structural
No
<CUSTOMER_
LICENSE>
structural
No
<NUMBER>
varchar2
(100)
No
<TYPE>
varchar2
(100)
No
<NUMBER_TYPE>
not
applicable
No
<LINE_NUMBER>
number
Yes
<LOCATION>
structural
No
<BILL_TO>
varchar2(30)
No
Bill To location.
<MIDDLEMAN>
varchar2(30)
No
Middleman location.
<ORDER_
ACCEPTANCE>
varchar2(30)
No
156
Element Name
Type
Req?
Description
<ORDER_ORIGIN>
varchar2(30)
No
MIDDLEMAN_
MARKUP_AMOUNT
number(31,
5)
No
MIDDLEMAN_
MARKUP_RATE
number
(31,10)
No
<SHIP_FROM>
varchar2(30)
No
<SHIP_TO>
varchar2(30)
No
Ship To location.
<SUPPLY>
varchar2(30)
No
Supply location.
<LOCATION_SET>
varchar2(60)
No
<MASS>
number
No
<MIDDLEMAN>
structural
No
<MODE_OF_
TRANSPORT>
varchar2(50)
No
<MOVEMENT_DATE>
date
No
<MOVEMENT_TYPE>
varchar2
(100)
No
157
Element Name
Type
<ORDER_
ACCEPTANCE>
structural
<ORDER_ORIGIN>
structural
Req?
No
Description
The Order Acceptance address.
See Address Level Input XML Elements (page
166) for a description of the individual elements
in this structure.
No
<ORIGINAL_
DOCUMENT_ID>
varchar2
(100)
No
<ORIGINAL_
DOCUMENT_ITEM>
varchar2
(100)
No
<ORIGINAL_
DOCUMENT_TYPE>
varchar2
(100)
No
<ORIGINAL_
INVOICE_DATE>
date
No
<ORIGINAL_
MOVEMENT_DATE>
date
No
<OVERRIDE_AMOUNT>
structural
No
158
Element Name
<COUNTRY>
Type
Req?
Description
number
No
structural
No
number
No
varchar2
(100)
No
<POINT_OF_TITLE_
TRANSFER>
varchar2(1)
No
<PORT_OF_ENTRY>
varchar2
(100)
No
<PORT_OF_LOADING>
varchar2(5)
No
<PRODUCT_CODE>
varchar2
(100)
No
<QUANTITIES>
structural
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
<OVERRIDE_RATE>
<COUNTRY>
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
<PART_NUMBER>
159
Element Name
<QUANTITY>
Type
Req?
Description
structural
No
<AMOUNT>
number
No
<UOM>
varchar2(25)
No
<DEFAULT>
boolean
No
<AMOUNT_
UOM>
not
applicable
No
<AMOUNT_
UOM_
DEFAULT>
not
applicable
No
<REGIME>
varchar2
(100)
No
<REGISTRATIONS>
structural
No
varchar2(25)
No
<BUYER_ROLE>
varchar2(25)
No
<SELLER_ROLE>
varchar2(25)
No
160
Element Name
<SELLER_PRIMARY>
Type
structural
Req?
No
Description
The seller company's home or primary
address.
See Address Level Input XML Elements (page
166) for a description of the individual elements
in this structure.
<RELATED_LINE_
NUMBER>
number
No
<SHIP_FROM>
structural
No
<SHIP_TO>
structural
No
<SUPPLEMENTARY_
UNIT>
varchar2(5)
No
<SUPPLY>
structural
No
<SUPPLY_EXEMPT_
PERCENT>
structural
No
<COUNTRY>
number
No
See above.
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
161
Element Name
Type
Req?
Description
<TAX_AMOUNT>
number
No
<TAX_CODE>
varchar2(50)
No
<TAX_
DETERMINATION_
DATE>
date
No
<TAX_EXCHANGE_
RATE_DATE>
date
No
<TAX_POINT_DATE>
date
No
<TAX_TREATMENT>
varchar2
(100)
No
D (Deferred).
DI (Deferred Invoice).
DP (Deferred Payment).
162
Element Name
<TAX_TYPE>
Type
structural
Req?
No
Description
An override tax type. Tax Type is determined
when the Jurisdiction Location is determined.
Use only to override the automatic tax type for
a transaction:
AC - Acquisition
RS - Rental Sales
CA - Custom Authority
(see Note 1 below)
RU - Rental Use
CA1 - Custom
Authority 1
(see Note 1 below)
SA - Sales
CU - Consumer Use
SI - Standard
Interstate
DS - Distance Sale
SN - Special Rate
(see Note 2 below)
EC - European
Community Sales
STK - Stock
ER -Intra EU Reverse
Charge
ES - Exported Service
TE - Taxable
Export
TR - Triangulation
EXC - Excise
UN - Unregistered
Seller
IC - Intra-Company
US - Use
IM - Import
VG - VAT Group
IR - International
Reverse Charge
(supplier outside the
EU)
ZC - Zero-rated
Intra-Community
Dispatches within
the European
Union (EU)
IS - Imported Services
MA - Markup
Adjustment
MP - Markup
Percentage
MVT - Movement
NL - Not Liable
RC - Reverse Charge
or Rental Consumer's
Use
S - Standard
ZE - Zero-rated
Exports leaving the
EU, or Zero-rated
Exports from nonEU countries
ZR - Zero-rated
Item (rule specifies
rate of zero)
163
Element Name
<TAX_TYPE>
continued
Type
structural
Req?
No
Description
Some Tax Types are specific to only US or
International transactions. US-only Tax Types
are RC (Rental Consumer's Use) RS and RU.
International-only Tax Types are AC, DS, ES,
IM, IS, RC (Reverse Charge), SN, TE, TR,
ZC, ZE, and ZR.
Note 1: Use CA for most Custom Authority
transactions. If a transaction has two different
Custom Authorities for the Ship From and Ship
To locations, use CA for the Ship From
authority and CA1 for the Ship To authority.
Note 2: Use SN for Brazilian Provincial
Special Rates and Indian Provincial Rates for
unregistered buyers.
For a complete description of tax types, see
the Help topic Tax Types Quick Reference.
<ALL>
varchar2(20)
No
<COUNTRY>
varchar2(20)
No
varchar2(1)
No
<PROVINCE>
<STATE>
<COUNTY>
<CITY>
<POSTCODE>
<GEOCODE>
<TITLE_TRANSFER_
LOCATION>
164
Element Name
<TRANSACTION_
TYPE>
Type
varchar2(2)
Req?
Yes*
Description
The transaction type, which is required to apply
the correct type of taxes to the transaction. In
many countries, there are two transaction
types: Goods and Services. In EU and other
countries, additional transaction types apply.
Valid types are:
AT - Ancillary Transport Services
CL - Customer Location Services
DS - Default Services
ES - Electronic Services
GS - Goods
IN - Installation Services
IS - Intermediary Service
MV - Movement for Excise
PC - Prime Contracting
PP - Physical Performance
RR - Rental
SI - Supplied and Installed Goods
T1 - Chain Transaction 1
T2 - Chain Transaction 2
TS- Transport Services
WG - Work on Goods
For a complete description of these transaction
types, see the Help topic Transaction Types.
(*) This is required on the line level only if it is
not specified on the invoice level.
<UNIQUE_LINE_
NUMBER>
varchar2
(100)
No
<UNIT_OF_MEASURE>
varchar2(25)
No
165
Element Name
<USER_ELEMENT>
Type
Req?
Description
structural
No
<NAME>
varchar2
(200)
No
<VALUE>
varchar2
(200)
No
<VAT_GROUP_
REGISTRATION>
varchar2(25)
No
<VENDOR_NAME>
varchar2
(100)
No
<VENDOR_NUMBER>
varchar2(20)
No
<VENDOR_TAX>
number
No
166
Type
Description
varchar2
(50)
Country
<PROVINCE>
varchar2
(50)
<STATE>
varchar2
(50)
State
<COUNTY>
varchar2
(50)
County
<CITY>
varchar2
(50)
City
<DISTRICT>
varchar2
(50)
District
<POSTCODE>
varchar2
(50)
The Postal or Zip Code For US ZIP Codes, the first 5 digits.
<GEOCODE>
varchar2
(50)
Geocode (the most granular geographic division) For US ZIP Codes, the
+4 portion of the code.
<IS_
BONDED>
varchar2
(1)
167
Element
Name
Type
Description
<LOCATION_
TAX_
CATEGORY>
varchar2
(100)
Indicates the type of location for this address; for example, Refinery.
This value can then be used as a rule qualifier during rule selection.
<COMPANY_
BRANCH_ID>
varchar2
(25)
168
Type
Audited?
Description
structural
No
<IS_SUCCESS>
boolean
No
<IS_PARTIAL_
SUCCESS>
boolean
No
<ERROR>
structural
No
string
No
string
No
string
No
<COMPANY_ID>
number
No
<COMPANY_NAME>
varchar2
(100)
Yes
<CODE>
<DESCRIPTION>
<ERROR_
LOCATION_
PATH>
169
Element Name
Type
Audited?
Description
<COMPANY_ROLE>
varchar2(1)
Yes
<EXTERNAL_
COMPANY_ID>
varchar2
(100)
No
<HOST_REQUEST_
INFO>
structural
No
varchar2
(100)
No
structural
N/A
<HOST_REQUEST_
ID>
<MESSAGE>
varchar2
(100)
No
<INVOICE>
N/A
170
Type
Audited?
Description
structural
No
<IS_SUCCESS>
boolean
No
<IS_PARTIAL_
SUCCESS>
boolean
No
<ERROR>
<CODE>
<DESCRIPTION>
<ERROR_
LOCATION_
PATH>
<BASIS_PERCENT>
structural
No
string
No
string
No
string
No
number
Yes
171
Element Name
<CALCULATION_
DIRECTION>
Type
varchar2(1)
Audited?
Yes
Description
There are three calculation directions, each
using different XML elements in the
calculation:
l
varchar2
(100)
Yes
<COMPANY_ID>
number
No
<COMPANY_NAME>
number
Yes
<COMPANY_ROLE>
varchar2(1)
Yes
<CURRENCY_CODE>
varchar2(3)
Yes
172
Element Name
Type
Audited?
Description
<CURRENCY_NAME>
varchar2
(100)
Yes
<CUSTOMER_NAME>
varchar2
(100)
Yes
<CUSTOMER_NUMBER>
varchar2
(100)
Yes
<END_USER_NAME>
varchar2
(100)
Yes
<EXTERNAL_
COMPANY_ID>
varchar2
(100)
No
<FISCAL_DATE>
date
Yes
<HOST_SYSTEM>
varchar2
(100)
Yes
<INDATA>
structural
N/A
<INVOICE_DATE>
date
Yes
173
Element Name
Type
Audited?
Description
<INVOICE_NUMBER>
varchar2
(200)
Yes
<IS_AUDIT_UPDATE>
boolean
Yes
<IS_BUSINESS_
SUPPLY>
boolean
Yes
<IS_CREDIT>
boolean
Yes
<IS_REPORTED>
boolean
Yes
<LINE ID="N">
structural -
N/A
<MESSAGE>
structural
N/A
<MIN_ACCOUNTABLE_
UNIT>
number
Yes
174
Element Name
Type
Audited?
Description
<NATURE_OF_
TRANSACTION_CODE>
varchar2(2)
Yes
<ORIGINAL_
DOCUMENT_ID>
varchar2
(100)
Yes
<ORIGINAL_
DOCUMENT_ITEM>
varchar2
(100)
Yes
<ORIGINAL_
DOCUMENT_TYPE>
varchar2
(100)
Yes
<ORIGINAL_
INVOICE_DATE>
date
Yes
<ORIGINAL_
INVOICE_NUMBER>
varchar2
(200)
Yes
<ORIGINAL_
MOVEMENT_DATE>
date
Yes
<ROUNDING_
PRECISION>
number
Yes
<ROUNDING_RULE>
varchar2(10)
Yes
<STATISTICAL_
PROCEDURE>
varchar2(6)
Yes
<TRANSACTION_
DATE>
date
Yes
<TOTAL_TAX_
AMOUNT>
<UNIQUE_INVOICE_
NUMBER>
number
No
varchar2
(500)
Yes
175
Element Name
<USER_ELEMENT>
Type
Audited?
Description
structural
N/A
<NAME>
varchar2
(200)
No
<VALUE>
varchar2
(200)
Yes
<VENDOR_NAME>
varchar2
(100)
Yes
<VENDOR_NUMBER>
varchar2(20)
Yes
<VENDOR_TAX>
number
Yes
176
Type
Audited?
Description
<ALLOCATION_LINE_
ID="N">
Yes
<ALLOCATION_NAME>
varchar2
(100)
Yes
<BASIS_PERCENT>
number
Yes
<BILL_TO_BRANCH_
ID>
varchar2(25)
Yes
<COMMODITY_CODE>
varchar2(50)
Yes
<COUNTRY_OF_
ORIGIN>
varchar2
(100)
Yes
<CUSTOMER_NAME>
varchar2
(100)
Yes
<CUSTOMER_NUMBER>
varchar2
(100)
Yes
<DELIVERY_TERMS>
varchar2
(100)
Yes
177
Element Name
Type
Audited?
Description
<DEPT_OF_CONSIGN>
varchar2
(100)
Yes
<DESCRIPTION>
varchar2
(200)
Yes
<DISCOUNT_AMOUNT>
number
Yes
178
Element Name
Type
Audited?
Description
<GROSS_AMOUNT>
number
No
Reverse-from-tax: USE_CALC_
GROSS_AMT_AS_GROSS_AMT_
CALC_DIR_R
Reverse-from-total: USE_CALC_
GROSS_AMT_AS_GROSS_AMT_
CALC_DIR_T
varchar2(2)
Yes
<INVOICE_DATE>
date
Yes
179
Element Name
Type
Audited?
Description
<IS_BUSINESS_
SUPPLY>
boolean
Yes
<ITEM_VALUE>
number
Yes
<LINE_NUMBER>
number
Yes
<MASS>
number
Yes
<MESSAGE>
structural
No
<MIDDLEMAN_
BRANCH_ID>
varchar2(25)
Yes
<MODE_OF_
TRANSPORT>
varchar2(50)
Yes
<ORIGINAL_
DOCUMENT_ID>
varchar2
(100)
Yes
<ORIGINAL_
DOCUMENT_ITEM>
varchar2
(100)
Yes
<ORIGINAL_
DOCUMENT_TYPE>
varchar2
(100)
Yes
<ORIGINAL_
INVOICE_DATE>
date
Yes
<ORIGINAL_
INVOICE_NUMBER>
varchar2
(200)
Yes
<ORIGINAL_
MOVEMENT_DATE>
date
Yes
180
Element Name
Type
Audited?
Description
<PART_NUMBER>
varchar2
(100)
Yes
<POINT_OF_TITLE_
TRANSFER>
varchar2(3)
Yes
<PORT_OF_ENTRY>
varchar2
(100)
Yes
<PORT_OF_LOADING>
varchar2(5)
Yes
<REGIME>
varchar2
(100)
Yes
<RELATED_LINE_
NUMBER>
<SHIP_FROM_
BRANCH_ID>
number
No
varchar2(25)
Yes
<SHIP_FROM_
COUNTRY>
varchar2
(100)
Yes
<SHIP_TO_BRANCH_
ID>
varchar2(25)
Yes
<SHIP_TO_COUNTRY>
varchar2
(100)
Yes
<SUPPLEMENTARY_
UNIT>
varchar2(5)
Yes
<SUPPLY_BRANCH_
ID>
varchar2(25)
Yes
<TAX>
structural
No
<TAX_CODE>
varchar2(50)
Yes
181
Element Name
Type
Audited?
Description
<TAX_SUMMARY>
structural
Yes
<TAXABLE_
BASIS>
number
(converted
currency)
Yes
<NON_TAXABLE_
BASIS>
number
(converted
currency)
Yes
<EXEMPT_
AMOUNT>
number
Yes
<TAX_RATE>
number
Yes
<EFFECTIVE_
TAX_RATE>
number
Yes
<ADVISORIES>
structural
Yes
<TOTAL_TAX_
AMOUNT>
number
No
Allocations
Custom Authorities
Fees
Tiers
Variable Exempt Amounts
Tax Treatment
182
Element Name
Type
Audited?
Description
<TITLE_TRANSFER_
LOCATION>
varchar2(1)
No
<TRANSACTION_
TYPE>
varchar2(2)
Yes
<UNIQUE_LINE_
NUMBER>
varchar2
(100)
Yes
183
Element Name
Type
Audited?
Description
<USER_ELEMENT>
structural
No
<NAME>
varchar2
(200)
No
<VALUE>
varchar2
(200)
Yes
<VENDOR_NAME>
varchar2
(100)
Yes
<VENDOR_NUMBER>
varchar2(20)
Yes
<VENDOR_TAX>
number
Yes
184
Type
Audited?
Description
structural
N/A
<LOCATION>
varchar2
(100)
No
<CATEGORY>
varchar2(40)
No
<CODE>
varchar2(50)
No
<MESSAGE_TEXT>
varchar2
(1000)
No
<SEVERITY>
varchar2(10)
No
185
Descriptions
Element Name
<ADDRESS_TYPE>
Type
varchar2(50)
Audited?
No
Description
Indicates the address type (for example,
'SHIP_FROM', 'BILL_TO') which
resulted in this tax.
Values returned in this field include:
l
l
l
l
l
l
l
l
l
SF (SHIP_FROM)
ST (SHIP_TO)
OO (ORDER_ORIGIN)
OA (ORDER_ACCEPTANCE)
BT (BILL_TO)
SU (SUPPLY)
MM (MIDDLEMAN)
SC (SELLER_PRIMARY)
BC (BUYER_PRIMARY)
<ADMIN_ZONE_LEVEL>
varchar2(50)
Yes
<AUTHORITY_
CURRENCY_CODE>
<AUTHORITY_FIPS>
varchar2(3)
Yes
varchar2(50)
Yes
<AUTHORITY_NAME>
varchar2
(100)
Yes
<AUTHORITY_
OFFICIAL_NAME>
varchar2
(100)
Yes
<AUTHORITY_
CATEGORY>
varchar2
(100)
Yes
186
Element Name
Type
Audited?
Description
<AUTHORITY_UUID>
varchar2(36)
Yes
<AUTHORITY_TYPE_
NAME>
varchar2
(100)
Yes
<AUTHORITY_TYPE_
ALIAS_NAME>
varchar2
(100)
N/A
<AUTHORITY_
ATTRIBUTE>
structural
N/A
<NAME>
varchar2
(100)
Yes
<VALUE>
varchar2
(100)
Yes
<BASIS_PERCENT>
number
Yes
<BUYER_
REGISTRATION>
varchar2(25)
Yes
<CALCULATION_
METHOD>
varchar2(50)
Yes
<COMMENT>
varchar2
(2000)
Yes
<CURRENCY_
CONVERSION_STEPS>
structural
No
187
Element Name
<CONVERSION_
STEPS>
<CONVERSION_
STEP>
<FROM_
CURRENCY_
CODE>
<TO_
CURRENCY_
CODE>
<EXCHANGE_
RATE>
Type
Audited?
Description
structural
No
number
Yes
varchar2(3)
Yes
varchar2(3)
Yes
number
Yes
<EXCHANGE_RATE_
DATE>
date
Yes
<EXCHANGE_RATE_
SOURCE>
varchar2
(100)
Yes
<EFFECTIVE_ZONE_
LEVEL>
varchar2(50)
Yes
<ERP_TAX_CODE>
varchar2
(200)
Yes
<EU_TRANSACTION>
boolean
Yes
<EXEMPT_AMOUNT>
structural
No
<AUTHORITY_
AMOUNT>
number
Yes
188
Element Name
Type
Audited?
Description
<DOCUMENT_
AMOUNT>
number
Yes
<UNROUNDED_
AUTHORITY_
AMOUNT>
number
Yes
<UNROUNDED_
DOCUMENT_
AMOUNT>
number
<EXEMPT_
CERTIFICATE>
varchar2
(100)
Yes
<EXEMPT_
CERTIFICATE_
EXPIRE_DATE>
<EXEMPT_REASON>
date
Yes
varchar2
(100)
Yes
<FEE>
structural
No
This structural element contains the feerelated elements for tax authorities.
<AMOUNT>
number(31,5)
No
<CURRENCY_CODE>
varchar2(3)
No
<UNIT_OF_
MEASURE>
varchar2
(100)
No
<FISCAL_ADDRESS_1>
varchar2
(100)
Yes
<FISCAL_ADDRESS_2>
varchar2
(100)
Yes
189
Element Name
Type
Audited?
Description
<FISCAL_REP_
CONTACT>
varchar2
(100)
Yes
<FISCAL_REP_NAME>
varchar2
(100)
Yes
<FLAT_FEE>
number
Yes
<GROSS_AMOUNT>
structural
No
<AUTHORITY_
AMOUNT>
number
Yes
<UNROUNDED_
AUTHORITY_
AMOUNT>
number
Yes
<INCLUSIVE_TAX>
boolean
Yes
<INPUT_RECOVERY_
AMOUNT>
number
Yes
<INPUT_RECOVERY_
PERCENT>
number
Yes
190
Element Name
Type
Audited?
Description
<INVOICE_
DESCRIPTION>
varchar2
(100)
No
<IS_EXEMPT>
boolean
Yes
<IS_INTRASTAT_
REPORTED>
boolean
Yes
<IS_NOTAX>
boolean
Yes
<IS_TRIANGULATION>
boolean
Yes
<IS_VAT_REPORTED>
boolean
Yes
<IS_VIES_REPORTED>
boolean
Yes
<JURISDICTION_
TEXT>
varchar2
(1000)
Yes
191
Element Name
<LICENSES>
Type
Audited?
Description
structural
No
structural
No
<LICENSE_
NUMBER>
<LICENSE_
TYPE_NAME>
<LICENSE_
END_DATE>
<LICENSE_
EXTERNAL_
IDENTIFIER>
varchar2
(100)
Yes
varchar2
(100)
Yes
date
Yes
varchar2
(100)
Yes
<LICENSE_
CATEGORY>
varchar2(20)
Yes
<LOCATION_CODE>
varchar2(50)
Yes
<MESSAGE>
structural
No
<MIDDLEMAN_
REGISTRATION>
varchar2(25)
Yes
<NATURE_OF_TAX>
varchar2(1)
Yes
<NON_TAXABLE_
BASIS>
structural
N/A
<DOCUMENT_
AMOUNT>
number
Yes
<UNROUNDED_
DOCUMENT_
AMOUNT>
number
Yes
<LICENSE>
192
Element Name
Type
Audited?
Description
<AUTHORITY_
AMOUNT>
number
Yes
<UNROUNDED_
AUTHORITY_
AMOUNT>
number
Yes
<OVERRIDE_AMOUNT>
number
Yes
<OVERRIDE_RATE>
number
Yes
<REGISTRATION_
ATTRIBUTE_[1-50]>
varchar2
(100)
Yes
<RELATED_
ALLOCATION_LINE_
NUMBER>
<RELATED_LINE_
NUMBER>
number
No
number
No
<REVISED_GROSS_
AMOUNT>
number
Yes
<RULE_ORDER>
number
No
<RULE_REPORTING_
CATEGORY>
varchar2
(100)
Yes
<SELLER_
REGISTRATION>
varchar2(25)
Yes
<SUPPLY_EXEMPT_
PERCENT>
number
Yes
See <INPUT_RECOVERY_
AMOUNT/PERCENT> for more
information.
193
Element Name
<TAX_AMOUNT>
Type
structural
Audited?
No
Description
The amount of tax owed to the authority,
in authority and document currencies, in
rounded and unrounded amounts.
Note: See also the <IS_ROUNDING>
Invoice Input XML element. When set to
false, all amounts in this structure are
unrounded. When set to true or null
(default), amounts are
rounded/unrounded as described.
<AUTHORITY_
AMOUNT>
number
Yes
<DOCUMENT_
AMOUNT>
number
Yes
<UNROUNDED_
AUTHORITY_
AMOUNT>
number
Yes
<UNROUNDED_
DOCUMENT_
AMOUNT>
number
<TAX_
DETERMINATION_
DATE>
<TAX_DIRECTION>
date
Yes
varchar2(1)
Yes
<TAX_POINT_DATE>
date
Yes
<TAX_RATE>
number
Yes
<TAX_RATE_CODE>
varchar2(25)
Yes
<TAX_TREATMENT>
varchar2
(100)
Yes
D (Deferred).
DI (Deferred Invoice).
DP (Deferred Payment).
194
Element Name
<TAX_TYPE>
Type
varchar2(3)
Audited?
Yes
Description
An override tax type determined when the
Jurisdiction Location is determined. Use
only to override the automatic tax type for
a transaction:
AC - Acquisition
CA - Custom Authority
(see Note 1 below)
CA1 - Custom
Authority 1
(see Note 1 below)
SN - Special
Rate
(see Note 2
below)
CU - Consumer Use
STK - Stock
DS - Distance Sale
TE - Taxable
Export
EC - European
Community Sales
ER -Intra EU Reverse
Charge
ES - Exported Service
EXC - Excise
US - Use
IC - Intra-Company
VG - VAT
Group
IR - International
Reverse Charge
(supplier outside the
EU)
IS - Imported Services
MA - Markup
Adjustment
MP - Markup
Percentage
MVT - Movement
NL - Not Liable
RC - Reverse Charge
or Rental Consumer's
Use
RS - Rental Sales
RU - Rental Use
S - Standard
SA - Sales
VERSION 5.5.1.0
TR Triangulation
UN Unregistered
Seller
IM - Import
SI - Standard
Interstate
ZC - Zerorated
IntraCommunity
Dispatches
within the
European
Union (EU)
ZE - Zerorated Exports
leaving the
EU, or Zerorated Exports
from non-EU
countries
ZR - Zerorated Item
(rule
specifies rate
of zero)
195
Element Name
<TAX_TYPE>
continued
Type
varchar2(3)
Audited?
Yes
Description
Note 1: CA is returned for most Custom
Authority transactions. If a transaction
has two different Custom Authorities for
the Ship From and Ship To locations, CA
is returned for the Ship From authority
and for the Ship To authority.
Note 2: SN is returned for Brazilian
Provincial Special Rates and Indian
Provincial Rates for unregistered buyers.
For a complete description of tax types,
see the Help topic Tax Types Quick
Reference.
<TAXABLE_BASIS>
structural
N/A
<AUTHORITY_
AMOUNT>
number
Yes
<DOCUMENT_
AMOUNT>
number
Yes
<UNROUNDED_
AUTHORITY_
AMOUNT>
number
Yes
<UNROUNDED_
DOCUMENT_
AMOUNT>
number
<TAXABLE_COUNTRY>
varchar2(3)
Yes
<TAXABLE_COUNTRY_
NAME>
varchar2(50)
Yes
<TAXABLE_STATE>
varchar2(50)
Yes
196
Element Name
Type
<TAXABLE_PROVINCE>
varchar2(50)
Yes
<TAXABLE_DISTRICT>
varchar2(50)
Yes
<TAXABLE_COUNTY>
varchar2(50)
Yes
<TAXABLE_CITY>
varchar2(50)
Yes
<TAXABLE_GEOCODE>
varchar2(50)
Yes
<TAXABLE_POSTCODE>
varchar2(50)
Yes
<UOM_CONVERSION>
structural
No
<FACTOR>
number
Yes
<OPERATOR>
varchar2(1)
Yes
<FROM>
structural
No
number
Yes
varchar2(50)
Yes
structural
No
number
Yes
varchar2(50)
Yes
structural
No
number
Yes
varchar2(50)
Yes
<VAT_GROUP_
REGISTRATION>
varchar2(25)
Yes
<ZONE_NAME>
varchar2
(100)
Yes
<ZONE_LEVEL>
varchar2(50)
Yes
<AMOUNT>
<UOM>
<TO_ROUNDED>
<AMOUNT>
<UOM>
<TO_UNROUNDED>
<AMOUNT>
<UOM>
Audited?
Description
197
Allocation Rollup
Allocation tax results are rolled up at the Line level to enable accurate returns to the calling
applications through ONESOURCE Indirect Tax Integrations. Where possible, multiple
allocation line <TAX> results are combined into one or more <TAX> results at the Line level
based on grouping and summing.
If more than one allocation line contains the same Group By elements, and the values of those
elements are the same across each allocation line, those <TAX> results are combined at the
line level into a single result, with any Sum elements summed.
The Group By elements are:
l
<ADDRESS_TYPE>
<ADMIN_ZONE_LEVEL>
<AUTHORITY_NAME>
<AUTHORITY_TYPE>
<BUYER_REGISTRATION>
<COMMENT>
<EFFECTIVE_ZONE_LEVEL>
<ERP_TAX_CODE>
<EXEMPT_CERTIFICATE>
<EXEMPT_REASON>
<INPUT_RECOVERY_PERCENT>
<INVOICE_DESCRIPTION>
<IS_EXEMPT>
<JURISDICTION_TEXT>
<LOCATION_CODE>
<MIDDLEMAN_REGISTRATION>
<SELLER_REGISTRATION>
<TAX_DIRECTION>
<TAX_RATE>
<TAX_TYPE>
198
<EXEMPT_AMOUNT>
<FLAT_FEE>
<INPUT_RECOVERY_AMOUNT>
<REVISED_GROSS_AMOUNT>
<TAX_AMOUNT>
<TAXABLE_BASIS>
Example 1: Allocation lines 1 and 2 contain the same values for <TAX_RATE> <TAX_TYPE>
and <AUTHORITY_NAME> They also contain the <TAX_AMOUNT> and <TAXABLE_
BASIS> elements.
A single <TAX> block will be created at the Line level containing the <TAX_RATE> <TAX_
TYPE> and <AUTHORITY_NAME> elements, as well as summed values for <TAX_
AMOUNT> and <TAXABLE_BASIS>
Example 2: Same as Example 1, but allocation line 2 contains a different <AUTHORITY_
NAME> than line 2. Two <TAX> blocks will be created at the Line level (all Group By elements
must have the same value in each allocation line to enable rollup).
Example 3: Same as Example 1, but allocation line 2 contains the additional Group By element
<COMMENT> Two <TAX> blocks will be created at the Line level (the same Group By
elements must be present in each allocation line to enable rollup).
199
Type
Comment
<ADDRESS>
structural
<COUNTRY>
varchar2 Country
(50)
varchar2 State
(50)
<COUNTY>
<CITY>
<DISTRICT>
<POSTCODE>
<GEOCODE>
All elements except <GEOCODE> can contain a 2-character, 3-character, or ISO code, or a full name.
Valid codes can be viewed on the Zones Edit page for the associated zone.
200
<ADDRESS> Elements
XML Field
Name
Type
Comment
<ADDRESS>
structure
<COUNTRY>
structure
Country structure
<NAME>
varchar2
(50)
Country name
<CODE>
<CODE3>
<ISOCODE>
<PROVINCE> structure
<NAME>
varchar2
(50)
Province name
<CODE>
<CODE3>
<ISOCODE>
<STATE>
structure
State structure
<NAME>
varchar2
(50)
State name
<CODE>
201
XML Field
Name
Type
Comment
<CODE3>
<ISOCODE>
<COUNTY>
structure
County structure
<NAME>
varchar2
(50)
County name
<CODE3>
<ISOCODE>
<CITY>
structure
City structure
<NAME>
varchar2
(50)
City name
<CODE3>
<ISOCODE>
<DISTRICT>
structure
<NAME>
varchar2
(50)
District name
<CODE3>
<ISOCODE>
<POSTCODE>
structure
<NAME>
varchar2
(50)
<CODE3>
<ISOCODE>
202
XML Field
Name
Type
Comment
<GEOCODE>
structure
Geocode structure
<NAME>
varchar2
(50)
Geocode name
<MIN>
<MAX>
When multiple types of data are found for a specific address, each are returned. For example, a country
might return a <NAME>, <CODE>, <CODE3>, and <ISOCODE>, while a state might return only a
<NAME> and <CODE>.
<MESSAGE> Elements
XML Field
Name
Type
Comment
<MESSAGE>
structure
<LOCATION>
varchar2
(100)
<CATEGORY>
varchar2
(40)
<CODE>
varchar2
(50)
<MESSAGE_
TEXT>
varchar2
(1000)
<SEVERITY>
varchar2
(10)
203
Escape Code
>
>
<
<
&
&
"
'
Avoid using special characters in your XML if your data does not require them.
For more information about these XML entities, see the W3C website.
For example, if you wanted to pass the term Bait<live> & Worms in a <DESCRIPTION>
element, you would need to convert it to:
<DESCRIPTION>Bait<live> & Worms</DESCRIPTION>
If you do not want to use escape codes, you can use the CDATA tag to surround the special
characters. This tells the XML parser to ignore special characters within the element. The
format of a CDATA tag is:
<![CDATA[special text]]>
Using the example above, the resulting CDATA string would appear as:
<DESCRIPTION><![CDATA[Bait<live> & Worms]]></DESCRIPTION>
204
ONESOURCE Indirect Tax Determination's XML parser handles both types of input conversion
seamlessly.