TM 00102 AFC User Manual SAU

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 342

DownloadTM 00102 AFC User Manual SAU
Open PDF In BrowserView PDF
AvaTax for Communications
Sales and Use User Manual
Release:
9.19.1807.1
Document: TM_00102_0055
Date:
06/25/2018

Avalara for Communications - Contact Information
Address Avalara, Inc.
512 South Mangum Street, Suite 100
Durham, North Carolina, 27701
Toll Free 800-525-8175
Corporate Site http://communications.avalara.com/
Comms Platform Site https://communications.avalara.net
Email communicationsupport@avalara.com

All trade names referenced herein are either trademarks or registered trademarks of their respective companies.
© Avalara, Inc. 2018. CONFIDENTIAL

Document Revision History
The Revision History log lists the date and description of the most recent revisions or versions of the
document.
Date

Version

Description

03/25/2016

0028

04/25/2016

0029

05/25/2016

0030

06/24/2016

0031

07/25/2016
08/25/2016
09/23/2016

0032
0033
0034

10/25/2016

0035

11/23/2016

0036

12/22/2016

0037

01/27/2017

0038

02/24/2017

0039

03/24/2017

0040

04/25/2017

0041

05/25/2017

0042

06/27/2017

0043

07/27/2017

0044

Avalara branding updates to reflect the transition to the new company and
product names have been incorporated into this document. Please see
Appendix H – Avalara Product Names for specific changes in product
references and descriptions.
Updated with table of Tax Categories in Section 2.3. Additional release
number and version updates throughout Section 8.
Addition of 64, 160 and 172 as new tax types in Section 4.5 Tax Types.
Additional release number and version updates throughout Section 8.
Updates in Section 5.5.7 Customsort.exe to command line and arguments;
Release number, version and header file updates throughout Section 8.
Release number, version and header file updates throughout Section 8.
Release number and version updates on cover and in Section 8.2
Release number, version and header file updates on the cover and
throughout Section 8.
Updated description in Section 3.1.4 Incorp. Release number, version and
header file updates on the cover and throughout Section 8.
Added new tax type 469 in Section 4.5 Tax Types. All references to ‘reverse’
tax calculations in the AFC engine have been updated and renamed to reflect
the current naming convention which is ‘tax inclusive’ calculations. As a
result, 6 APIs in Section 7.8.1 API Listings have been updated and renamed.
Release number, version and header file updates on the cover and
throughout Section 8.
Added new tax types 470-472 in Section 4.5 Tax Types. Release number,
version and header file updates throughout Section 8.
Release number, version and header file updates on the cover and
throughout Section 8. Also updated copyright year.
Added new tax types 24 and 281 in Section 4.5 Tax Types. Release number,
version and header file updates on the cover and throughout Section 8.
Release number, version and header file updates on the cover and
throughout Section 8.
Updates to Section 4.7 Exclusions, Section 6.3 Federal or State Exclusion and
Section 7.8.57 EZtaxSetStateExclusions. Release number, version and header
file updates on the cover and throughout Section 8.
Updated Section 6.2.3.1 Sales/Resale Flag. Release number, version and
header file updates on the cover and throughout Section 8.
All references to ‘Customer Mode’ in the AFC engine have been updated and
renamed to reflect the current naming convention which is ‘Invoice Mode.’
As a result, 2 APIs in Section 7.8 API Listings have been updated and renamed.
Also, added 2 new APIs, EZTaxJTTypeEx and EZTaxPTTypeEx, to support
JCodes. Release number, version and header file updates on the cover and
throughout Section 8.
Added note related to timestamp/invoice date passed in Section 6.2.3.5
Invoice Date. Removed deprecated API, EZTaxJTType in Section 7.8 API
Listings. Release number, version and header file updates on the cover and
throughout Section 8.

All trade names referenced herein are either trademarks or registered trademarks of their respective companies.
© Avalara, Inc. 2018. CONFIDENTIAL

Date

Version

Description

08/25/2017

0045

09/25/2017

0046

10/25/2017

0047

11/22/2017

0048

12/21/2017

0049

01/25/2018

0050

02/23/2018

0051

3/27/2018

0052

4/25/2018

0053

5/25/2018

0054

6/25/2018

0055

Release number, version and header file updates on the cover and
throughout Section 8.
Updated name and description for tax type 220, added 2 new tax types 488
and 489 in Section 4.3.5 Tax Types. Added new APIS, EZTaxGetCountry ID and
EZTaxGetStateID in Section 7.8 API Listings. Release number, version and
header file updates on the cover and throughout Section 8.
Updated references to support site web site address in Section 8.7 Monthly
Update Procedures. Updated Avalara contact information (address and
support site). Removed Appendix H – Avalara Product Names. Release
number, version and header file updates on the cover and throughout Section
8.
Added tax type 492 in Section 4.5 Tax Types. Release number, version and
header file updates on the cover and throughout Section 8.
Release number, version and header file updates on the cover and
throughout Section 8.
Release number, version and header file updates on the cover and
throughout Section 8.
Updated the definition for surcharge in the table of Section 4.3.2 Returned
Tax Information. Release number, version and header file updates on the
cover and throughout Section 8.
Added tax type 493 in Section 4.5 Tax Types. Release number, version and
header file updates on the cover and throughout Section 8.
Added new tax types (494 through 517) in Section 4.5 Tax Types. Release
number, version and header file updates on the cover and throughout Section
8.
Updates to transiaction specifications throughout Section 3. Release number,
version and header file updates on the cover and in Section 8.
Added new tax types (518 through 520) in Section 4.5 Tax Types. Release
number, version and header file updates on the cover and in Section 8.

All trade names referenced herein are either trademarks or registered trademarks of their respective companies.
© Avalara, Inc. 2018. CONFIDENTIAL

Table of Contents
Introduction ....................................................................................................................................... 1
Installation .................................................................................................................................. 1
Getting Started............................................................................................................................ 1
The AFC Manual .......................................................................................................................... 1
Mapping ................................................................................................................................ 1
Transactions .......................................................................................................................... 2
Tax Calculations ..................................................................................................................... 2
Utilities .................................................................................................................................. 2
The Advantage of Using Functions ........................................................................................ 2
General Product Information ................................................................................................ 4
Mapping............................................................................................................................................. 6
Transaction and Service Types .................................................................................................... 6
Valid Transaction/Service Pairings .............................................................................................. 6
File transervdescsau.txt ......................................................................................................... 6
Tax Categories ............................................................................................................................. 7
Transactions....................................................................................................................................... 7
Customer Information................................................................................................................. 8
Customer Number ................................................................................................................. 9
Customer Type ...................................................................................................................... 9
Exemption Levels ................................................................................................................... 9
Incorp .................................................................................................................................. 10
Invoice Number ................................................................................................................... 10
JCode Exemption Levels ...................................................................................................... 10
Tax Type Exemptions ........................................................................................................... 10
Optional Fields ..................................................................................................................... 11
Company Information ............................................................................................................... 13
Company Identifier .............................................................................................................. 13
Transaction Data ....................................................................................................................... 13
Attribute .............................................................................................................................. 13
Properties ............................................................................................................................ 13
A F C S a l e s a n d U s e U s e r M a n u a l |i
Copyright  2018 Avalara, Inc.

Charge ................................................................................................................................. 14
Date ..................................................................................................................................... 14
Count ................................................................................................................................... 14
Sale Type ............................................................................................................................. 14
Service Type ........................................................................................................................ 15
Transaction Type ................................................................................................................. 15
Taxing Jurisdiction Identification Information ........................................................................... 15
The JCode Jurisdiction Identification ................................................................................... 15
Zip Codes ............................................................................................................................. 18
Zip Plus 4 ............................................................................................................................. 18
Canadian Postal Codes ........................................................................................................ 19
FIPS Codes ........................................................................................................................... 19
Support for India ................................................................................................................. 20
Jurisdiction Identification Details .............................................................................................. 22
Determining the Correct Taxing Jurisdiction for Wireline Long Distance ............................ 22
AFC Calculations............................................................................................................................... 24
Meeting the Requirements of Specific Tax Issues ..................................................................... 24
Tax Type Exemptions ........................................................................................................... 24
Tax Adjustments .................................................................................................................. 25
Tax Overrides....................................................................................................................... 26
Tax Rate Brackets ................................................................................................................ 32
Surcharges ........................................................................................................................... 33
Discount Adjustment ........................................................................................................... 33
Tier at Transactions ............................................................................................................. 36
Tax on Tax Until no Effect .................................................................................................... 36
Historical Tax Rates ............................................................................................................. 36
Taxed Taxes ......................................................................................................................... 36
Tax Logging ............................................................................................................................... 37
Returned Taxes ......................................................................................................................... 38
Returned Tax Information ................................................................................................... 38
Returned Tax Information Using Invoice Mode ................................................................... 39
A F C S a l e s a n d U s e U s e r M a n u a l | ii
Copyright  2018 Avalara, Inc.

Tax Grouping ....................................................................................................................... 39
Sales and Use ............................................................................................................................ 42
Sales Transaction Data Attributes and Properties ............................................................... 42
Freight On Board (FOB) Transaction Details ........................................................................ 42
Tax Data Structure ............................................................................................................... 44
Transaction and Service Types (Sales and Use) ................................................................... 45
Tax Types................................................................................................................................... 77
Nexus ........................................................................................................................................ 86
Exclusions .................................................................................................................................. 87
Utilities............................................................................................................................................. 89
Utility Selection ......................................................................................................................... 90
Reporting Utilities ................................................................................................................ 90
File Management Utilities ................................................................................................... 91
Specifying a Log File at Run Time .............................................................................................. 91
Log.sum File .............................................................................................................................. 92
General Tips When Using Utilities ............................................................................................. 92
AFC Utilities ............................................................................................................................... 94
asciilog.exe .......................................................................................................................... 96
batch_sau.exe ..................................................................................................................... 96
commerge.exe..................................................................................................................... 97
comptnum.exe .................................................................................................................... 98
comrpt.exe ........................................................................................................................ 101
csf20.exe ........................................................................................................................... 102
customsort.exe .................................................................................................................. 103
ezcomprep.exe .................................................................................................................. 104
ezlog_ns.exe ...................................................................................................................... 106
ezlogcust.exe ..................................................................................................................... 108
ezlogcustios.exe ................................................................................................................ 110
ezlogcustpts.exe ................................................................................................................ 112
ezlogcustptslnl.exe ............................................................................................................ 114
EZTaxappend.exe............................................................................................................... 116
A F C S a l e s a n d U s e U s e r M a n u a l | iii
Copyright  2018 Avalara, Inc.

EZTaxappendf.exe ............................................................................................................. 117
log no tax transactions ...................................................................................................... 118
srtcdf20.exe ....................................................................................................................... 121
srtcdf20p.exe..................................................................................................................... 123
srtcomcust20.exe .............................................................................................................. 125
srtcomma20.exe ................................................................................................................ 126
srtcomma20l.exe ............................................................................................................... 129
srtcomma20ld.exe ............................................................................................................. 132
srtcommadetail.exe ........................................................................................................... 135
srtrev20l.exe...................................................................................................................... 137
strg.exe .............................................................................................................................. 140
upsize_log.exe ................................................................................................................... 142
BATCH FILE PROCESSING................................................................................................................ 143
Batch Processing Description .................................................................................................. 143
AFC CDS Input File Specifications ............................................................................................ 145
Taxing Jurisdiction Identification Information ................................................................... 147
Customer Information ....................................................................................................... 148
Transaction Information .................................................................................................... 151
Federal or State Exclusion ....................................................................................................... 152
Accumulating the Log.............................................................................................................. 153
batch_sau Utility Specification ................................................................................................ 154
The C/C++ API ................................................................................................................................ 155
Language Interfaces for AFC ................................................................................................... 155
Configuration .......................................................................................................................... 156
Filelocs.txt File ................................................................................................................... 156
Filelocs.sta File................................................................................................................... 157
General Overview of AFC API Integration ............................................................................... 158
Detailed Discussion of AFC API Integration ............................................................................. 159
Tax Adjustments ................................................................................................................ 159
Obtaining Jurisdiction and Address Information From JCodes and PCodes ...................... 159
Obtaining Tax Information From Transactions .................................................................. 159
A F C S a l e s a n d U s e U s e r M a n u a l | iv
Copyright  2018 Avalara, Inc.

Preparing the AFC Application Programmer Interface (API) Interface .................................... 161
AFC API Function Calls ............................................................................................................. 162
Retrieving Taxes ................................................................................................................ 162
Multi-Threading ................................................................................................................. 164
Multiple Sessions ............................................................................................................... 166
Session Management ........................................................................................................ 166
Session Pooling .................................................................................................................. 168
Sample Coding ........................................................................................................................ 169
Using EZTaxGetRates to Build an Override ........................................................................ 169
EZTaxSetNexus .................................................................................................................. 170
Enhanced Override Structure Date Table and Rate Table Considerations ........................ 172
API Listings .............................................................................................................................. 173
EZTaxClearTSR ................................................................................................................... 174
EZTaxCountryToPCode ...................................................................................................... 175
EZTaxDBVersion................................................................................................................. 176
EZTaxDLLVersion ............................................................................................................... 177
EZTaxExitSessionEx ............................................................................................................ 178
EZTaxFlushToLogEx............................................................................................................ 179
EZTaxFreeRates ................................................................................................................. 180
EZTaxFtoPCodeEx .............................................................................................................. 181
EZTaxGetAddressEx ........................................................................................................... 182
EZTaxGetCountryID ........................................................................................................... 183
EZTaxGetCustomLog.......................................................................................................... 184
EZTaxGetCustomLogCount ................................................................................................ 185
EZTaxGetLogName ............................................................................................................ 186
EZTaxGetLogV914.............................................................................................................. 187
EZTaxGetLogV914Count .................................................................................................... 188
EZTaxGetNoTaxTrans......................................................................................................... 189
EZTaxGetStateID ................................................................................................................ 190
EZTaxGetRates................................................................................................................... 191
EZTaxGetTaxCatV98 .......................................................................................................... 192
A F C S a l e s a n d U s e U s e r M a n u a l |v
Copyright  2018 Avalara, Inc.

EZTaxGetTaxDescription .................................................................................................... 193
EZTaxGetTSR...................................................................................................................... 194
EZTaxGroupResults ............................................................................................................ 195
EZTaxInitEx ........................................................................................................................ 196
EZTaxInitExMt .................................................................................................................... 197
EZTaxInitV914 .................................................................................................................... 198
EZTaxInitV98 ...................................................................................................................... 199
EZTaxJtoPCodeEx ............................................................................................................... 200
EZTaxJTTypeEx (EZTaxJTType deprecated) ........................................................................ 201
EZTaxMaxTaxCount ........................................................................................................... 202
EZTaxNextAddressEx ......................................................................................................... 203
EZTaxNextCustomerEx....................................................................................................... 204
EZTaxOvrJCodeEx .............................................................................................................. 205
EZTaxOvrPCodeEx.............................................................................................................. 206
EZTaxOvrZipEx ................................................................................................................... 207
EZTaxPtoFipsEx .................................................................................................................. 208
EZTaxPtoJCodeEx ............................................................................................................... 209
EZTaxPTTypeEx .................................................................................................................. 210
EZTaxRestoreEx ................................................................................................................. 211
EZTaxSAUAdjFips ............................................................................................................... 212
EZTaxSAUAdjJCode ............................................................................................................ 213
EZTaxSAUAdjPCode ........................................................................................................... 214
EZTaxSAUAdjTaxInclusiveJCode (EZTaxSAUAdjRevJCode deprecated) ............................. 215
EZTaxSAUAdjTaxInclusivePCode (EZTaxSAUAdjRevPCode deprecated) ............................ 217
EZTaxSAUAdjTaxInclusiveZip (EZTaxSAUAdjRevZip deprecated) ...................................... 219
EZTaxSAUAdjZip................................................................................................................. 221
EZTaxSAUDRAdjFips........................................................................................................... 222
EZTaxSAUDRAdjJCode ....................................................................................................... 223
EZTaxSAUDRAdjPCode....................................................................................................... 224
EZTaxSAUDRAdjZip ............................................................................................................ 225
EZTaxSAUFips .................................................................................................................... 226
A F C S a l e s a n d U s e U s e r M a n u a l | vi
Copyright  2018 Avalara, Inc.

EZTaxSAUJCode ................................................................................................................. 227
EZTaxSAUPCode ................................................................................................................ 228
EZTaxSAUTaxInclusiveJCode (EZTaxSAURevJCode deprecated) ........................................ 229
EZTaxSAUTaxInclusivePCode (EZTaxSAURevPCode deprecated)....................................... 231
EZTaxSAUTaxInclusiveZip (EZTaxSAURevZip deprecated).................................................. 233
EZTaxSAUZip ...................................................................................................................... 235
EZTaxSessionDbVersion ..................................................................................................... 236
EZTaxSetInvoiceModeEx.................................................................................................... 237
EZTaxSetInvoiceModeV98 ................................................................................................. 238
EZTaxSetNexus .................................................................................................................. 239
EZTaxSetStateExclusions.................................................................................................... 240
EZTaxSetStateNexus .......................................................................................................... 241
EZTaxWriteToLogEx ........................................................................................................... 242
EZTaxWriteToLogV914 ...................................................................................................... 243
EZTaxZtoJCodeEx ............................................................................................................... 244
EZTaxZtoPCodeEx .............................................................................................................. 245
Appendices A - G ............................................................................................................................ 246
Appendix A EZTaxStruct.h ....................................................................................................... 247
Appendix B EZTaxDefine.h ...................................................................................................... 261
Appendix C EZTaxProto.h ........................................................................................................ 310
Appendix D EZTaxSauStruct.h ................................................................................................. 315
Appendix E EZTaxSauDefine.h ................................................................................................. 318
Appendix F EZTaxSauProto.h................................................................................................... 321
Appendix G Monthly Update Procedure ................................................................................. 325
Download the Monthly Update ......................................................................................... 325
Important Files in Update .................................................................................................. 328
Monthly Maintenance ....................................................................................................... 328
Help Guide .............................................................................................................................. 330
Troubleshooting ................................................................................................................ 330
FAQ’s ................................................................................................................................. 331

A F C S a l e s a n d U s e U s e r M a n u a l | vii
Copyright  2018 Avalara, Inc.

Introduction
Installation
Refer to the AvaTax for Communications (AFC) Installation Manual for complete instructions regarding the
installation of AFC on your specific platform.

Getting Started
There are several AFC integration methods available, each allowing for its use based on the client’s needs.
•

AFC SaaS Standard: This method is provided for lower transaction-count customers, allowing for
the use of AFC to obtain tax calculations without having to maintain the program on their
systems.

•

On-Site Options:
 AFC's API interface: provides the user complete control over access to tax calculations
and the data returned, along with the flexibility supported by the report utilities.

•

AFC SaaS Pro: AFC SaaS Pro is an XML web service used to calculate taxes. Applications send a
single transaction to the AFC SaaS web service over the Internet. The taxes are calculated and
immediately returned to the client application. Users have the capability of sending and receiving
transactions 24 hours a day, 7 days a week. This service is ideal for adding the ability to tax
purchases made from online stores and AFC SaaS Pro customers are provided with reports for tax
compliance filing.

The AFC Manual
The AFC Manual has been configured to provide an easy and logical progression for learning AFC and its
features, as well as a quick reference (fully linked on the electronic version of the manual). From the
initial step of mapping to the final creation of reports based on the processed information, the conceptual
simplicity of AFC is fully explained.

Mapping
Prior to performing tax calculations, client transactions and services must be matched, or “mapped,” to
the Valid Transaction and Service Pairings defined in AFC. Refer to Section 2 Mapping for the full
explanation of how this is accomplished.

A F C S a l e s a n d U s e U s e r M a n u a l | 1 of 329
Copyright  2018 Avalara, Inc.

Transactions
Once the transactions and services have been mapped, transaction records can be passed to AFC.
Section 3 Transactions explains what AFC expects for each part (or field) contained in a transaction record
and provides the definitions and reasons for selecting one of the valid options to use.

Tax Calculations
The AFC Engine accepts the transaction record(s) and performs the tax calculations based upon the
information within the record.

Utilities
Once the taxation has been performed, Utilities can be used to provide the tax information in selected
formats that meet specific requirements and perform file management functions. The many options
available are detailed in the Utilities section of this document.

The Advantage of Using Functions
Section 7 provides specific details of the expanded capabilities provided to users that integrate AFC to the
billing system using functions. Refer to the figure shown below. The billing system passes information to
AFC, as calls are being rated for billing. AFC calculates all required taxes and returns the tax information
to the billing system per transaction. In addition, AFC stores all tax data generated in its databases and
provides reports that facilitate tax filing and provide insight to the rating, billing and taxing processes.

A F C S a l e s a n d U s e U s e r M a n u a l | 2 of 329
Copyright  2018 Avalara, Inc.

Figure 1-1 AFC Operation Diagram

Adjustment information is returned to the billing system and is utilized to update tax data for report
generation and compliance filing. AFC also provides facilities that allow users to insert tax overrides and
exempt a transaction from taxes at federal, state, county and local authority levels. AFC also provides the
capability to limit exemptions to a specific jurisdiction and to exempt specific taxes.
Using the AFC API is the most efficient method available for interfacing with the AFC system. Due to the
superior performance of AFC, there is very little performance difference between a system running
without taxation and one running with taxation generation by AFC.
A F C S a l e s a n d U s e U s e r M a n u a l | 3 of 329
Copyright  2018 Avalara, Inc.

General Product Information
Enhanced Flexibility for Users
User reporting and organizational activities have been enhanced with the addition of user defined fields.
This empowers the user to include additional user specific information within transaction records,
thereby enhancing reports and data files once processed by the AFC Engine. Note that the Batch
Processing utility takes full advantage of the additional transaction fields.

Enhanced Capabilities for Processing Specialized Taxes
AFC maintains tax rate histories and applies them according to the transaction date. This allows for tax
calculations to process transactions that require dated tax information.


Billable Flag – Allows for the identification of a compliance only tax or fee that is used for filing
and not passed on to the user. It is noted as a non-billable item in the tax log.



Compliance Flag – Allows for the identification of a tax or fee that is a tax compliant item and that
the tax or fee should be sent to the log. The reporting utilities can identify and generate
compliance and billing reports. All existing taxes currently in AFC are compliance taxes or fees. A
charge with the compliance set to false in logic is billable but the charge would not be place into
the log for compliance or reported in compliance reports. This flag provides EZdata users with
the ability to pass non-tax charges to the customer through AFC.



Rate at Final - Allows for a specialized application of tax brackets. Each bracket specifies the tax
rate for the “Total Tax” range that it spans. The culmination of all of the brackets results in a tax
rate “look-up” table for total transaction amounts.



Tier At Transaction - This logic flag indicates that tax will be calculated using graduated tax
brackets on a transaction basis instead of a customer invoice basis.



Tax On Tax Until No Effect - Configuration settings in EZTax.cfg determine one of two methods to
calculate Tax on Tax. If the configuration setting is left unchanged, AFC will perform a single
iteration of the tax on tax calculation.

Additional Functions to Support New Capabilities


The Get Rates function has been added to retrieve all possible taxes when given a location by
PCode. The structure of the returned tax information is compatible with the new override
structure, so that specific changes can be applied to the existing tax data to create override
entries.

A F C S a l e s a n d U s e U s e r M a n u a l | 4 of 329
Copyright  2018 Avalara, Inc.

New Version Tracking
A version number has been embedded into the AFC database to ensure database compatibility between
the AFC software and the AFC database. The AFC Engine compares version numbers on session
initialization. If incompatible version numbers are detected, a message is written to the status file and
AFC system will not return a valid session handle.

Additional Tax Types
AFC now supports over 450 Tax Types to allow for highly specific tax type designation.

Increased Accuracy
The Tax Amount calculations have been modified to increase accuracy and further reduce rounding
errors.

A F C S a l e s a n d U s e U s e r M a n u a l | 5 of 329
Copyright  2018 Avalara, Inc.

Mapping
The AFC software provides an extensive selection of Transaction and Service Types to meet your taxation
requirements with a single taxation package. The correct matching, or “mapping,” of your company
products and services to the Valid Transaction and Service Pairings defined in AFC is an essential process
that must be completed accurately for taxation to be calculated and applied properly to all transactions.
If an incorrect pairing is passed to the AFC engine then no tax is usually returned.
Avalara support is available to assist should any questions arise in determining the correct Transaction
and Service pair to use.

Transaction and Service Types
AFC stipulates a unique pair of numbers for each Transaction and Service Type. The first number defines
the Transaction Type and the second number defines the Service Type. Transaction Types and Service
Types are combined (or “paired”) to uniquely describe a Valid Transaction / Service Pair for a transaction.

Valid Transaction/Service Pairings
Section 4.4.6 describes valid transaction/service pairings.
Avalara continuously evaluates products and services offered by companies and may add Transaction and
Service Type combinations to accommodate products and services offered.
For the most current list of Transaction Types, refer to the Transaction Mapping Guidelines.pdf file
located on your most recent Distribution/Update.

File transervdescsau.txt

A file named transervdescsau.txt is present in the database directory in each month’s update. This file
contains all of the valid transaction type/service type pairs, with the description of those types and of the
pairing. It is a fixed format file, though there are spaces and commas between some of the fields for
readability. It is described in the table below.
transervdesc.txt File Format Key
Description
Alternate Flag
Market Number
Market Name

Columns
1-1
3-4
6-35
A F C S a l e s a n d U s e U s e r M a n u a l | 6 of 329
Copyright  2018 Avalara, Inc.

transervdesc.txt File Format Key
Description
Transaction Type Number
Transaction Type Description
Service Type Number
Service Type Description
Long Description

Columns
38-39
41-90
93-95
97-146
148-end of line

Tax Categories
Please reference the table below for a current list of Tax Categories.
Tax Categories
Category ID
0
1
2
3
4
5
6
7
8
9
10
11
12
13

Name
No Category Description
Sales and Use Taxes
Business Taxes
Gross Receipts Taxes
Excise Taxes
Connectivity Charges
Regulatory Charges
E-911 Charges
Utility User Taxes
Right of Way Fees
Communications Services Tax
Cable Regulatory Fees
Reserved
Value Added Taxes

Transactions
AFC accepts transaction records from the user and returns calculated taxes. For AFC to return the correct
taxation the information in the transaction records must be correct and in the format that AFC requires.
Each Transaction contains the following information:

1. Customer Transaction Information
a. Customer Information
b. Company Information
c. Transaction Data
2. Taxing Jurisdiction Information

A F C S a l e s a n d U s e U s e r M a n u a l | 7 of 329
Copyright  2018 Avalara, Inc.

The Customer Transaction Information has been divided into three sections as suggested above for the
purpose of this discussion (see the table below).
Customer Transaction Information
Customer Information
County Exempt
County Exemption JCode
Customer Number
Customer Type
Exemption Type
Federal Exempt
Federal Exemption JCode
Incorp
Invoice Number
Local Exempt
Locality Exemption JCode
Tax Type Exemptions
State Exempt
State Exemption JCode
Optional fields

Company Information
Company Identifier

Transaction Data
Attribute
Charge
Count
Properties
Sale/Resale
Service Type
Transaction Bill Date
Transaction Type

Customer Information
Refer to the table below. The following customer information is contained in fields found in the
transaction record.
Customer Information
Description
Customer Number
Customer Type
Federal Exempt
State Exempt
County Exempt
Locality Exempt
Incorp
Invoice Number
Federal Exemption JCode
State Exemption JCode
County Exemption JCode
Locality Exemption JCode
Tax Type Exemptions Count
Tax Type Exemptions
Exempt Type
Optional Fields:
Optional
Optional Alpha

Valid Entry
Customer number, user defined
0=residential, 1=business customer
2=Senior Citizen, 3=Industrial
If TRUE, transaction exempt from Federal Tax
If TRUE, transaction exempt from State Tax
If TRUE, transaction exempt from County Tax
If TRUE, transaction exempt from local tax
TRUE indicates within incorporated area
Invoice number (user defined)
Jurisdiction for Federal exemption
Jurisdiction for state exemption
Jurisdiction for County exemption
Jurisdiction for local exemption
0 indicates no of specific exempts, other value indicates number of specific
exempts
Pointer to tax exempt structure that contains the specific tax exemptions
specified in tax type exemptions
Reason for exemption
User defined value for reporting
Optional alpha field
A F C S a l e s a n d U s e U s e r M a n u a l | 8 of 329
Copyright  2018 Avalara, Inc.

Customer Information
Description
Optional 4
Optional 5
Optional 6
Optional 7
Optional 8
Optional 9
Optional 10

Valid Entry
Optional Numeric field
Optional Numeric field
Optional Numeric field
Optional Numeric field
Optional Numeric field
Optional Numeric field
Optional Numeric field

Customer Number
The Customer Number is a 20-character null terminated string field stored in the tax log and used as the
Primary Output Key for the AFC billing reports.

Customer Type
This field is used to specify the type of customer involved in the transaction. The customer type is
selected from one of the following four Customer Types.
Customer Type
ID
0
1
2

Value
Residential
Business
Senior Citizen

3

Industrial

Description
When transactions are made by a customer for home use.
When transactions are made at a place of business
When transactions are made by a customer who meets the jurisdiction requirements to
be considered a senior citizen and qualify for senior citizen tax breaks.
When transactions are made at an industrial business.

Exemption Levels
The exemption level is the jurisdictional level of the taxing authority that defines the tax. It is used to
exempt taxes at specific state, county and/or local taxes.

State Exempt
The State Exempt field is used to specify a State level tax exemption.

County Exempt
The County Exempt field is used to specify a County level tax exemption.

Local Exempt
The Local Exempt field is used to specify a Local level tax exemption.

A F C S a l e s a n d U s e U s e r M a n u a l | 9 of 329
Copyright  2018 Avalara, Inc.

Incorp
The Incorp field is used to specify whether the customer involved in this transaction is inside or outside of
the Local level designated as their location. The tax may or may not be affected by this designator
depending upon whether or not the local level has taxes which would apply to the transaction/service
type pair.

Invoice Number
The Invoice Number is an optional field used to aid users in uniquely identifying a billing record for a
specific customer within their system.

JCode Exemption Levels
The exemption JCode is the JCode associated with the jurisdictional level of the taxing authority that
defines the tax. It is used to exempt all federal, state, county and / or local taxes. If the exemption JCode
fields are not specified then all taxes are exempt at that level.
To pass an individual tax exemption using the JCode Exemption, use the Tax Exempt structure to specify
the tax type, tax level and the JCode for the jurisdiction. Refer to Section 4.1.1.2.

NOTE:

JCodes are an internal intermediate Jurisdiction Code that can change
monthly. The JCode can be obtained from a PCode or an address using
like functions.

Tax Type Exemptions
Two fields are provided for entering the quantity of tax type exemptions and the pointers to the tax
exemption structures.

Tax Type Exemptions Field
The Tax Type Exemption indicator specifies the number of tax type exemptions that are included. These
are tax type and transaction specific exemptions.

Tax Type Exemption Pointer
Tax type exemption(s) are specified with a pointer to one or more tax exempt structures. The user should
supply a pointer to the first tax type exemption and all exemptions must be contained in a contiguous
block of memory.

A F C S a l e s a n d U s e U s e r M a n u a l | 10 of 329
Copyright  2018 Avalara, Inc.

Exemption Type
The reason for the exemption. This value is passed directly on to the log.

Optional Fields
Optional Fields are provided to allow clients to enhance reporting and billing utilities with information
beyond the scope of that which is generated to support AFC activities.
The Customer Number is a 20-character text field that is not manipulated during processing and stored as
part of the log file record.
It can be used as part of the sorting key (see Figure 3-1) when using some utilities, allowing for the
combining of records based upon this and other fields. It is useful when it is desired to have like taxes
from different transactions combined, to have taxes from each transaction detailed individually in a
report or to have each transaction detailed at the customer level.

A F C S a l e s a n d U s e U s e r M a n u a l | 11 of 329
Copyright  2018 Avalara, Inc.

Figure 3-1 Primary Output Key

Uniquekey.csf

Combined taxes

If you would want like taxes combined at the customer level, then you specify a
like Primary Output Key for the records you want combined.

Samekey.csf

A F C S a l e s a n d U s e U s e r M a n u a l | 12 of 329
Copyright  2018 Avalara, Inc.

Company Information
Refer to Table 3-3. The following company information is contained in fields found in the transaction
record.
Table 3-1 Company Information
Description
Company Identifier

Valid Entry
Company Identifier, optional

Company Identifier
The Company Identifier field is an optional field made available for alpha information, such as the name
of a subsidiary company. This information is passed thru to the tax log so that reporting utilities can sort
or summarize by this field.

Transaction Data
Refer to Table 3-4. The following transaction information is contained in fields found in the transaction
record.
Table 3-2 Transaction Data Information
Description
Attribute
Properties
Charge
Date
Count
Sale/Resale
Service Type
Transaction Type

Valid Entry
Freight, deposits, etc.
Parameters describing the attribute.
amount charged to customer for transaction
Transaction bill date. This field is provided to allow rating and taxing to occur on a date
other than the billing date.
Number of items
TRUE = Sale, FALSE = Resale
Refer to Transaction and Service Types (Sales & Use) for valid Transaction / Service Type
entries
Refer to Transaction and Service Types (Sales & Use) for valid Transaction / Service Type
entries

Attribute
The Attribute field refers to ancillary transactions related to the actual sale – freight, discounts, financing,
installation, shipping/handling, maintenance and service contracts, and warranties.

Properties
Properties specify the details of the transaction’s Attribute.

A F C S a l e s a n d U s e U s e r M a n u a l | 13 of 329
Copyright  2018 Avalara, Inc.

Charge
The Charge field specifies the amount of the transaction to be taxed. This amount will be passed through
AFC to rate the tax based on the specified transaction/service pair.

Date
The Date field is normally populated with the bill date. Generally accepted accounting principles dictate
that liabilities should be recorded when revenues are recorded. In most cases, neither of these is
recorded (or even known) until billing occurs.
However, companies with a high call volume that record revenue daily as it occurs should record the tax
on the same basis (i.e. the call date should be used).
AFC compares this date to the effective date of each tax that applies to the transaction. Historical rates
and effective dates are maintained and updated within the AFC Engine and AFC will return the correct tax
information based upon the transaction date. The monthly updates assure that the rates and effective
dates are current.

WARNING:
All transaction data Date fields must be formatted as CCYYMMDD.
Failure to do so will cause incorrect results when the transaction is
processed.

Count
Number of items in the sale.

Sale Type
The following options are available as sales type:
Sales Type
ID
0

Value
Wholesale

1
2
3

Retail
Consumed
Vendor Use

Description
Specifies that the transaction is a sale to another company that will resell
the product or service to a consumer.
Specifies that the transaction is a sale to an end user.
Specifies that the transaction is for an item that is consumed directly.
Specifies that the transaction is for an item that is subject to vendor use
tax.

A F C S a l e s a n d U s e U s e r M a n u a l | 14 of 329
Copyright  2018 Avalara, Inc.

Service Type
Refer to Transaction and Service Types for details of this field.

Transaction Type
Refer to Transaction and Service Types for details of this field.
To have exempt taxes available for reporting, exemption type 3 (Sales For Resale) should be used in
combination with Resale.

Taxing Jurisdiction Identification Information
The tax jurisdiction that can claim nexus for the transaction must be obtained in order for the proper
taxes to be applied. Assigning the correct jurisdiction to the transaction is crucial in obtaining and
returning the correct tax to the billing system.
Jurisdiction information can be supplied to the AFC Engine in several ways. It can be supplied using a
Jurisdiction Code (JCode), Permanent (location) Code (PCode), Zip Code with address information or FIPS
Codes.

The JCode Jurisdiction Identification
Avalara has assigned each jurisdiction with a proprietary “JCode” (Jurisdiction Code) that identifies its
specific territorial boundaries. A jurisdiction fairly claiming nexus on a transaction within this boundary
will apply taxes accordingly. The AFC Engine uses this “jurisdiction bound” JCode to associate the
jurisdiction specific taxes to the transaction as it is processed.
However, any alterations in the jurisdictional boundaries, such as an expansion of a city limit, will be
reflected in the JCode of locations that are situated within the expanded jurisdiction area.
The Avalara tax research staff monitors jurisdiction taxation activity to maintain current and accurate
taxation information. The results of this research is applied to the Monthly updates which are provided
to ensure the most accurate taxation is applied to the records processed by the AFC Engine. The JCodes
will be changed at this time. It is the user’s responsibility to re-populate their database tables with the
new JCodes every time an AFC update is provided. If this task is not performed, the AFC Engine will
return incorrect tax calculations for jurisdictions that have been updated.
However, when a transaction is submitted with the stable and location sensitive PCode, the AFC Engine
can use internal functions to obtain the correct jurisdiction. Since the AFC Engine is updated with the remapped jurisdiction information monthly, tax calculations are always performed with the most current
jurisdiction taxation information that applies to the address defined by the PCode.

A F C S a l e s a n d U s e U s e r M a n u a l | 15 of 329
Copyright  2018 Avalara, Inc.

Figure 3-2 JCode and PCode Changes During Annexation

MOM'S HOUSE
PCODE = 8
JCODE = 2000

MY HOUSE
PCODE = 7
JCODE = 1000

MY TOWN CITY LIMIT

JCode and PCode Prior to Annexation

MY HOUSE
PCODE = 8
JCODE = 2000

MOM'S HOUSE
PCODE = 8
JCODE = 2000

MY TOWN CITY LIMIT

JCode and PCode After Annexation

All that is required to make use of this recommended option is to cross reference or “map” the customer
locations with its correct PCode. The time invested in incorporating PCodes into your database records
will be quickly offset by the reduced processing time and the increased accuracy and reliability of your tax
reporting will be evident.

Mapping Customer Locations to PCodes
Avalara markets Avalara Geo for Communications to assist in mapping customer locations to PCodes
when populating the client customer database. It quickly obtains the current PCode for a specific
geographical location.
When performing this task without the aid of EZgeo®, refer to the all_adr.txt file to look up the PCode that
should be used to populate the client database with customer information. This comma delimited ASCII
file is supplied for use during AFC setup and when adding new customers to the client database. The file
is replaced with a current version when monthly updates are performed (refer to Section 8.6).
all_adr.txt is a comma-delimited text file that contains a cross reference of PCodes to taxing jurisdictions.
The format is PCode, Primary / Alternate Location, Country, State, County, Locality, Beginning ZIP Code,
Ending ZIP Code. These fields are self-explanatory with the exception of the Primary / Alternate Location
(refer to 3.4.1.1.1).
Primary / Alternate Location
The Primary / Alternate location flag is set to '0' to indicate that the location associated with the PCode is
a "Primary" location or '1' to indicate that it is an "Alternate" location.

A F C S a l e s a n d U s e U s e r M a n u a l | 16 of 329
Copyright  2018 Avalara, Inc.

Secondary locations are original city names that remain in use even though the areas within them have
since been divided and given different names.
For example, the city of Overland Park, KS is a primary location. The first post office to serve the area was
established at the Shawnee Methodist Mission in the early nineteenth century, the extents of which
encompassed the then non-existent city of Overland Park as well as nearly a dozen other cities (primary
locations) which appeared over time. The post office still recognizes the Shawnee Methodist Mission
area as Shawnee Mission, KS, and continues to deliver to a primary location when the “Alternate
Location” address is provided.

Data Entry Modification Procedure
Use the following procedure to acquire the correct information to enter.

1. Have the customer data entry software request the zip code of the customer from the data entry
associate.

2. Query the "all_adr" file/database to obtain the associated PCodes.
3. If matching PCodes are found, populate the customer data record with the associated address
from the "all_adr" file and request verification from the customer data entry associate.

4. If the PCodes do not match or if the customer data entry associate rejects the automated
selection, display all addresses associated with both PCodes and the zip code entered.

5. Allow the customer data entry associate to select the appropriate address from the list.
6. In the unlikely event that the customer address is not displayed, allow the customer data entry

person to enter the address supplied by the customer. Store the address with a "special key" as
instructed by Avalara. Return the address and key to Avalara via E-mail. Avalara will research the
missing address and include it in the next monthly update. Avalara will also provide you with a
cross reference of the "special key" and the correct "PCode" to allow the customer record to be
properly installed.

NOTE:

Avalara subscribes to the United States Postal Database which should
preclude this event. Nonetheless, it does occur on occasion and this
process has been established for that reason.

7. Use the PCode from the customer record for the service address when interfacing with AFC.

A F C S a l e s a n d U s e U s e r M a n u a l | 17 of 329
Copyright  2018 Avalara, Inc.

Resources such as the USPS or the U.S. Census Department web sites can also be helpful in pinpointing a
customer location.
AFC functions can also be used to obtain PCodes (see Section 7.8 API Listings). For detailed information
about determining the tax jurisdiction which can claim nexus on a transaction, refer to Section 3.1.3 for
details on exemption levels.

Zip Codes
This method of providing jurisdiction information is the least efficient method provided. A record
submitted using this method will compromise the accuracy of correct jurisdiction identification, the
degree of which would depend upon the amount of data provided for the address and the user’s ability to
select the correct taxing jurisdiction zip code and address. AFC databases necessarily contain numerous
duplicate zip codes that cross taxing jurisdiction and locality boundaries. Providing a complete address
with zip code will provide the best possible match. If the address information is not provided, AFC will
return taxes based upon the first match of the input record information.
If the jurisdiction is positively identified by the billing system it would be appropriate to use the zip code
for transactions. For instance, this would apply if the transaction is the sale of a product at a business
that has just one location or in the case of internet usage from a residence.
AFC currently has Zip Code information for U.S. and Canadian jurisdictions. Use the Zip Code Plus 4
Interface to use the 6 character Canadian postal codes.

Zip Plus 4
Just as with the Zip Code method (see Section 3.4.2), AFC’s jurisdiction determination will depend on the
address information provided. However, it is useful (and more accurate than the 5-digit zip code) because
this 9-digit zip code uniquely identifies a location, which can then be used to determine the tax
jurisdiction. There is no need to supply the additional city and county information and information in
these fields are ignored.

NOTE:
Supplying ZIP Code Plus 4 information where the plus 4 is all zeros will
function like the ZIP Code Interface since the United States Postal Service
has no valid plus 4 code assigned with all zeros. The default will retrieve
the first jurisdiction with the supplied 5-digit zip code.

A F C S a l e s a n d U s e U s e r M a n u a l | 18 of 329
Copyright  2018 Avalara, Inc.

Canadian Postal Codes
Canadian postal codes need to be specified using the ZIP Plus 4 to retrieve a tax jurisdiction code. Place
the first three characters go in the zip code field and the last three characters go in the plus 4 field. In
addition, the country ISO field must be set to the Canadian ISO Code.

FIPS Codes
AFC has functions allowing the use of FIPS codes to retrieve tax jurisdiction codes. The US Census Bureau
provides the following description of the FIPS Codes and associated reference tables.
“The Federal Information Processing Standards codes (FIPS codes) are a standardized set of numeric or
alphabetic codes issued by the National Institute of Standards and Technology (NIST) to ensure uniform
identification of geographic entities through all federal government agencies. The entities covered
include: states and statistically equivalent entities, counties and statistically equivalent entities, named
populated and related location entities (such as, places and county subdivisions), and American Indian
and Alaska Native areas”.
A FIPS Code is a 10-digit numeric code with the following format:
Table 3-3 FIPS CODE FORMAT
SS
CCC
PPPPP

SSCCCPPPPP
FIPS State Code
FIPS County Code
FIPS Place Code

Figure 3-3 FIPS State Codes for the States and the District of Columbia
Name
Alabama
Alaska
Arizona
Arkansas
California
Colorado
Connecticut
Delaware
District of Columbia
Florida
Georgia
Hawaii
Idaho
Illinois
Indiana
Iowa
Kansas
Kentucky
Louisiana

FIPS State
Numeric Code
1
2
4
5
6
8
9
10
11
12
13
15
16
17
18
19
20
21
22

FIPS State
Alpha Code
AL
AK
AZ
AR
CA
CO
CT
DE
DC
FL
GA
HI
ID
IL
IN
IA
KS
KY
LA

Name
Montana
Nebraska
Nevada
New Hampshire
New Jersey
New Mexico
New York
North Carolina
North Dakota
Ohio
Oklahoma
Oregon
Pennsylvania
Rhode Island
South Carolina
South Dakota
Tennessee
Texas
Utah

FIPS State
Numeric Code
30
31
32
33
34
35
36
37
38
39
40
41
42
44
45
46
47
48
49

FIPS State
Alpha Code
MT
NE
NV
NH
NJ
NM
NY
NC
ND
OH
OK
OR
PA
RI
SC
SD
TN
TX
UT

A F C S a l e s a n d U s e U s e r M a n u a l | 19 of 329
Copyright  2018 Avalara, Inc.

Figure 3-3 FIPS State Codes for the States and the District of Columbia
FIPS State
Numeric Code
23
24
25
26
27
28
29

Name
Maine
Maryland
Massachusetts
Michigan
Minnesota
Mississippi
Missouri

FIPS State
Alpha Code
ME
MD
MA
MI
MN
MS
MO

FIPS State
Numeric Code
50
51
53
54
55
56

Name
Vermont
Virginia
Washington
West Virginia
Wisconsin
Wyoming

FIPS State
Alpha Code
VT
VA
WA
WV
WI
WY

Figure 3-4 FIPS State Codes for the Outlying Areas of the United States,
the Freely Associated States and Trust Territory
FIPS State Numeric
Code
60

FIPS State Alpha
Code
AS

Federated States of Micronesia

64

FM

3

Guam

66

GU

1

Marshall Islands

68

MH

3

Northern Mariana Islands

69

MP

1

Palau

70

PW

4

Puerto Rico

72

PR

1

Virgin Islands of the U.S.

78

VI

1

Area Name
American Samoa

Status
1

Support for India
Processing tax calculations in the the country of India includes support for all the states. Please reference
the table below for the appropriate IDs, abbreviations and PCodes for each state.
Note: This only applies to telecom support for India; however, it is visible to SAU clients.
States in India
Ctry Code

ISO

State Id

Abbv

State

PCODE

356

IND

1

AP

Andhra Pradesh

5148401

356

IND

2

AR

Arunachal Pradesh

5148402

356

IND

3

AS

Assam

5148403

356

IND

4

BR

Bihar

5148404

356

IND

5

CT

Chhattisgarh

5148405

A F C S a l e s a n d U s e U s e r M a n u a l | 20 of 329
Copyright  2018 Avalara, Inc.

States in India
Ctry Code

ISO

State Id

Abbv

State

PCODE

356

IND

6

GA

Goa

5148406

356

IND

7

GJ

Gujarat

5148407

356

IND

8

HR

Haryana

5148408

356

IND

9

HP

Himachal Pradesh

5148409

356

IND

10

JK

Jammu and Kashmir

5148410

356

IND

11

JH

Jharkhand

5148411

356

IND

12

KA

Karnataka

5148412

356

IND

13

KL

Kerala

5148413

356

IND

14

MP

Madhya Pradesh

5148414

356

IND

15

MH

Maharashtra

5148415

356

IND

16

MN

Manipur

5148416

356

IND

17

ML

Meghalaya

5148417

356

IND

18

MZ

Mizoram

5148418

356

IND

19

NL

Nagaland

5148419

356

IND

20

OR

Odisha

5148420

356

IND

21

PB

Punjab

5148421

356

IND

22

RJ

Rajasthan

5148422

356

IND

23

SK

Sikkim

5148423

356

IND

24

TN

Tamil Nadu

5148424

356

IND

25

TG

Telangana

5148425

356

IND

26

TR

Tripura

5148426

356

IND

27

UP

Uttar Pradesh

5148427

356

IND

28

UT

Uttarakhand

5148428

356

IND

29

WB

West Bengal

5148429

A F C S a l e s a n d U s e U s e r M a n u a l | 21 of 329
Copyright  2018 Avalara, Inc.

States in India
Ctry Code

ISO

State Id

Abbv

State

PCODE

356

IND

30

AN

Andaman and Nicobar

5148430

356

IND

31

CH

Chandigarh

5148431

356

IND

32

DN

Dadra Nagar Haveli

5148432

356

IND

33

DD

Daman and Diu

5148433

356

IND

34

DL

Delhi

5148434

356

IND

35

LD

Lakshadweep

5148435

356

IND

36

PY

Puducherry

5148436

Jurisdiction Identification Details
Obtaining the correct user’s location is critical in calculating the local taxation.

Determining the Correct Taxing Jurisdiction for Wireline Long Distance
AFC applies taxes to transactions based on the statutes that dictate specific taxes per jurisdiction.
Each jurisdiction from the state level down to the local level establishes jurisdiction rules to determine if
their tax will apply to a specific call transaction. These jurisdiction rules (also known as sourcing rules) for
determining the correct jurisdiction arose from a United States Supreme Court ruling that established the
minimum requirements necessary for a taxing jurisdiction to claim “nexus”.

Incorrect Jurisdiction Assignment
A customer may be assigned an incorrect jurisdiction if the geographical information is not thoroughly
researched. In the example shown in Figure 3-6, the customer (marked by an X) resides in a rural area
located in Pawnee County, Nebraska, just outside the city limits of Summerfield, Kansas.
Figure 3-5 Geographical Anomaly

A F C S a l e s a n d U s e U s e r M a n u a l | 22 of 329
Copyright  2018 Avalara, Inc.

However, in all likelihood this customer’s mail service is provided by the Summerfield, Kansas Post Office
and therefore has a Summerfield, Kansas mailing address.
This geographical anomaly will cause an incorrect assessment of taxation if not researched properly. If
the AFC user enters the customers Service Address information into the transaction records, the
customer will be incorrectly assessed taxes according to those of the Summerfield, Kansas jurisdiction
instead of those for the unincorporated area of Pawnee County, Nebraska jurisdiction.

A F C S a l e s a n d U s e U s e r M a n u a l | 23 of 329
Copyright  2018 Avalara, Inc.

AFC Calculations
The AFC Engine accepts the transaction record, processes the information provided and creates a table
containing the generated tax information. Additional methods to process specialized taxes are available
through the use of AFC functions.

Meeting the Requirements of Specific Tax Issues
Many tax issues are resolved within the AFC Engine, thereby relieving the user from making changes to
account for them. Additional functions are provided to meet other special taxation issues.
Table 4-1 Specific Tax Issues
Category
Specific Tax Exemptions
Tax Adjustments
Tax Overrides
Tax Rate Brackets
Rate at Final
Discount Adjustment
Tier on Transaction
Tax on Tax Until no Effect
Taxed Taxes
Get Rates

Description
Specifies tax type at specific tax level for exemption
Allow for adjustment activities such as refunds, changing a customer’s
bill or when terminating un-collectable accounts.
Allows for a change of a tax rate.
Tax rate that changes as the taxable amount of the transaction increases.
A specialized case of tax brackets.
Allows for entry of different discount adjustment types.
Allows for tax to be determined using graduated tax brackets.
Option to control calculation of tax on tax
Allows for processing when one tax includes in its base the tax calculated
from another tax.
Retrieves current tax information in a form suitable for overrides.

Tax Type Exemptions
Tax type exemptions are used to specify a specific Tax Type at a specific Tax Level to be exempted for the
current transaction. The exemption jurisdiction code specifies the jurisdiction for the tax exemption. If
the jurisdiction code is not specified (i.e. set to zero), then all taxes of the Tax Type and Tax Level
specified are considered exempt regardless of the jurisdiction they are calculated for. Typically the JCode
should be specified as specific tax exemptions are normally only effective for specific jurisdictions.
Another option allows the tax type to be set to zero, to indicate that all taxes of a specific tax level are
exempt in the specific jurisdiction.

Declaring Tax Type Tax Exemptions within a Transaction Record
When setting up the AFC transaction record, there are fields that specify either exempt at a tax level or a
specific tax. For more information, refer to Sections 3.1.3 for exemption levels, 3.1.6 for JCode
exemption levels and 3.1.7 for tax type exemption levels.

A F C S a l e s a n d U s e U s e r M a n u a l | 24 of 329
Copyright  2018 Avalara, Inc.

Declaring Tax Type Exemptions Using Functions
Alternatively, tax type exemptions can be applied using functions (such as APIs). The following fields are
required for this.

Table 4-2 Tax Exempt Record
Tax Type
Tax Level
JCode for Exemption

Tax Type identifier
Tax Level identifier
Jurisdiction for exemption

In addition, the transaction contains a pointer set to the tax exempt to exempt a specific tax.
Table 4-3 Tax Exemption Fields
tax_exempt
*s_exempt

Identifies the number of exemption records
Pointer to the Tax Exempt record (see Table 4-2) or Array of Tax Exempt records.
If no records are setup, this value should be null.

General Tips When Declaring Tax Exemptions
1. The JCode is used to specify tax exemptions because exemptions are normally only effective for
specific jurisdictions.
2. Some taxes are non-exemptible. Non-exemptible taxes may be overridden to exempt taxes that
are normally not exemptible. Refer to Section 4.1.3 for more information on Tax Overrides.
3. It is easy to evaluate the exemptions passed through AFC because they are tracked separately
and stored in the tax log by type of exemption.

Tax Adjustments
Tax adjustment functions provide for adjustment activities such as refunds, changing a customer’s bill or
writing off un-collectable accounts. The AFC engine allows adjustments to be passed by the user. Note
that these adjustments must be accounted for to provide an audit trail.
Tax adjustments are made using the Adjustment functions. The tax amount entered should be a positive
number for credit adjustments as the adjustment functions will appropriately sign the charges, lines or
locations for computation purposes. The adjustments are logged in the EZTax.log along with the rest of
the tax and transaction data associated with the tax run. The information is returned to the billing system
and is utilized to update tax data for report generation and compliance filing.
Adjustments may be declared as ‘default’ in which case they are processed exactly like a similar charge
transaction with negative tax results. They may be declared as least or most favorable. This declaration is
only useful for taxes which have multiple tiers or brackets and should be used with caution. The rate will be
determined separately for each tax returned within the tax table. AFC software will search the tiers or
brackets and select the tier which has either the highest rate (for most favorable) or lowest rate (for least
favorable) and apply that rate to the number of lines or charge amount as appropriate.
A F C S a l e s a n d U s e U s e r M a n u a l | 25 of 329
Copyright  2018 Avalara, Inc.

NOTE: Debit and credit transactions will generate different taxes if otherwise identical transactions are
processed with the same least/most favorable flag. To reverse a most favorable credit adjustment the
exact transaction should be sent as a debit adjustment with a least favorable flag.

General Tips When Making Tax Adjustments

1. To calculate adjustments accurately, AFC requires the following activity:
a. Call AFC using an adjustment API. (Please refer to the APIs provided in Section 7.8 API
Listings).
b. Send positive values for change, line, and locations.
c. Set the adjustment method (see the Adjustment Method Table below).
d. Set the discount type (see the Discount Type Table in Section 4.1.6).
2. If logging is turned on, adjustments are stored in the eztax.log file with the other transactions.
Adjustment Method Table
Name
Default
LeastFavorableRate
MostFavorableRate

Description
Tax brackets applied normally.
Tax brackets applied to produce smallest tax refund.
Tax brackets applied to produce largest tax refund.

Tax Overrides
Overrides allow the client to change the rate of a tax in the AFC Engine. Avalara markets the AFC
Manager - Rate and Logic Modifier (a Graphic User Interface based Windows program that is sold
separately) to support this activity. It steps the user through the process of creating an EZTax.ovr file.
Alternatively, overrides can be achieved using the Override functions (such as APIs).

WARNING: An override to exempt taxes OVERRIDES the tax information in Avalara’s tax research
database. This is not recommended for those that do not possess a full understanding of the tax
ramifications and liabilities when doing so.
Although all clients can use Tax Overrides, the method to make use of them depends upon the client
type.
1. AFC SaaS Standard clients must use the AFC Manager - Rate and Logic Modifier to create an
EZTax.ovr file that contains the overrides to insert. The file is then uploaded to the service
bureau inside the FTP.zip file that carries the CDS file for processing. The overrides are then used
during that processing and for subsequent processing until a new or empty override file is
uploaded.
2. Avalara clients that submit records in Batch fashion must use the AFC Manager - Rate and Logic
Modifier to create an EZTax.ovr file that contains the overrides to insert. Filelocs.txt is then
modified to point to this file. When the data file is processed, the overrides are inserted
automatically.

A F C S a l e s a n d U s e U s e r M a n u a l | 26 of 329
Copyright  2018 Avalara, Inc.

3. Avalara clients that integrate with the AFC Engine using functions (such as APIs) can use the
Override utility as an easy way to create overrides in the same manner that batch mode and
online clients do, modify filelocs.txt to point to the EZTax.ovr file or use the file path to point to
the EZTax.ovr file.
The following functions use a session and a tax override record to override the tax rates used by AFC to
calculate taxes.
Table 4-4 Tax Override Names and Descriptions
Function Name
EZTaxOvrJCodeEx**

Override Description

**This is the override JCode function for the
most current version of AFC.
EZTaxOvrPCodeEx
EZTaxOvrZipEx

Performs tax override using a JCode to designate the
Jurisdiction.
Performs tax override using a PCode to designate the
Jurisdiction.
Performs tax override using zip code and address information
to designate the Jurisdiction.

Tax Override Fields
AFC functions can be used to override a specific tax rate used by AFC.

Table 4-5 Tax Override Fields
Field
Scope
Type
Level
Exempt Level
Limit
Date
Tax Rate
Previous Tax Rate
Maximum Base
Excess Tax
State Override
County Override
Replace State Tax
Replace County Tax

Description
Scope of override
Tax type identifier
Tax level identifier
Level of Exemption
Maximum lines or charge to apply tax to
Effective date of Tax Rate
Tax Rate
Previous tax rate
Maximum amount to apply tax
Rate for amount above the Maximum Base
Override state rate if present
Override county tax if present
Tax replaces state tax
Tax replaces county tax

Scope
Refer to Table 4-6. The term Scope is used to indicate the magnitude of the override.

A F C S a l e s a n d U s e U s e r M a n u a l | 27 of 329
Copyright  2018 Avalara, Inc.

Table 4-6 Tax Level Effect of Exemption
Tax Level
Federal
Federal
Federal
Federal
State
State
State
County
County
County
Locality
Locality
Locality

Scope
Federal
State
County
Locality
State
County
Locality
State
County
Locality
State
County
Locality

Effect of Exemption
Exempt all defined Federal taxes
Exempt entire State for the specific Federal taxes
Exempt the Federal taxes within a specified County
Exempt the Federal taxes within a specified Locality
Exempt all Defined State taxes within a State
Exempt the State taxes within a specified County
Exempt the State taxes within a specified Locality
Exempt all County taxes within a specified State
Exempt all County taxes within a specified County
Exempt the County taxes within a specified Locality
Exempt all Locality taxes within a specified State
Exempt all Locality taxes within a specified County
Exempt all Locality taxes within a specified Locality

As an example, specifying a gross receipts tax at the Local level with a scope of State level will cause all
jurisdictions in the state identified by the jurisdiction to be passed to the AFC Engine with the specified
tax overridden. The County level affects all taxes in the County and Local level affects only the jurisdiction
specified. The specification of Federal level is only valid with federal taxes which will always be
overridden at the Federal level.
Type
The Tax type identifier is used to define the type of tax for which the override will apply. Refer to Table 419 for a complete list of Tax Types supported in AFC.

Level
The Tax level identifier is used to define the level for which the override will apply.

Exempt Level
Refer to Table 4-6. The Exempt Level indicator is used to define whether a tax can be exempted by an
exemption for all taxes at the same level as this tax. TRUE indicates that the tax can be exempted while
FALSE indicates that it cannot be exempted. Note that the tax can still be exempted by a specific tax
exemption.
For instance, a state level universal service fund will be exempt if this field is set TRUE and a state level tax
exemption flag is passed to AFC. If the flag is set TRUE an exemption at the level of the tax will exempt
the tax. If the flag is set FALSE an exemption at the level of the tax will have no effect on that specific tax.

A F C S a l e s a n d U s e U s e r M a n u a l | 28 of 329
Copyright  2018 Avalara, Inc.

Limit
The limit indicator is only used for taxes applied per line or location. When this field is set to zero it
indicates no limits are in effect for the specified tax. When the limit is not zero, AFC will apply the tax
based upon the number of lines or locations up to, but never exceeding, the limit amount. This has no
effect on sales taxes

Date
The Date field is used to define the effective date that the tax rate is active. The transaction date is
compared to the effective date to determine if the current tax rate or the previous tax rate is to be
applied.

Tax Rate
If the taxes are computed as a percentage of the charge then the Tax Rate field is used to indicate the tax
rate. For example, if a 5% sales tax were applied then the tax rate would be entered as .05. For all other
taxes such as per line, fixed, per minute and per location, the dollar amount should be entered for the
tax.

Previous Tax Rate
The Previous Tax Rate field is supplied for use when a previous tax is to be used for the tax rate.

Maximum Base
The Maximum Base defines the maximum charge that the tax is applied to. Any charge above the
maximum base is charged at the excess tax rate.
Excess Tax
If the tax only caps the charge that the tax is applied to then set the excess tax to zero.
State Override
The Locality or County sales tax record can override the state sales tax rate. This is useful where localities
or counties have a special agreement with the state to collect the state tax at a different rate. If the tax is
zero then no override will be in effect.
County Override
The Locality sales tax record can override a County sales tax rate. This is useful where localities have a
special agreement with the County to collect the County tax at a different rate. If the tax is zero then no
override will be in effect.

A F C S a l e s a n d U s e U s e r M a n u a l | 29 of 329
Copyright  2018 Avalara, Inc.

Replace State Tax
This option is made available for the rare occasion when a Locality or County sales tax replaces the state
sales tax completely.
Replace County Tax
This option is made available for the rare occasion when a Locality sales tax replaces a county sales tax
completely.

Tax Override Options
The Enhanced Override is used to override taxes.
Table 4-7 Tax Override Options
Name
Enhanced Override
Enhanced Date Override
Enhanced Rate Override

Description
Required fields for the Enhanced Override.
Required fields for Date Override.
Required fields for Rate Override.

Enhanced Override
The Enhanced Override requires the following fields.
Table 4-8 Enhanced Override Fields
Scope
Type
Level
Date Count
Date Table

Scope of override
Tax Type identifier
Tax Level identifier
Number of date records (normally 2)
Address of array of date records

Enhanced Date Override
The Enhanced Date override requires the following fields.
Table 4-9 Enhanced Date Override Fields
Override Date
Rate Count
Level Exempt
Rate Table

Starting (effective) date for this set of tax rates
Number of rate records for this date (normally 1)
Indicates if tax can be exempted by an exemption for all taxes at the same level as this tax.
Tax can still be exempted by specific tax exemption.
address of array of rate records

Enhanced Rate Override
The Enhanced Rate Override requires the following fields and rate entries in rate table for taxes.
Table 4-10 Sales Rate Override Fields
Tax
Maximum Base
Replace State
State Override
Replacement County

Tax Amount (rate)
Max amount subject to this tax(end of bracket)
Tax replaces the state tax
Overrides the state rate if present
Tax replaces the county tax

A F C S a l e s a n d U s e U s e r M a n u a l | 30 of 329
Copyright  2018 Avalara, Inc.

Table 4-10 Sales Rate Override Fields
County Override

Overrides the county tax if present

Get Rates
The AFC Get Rates function can be used to build the current tax information into the override structure.
Specific changes can be made to returned tax entries to create custom overrides.
Table 4-11 Get Rates Override Fields
PCode
Tax Count
*Taxes Table

Jurisdiction PCode
Count of all taxes for this jurisdiction
Table of all taxes for this jurisdiction in override format

NOTE:

The scope value will be set to the tax level.

General Tips When Using Overrides
1. Overrides are not permanent. When an AFC session is exited the created overrides are removed and
no longer available. They can also be removed without exiting a session using the EZTaxRestore
function.

2. AFC cannot override a tax that does not exist. If an existing tax is a rate, it is necessary to override the
tax as a rate, not a per line or fixed amount. Failure to do so will result in incorrect and high tax
amounts.

3. Non-exemptible taxes may be overridden to exempt taxes that are normally not exemptible.
4. The AFC Override functions can be used to override the rates, but they will not affect the rules that
determine what taxes are applied to different transaction/service pairs.

General Rules for Configuring Override File
1.

The override file path must be listed in filelocs.txt.

2.

The override file must be the last item in filelocs.txt.

3.

There cannot be any blank lines in filelocs.txt.

Also, in order to verify that an override file is in the process of being loaded, the user must go to the AFC
Directory and locate the .sta or status file which indicates that an override file has been successfully
loaded.

A F C S a l e s a n d U s e U s e r M a n u a l | 31 of 329
Copyright  2018 Avalara, Inc.

Tax Rate Brackets
Some jurisdictions will dictate a tax rate that changes as the taxable amount of the transaction increases.
These break points at which the changes occur define the brackets (or steps) and are most commonly
based on dollar amount ranges although other units of measure exist. The rate may increase or decrease
according to usage levels.
AFC supports these transactions with an unlimited number of tax brackets. The Avalara Tax Research
department continually researches jurisdictions for specific tax practices, such as tax rate brackets,
updating the AFC Engine monthly. These updates occur automatically and the user is not required to
make changes to account for this.
An example of this is illustrated in Figure 4-1Figure 4-1. If a jurisdiction has a general sales tax set at 2%
for the first $500 of a single transaction and set at 1% for that which is over $500, the tax for a $1200 sale
would be calculated as shown in Figure 4-1.
Figure 4-1 Example of Sale with Tax Brackets
First $500 of Sale
Remaining Amount of Sale (Over $500)

$500
$700

@
@

2%
1%

=
=

$10.00
7.00
$17.00

Total Tax

Rate Final
Rate at Final is a variation of the typical tax bracket. Basically a lookup table, each bracket is defined by
the break points at which a rate change occurs and contains the rate to be charged for the total
transaction amount falling within the range.
For example, suppose a state establishes a sales tax with a tax rate dependent on the total sale amount as
shown in Figure 4-2Figure 4-2.

Figure 4-2 Example of Tax Brackets
Total

Rate

$0.00 - $500.00

7.65%

$500.01 - $1000.00

9.00%

$1000.01 - $5000.00

7.65%

$5000.01 up

7.50%

A F C S a l e s a n d U s e U s e r M a n u a l | 32 of 329
Copyright  2018 Avalara, Inc.

If the sale is $200, the tax rate of 7.65% will apply for a total tax of $15.30.
If the sale is $700, the tax rate of 9.00% will apply for a total tax of $63.00.
If the sale is $1500, the tax rate of 7.65% will apply for a total tax of $114.75.
If the sale is $6000, the tax rate of 7.50% will apply for a total tax of $450.00.

Limits
Some jurisdictions have established tax rates that either take effect or cease to take effect at a threshold,
a specific currency value. The point at which this occurs is referred to as a cap or limit. AFC supports
these transactions and the user is not required to make changes to account for it.
As an example, if a jurisdiction charges a 10% sales tax on only the first $10 of an invoice, the tax for a $20
invoice would “cap” at the $10 threshold, resulting in a ($10 x 10% =) $1 sales tax.
As an example of the converse, if a jurisdiction does NOT tax the first $25 of a purchase, a $35 charge
would be reduced by the $25 threshold “limit,” resulting in a ($35 - $25 = ) $10 taxed amount.

Surcharges
The returned tax table shows which tax entries are considered surcharges.

Discount Adjustment
AFC has an additional table that stores discount types by state with an “allow ability” indicator. The
adjustment functions have arguments for the discount type which look up the discount type from the
table to determine whether to apply taxes or not.
Discounts may or may not be taxed within each state. When a discount is taxed, the customer receives a
tax benefit commensurate with the amount of the discount (i.e., if the customer gets $5 off on a
transaction subject to a 5% tax, the customer pays $0.25 less in tax than they would have). When a
discount is not taxed, the customer receives no tax benefit from the discount. Whether a discount is
taxed or not depends on the type of discount and the rules in a particular tax jurisdiction.
AFC provides five discount types to use in defining the particular discount to be applied and are fully
described with supporting example in the following sub-sections.
Discount Type
ID
0
1
2

Value
None (Default)
Retail Product
Manufacturer Product

Description
Discount Type not applicable.
An amount subtracted from the original price to arrive at a lower price.
A credit applied to the total amount reimbursed to either the retailer or
the customer by the manufacturer.
A F C S a l e s a n d U s e U s e r M a n u a l | 33 of 329
Copyright  2018 Avalara, Inc.

Discount Type
ID
3

Value
Account Level

4

Subsidized

5

Goodwill

Description
A stand-alone discount that is not applied against any service but instead
as a stand-alone product.
A credit for telephone service where the telephone provider provides a
service to a lifeline eligible customer. The credit will be applied to the
subscriber line charge.
A credit applied to customer invoices for the purpose of engendering
customer goodwill. For example, compensation for a service outage.

Account Level
Especially prevalent in large accounts, this discount is a stand-alone discount that is not applied against
any service but instead as a stand-alone product.
Example Description of Account Level
A Kansas customer spends significant amounts on a wide range of services including local exchange,
intrastate toll, and interstate toll. The customer’s purchasing activity occurs in several states and across
multiple accounts. The customer’s spending levels earn it a $1,000.00 discount that is not applied to any
particular product or service, but will be applied at an account level.
The Corporate Tax Department has determined that account level discounts in Kansas will receive full tax
credit, so the discount is mapped to a Tax Category created to represent generic account level discounts
and the customer gets a $53.00 credit of Kansas state sales tax along with the $1,000.00 discount. The
application of Kansas sales tax to the discount, rather than other state's sales taxes (i.e., states in which
there was purchasing activity that helped to earn the discount), is a consequence of the discount being
applied to a Kansas account and SBC Corporate Tax has determined that the related tax risk is acceptable.

Goodwill
A credit applied to customer invoices for the purpose of engendering customer goodwill. For example,
compensation for a service outage.
Example Description of Goodwill
A Kansas customer buys a second line and gets voice mail free for a month ($6.00 value). The free voice
mail is a Goodwill Discount because, although it is offered by the retailer and applied to a particular
product or service, the terms of the promotion provide that the discount will not be taxed.
To accomplish this, the billing system will make separate calls to the taxing engine of $6.00 for the
monthly recurring voice mail charge and -$6.00 for the Goodwill Discount. Both transactions will be
represented by the same tax category, but the billing system will send an additional value on the discount
A F C S a l e s a n d U s e U s e r M a n u a l | 34 of 329
Copyright  2018 Avalara, Inc.

transaction indicating that it is a Goodwill Discount. The $6.00 charge for voice mail generates $0.32 in
Kansas state sales tax. When the -$6.00 discount is processed for tax applications, the taxing engine
determines that a Goodwill Discount is not taxed and generates -$0.00 in Kansas state sales tax. The
offsetting tax amounts are presumably netted together in the tax summary on the customer’s bill.
Whether the charge and discount amounts are netted on the customer’s bill is up to the billing system,
and does not affect the tax calculation or the presentation of tax on the bill.

Manufacturer Product
A credit applied to the total amount reimbursed to either the retailer or the customer by the
manufacturer.
Example Description of Manufacturer Product
A Kansas customer buys a satellite dish for $300.00 and receives a $50.00 rebate (discount) from the
satellite company. The billing system will make separate calls to the taxing engine for the dish charge of
$300.00 and the discount of -$50.00. Both transactions will be represented by the same tax category, but
the billing system will send an additional value on the discount transaction indicating that it is a
Manufacturer Discount. The $300.00 charge for the satellite dish generates $15.90 in Kansas state sales
tax. For the -$50.00 discount, the tax engine determines that Kansas does not allow any tax credit on
Manufacturer Discounts and generates $0.00 in Kansas state sales tax. The offsetting tax amounts are
presumably netted together in the tax summary on the customer’s bill. Whether the charge and discount
amounts are netted on the customer’s bill is up to the billing system, and does not affect the tax
calculation or the presentation of tax on the bill.

Retail Product
A retail product discount is an amount subtracted from the original price to arrive at a lower price.
Example Description of Retail Product
A Kansas customer has voice mail and is charged a monthly recurring charge of $6.00/month. The
customer buys a second line and gets voice mail free for a month. The billing system will make separate
calls to the taxing engine for the monthly recurring charge of $6.00 and the discount of -$6.00. Both
transactions will be represented by the same tax category, but the billing system will send an additional
value on the discount transaction indicating that it is a Retailer Discount.
The $6.00 charge for voice mail generates $0.32 in Kansas state sales tax. For the -$6.00 discount, the tax
engine determines that Kansas allows a full tax credit on Retailer Discounts and generates -$0.32 in
Kansas state sales tax. The offsetting tax amounts are presumably netted together in the tax summary on
the customer’s bill. Whether the charge and discount amounts are netted on the customer’s bill is up to
the billing system, and does not affect the tax calculation or the presentation of tax on the bill.

A F C S a l e s a n d U s e U s e r M a n u a l | 35 of 329
Copyright  2018 Avalara, Inc.

Subsidized
A credit for telephone service where the telephone provider provides a service to a lifeline eligible
customer. The credit will be applied to the subscriber line charge.
Example Description of Subsidized
A Kansas Lifeline customer purchases local exchange service. Local exchange service is normally $24.00,
but Lifeline customers are charged $20.50 and the balance of $3.50 is drawn from a federal government
fund for the subsidization of local exchange service to Lifeline customers. The company still has $24.00 in
revenue and will owe Kansas state sales tax on the entire $24.00 in revenue. The company is prohibited
from drawing on the federal government fund to pay for the tax on the $3.50, so the customer must pay
all of the applicable tax.

Tier at Transactions
In some states, the sales tax on a product has tier taxing logic. When tax is calculated using Tier at
Transactions the tax is determined using graduated tax brackets on each transaction separately rather
than the amount of the customer invoice. The tax applies tax brackets based on the single product
transaction. Tier at Transaction is not the default setting in AFC.

Tax on Tax Until no Effect
The default application of tax on tax is to make one pass through the calculation of each tax, adding the
appropriate taxes to the base amount to be taxed. If the tax on tax until no effect option is selected, AFC
will continue to recalculate tax on tax until the amount added is less than 0.005 (one half of a cent).

Historical Tax Rates
AFC maintains an unlimited number of past tax rates. The tax rate history tables contain the tax rates and
effective dates and are referenced when tax calculations are performed on date other than the current
date.

Taxed Taxes
Taxed taxes are instances in which one tax includes in its base the tax calculated from another tax. The
scope of this document prohibits a discussion of the many examples of taxed taxes.

A F C S a l e s a n d U s e U s e r M a n u a l | 36 of 329
Copyright  2018 Avalara, Inc.

Refer to Figure 4-3.Figure 4-3. In the case where two taxes are returned for a transaction (tax A and tax B
in this example), tax A might be included in the base of tax B. If both taxes are returned for a $100
charge, the taxes would be calculated as follows:
Figure 4-3 Taxed Taxes Example
(tax rate of 3% is used in this example)
Tax A
Charge
Rate
Tax Amount

x
=

FET
$100.00
3%
$3.00

Charge
 Tax A
Tax B base
Rate
Tax Amount

$100.00
+
=
x
=

$3.00
$103.00
3%
$3.09

Tax Logging
Once the tax calculations are complete, the EZTax.log is created. The log is a binary database containing
all of the taxes generated during the tax run. Information in the log includes the jurisdictional data, tax
types, tax levels, sale amounts, tax rates, tax amounts, exemptions, adjustments, customer number, etc.
Once AFC performs a graceful exit, the EZTax.log is available for use. This file is commonly used to create
tax returns, provide audit trails and internal tracking, and used when making projections.
The options available for reporting the tax information vary based on the integration method that the
client has chosen to use.
1. Batch mode clients – The EZTax.log is automatically produced when processing the .CDS file.
Several utilities are available for use to produce files to be imported into the billing system. Refer
to Section 5.1 for utility selection assistance.
2. AFC SaaS Standard clients - The EZTax.log is automatically produced and the sorting and reporting
activities are performed automatically.
3. On-site clients - The EZTax.log is automatically produced. Many sorting and reporting utilities are
available for use to produce the desired output file. Refer to Section 5.1 for utility selection
assistance.
4. APIs - Clients who use the functions (such as APIs) must turn logging on to gain the benefit of
sorting utilities. All of the information used for billing is returned real time during taxation.

A F C S a l e s a n d U s e U s e r M a n u a l | 37 of 329
Copyright  2018 Avalara, Inc.

Returned Taxes
Once the tax calculations are completed, the tax information is placed in the Tax Table, available to be
returned to the user from the AFC engine. An additional Tax Table will be returned if using Invoice Mode.

Taxes Table
The AFC Table is dynamically allocated during AFC session initialization. This table is used to store tax
information as AFC processes transaction records. The size of this table is dependent upon the maximum
taxes that can be generated for a single transaction. As such, the size of this table can change from
month to month as new taxes are generated or removed from taxing jurisdictions. It is always safe to
access from 0 (zero) to [tax_count_returned -1] locations of the table. The user is cautioned to treat this
as a read only area. Attempting to access locations that do not exist will result in access violations on
most operating systems.
Each function that performs tax calculations or tax exceptions returns a count of taxes generated for the
specified transaction. The transaction tax data can be retrieved for use in a billing system by accessing
the Tax Table pointer which indicates the location of the tax amount in the AFC Table array.

Returned Tax Information
Tax information can be returned using the P Code, J Code, Zip or FIPS functions. A value is returned to
indicate the number of taxes returned and included in the Tax Table. Each tax calculated is returned as a
record in the tax table. Taxes are retrieved by looping through the table by the number of taxes, which is
then returned by the taxation API call.
Each row in the Tax Table will contain the information shown in Table 4-12.
Table 4-12 Enhanced Taxes Table Fields
PCode
PCode for tax jurisdiction
Tax Type
Tax Type
Tax Level
Tax Level**
Calculation Type
Calculation Type (i.e. Rate, Fixed, Per Minute, Per Line)
Rate
Tax Rate or amount applied
Tax Amount
Calculated tax amount
Taxable Measure
Amount of charge plus any taxed taxes
Exempt Sale Amount
Amount of the charge exempt from taxes
*Desc
Tax description string
Billable
Billable flag from tax logic
Compliance
Compliance flag from tax logic
Surcharge Flag
FET taxable flag from tax record
**Country taxes within any US territory will be returned at a state level versus a federal level.

A F C S a l e s a n d U s e U s e r M a n u a l | 38 of 329
Copyright  2018 Avalara, Inc.

Returned Tax Information Using Invoice Mode
AFC applies Steps, Brackets and/or Limits on a per transaction basis unless operating in Invoice Mode.
Invoice Mode is used to group transactions that apply to the same customer. AFC maintains a history of
the transactions and applies the Steps, Brackets and/or Limits to entire group of transactions.
For example, suppose a jurisdiction charges a 10% sales on just the first $10 of an invoice. If two separate
$6 transactions on the invoice are passed while not in Invoice Mode, two $0.60 tax charges would be
erroneously totaled and a $1.20 tax would be generated. However, if these same transactions are passed
while in Invoice Mode, the total tax charge would be correctly totaled and a $1.00 tax would be
generated.
Table 4-13 Invoice Mode Tax Table Fields
PCode
Tax Type
Tax Level
Calculation Type
Rate
Tax Amount
Exempt Sale Amount
*Desc

PCode for tax
Tax Type
Tax Level**
Calculation Type (i.e. Rate, Fixed, Per Minute, Per Line)
Tax Rate or amount applied.
Calculated tax amount.
Amount of the charge exempt from taxes.
Tax description string
For tax calculations based on line counts, it is the number of lines used in the
Lines
calculation to produce the tax. For Federal taxes, the line count always matches the
lines input. For all other taxes, it is 0.
For tax calculations based on minutes, it is the number of minutes used in the
Minutes
calculation to produce the tax. For all other taxes, it is 0.
Maximum amount to which tax is applied amounts above this will be taxed at a
Max Base
higher bracketed rate (if applicable).
Minimum amount to which tax is applied amounts below this will be taxed at a
Min Base
lower bracketed rate (if applicable).
Excess Tax
Rate for amount above Max Base returned as part of county tax.
Total Charge
Sum of charges calculated on a per customer basis.
**Country taxes within any US territory will be returned at a state level versus a federal level.

Tax Grouping
AFC allows a client application to group the tax calculation results returned in the tax table based on tax
level and tax type criteria. This may be accomplished by setting the appropriate group mode option in the
configuration file (see TM_00548_AFC Configuration Guide). The option specified in the configuration file
will automatically be applied to every AFC session as it is initialized. However, this option may be
overridden by calling the EZTaxGroupResults API function.

NOTE:
This option will not modify the way that tax calculation results are logged
into the EZtax log file. Only the tax calculation results returned by either

A F C S a l e s a n d U s e U s e r M a n u a l | 39 of 329
Copyright  2018 Avalara, Inc.

one of the tax calculation API will be group according to the values set for
this option.

General Rules
The following rules apply when using any value for this option:
Federal taxes may not be grouped. Each Federal tax will be returned individually.
Non-billable taxes may not be grouped.
Only rate-based taxes may be grouped. Taxes with a different calculation type (for example,
fixed, per line, etc) will be returned individually.
Use taxes may be grouped with other use taxes only (for example, state and local use tax).
Use
taxes will not be grouped with other tax types.
When grouping taxes for different tax levels (for example, state and local taxes) the
jurisdiction
code for the lowest level jurisdiction will be returned.
Unincorporated taxes will be considered as County taxes when grouping taxes by tax level,
and
will be grouped accordingly.
The tax rates for all taxes being grouped into a single record will be added together.
Options:
AFC provides the following options in order to group the taxes in the tax table by tax level:
Group taxes at the same level. When using this option, taxes at the same level will be
grouped
together.
Group state, group county and local. By using this option, all state level taxes will be grouped
into a single record, and all county and local taxes will be grouped together into a separate
record.
Group state, county, and local. If this option is specified, all state, county, and local taxes will
be
grouped together.
In addition to grouping taxes by tax level, AFC allows you to separate sales taxes from other tax types. The
following options may be used in conjunction to the tax level options specified above.
1. Group sales taxes. This option indicates that Sales Taxes (tax type 1) and Use Taxes should be
grouped separately from other taxes.
2. Group taxes in the sales category. All taxes that are in the sales category (such as some
District and Transit taxes, in addition to Sales Taxes) will be grouped together separately
from other taxes.

A F C S a l e s a n d U s e U s e r M a n u a l | 40 of 329
Copyright  2018 Avalara, Inc.

If the group mode is being specified within the EZTax.cfg file, the sales tax option may be combined with
the tax level option by inserting the option in the line following the tax level option. For example:
groupstatecountyandlocal
groupsalescategory
When calling the API function, a sales tax option may be combined with a tax level option by using the
bitwise OR operator in the group mode parameter. For example:
EZTaxGroupResults(session, GROUP_ST_CO_LOCAL | GROUP_SALES_CATEGORY);

By using the default option in the configuration file or the API function, this feature will be disabled, and
all taxes will be returned in an individual record.

Tax Return Table
When grouping taxes together, the fields in the tax return table will contain the following values:
Jurisdiction Code. Jurisdiction Code (PCode or JCode depending on the API call and interface
being used) for the lowest level jurisdiction. For example, if Kansas state taxes and Overland
Park local taxes were grouped together, the tax record will contain the jurisdiction code for
Overland Park.
Tax level. When grouping State, County and Local taxes together, the tax record will contain a
value of 6 in the tax level. When grouping only County and Local taxes together, the tax
record will contain a value of 7 in the tax record. Constants are provided for these values in
the appropriate file.
Tax type. When grouping different taxes together, the tax type in the tax record will contain a
value of 0. If only Sales Taxes (tax type 1) or Use Taxes (tax type 49) are being grouped
together, the tax record will contain the corresponding tax type.
Tax amount. This field will contain the sum of the tax amount for all taxes being grouped
together.
Tax rate. This field will contain the sum of the tax rates for all taxes being grouped together.

NOTE:
The remaining fields in the tax table will not contain any meaningful
value. Grouping tax calculation results may serve as a way to simplify the
tax information for display purposes only. If further detail is required for
each tax being returned by AFC, this feature should not be used.

A F C S a l e s a n d U s e U s e r M a n u a l | 41 of 329
Copyright  2018 Avalara, Inc.

Sales and Use
The AFC Sales and Use feature allows API users access to an expanded set of Transaction and Service Type
pairs. A Sales and Use transaction requires not only the valid Transaction and Service Type pair but must
also include one or more attribute(s). The attributes are used to further specify details of a transaction,
such as the freight costs or the purchase of an extended warranty.
Sales and Use contains a comprehensive list of transactions to handle your taxation needs. In addition to
the products/services, other items such as Shipping, Discounts, Installation, etc. may or may not be
taxable depending on the underlying transaction. AFC Sales and Use provides the ability to pass these
items with each transaction. The system automatically determines the taxability of these items based
upon the jurisdiction.
AFC Sales and Use contains sourcing tables to determine where the taxable event took place based upon
the order entry information entered into the API. The tables contain sourcing information for both SSTP
and non-SSTP states. The transactions are designed with a one-to-one relationship with SSTP definitions
and also include definitions for non-SSTP states.

Sales Transaction Data Attributes and Properties
Sales and Use attributes are used to specify the sales transaction data of a transaction. The Default
attribute is included by “default” in most transactions as it is used for the sale of the product or service
itself. However, it is possible for a transaction to occur that does not include the Default attribute, such
as when the purchase of a service contract for a product occurs sometime after the sale of a product.
In most cases a Sales and Use transaction will include more than one attribute in order to completely
define it.
Properties are included within some attributes to further define options within the attribute. Please refer
to TM_00506 AFC Sales and Use Mapping Guidelines for definitions of each attribute and associated
properties.

Freight On Board (FOB) Transaction Details
The table below provides a detailed breakdown of freight transactions specific to FOB. Please reference
TM_00506 AFC Sales and Use Mapping Guidelines for additional details, descriptions and examples for all
of the possible freight transaction combinations or properties.

A F C S a l e s a n d U s e U s e r M a n u a l | 42 of 329
Copyright  2018 Avalara, Inc.

Table 4-14 FOB Transaction Attributes
Attribute

Property

FALSE = FOB
Shipping Point
FOB using
FIPS Codes
TRUE = FOB
Destination
ship_from_fips_code;
ship_to_fips_code;
sau_tax_data

FALSE = FOB
Shipping Point
FOB using
JCodes
TRUE = FOB
Destination
ship_from_j_code;
ship_to_j_code;
sau_tax_data

FALSE = FOB
Shipping Point
FOB using
PCodes
TRUE = FOB
Destination
ship_from_p_code;
ship_to_p_code;
sau_tax_data

FOB using
ZIP P4 Codes

FALSE = FOB
Shipping Point

Description
A term that signifies that the
freight being shipped is the
responsibility of the buyer after it
leaves the point where it is shipped
from.
A term that signifies that the
freight being shipped is the
responsibility of the seller until the
item being shipped is received by
the buyer.
Ship from Fips Code
Ship to Fips Code
Transaction data
A term that signifies that the
freight being shipped is the
responsibility of the buyer after it
leaves the point where it is shipped
from.
A term that signifies that the
freight being shipped is the
responsibility of the seller until the
item being shipped is received by
the buyer.
Ship from JCode
Ship to JCode
Transaction data
A term that signifies that the
freight being shipped is the
responsibility of the buyer after it
leaves the point where it is shipped
from.
A term that signifies that the
freight being shipped is the
responsibility of the seller until the
item being shipped is received by
the buyer.
Ship from PCode
Ship to PCode
Transaction data
A term that signifies that the
freight being shipped is the
responsibility of the buyer after it
leaves the point where it is shipped
from.

Example
Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable only while the property is
in their possession at their docks
in New York.
Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable up until the item is
received in Los Angeles

Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable only while the property is
in their possession at their docks
in New York.
Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable up until the item is
received in Los Angeles

Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable only while the property is
in their possession at their docks
in New York.
Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable up until the item is
received in Los Angeles

Company A ships an item from
its docks in New York to Los
Angeles. Company A would be
liable only while the property is
in their possession at their docks
in New York.

A F C S a l e s a n d U s e U s e r M a n u a l | 43 of 329
Copyright  2018 Avalara, Inc.

Table 4-14 FOB Transaction Attributes
Attribute

Property
TRUE = FOB
Destination

ship_from_zip_address_P4;
ship_to_zip_address_P4;

Description
Example
A term that signifies that the
Company A ships an item from
freight being shipped is the
its docks in New York to Los
responsibility of the seller until the Angeles. Company A would be
item being shipped is received by
liable up until the item is
the buyer.
received in Los Angeles
Ship from ZIP Code+4 and address information
Ship to ZIP Code+4 and address information

Tax Data Structure
Table 4-17 Tax Data Structure
customer_type;
sale;
trans_type;
srv_type;
attr;
sau_freight_properties freight;
sau_discount_properties discount;
sau_finance_properties finance;
sau_installation_properties installation;
sau_shipandhandling_properties
shipandhandle;
sau_softwaremaint_properties softwaremaint;
sau_svc_contract_properties svccontract;
sau_maint_agreement_properties
maintagreement;
sau_factory_warranty_properties facwarranty;
sau_extended_warranty;
date;
charge;
count;
incorp;
FED_exempt;
st_exempt;
co_exempt;
loc_exempt;
FED_J_Code;
st_J_Code;
co_J_Code;
loc_J_Code;
spc_exempt;
sau_exempt *sau_exemptions;
exempt_type;

0=residential, 1=business customer, 2=Senior Citizen,
3=Industrial
flag - retail/sale or wholesale/resale
see the programmer user's
manual for valid transaction service type pairs
SAU_FREIGHT, SAU_DEMURRAGE, SAU_DEPOSITS, ...
properties for freight
properties for discounts
properties for finance
properties for installation
properties for shipping and handling
properties for software maintenance
properties for service contracts
properties for maintenance agreements
properties for factory warranty
Properties for extended warranty
transaction bill date
amount charged to customer
number of items
incorporated or unincorporated area
If TRUE, transaction exempt from Federal Tax
If TRUE, transaction exempt from State Tax
If TRUE, transaction exempt from County Tax
If TRUE, transaction exempt from local tax
Jurisdiction for Federal exemption
Jurisdiction for state exemption
Jurisdiction for county exemption
Jurisdiction for local exemption
0 indicates no of specific exempts, other value indicates
number of specific exempts
array of exemptions
reason for exemption

A F C S a l e s a n d U s e U s e r M a n u a l | 44 of 329
Copyright  2018 Avalara, Inc.

Table 4-17 Tax Data Structure
inv_no;
srv_lvl_no;
optional;
cust_no[CUST_NO_SIZE];
company_identifier[CO_IDENTIFIER_SIZE];
opt_alpha_1[CUST_NO_SIZE];
opt_4;
opt_5;
opt_6;
opt_7;
opt_8;
opt_9;
opt_10;

Invoice number, user defined
Service level number, user defined
user defined value for reporting
user defined customer number
company identifier
optional alpha field
optional numeric field
optional numeric field
optional numeric field
optional numeric field
optional numeric field
optional numeric field
optional numeric field

Transaction and Service Types (Sales and Use)
The transaction/service types to be used are identified here.
Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

24

491

Software/Canned Software

24

492

Software/Modified Charges

24

493

Software/Modified Software

24

494

Software/Custom Software

24

495

Software/Canned Software-Load and
Leave

24

496

Software/Custom Software-Load and
Leave

24

497

Software/Licensed Software-Load and
Leave

Software written for multiple users.
Transferable to the computer by physical
means which the customer retains.
Charges to modify canned software for a
specific user.
Software modified for a specific purpose
for a specific user. Transferable to the
computer by physical means, which the
customer retains
Software written for a specific purpose
for a specific user. Transferable to the
computer by physical means which the
customer retains
Software written for multiple users.
Transferable to the computer by physical
means which the software provider
retains after installation.
Software written for a specific purpose
for a specific user. Transferable to the
computer by physical means which the
software provider retains after
installation.
An agreement for the use of software for
a specified period. Transferable to the
computer by physical means which the
software provider retains after
installation.

A F C S a l e s a n d U s e U s e r M a n u a l | 45 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

24

498

Software/Modified Software-Load
and Leave

24

499

Software/Downloaded Custom
Software

24

500

Software/Downloaded Canned
Software

24

501

Software/Licensed SoftwareDownload

24

502

Software/Modified SoftwareDownload

24

503

Software/Software Set Up-OptionalCanned

24

504

Software/Software Set Up-OptionalCustom

24

505

Software/Software Set Up-OptionalDownloaded

24

506

Software/Software Set Up-OptionalLoad and Leave

Software modified for a specific purpose
for a specific user. Transferable to the
computer by physical means which the
software provider retains after
installation.
Software written for a specific purpose
for a specific user. Transferable to the
computer by electronic means.
Software written for multiple users.
Transferable to the computer by
electronic means.
An agreement for the use of software for
a specified period. Transferable to the
computer by electronic means.
Software modified for a specific purpose
for a specific user. Transferable to the
computer by electronic means.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by physical means
that is retained by the user. The user has
the option of installing the software
themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. This covers custom software
no matter the means transferred. The
user has the option of installing the
software themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by electronic
means. The user has the option of
installing the software themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by physical means
that is retained by the seller. The user
has the option of installing the software
themselves.

A F C S a l e s a n d U s e U s e r M a n u a l | 46 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

24

507

Software/Software Set Up-OptionalModified

24

508

Software/Software Set UpMandatory-Canned

24

509

Software/Software Set UpMandatory-Custom

24

510

Software/Software Set UpMandatory-Downloaded

24

511

Software/Software Set UpMandatory-Load and Leave

24

512

Software/Software Set UpMandatory-Modified

24

513

Software/Computer ConsultingOptional-Canned

24

514

Software/Computer ConsultingMandatory-Canned

Charges for the set up and installation of
software into the purchaser’s
equipment. Covering modified software
transferred by physical means that is
retained by the user. The user has the
option of installing the software
themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by physical means
that is retained by the user. The user
does not have the option of installing the
software themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. This covers custom software
no matter the means transferred. The
user does not have the option of
installing the software themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by electronic
means. The user does not have the
option of installing the software
themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering pre-written
software transferred by physical means
that is retained by the seller. The user
does not have the option of installing the
software themselves.
Charges for the set up and installation of
software into the purchaser’s
equipment. Covering modified software
transferred by physical means that is
retained by the user. The user does not
have the option of installing the software
themselves.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.

A F C S a l e s a n d U s e U s e r M a n u a l | 47 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

24

515

Software/Computer ConsultingOptional-Custom

24

516

Software/Computer ConsultingMandatory-Custom

24

517

Software/Computer ConsultingOptional-Downloaded

24

518

Software/Computer ConsultingMandatory-Downloaded

24

519

Software/Computer ConsultingOptional-Load and Leave

24

520

Software/Computer ConsultingMandatory-Load and Leave

24

521

Software/Computer ConsultingOptional-Modified

24

522

Software/Computer ConsultingMandatory-Modified

24

523

Software/Computer TrainingOptional-Canned

24

524

Software/Computer TrainingMandatory-Canned

24

525

Software/Computer TrainingOptional-Custom

24

526

Software/Computer TrainingMandatory-Custom

24

527

Software/Computer TrainingOptional-Downloaded

Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges often considered design and
planning for software but not to include
actual training.
Charges for training the purchaser on the
use of new software. The training is for
canned software and the customer has a
choice on whether to take the course.
Charges for training the purchaser on the
use of new software. The training is for
canned software and the customer does
not have a choice on whether to take the
course.
Charges for training the purchaser on the
use of new software. The training is for
custom software and the customer has a
choice on whether to take the course.
Charges for training the purchaser on the
use of new software. The training is for
custom software and the customer does
not have a choice on whether to take the
course.
Charges for training the purchaser on the
use of new software. The training is for
pre-written software transferred
electronically and the customer has a
choice on whether to take the course.

A F C S a l e s a n d U s e U s e r M a n u a l | 48 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

24

528

Software/Computer TrainingMandatory-Downloaded

24

529

Software/Computer TrainingOptional-Load and Leave

24

530

Software/Computer TrainingMandatory-Load and Leave

24

531

Software/Computer TrainingOptional-Modified

24

532

Software/Computer TrainingMandatory-Modified

24

556

Software/Licensed Software-Physical
Transmission

24

558

Software/Report-Physical
Transmission

24

637

Software/Remote Access of Software

25

533

Timesharing/Timesharing - Off-Site
Use of CPU - General Rule

25

534

Timesharing/CPU Located out of State

25

559

Timesharing/Remote Information
Retrieval

25

647

Timesharing/Remote Information
Retrieval (Provider Data)

Charges for training the purchaser on the
use of new software. The training is for
pre-written software transferred
electronically and the customer does not
have a choice on whether to take the
course.
Charges for training the purchaser on the
use of new software. The training is for
pre-written software transferred by a
medium kept by the purchaser and the
customer has a choice on whether to
take the course.
Charges for training the purchaser on the
use of new software. The training is for
pre-written software transferred by a
medium kept by the purchaser and the
customer does not have a choice on
whether to take the course.
Charges for training the purchaser on the
use of new software. The training is for
modified software and the customer has
a choice on whether to take the course.
Charges for training the purchaser on the
use of new software. The training is for
modified software and the customer
does not have a choice on whether to
take the course.
An agreement for the use of software for
a specific period.
A report generated and provided to the
end user delivered on CD or paper.
A service that provides access and use of
software that remains in the possession
of the seller and is remotely accessed by
a customer. If data is manipulated by the
software, it is user created data.
Access to computer through a remote
terminal that allows computations.
Access to computer through a remote
terminal that allows computations.
Access to a computer through a remote
terminal that allows retrieval of stored
data created by the user.
Access to a computer through a remote
terminal that allows retrieval of stored
data created by the service provider.

A F C S a l e s a n d U s e U s e r M a n u a l | 49 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

27

106

Alcohol/General Rule

27

107

Alcohol/Beverage Above 7% Content
by Weight

27

108

Alcohol/Beverage Below 7% Content
by Weight

27

109

Alcohol/Mixed Beverage above 7%
Content By Weight

27

110

Alcohol/Mixed Beverage below 7%
Content By Weight

27

111

Alcohol/Non Mixed Served in
Restaurant Above 7%

27

112

Alcohol/Non Mixed Served in
Restaurant Below 7%

28

106

Beverages/General Rule

28

113

Beverages/Carbonated Beverages

28

114

28

115

28

116

28

117

28

118

28

119

28

120

28

121

28

122

28

123

Beverages/Sweetened Carbonated
Beverages
Beverages/Bottled Water
Beverages/Bottled Water Carbonated and/or Flavored
Beverages/Bottled Water-Carbonated
and/or Sweetened
Beverages/Soft Drinks
Beverages/Natural Fruit or Vegetable
Juices
Beverages/Natural Contents Between
0%-24%
Beverages/Natural Contents Between
25%-49%
Beverages/Natural Contents Between
50%-69%
Beverages/Natural Contents Between
70%-100%

A fermented drink or a packaged
beverage containing alcohol.
A fermented drink or a packaged
beverage containing alcohol with
alcoholic content above 7% by weight.
A fermented drink or a packaged
beverage containing alcohol with
alcoholic content below 7% by weight.
A beverage mixed with a beverage
containing alcohol with alcoholic content
by volume of 7% or more.
A beverage mixed with a beverage
containing alcohol with alcoholic content
by volume of 7% or less.
A fermented drink or a packaged
beverage containing alcohol with
alcoholic content above 7% by weight
served in a restaurant.
A fermented drink or a packaged
beverage containing alcohol with
alcoholic content below 7% by weight
served in a restaurant.
Covers all beverages not otherwise
specified in this transaction type/service
type.
Non-alcoholic beverage containing
carbonation.
Non-alcoholic beverage containing
carbonation and sweeteners.
Packaged beverage consisting of filtered.
Packaged water to which carbonation.
Packaged water to which carbonation.
A ready-to-use non-alcoholic packaged
drink that may or may not be
carbonated.
Fruit or vegetable juices.
Beverage containing between 0-24%
natural fruit or vegetable juice.
Beverage containing less than 25-49%
natural fruit or vegetable juice.
Beverage containing less than 50-69%
natural fruit or vegetable juice.
Beverage containing less than 70-100%
natural fruit or vegetable juice.

A F C S a l e s a n d U s e U s e r M a n u a l | 50 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

28

124

Beverages/Bottled Tea

28

125

Beverages/Coffee

29

106

Books/General Rule

29

126

Books/Religious

29

127

29

128

30

129

Clothing/Everyday

30

130

Clothing/Sporting Activities

30

131

Clothing/Sporting Equipment

30

132

Clothing/Protective

30

133

Clothing/Protective/Manufacturing

30

134

Clothing/Furs

30

135

Clothing/Uniforms

30

136

Clothing/Formal or Special Occasion
Wear

30

137

Clothing/Costumes

30

138

Clothing/Accessories

30

139

Clothing/Display Samples

30

140

Clothing/Cloth Diapers

30

141

Clothing/Clean Room

30

142

Clothing/Bathing Caps

30

143

Clothing/Belt Buckles

Books/Educational-Kindergarten
Through 12th Grade
Books/Educational-College & Trade
School

Beverage generally classified or explicitly
presented as tea on the package.
Beverage produced from the coffee bean
plant.
Books not covered by any other rule.
Books containing religious doctrine and
study guides for religious topics.
Books used specifically for students of
kindergarten through the 12th grade
Books used specifically for students of
college and trade school.
Clothing that is not specialized in use or
purpose.
Clothing specialized for sports that would
not ordinarily be worn in daily activity
not including items such as cleats and
sporting equipment.
Items not generally considered clothing
but is worn on the person for a sporting
activity.
Clothing designed to offer protection in a
hazardous environment or activity such
as work gloves.
Clothing designed to offer protection in a
hazardous environment or activity such
as work gloves.
Clothing which contains natural animal
hides.
Regulated and required clothing for an
organized event i.e. school dress code
Clothing worn to formal events.
Clothing of a decorative nature worn for
special events or holidays.
Decorative items such as jewelry
Clothing used to clothe various store
displays for promotional purposes. It may
be sold later.
Clothing made of cotton used as
undergarments.
Clothing specifically designed to assist
with a germ free environment in a clean
room.
Caps normally worn for shower or
bathing.
A buckle.

A F C S a l e s a n d U s e U s e r M a n u a l | 51 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

30

144

Clothing/Bowling Shoes

30

145

Clothing/Ski Boots

30

146

Clothing/Waders

30

147

Clothing/Shoe Laces

31

106

Drugs/General Rule

31

148

Drugs/Prescription - Legend

31

149

31

150

31

151

31

152

31

153

Drugs/Cough Drops

31

154

Drugs/Prescription - Insulin - Human
Use

31

155

Drugs/Nonprescription - Insulin Human Use

31

156

Drugs/Prescription - Insulin - Animal
Use

31

157

Drugs/Nonprescription - Insulin Animal Use

31

158

Drugs/Prescription - Oxygen-Human
Use

Drugs/Prescription - Over the
Counter-Human
Drugs/Nonprescription - Over the
Counter-Human
Drugs/Prescription - Over the
Counter-Animal
Drugs/Nonprescription - Over the
Counter-Animal

Shoes used for the sport of bowling and
normally only used for that purpose.
Boots or shoes used for skiing.
Hip long pants used to stand in a body of
water.
Laces purchased independently of the
shoes
Drugs not fitting any of the service types
listed below. Commonly referred to as
non-prescription drugs not sold over the
counter. Does not include drugs for
animal use.
Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional. Does
not include drugs for animal use.
Drugs
Drugs
Drugs
Drugs
Drugs commonly referred to as drops
used to treat a cold or cold symptoms.
Insulin dispensed by a licensed
pharmacist for human use based on a
prescription from a physician or health
professional for human use.
Insulin that may be purchased for human
use over-the-counter or without a
physician's prescription for human use.
Insulin dispensed by a licensed
pharmacist for animal use based on a
prescription from a physician or health
professional for animal use.
Insulin that may be purchased for animal
use over-the-counter or without a
physician's prescription for animal use.
Oxygen obtained from a licensed
pharmacist based on a prescription from
a physician or health professional for
human use.

A F C S a l e s a n d U s e U s e r M a n u a l | 52 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

31

159

Drugs/Nonprescription - OxygenMedicinal-Human Use

31

160

Drugs/Prescription - Oxygen-Animal
Use

31

161

Drugs/Nonprescription-OxygenMedicinal-Animal Use

31

162

Drugs/Enemas and Suppositories

31

163

Drugs/Prescription-Animal
Consumption

31

164

Drugs/Nonprescription-Animal
Consumption

31

165

Drugs/Non-Presc Sold to HospitalsHuman

31

166

Drugs/Presc Sold to Hospitals-Human

31

167

Drugs/Non-Presc Sold to HospitalsAnimals

31

168

Drugs/Presc Sold to Hospitals-Animals

31

169

Drugs/Taxable and Nontaxable
Bundled Together

31

170

Drugs/Free Sample-Human Use

31

171

Drugs/Free Sample- Presc-Human Use

31

172

Drugs/Free Sample-Animal Use

Oxygen that may be purchased over-thecounter or without a physician's
prescription for human use.
Oxygen obtained from a licensed
pharmacist based on a prescription from
a physician or health professional for
animal use.
Oxygen that may be purchased over-thecounter or without a physician's
prescription for animal use.
Drug meant for rectal insertion meant
for treatment of ailments in that area of
the body.
Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional for
animal use.
Drugs
Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional for
human use purchased for use in a
hospital.
Drugs
Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional for
animal use purchased for use in a
hospital.
Drugs
Drugs sold as a package consisting of
both taxable and non taxable drugs. The
drugs cannot be taxed separately.
Drugs
Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional for
human use given away for no cost.
Drugs

A F C S a l e s a n d U s e U s e r M a n u a l | 53 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

31

173

Drugs/Free Sample-Presc-Animal Use

32

106

Electronic Equipment & Computer
Hardware/General Rule

32

174

32

175

32

176

32

177

33

178

Fuel/Unleaded Fuel w/o Excise Tax

33

179

Fuel/Diesel Fuel w/o Excise Tax

33

180

Fuel/Gasohol w/o Excise Tax

33

181

Fuel/Fuel to Common Carriers w/o
Excise Tax

33

182

Fuel/Fuel-Passenger Common Carrier
w/o Excise Tax

33

183

Fuel/Unleaded Fuel w/Excise Tax

33

184

Fuel/Diesel Fuel w/Excise Tax

33

185

Fuel/Gasohol w/Excise Tax

33

186

Fuel/Fuel to Common Carriers
w/Excise Tax

33

187

Fuel/Fuel-Passenger Common Carrier
w/ Excise Tax

Electronic Equipment & Computer
Hardware/Monitors Less Than 4
Inches
Electronic Equipment & Computer
Hardware/Monitors Between 5-14
inches
Electronic Equipment & Computer
Hardware/Monitors Between Than
15-34 Inches
Electronic Equipment & Computer
Hardware/Monitors Greater Than 35
Inches

Drugs that when dispensed are required
to contain a label specifying the drug can
only be dispensed by a licensed
pharmacist based on a prescription from
a physician or health professional for
animal use given away for no cost.
Covers any electronic equipment or
computer hardware not otherwise
mentioned.
Monitors or Device and Monitors with a
viewing screen of less than 4 inches.
Monitors or Device and Monitors with a
viewing screen of between 5-14 inches.
Monitors or Device and Monitors with a
viewing screen of between 15-34 inches.
Monitors or Device and Monitors with a
viewing screen of greater than 35 inches.
Fuel used for motor vehicles that does
not contain lead w/o excise tax being
paid.
Fuel used for motor vehicles that is
classified as a diesel fuel w/o excise tax
being paid.
Fuel used for motor vehicles that
contains substances commonly known as
gasohol w/o excise tax being paid.
Fuel used for motor vehicles that is sold
to common carriers w/o excise tax paid.
Fuel used for motor vehicles that is sold
to common carriers who haul 10 or more
passengers w/o excise tax paid.
Fuel used for motor vehicles that does
not contain lead w/ excise tax being paid.
Fuel used for motor vehicles that is
classified as a diesel fuel w/ excise tax
being paid.
Fuel used for motor vehicles that
contains substances commonly known as
gasohol w/ excise tax being paid.
Fuel used for motor vehicles that is sold
to common carriers w/ excise tax paid.
Fuel used for motor vehicles that is sold
to common carriers who haul 10 or more
passengers w/ excise tax paid.

A F C S a l e s a n d U s e U s e r M a n u a l | 54 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

33

188

Fuel/Fuel For Off Road Purposes

33

189

Fuel/Jet Fuel

33

190

Fuel/Jet Fuel--Common Carriers

34

106

General Merchandise/General Rule

34

191

General Merchandise/Appliances

34

192

General Merchandise/Baby Oil

34

193

General Merchandise/US Flag

34

194

General Merchandise/Coins-Work of
Art-Pure Metal

34

195

General Merchandise/Coins-Foreign
Currency-Pure Metal

34

196

34

197

34

198

General Merchandise/Coins-Work of
Art-90% or Greater

34

199

General Merchandise/Coins-Foreign
Currency-90% or Greater

34

200

General Merchandise/CoinsCollectible-90% or Greater

34

201

General Merchandise/CoinsInvestment Purposes-90% or Greater

34

202

General Merchandise/Coins-Work of
Art-Between 80-90%

34

203

General Merchandise/Coins-Foreign
Currency-Between 80-90%

34

204

General Merchandise/CoinsCollectible-Between 80-90%

General Merchandise/CoinsCollectible-Pure Metal
General Merchandise/CoinsInvestment Purposes-Pure Metal

Fuel used for motor vehicle that are not
normally driven on the highway.
Fuel used for a machine or device relying
on jet propulsion.
Fuel used for a machine or device relying
on jet propulsion used for interstate
transport.
Any tangible personal property not
otherwise considered in any other
transaction type/service type.
Items generally considered to be white
goods.
Mineral Oil generally classified as baby
oil.
A piece of cloth of distinctive color and
designed as the official flag of the United
States.
Coins consisting of 100% pure bullion.
Sold expressly for the artistic value of the
medallion or coin.
Coins consisting of 100% pure bullion.
Sold expressly as foreign currency on the
exchange market.
Coins consisting of 100% pure bullion.
Sold expressly as a coin collectible.
Coins consisting of 100% pure bullion.
Sold expressly for investment purposes.
Coins consisting of 90% or greater bullion
but is not pure. Sold expressly for the
artistic value of the medallion or coin.
Coins consisting of 90% or greater bullion
but is not pure. Sold expressly as foreign
currency on the exchange market
Coins consisting of 90% or greater bullion
but is not pure. Sold expressly as a coin
collectible.
Coins consisting of 90% or greater bullion
but is not pure. Sold expressly for
investment purposes.
Coins consisting between 80-90%
bullion. Sold expressly for the artistic
value of the medallion or coin.
Coins consisting between 80-90%
bullion. Sold expressly as foreign
currency on the exchange market
Coins consisting between 80-90%
bullion. Sold expressly as a coin
collectible.

A F C S a l e s a n d U s e U s e r M a n u a l | 55 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

205

General Merchandise/CoinsInvestment Purposes-Between 8090%

34

206

General Merchandise/Coins-Work of
Art-Less Than 80%

34

207

General Merchandise/Coins-Foreign
Currency-Less Than 80%

34

208

34

209

34

210

General Merchandise/Uncancelled
Stamps-For Collectible Purposes

34

211

General Merchandise/Cancelled
Stamps

34

212

34

213

34

214

General Merchandise/Burial VaultsFor Human Remains

34

215

General Merchandise/Caskets-For All
Other Remains

34

216

General Merchandise/Burial VaultsFor All Other Remains

34

217

General
Merchandise/Headstone/Burial
Marker-w/o Installation

34

218

General
Merchandise/Headstone/Burial
Marker-w/ Installation

34

219

General Merchandise/Sanitary
Napkins or Tampons

34

220

General Merchandise/Other State
Flag

Coins consisting between 80-90%
bullion. Sold expressly for investment
purposes
Coins consisting less than 80% bullion.
Sold expressly for the artistic value of the
medallion or coin.
Coins consisting less than 80% bullion.
Sold expressly as foreign currency on the
exchange market.
Coins consisting less than 80% bullion.
Sold expressly as a coin collectible.
Coins consisting less than 80% bullion.
Sold expressly for investment purposes.
Stamps not otherwise used for postage
purposes sold for the express intention
of becoming a collectible for the
purchaser.
Stamps already used for postage
purposes that are resold for their
collectible value.
Stamps expressly used for the delivery of
the United States Mail.
Box or Urn used to hold the remains of a
departed human individual.
A vault used to hold and protect the
casket or urn from the elements. This
vault is designed exclusively for
containing human remains.
Box or Urn used to hold the remains of
any being other than a human.
A vault used to hold and protect the
casket or urn from the elements. The
vault's casket or urn does not contain
human remains.
A headstone or marker to be placed at
the burial site of the decedent. The
transaction did not include the actual
placement of the marker in the ground.
A headstone or marker to be placed at
the burial site of the decedent. The
transaction included the actual
placement of the marker in the ground.
Items used to absorb menstrual flow
during a menstrual cycle.
A piece of cloth of distinctive color and
designed as a flag of any state other than
the home based state where the
instance of tax occurs.

Trans Type

Svc Type

34

General Merchandise/CoinsCollectible-Less Than 80%
General Merchandise/CoinsInvestment Purposes-Less Than 80%

General Merchandise/Uncancelled
Stamps-For Postage Purposes
General Merchandise/Caskets-For
Human Remains

A F C S a l e s a n d U s e U s e r M a n u a l | 56 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

34

221

General Merchandise/Home State
Flag

34

222

General Merchandise/POW Flag

34

223

34

224

34

225

General Merchandise/Grooming and
Hygiene Products for Human Use
General Merchandise/Grooming and
Hygiene Products for Animal Use
General Merchandise/Toothpaste,
Toothbrush, Dental Floss

34

226

General Merchandise/Gaming CoinsMetal Content is Greater than 80%

34

227

General Merchandise/Gaming CoinsMetal Content is Less than 80%

34

228

General Merchandise/Marine
Equipment

34

229

General Merchandise/Charcoal

34

230

General Merchandise/Coupon Books

34

231

General Merchandise/Supplies and
Food for Seeing Eye Dog

34

232

General Merchandise/Non-Lead
Based Batteries

34

574

General Merchandise/Fixture

34

616

34

617

34

618

34

619

General Merchandise/Hurricane
Supplies
General Merchandise/School Supplies
General Merchandise/AppliancesEnergy Star
General Merchandise/Hunting
Supplies

A piece of cloth of distinctive color and
designed as the official flag of the home
based state where the instance of tax
occurs.
A piece of cloth of distinctive color and
designed as the official flag of the POW
movement.
Soaps and cleaning solutions.
Soaps and cleaning solutions.
Toothbrush
Coins consisting greater than 80%
bullion. Sold expressly for using in
gaming machines for the purposes of
gambling.
Coins consisting less than 80% bullion.
Sold expressly for using in gaming
machines for the purposes of gambling.
Equipment expressly used for the
purposes of use in or directly associated
with water.
A black porous material containing 85 to
98 percent carbon provided by the
destructive distillation of wood and used
as a fuel.
Books that have coupons enclosed to use
as discounts at various establishments.
Supplies and food used exclusively by a
seeing eye dog. This animal is used to aid
the visually impaired with normal life
functions.
Batteries
Tangible personal property that is
installed in real property and qualifies as
a fixture of the real property.
Supplies used for Hurricane
preparedness.
Supplies used for school.
Appliances rated as Energy Star for
efficiency.
Supplies for Hunting.

A F C S a l e s a n d U s e U s e r M a n u a l | 57 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

34

640

General Merchandise/
Restocking Fee

35

106

Groceries/General Rule

35

233

Groceries/Candy

35

234

Groceries/Chewing Gum

35

235

Groceries/Food Additives

35
35

236
237

35

238

35

239

Groceries/Confectionary Items
Groceries/Ice
Groceries/Dietary SupplementsQualify
Groceries/Dietary Supplements-Non
Qualify

35

621

Groceries/Bulk Items

36

240

Magazines/Retail - Published Monthly

36

241

Magazines/Retail - Published Annually

36

242

Magazines/Retail - Published SemiMonthly

36

243

Magazines/Retail - Published SemiAnnually

36

244

Magazines/Retail - Published
Quarterly

36

245

Magazines/Retail - Published Weekly

36

246

Magazines/Subscription-Monthly-US
Mail

Fee charged to reimburse the cost of
restocking a purchased item. The
returned item cannot be modified in any
way.
Items obtained from a grocery store that
may be comprised of items for human
consumption.
Items that do not require additional
preparation before consumption such as
sweets and confections and are generally
high in sugar content.
Chewing gum is a type of confectionery
which is designed to be chewed rather
than swallowed.
An additive meant to preserve food or
extend its shelf life.
Baked goods and items used in baking.
Ice for human consumption.
Preparations in liquid.
Preparations in liquid.
Multi-serving bakery items and single
serving bakery items in quantities of
three or more.
A publication with a soft cover and
indexed articles published monthly sold
at a newsstand.
A publication with a soft cover and
indexed articles published once a year
sold at a newsstand.
A publication with a soft cover and
indexed articles published twice per
month sold at a newsstand.
A publication with a soft cover and
indexed articles published twice per year
sold at a newsstand.
A publication with a soft cover and
indexed articles published every three
months sold at a newsstand.
A publication with a soft cover and
indexed articles published each week
sold at a newsstand.
A publication with a soft cover and
indexed articles published monthly
delivered by Second Class Mail or below.

A F C S a l e s a n d U s e U s e r M a n u a l | 58 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

36

247

Magazines/Subscription-AnnuallyDelivered by US Mail

36

248

Magazines/Subscription-SemiMonthly-Delivered by US Mail

36

249

Magazines/Subscription-SemiAnnually-Delivered by US Mail

36

250

Magazines/Subscription-QuarterlyDelivered by US Mail

36

251

Magazines/Subscription-WeeklyDelivered by US Mail

36

252

Magazines/Subscription-Monthly-Not
Delivered by US Mail

36

253

Magazines/Subscription-Annually-Not
Delivered by US Mail

36

254

Magazines/Subscription-SemiMonthly-Not Delivered by US Mail

36

255

Magazines/Subscription-SemiAnnually-Not Delivered by US Mail

36

256

Magazines/Subscription-QuarterlyNot Delivered by US Mail

36

257

Magazines/Subscription-Weekly-Not
Delivered by US Mail

A publication with a soft cover and
indexed articles published once a year
delivered by Second Class Mail or below.
A publication with a soft cover and
indexed articles published twice per
month delivered by Second Class Mail or
below.
A publication with a soft cover and
indexed articles published twice per year
delivered by Second Class Mail or below.
A publication with a soft cover and
indexed articles published every three
months delivered by Second Class Mail
or below.
A publication with a soft cover and
indexed articles published each week
delivered by Second Class Mail or below.
A publication with a soft cover and
indexed articles published monthly
delivered by means other than Second
Class Mail or below. This does not
include door to door delivery.
A publication with a soft cover and
indexed articles published once a year
delivered by means other than Second
Class Mail or below. This does not
include door to door delivery.
A publication with a soft cover and
indexed articles published twice per
month delivered by means other than
Second Class Mail or below. This does
not include door to door delivery.
A publication with a soft cover and
indexed articles published twice per year
delivered by means other than Second
Class Mail or below. This does not
include door to door delivery.
A publication with a soft cover and
indexed articles published every three
months delivered by means other than
Second Class Mail or below. This does
not include door to door delivery.
A publication with a soft cover and
indexed articles published each week
delivered by means other than Second
Class Mail or below. This does not
include door to door delivery.

A F C S a l e s a n d U s e U s e r M a n u a l | 59 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

36

258

Magazines/Subscription-MonthlyDoor to Door Delivery

36

259

Magazines/Subscription-AnnuallyDoor to Door Delivery

36

260

Magazines/Subscription-SemiMonthly-Door to Door Delivery

36

261

Magazines/Subscription-SemiAnnually-Door to Door Delivery

36

262

Magazines/Subscription-QuarterlyDoor to Door Delivery

36

263

Magazines/Subscription-Weekly-Door
to Door Delivery

36

361

Magazines/Digital Product – Retail

36

362

Magazines/Digital Product –
Subscription

37

264

Manufacturing/Equipment-Existing
Facilities

37

265

Manufacturing/Equipment-Economic
Expansion of Facilities

37

266

Manufacturing/Equipment-Physical
Expansion of Facilities

37

267

Manufacturing/Equipment-New
Facilities

A publication with a soft cover and
indexed articles published monthly
delivered by hand delivery.
A publication with a soft cover and
indexed articles published once a year
delivered by hand delivery.
A publication with a soft cover and
indexed articles published twice per
month delivered by hand delivery.
A publication with a soft cover and
indexed articles published twice per year
delivered by hand delivery.
A publication with a soft cover and
indexed articles published every three
months delivered by hand delivery.
A publication with a soft cover and
indexed articles published each week
delivered by hand delivery.
A magazine publication transveyed
electronically and sold online on a per
copy basis.
A magazine publication transveyed
electronically and sold online as part of a
subscription to the magazine.
Machinery and equipment used to
manufacture items that will ultimately be
sold at retail that are installed at an
existing plant or facility. This is usually a
like-kind replacement of existing
equipment.
Machinery and equipment used to
manufacture items that will ultimately be
sold at retail that are installed at an
existing plant or facility. The additional
equipment is used to increase output or
to produce a new product.
Machinery and equipment used to
manufacture items that will ultimately be
sold at retail that are installed due to an
enlargement of an existing plant or
facility.
Machinery and equipment used to
manufacture items that will ultimately be
sold at retail that are installed at a new
plant or facility.

A F C S a l e s a n d U s e U s e r M a n u a l | 60 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

37

268

Manufacturing/Repair parts-Existing
Facilities

37

269

Manufacturing/Repair Parts-Economic
Expansion

37

270

Manufacturing/Repair Parts-Physical
Expansion

37

271

Manufacturing/Repair Parts-New
Facilities

37

272

Manufacturing/Repair LaborSeparately Stated

37

273

Manufacturing/Repair Labor-Not
Separately Stated

37

274

Manufacturing/Installation LaborEquipment-Separately Stated

37

275

Manufacturing/Installation LaborEquipment-Not Separately Stated

37

276

Manufacturing/Automobile Specific Equipment-Separately Stated

Repair parts for machinery and
equipment used to manufacture items
that will ultimately be sold at retail that
are installed at an existing plant or
facility. The parts are used to maintain
existing equipment.
Repair or replacement parts acquired at
the time machinery and equipment used
to manufacture items that will ultimately
be sold at retail is purchased and
installed at an existing plant or facility.
The additional equipment is used to
increase output or to produce a new
product.
Repair or replacement parts acquired at
the time machinery and equipment used
to manufacture items that will ultimately
be sold at retail that is acquired and
installed due to an enlargement of an
existing plant or facility.
Repair or replacement parts acquired at
the time machinery and equipment used
to manufacture items that will ultimately
be sold at retail that are installed at a
new plant or facility.
Labor charge for the repair of
manufacturing machinery and
equipment that is listed as a separate
line item on the bill or invoice.
Labor charge for the repair of
manufacturing machinery and
equipment that is not listed separately
from the repair parts and supplies on the
bill or invoice.
Labor charge for the installation of
manufacturing machinery and
equipment that is listed as a separate
line item on the bill or invoice.
Labor charge for the installation of
manufacturing machinery and
equipment specific to automotive
manufacturing that is listed separately
from the repair parts and supplies on the
bill or invoice.
Machinery and equipment used to
manufacture automobiles that will
ultimately be sold at retail that are
installed at a new plant or facility.

A F C S a l e s a n d U s e U s e r M a n u a l | 61 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

37

277

Manufacturing/Outside Installation
Labor-Equip-Separately Stated

37

278

Manufacturing/Repair EquipmentSeparately Stated

37

279

Manufacturing/Replacement
Equipment-Separately Stated

37

280

Manufacturing/Clean room
Equipment

37

281

Manufacturing/Environmental
Control Equip

37

282

Manufacturing/Safety Equip

37

283

Manufacturing/Packing & Shipping
Equip

37

284

Manufacturing/Intraplant Equip

37

285

Manufacturing/Hand Tools

37

286

Manufacturing/Warehouse
Equipment

38

287

Medical Durable Equipment/Not
Home Use-Without A Prescription

38

288

Medical Durable Equipment/Not
Home Use-With A Prescription

38

289

Medical Durable Equipment/Not
Home Use-Paid For By Medicare

Labor charge for the installation of
manufacturing machinery and
equipment by a third party that is listed
as a separate line item on the bill or
invoice.
Equipment used to repair manufacturing
machinery and equipment.
Equipment used to replace machinery
and equipment used to manufacture
items that will ultimately be sold at retail
that are installed at an existing plant or
facility.
Machinery and equipment used to
manufacture items that will ultimately be
sold at retail that is installed in a clean
room environment.
Machinery and equipment used to
control environmental harm done by the
manufacturing process.
Machinery and equipment used to
enhance the safety of the plant workers
encountered by the manufacturing
process.
Machinery and equipment used to
package the finished manufactured
product.
Machinery and equipment used to take
materials from various points in the
plant.
Tools operated by hand used in the
manufacturer of products.
Equipment used in the storage of items
to be withdrawn later for sale.
Medical Equipment that can withstand
repeated use and is sold without a
prescription. The equipment is not for
use in the home by the patient.
Medical Equipment that can withstand
repeated use and is sold with a
prescription. The equipment is not for
use in the home by the patient.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is not for use in the
home by the patient. The equipment is
paid for directly but Medicare.

A F C S a l e s a n d U s e U s e r M a n u a l | 62 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

38

290

Medical Durable Equipment/Not
Home Use-Reimbursed By Medicare

38

291

Medical Durable Equipment/Not
Home Use-Paid For By Medicaid

38

292

Medical Durable Equipment/Not
Home Use-Reimbursed By Medicaid

38

293

Medical Durable Equipment/Home
Use-Without A Prescription

38

294

Medical Durable Equipment/Home
Use-With A Prescription

38

295

Medical Durable Equipment/Home
Use-Paid For By Medicare

38

296

Medical Durable Equipment/Home
Use-Reimbursed By Medicare

38

297

Medical Durable Equipment/Home
Use-Paid For By Medicaid

Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is not for use in the
home by the patient. The price of the
equipment is reimbursed to the
purchaser but Medicare.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is not for use in the
home by the patient. The equipment is
paid for directly but Medicaid.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is not for use in the
home by the patient. The price of the
equipment is reimbursed to the
purchaser but Medicaid.
Medical Equipment that can withstand
repeated use and is sold without a
prescription. The equipment is for use in
the home by the patient.
Medical Equipment that can withstand
repeated use and is sold with a
prescription. The equipment is for use in
the home by the patient.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is for use in the home by
the patient. The equipment is paid for
directly by Medicare.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is for use in the home by
the patient. The price of the equipment
is reimbursed to the purchaser by
Medicare.
Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is for use in the home by
the patient. The equipment is paid for
directly by Medicaid.

A F C S a l e s a n d U s e U s e r M a n u a l | 63 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

38

298

Medical-DurableEquipment-Home
Use-Reimbursed By Medicaid

39

299

Medical Mobility Enhancing
Equipment/Equip Without a
Prescription

39

300

Medical Mobility Enhancing
Equipment/Equip With a Prescription

39

301

Medical Mobility Enhancing
Equipment/Equip Paid for by
Medicare

39

302

Medical Mobility Enhancing
Equipment/Equip Reimbursed by
Medicare

39

303

Medical Mobility Enhancing
Equipment/Equip Paid for by
Medicaid

39

304

Medical Mobility Enhancing
Equipment/Equip Reimbursed by
Medicaid

40

305

40

306

40

307

40

308

40

309

Medical Prosthetic Devices/GeneralWithout a Prescription
Medical Prosthetic Devices/GeneralWith a Prescription
Medical Prosthetic Devices/GeneralPaid for by Medicare
Medical Prosthetic Devices/GeneralReimbursed by Medicare
Medical Prosthetic Devices/GeneralPaid for by Medicaid

Medical Equipment that can withstand
repeated use and is sold without a
prescription but is medically necessary.
The equipment is for use in the home by
the patient. The price of the equipment
is reimbursed to the purchaser by
Medicaid.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used without a prescription
but is medically necessary.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used with a prescription.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used without a prescription
but is medically necessary. The
equipment is paid for directly by
Medicare to the vendor.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used without a prescription
but is medically necessary. The
equipment price is reimbursed to the
user by Medicare for the purchase.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used without a prescription
but is medically necessary. The
equipment is paid for directly by
Medicaid to the vendor.
Equipment used to enhance the mobility
of the patient using the device. The
equipment is used without a prescription
but is medically necessary. The
equipment price is reimbursed to the
user by Medicaid for the purchase.
A device to replace.
A device to replace.
A device to replace.
A device to replace.
A device to replace.

A F C S a l e s a n d U s e U s e r M a n u a l | 64 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

40

310

40

311

40

312

40

313

40

314

40

315

40

316

40

317

Medical Prosthetic Devices/Contact
Lenses-Without a prescription

40

318

Medical Prosthetic Devices/Contact
Lenses-With a prescription

40

319

Medical Prosthetic Devices/Contact
Lenses-Paid for by Medicare

40

320

Medical Prosthetic Devices/Contact
Lenses-Reimbursed by Medicare

40

321

Medical Prosthetic Devices/Contact
Lenses-Paid for by Medicaid

40

322

Medical Prosthetic Devices/Contact
Lenses-Reimbursed by Medicaid

40

323

Medical Prosthetic Devices/Hearing
Aids-Without a Prescription

40

324

Medical Prosthetic Devices/Hearing
Aids-With a Prescription

40

325

Medical Prosthetic Devices/Hearing
Aids-Paid for by Medicare

Medical Prosthetic Devices/GeneralReimbursed by Medicaid
Medical Prosthetic Devices/Corrective
Eyeglasses-Without a Prescription
Medical Prosthetic Devices/Corrective
Eyeglasses-With a Prescription
Medical Prosthetic Devices/Corrective
Eyeglasses-Paid for by Medicare
Medical Prosthetic Devices/Corrective
Eyeglasses-Reimbursed by Medicare
Medical Prosthetic Devices/Corrective
Eyeglasses-Paid for by Medicaid
Medical Prosthetic Devices/Corrective
Eyeglasses-Reimbursed by Medicaid

A device to replace.
Corrective eyeglasses.
Corrective eyeglasses.
Corrective eyeglasses.
Corrective eyeglasses.
Corrective eyeglasses.
Corrective eyeglasses.
Contact lenses that enhance ones vision.
Purchased without a prescription but is
medically necessary.
Contact lenses that enhance ones vision.
Purchased with a prescription.
Contact lenses that enhance ones vision.
Purchased without a prescription but is
medically necessary. Item is directly paid
by Medicare.
Contact lenses that enhance ones vision.
Purchased without a prescription but is
medically necessary. Patient is
reimbursed by Medicare for the cost of
the item.
Contact lenses that enhance ones vision.
Purchased without a prescription but is
medically necessary. Item is directly paid
by Medicaid.
Contact lenses that enhance ones vision.
Purchased without a prescription but is
medically necessary. Patient is
reimbursed by Medicaid for the cost of
the item.
Aids that enhance one’s ability to
decipher sound. Purchased without a
prescription but is medically necessary.
Aids that enhance one’s ability to
decipher sound. Purchased with a
prescription.
Aids that enhance one’s ability to
decipher sound. Purchased without a
prescription but is medically necessary.
Item is directly paid by Medicare.

A F C S a l e s a n d U s e U s e r M a n u a l | 65 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

40

326

Medical Prosthetic Devices/Hearing
Aids-Reimbursed by Medicare

40

327

Medical Prosthetic Devices/Hearing
Aids-Paid for by Medicaid

40

328

Medical Prosthetic Devices/Hearing
Aids-Reimbursed by Medicaid

40

329

40

330

40

331

40

332

40

333

40

334

41

106

Motor Vehicles/General Rule

41

335

Motor Vehicles/Low Emission Vehicle
exceeding 10,000 lbs

41

336

41

337

41

338

41

339

Motor Vehicles/Sale to Non-Residents

41

340

Motor Vehicles/Trucks - General Rule

41

341

Motor Vehicles/Used in Interstate
Commerce

Medical Prosthetic Devices/Dental
Prosthesis-Without a prescription
Medical Prosthetic Devices/Dental
Prosthesis-With a prescription
Medical Prosthetic Devices/Dental
Prosthesis-Paid for by Medicare
Medical Prosthetic Devices/Dental
Prosthesis-Reimbursed by Medicare
Medical Prosthetic Devices/Dental
Prosthesis-Paid for by Medicaid
Medical Prosthetic Devices/Dental
Prosthesis-Reimbursed by Medicaid

Motor Vehicles/Vehicles sold to
Native Americans
Motor Vehicles/Motor Vehicles using
Alternative Fuels
Motor Vehicles/Low Speed Electrical
Vehicles

Aids that enhance one’s ability to
decipher sound. Purchased without a
prescription but is medically necessary.
Patient is reimbursed by Medicare for
the cost of the item.
Aids that enhance one’s ability to
decipher sound. Purchased without a
prescription but is medically necessary.
Item is directly paid by Medicaid.
Aids that enhance one’s ability to
decipher sound. Purchased without a
prescription but is medically necessary.
Patient is reimbursed by Medicaid for the
cost of the item.
A dental device to replace.
A dental device to replace.
A dental device to replace.
A dental device to replace.
A dental device to replace.
A dental device to replace.
Motorized vehicles used to transport
people or product on roadways.
Motorized vehicles used to transport
people or product on roadways,
waterways, railways or airspace. Vehicles
are over 10,000 lbs and exceed EPA low
emission standard.
Motorized vehicles used to transport
people or product on roadways.
Motorized vehicles used to transport
people or product on roadways.
Motor vehicles not designed for highway
use that cannot exceed 35 MPH.
Motorized vehicles used to transport
people or product on roadways
Motorized vehicles used to transport
product on roadways. Can be a single
chassis or a tractor/trailer rig.
Vehicles used to transport people or
product to more than one state.

A F C S a l e s a n d U s e U s e r M a n u a l | 66 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

41

342

Motor Vehicles/Trailer 13-16.5 TonsInterstate Commerce

41

343

Motor Vehicles/Tractor Exceeds 16.5
Tons-Interstate Commerce

41

344

Motor Vehicles/Used as a Contact
Carrier

41

345

Motor Vehicles/Trailer Exceeds 13
Tons-Contract Carrier

41

346

Motor Vehicles/Tractor Exceeds 16.5
Tons-Contract Carrier

41

347

Motor Vehicles/Motor Boats

41

348

Motor Vehicles/Aircraft

41

349

Motor Vehicles/Aircraft for Interstate
Transport

41

350

41

351

41

352

Motor Vehicles/Motorcycles

41

353

Motor Vehicles/Mopeds

41

354

Motor Vehicles/Off-Road Vehicles

41

355

Motor Vehicles/Snowmobiles

41

356

Motor Vehicles/Motor Oil

41

357

Motor Vehicles/Antifreeze

41

358

Motor Vehicles/Boat Motor

42

359

Newspaper/Retail

Motor Vehicles/Batteries Less than 12
Volts--Lead Based
Motor Vehicles/Batteries Greater
than 12 Volts--Lead Based

A motor vehicle whose laden gross
vehicle weight is between 13 and 16.5
tons and is used to transport people or
product to more than one state.
A motor vehicle whose laden gross
vehicle weight exceeds 16.5 tons and is
used to transport people or product to
more than one state.
A motor vehicle that is used to transport
product for the general public (common
carrier) or only for specific entities
(contract carrier) and is not classified for
interstate commerce.
A motor vehicle whose laden gross
vehicle weight is between 13 and 16.5
tons. Does not cover those classified as
common carriers.
A motor vehicle whose laden gross
vehicle weight exceeds 16.5 tons. Does
not cover those classified as common
carriers.
A boat propelled by an internal
combustion engine.
A machine or device capable of
atmospheric flight.
A machine or device capable of
atmospheric flight used for interstate
transport.
Batteries with 12 volts or less of
electrical output.
Batteries with 12 volts or greater of
electrical output.
A two-wheeled motorized vehicle
classified as a motorcycle.
A two-wheeled motorized vehicle
classified as a moped.
Motor vehicles not designed are
intended for driving on the highway.
A motor vehicle with ski runners used to
navigate in the snow.
Oil meant to lubricate the moving parts
of a motor.
A substance mixed with another liquid to
lower that liquids freezing point.
A motor used by a boat propelled by an
internal combustion engine.
A newsprint publication sold at a
newsstand.

A F C S a l e s a n d U s e U s e r M a n u a l | 67 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

42

360

Newspaper/CD ROM Microfiche

42

361

Newspaper/Digital Product - Retail

42

362

Newspaper/Digital Product Subscription

42

363

Newspaper/Subscription Mail

42

364

Newspaper/Subscription Delivery

43

106

Prepared Food/General Rule

43

365

Prepared Food/Food sold by a Food
Manufacturer

43

366

Prepared Food/Food sold in an
unheated state

43

367

Prepared Food/Bakery items

43

368

Prepared Food/Employee Meals--Full
Price

43

369

Prepared Food-Employee Meals-Reduced Price

43

370

Prepared Food/Employee Meals--Free
to Employees

43
43

371
372

Prepared Food/Tips - Voluntary
Prepared Food/Tips - Mandatory

43

373

Prepared Food/Non-Tip Based Service
Charge

43

620

Prepared Food/Take and Bake Pizza

44

106

Rentals & Leasing/General Rule

A newsprint publication sold as
microfiche or CD ROM generally for
reference purposes.
A newsprint publication transveyed
electronically and sold online on a per
copy basis.
A newsprint publication transveyed
electronically and sold online as part of a
subscription to the newspaper.
A newsprint publication physically
delivered to the subscriber by second
class or lower mail.
A newsprint publication physically
delivered to the subscriber not by second
class or lower mail.
Food and drink ready for consumption
without further preparation.
Food Sold by a seller whose proper
primary NAICS classification is
manufacturing in sector 311.
Food for on-site consumption that was
presented in an unheated state.
Items commonly referred to as
confectionary items that are sold for the
purposes of on-site consumption.
Meals furnished for employees by their
employer. Meals are priced at retail
Meals furnished for employees by their
employer. Meals are priced below retail
or at cost.
Meals furnished for employees by their
employer. Meals are provided free of
charge. Tax measure if needed would be
cost
Voluntary
Mandatory
Charge imposed by the restaurant
beyond the remuneration to either the
wait staff directly or the payment for
food provided.
Pizza that is not fully baked by the
restaurant, but is instead packaged and
must be fully baked by the customer
outside the Restaurant.
Items rented from a vendor not
otherwise mentioned.

A F C S a l e s a n d U s e U s e r M a n u a l | 68 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

44

374

Rentals & Leasing/Uniform Rental
Service

44

375

Rentals & Leasing/Automotive Rental-30 Days or Less

44

376

Rentals & Leasing/Automotive Rental-30-180 Days

44

377

Rentals & Leasing/Automotive Rental-180 Days to 1 Year

44

378

Rentals & Leasing/Automotive Rental-1 Year or Greater

44

379

Rentals & Leasing/Automotive Rental0-30 Days-Tax Paid

44

380

Rentals & Leasing/Automotive Rental31-180 Days-Tax Paid

44

381

Rentals & Leasing/Automotive Rental180 Days-1 Year-Tax Paid

44

382

Rentals & Leasing/Automotive RentalGreater than 1 Year-Tax Paid

44

383

Rentals & Leasing/Lease of
Automobile to be registered by lessee

44

384

Rentals & Leasing/Amusement
Related Property

44

385

Rentals & Leasing/Rentals Incidental
to Service

44

386

Rentals & Leasing/Movie Rentals-Private Use--Physical Medium

44

387

44

388

44

389

Rentals & Leasing/Movie Rentals-Private Use--Digital Download
Rentals & Leasing/Movie Rentals--As
part of exhibition to public
Rentals & Leasing/Movie Rentals--To
a Television Station

The rental of commercial uniforms.
Uniforms are generally cleaned by the
linen service and reused.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
30 days or less.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
30 to 180 days.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
180 days to 1 year.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for 1
year or greater.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
30 days or less. Tax is paid at the
purchase of the asset.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
30 to 180 days. Tax is paid at the
purchase of the asset.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for
180 days to 1 year. Tax is paid at the
purchase of the asset.
Rental of an automotive vehicle to use as
a motor vehicle. The rental period is for 1
year or greater. Tax is paid at the
purchase of the asset.
Lease of an automobile to someone who
will register the car as if they own it.
Items rented from a vendor meant to be
used along with a service meant for the
amusement of the vendee
Items that form only a minor part in the
performance of the overall service being
sold.
Movies rented for private viewing
transveyed by DVD or other physical
means.
Movies rented for private viewing
transveyed by electronic means
Movies rented to movie theatres and the
like for exhibition to the public for a fee.
Movies rented to television stations and
networks for exhibition to the public.

A F C S a l e s a n d U s e U s e r M a n u a l | 69 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

45

390

45

391

45

392

45

393

45

394

45

395

NAME

DESCRIPTION

Services Cleaning/Dry CleaningClothing
Services Cleaning/Dry Cleaning-Non
Clothing
Services Cleaning/Cleaning Services
Services Cleaning/Laundry & Clothing
Care-Other Items
Services Cleaning/Laundry & Clothing
Care-Cloth Diapers
Services Cleaning/Laundry & Clothing
Care-Coin Operated

45

396

Services Cleaning/Rug Cleaning off
customer premises

45

397

Services Cleaning/Rug Cleaning on
customer premises

45

398

45

399

45

400

45

401

45

571

46

402

46

403

46

404

46

405

46

406

46

407

46

408

46

409

47

410

Services Cleaning/Washing Motor
Vehicles
Services Cleaning/Washing Motor
Vehicles-Coin Operated Device
Services Cleaning/Solid Waste
Disposal
Services Cleaning/Swimming Pool
Services
Services-Cleaning - Recycling
Services Lodging/Hotel Rooms Less
than 28 Days
Services Lodging/Hotel Rooms 28-29
Days
Services Lodging/Hotel Rooms 30-31
Days
Services Lodging/Hotel Rooms 32-60
Days
Services Lodging/Hotel Rooms 61-90
Days
Services Lodging/Hotel Rooms-91-120
Days
Services Lodging/Hotel Rooms 121180 Days
Services Lodging/Hotel Rooms
Greater than 180 Days
Services Printing/Photography
Services-Labor Only

The cleansing of clothing by means of a
nonaqueous substance.
The cleansing of non clothing items by
means of a nonaqueous substance.
A fee paid for the service of cleaning a
dwelling.
The washing
The washing
The washing
Covering the off-site cleaning of rugs that
are not affixed to real property. The
service must not include any other type
of cleaning.
Covering the on-site cleaning of rugs that
are not affixed to real property. The
service must not include any other type
of cleaning.
The washing
The washing
A charge for the disposal of refuge.
Charges for cleaning
Charges for recycling
A charge for lodging not to exceed 28
days.
A charge for lodging to cover a stay
between 28 and 30 consecutive days.
A charge for lodging to cover a stay
between 30 and 31 consecutive days.
A charge for lodging to cover a stay
between 31 and 60 consecutive days.
A charge for lodging to cover a stay
between 60 and 90 consecutive days.
A charge for lodging to cover a stay
between 90 and 120 consecutive days.
A charge for lodging to cover a stay
between 120 and 180 consecutive days.
A charge for lodging to cover a stay
greater than 180 consecutive days.
A fee for photography.

A F C S a l e s a n d U s e U s e r M a n u a l | 70 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

47

411

Services Printing/Photography
Services-Labor with pictures

47

412

Services Printing/Negative to
Standard Sized Pictures-Labor Only

47

413

Services Printing/Negative to
Enlargement Sized Pictures-Labor
Only

47

414

Services Printing/Printing Services

47

415

Services Printing/Copying Services

48

416

Services Professional/Credit Card
Processing Fee-Part of Sale

48

417

Services Professional/Credit Card
Processing Fee-Separate Sale

48

418

Services Professional/Professional
Services

48

419

Services Professional/Investigative
Services

48

420

Services Professional/Protection &
Security Services

48

421

Services Professional/Pest Control

48

422

48

423

48

424

48

425

48

426

Services Professional/Interior Design
Services
Services Professional/Skin Alteration
& Care
Services Professional/Manicure &
Pedicure
Services Professional/Funeral Services

Services Professional/Cosmetic
Medical Procedures

A fee for photography.
Labor to develop standard sized pictures
from negatives. The negatives are
provided by the customer.
Labor to enlarge pictures from negatives.
The negatives are provided by the
customer.
Charges for printing or imprinting items
unto tangible personal property provided
directly or indirectly by the customer.
Charges for duplicating customer
provided materials to another document.
A fee charged by the vendor to recover
credit card processing cost. The fee is
charged as part of the sale.
A fee charged by the vendor to recover
credit card processing cost. The fee is
charged as a separate sale.
A service rendered for a fee in one of the
learned professions. This is a default
classification and meant to cover any fee
not covered in another service type.
A fee paid for the service of tracking or
closely examining another individual.
A fee paid for the service of protecting or
securing real or tangible personal
property.
A fee paid for the service of eradicating
insects or other animals classified as
pests in a dwelling.
A fee paid for consulting on changing the
interior appearance of a building.
A fee paid for the process of altering or
maintaining the skin of a human
A fee paid for cleaning.
Fees
A service rendered for a fee in one of the
learned professions. This classification
covers any procedure involving exterior
non-life threatening external procedures
mainly done to enhance a person's
appearance.

A F C S a l e s a n d U s e U s e r M a n u a l | 71 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

48

427

Services Professional/Professional
Medical Services

48

428

Services Professional/Title

48

429

Services Professional/Dating Service

48

430

Services Professional/Escrow

48

431

Services Professional/Massages

48

432

Services Professional/Gift Wrapping

48

433

Services Professional/Floral Services

48

434

Services Professional/Advertising

48

435

Services Professional/Credit and
Reporting Services

48

436

48

437

48

438

48

439

Services Professional/Background
Music Services

48

440

Services Professional/Locksmith
Services

48

441

Services Professional/Lobbying

48

442

48

443

Services Professional/Personnel
Services
Services Professional/Lettering
Services
Services Professional/Collection
Services

Services Professional/Flight
Instruction
Services Professional/Investment
Counseling

A service rendered for a fee in one of the
learned professions. This classification
covers any medical procedure not
otherwise covered as a cosmetic medical
procedure.
A fee charged to register ownership of
real property.
A service used to facilitate potential
personal relationships.
A deposit rendered in good faith to
ensure future business transactions.
Manipulation of tissues with the hand or
an instrument for therapeutic purposes.
The process of wrapping tangible
personal property in order to further
conceal its true nature.
Non-Delivery type services covering the
arrangement and consultation
concerning floral arrangements and
bouquets. This does not cover the floral
items themselves.
Fees paid for the services used generally
to advertise a company's message in
printed form.
Fees paid for the right to obtain and use
results from the credit history of
individuals and businesses.
A service used to facilitate the match of a
employer with a suitable employee.
Fees paid to attach to signage or a
permanent surface letters.
A service used to help recover back debts
due to the collector.
Services that provide music for a fee to
various businesses to create further
ambiance.
Any lock or key related service.
Services that help facilitate further
relationships between their customers
and government officials.
Any service covering the instruction on
how to fly an airplane.
Services that assist customers in their
financial and investment decisions.

A F C S a l e s a n d U s e U s e r M a n u a l | 72 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

48

444

Services Professional/Service Chg.
Financial Institution

48

445

Services Professional/Tow Service

48

446

Services Professional/Taxidermy

48

447

Services Professional/Telephone
Answering Service

48

448

Services Professional/Limousine
Service

48

449

Services Professional/Architecture

48

450

Services Professional/Tanning
Services

48

451

48

452

48

453

Services Professional/Engraving

48

454

Services Professional/House Moving

48

455

Services Professional/Counseling

48

456

48

457

48

557

Services-Professional/Information
Systems Services

48

458

Services Professional/Sale of
Insurance

49

459

Services Recreation/Sporting Event
with Food or Property

Services Professional/Pet Grooming-Not done in medical setting
Services Professional/Pet Grooming-Done in Medical Setting

Services Professional/Day Care
Services
Services Professional/Investment
Commissions

Fees charged by banks to their
customers for services performed by the
bank. These fees are generally bank
account and ATM charges.
Service that removes a motor vehicle and
relocates that vehicle to another site.
A fee charged to prepare.
Fee charged to answer phones and take
messages on behalf of an individual or
business.
Rental of a driver and automobile used at
the discretion of the customer with the
driver retaining the control of the
physical asset.
A service rendered for a fee in the
learned profession of architecture.
Generally this service is used for
designing and conceptualizing a future
building or expanse.
Services used to enhance the physical
appearance of an individual through
exposure to artificial light.
Services covering the cleansing
Services covering the cleansing
Fees paid to etch letters or numbers into
tangible personal property.
Labor used to physically move a building
intended to become real property from
one location to another.
Fee charged for professional mental
health counseling.
Fee charged for taking care of individuals
during the day.
Commissions earned for assisting with
direct investment decisions.
Charge for the manipulation of user’s
data. This is not to be confused with the
transmission of data.
Premiums for insuring individuals for a
specified purpose.
An event generally classified as involving
sports with food or property sold on the
premises. This does not include boxing

A F C S a l e s a n d U s e U s e r M a n u a l | 73 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

49

460

Services Recreation/Sporting Event
without Food or Property

49

461

Services Recreation/Amusement Park
Entry with Food or Property

49

462

Services Recreation/Amusement Park
Entry without Food or Property

49

463

Services Recreation/Other
Amusement Entry with Food or
Property

49

464

Services Recreation/Other
Amusement Entry without Food or
Property

49

465

Services Recreation/Admission to
Boxing and Wrestling

49

466

Services Recreation/Admission to
Horse Racing

49

467

49

468

49

469

49

470

49

471

49

472

50

473

50

474

Services Repair/Repair and Labor
Combined

50

475

Services Repair/Parts used in Clothing
or Shoes

Services Recreation/Admission to a
Motion Picture
Services Recreation/Tours for 8-25
people
Services Recreation/Tours for more
than 25 people
Services Recreation/Tours for 8-25
people--Commissions
Services Recreation/Tours for more
than 25 people--Commissions
Services Recreation/Sport -Fitness &
Recreation Club
Services Repair/Repair Parts - General
Rule

An event generally classified as involving
sports without food sold on the
premises. This does not include boxing
Generally a place with rides and games
of chance with food or property sold on
the premises
Generally a place with rides and games
of chance without food or property sold
on the premises
Amusement Events that do not fit the
definition of either a sporting event or an
amusement park. There is food and/or
property sold on the premises. This does
not include a fee for admittance to a
motion picture.
Amusement Events that do not fit the
definition of either a sporting event or an
amusement park. There is not food
and/or property sold on the premises.
This does not include a fee for
admittance to a motion picture.
A fee for an event generally considered
to contain boxing and/or wrestling
matches sanctioned by the state athletic
commission.
A fee for an event generally considered
to contain horse races sanctioned by the
state athletic commission.
A fee for admission to view a motion
picture.
A fee.
A fee.
A sales commission for selling a tour of
no less than 8 but no more than 25
people.
A sales commission for selling a tour for
more than 25 people.
Fitness & Recreation Club
Parts used to regain the function of or
extend the operational life of an item.
Transaction combining labor and parts
used to regain the function of or extend
the operational life of an item.
Items used to repair clothing or shoes.

A F C S a l e s a n d U s e U s e r M a n u a l | 74 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

50

476

50

477

50

478

50

479

50

480

50

481

50

482

50

483

50

484

50

485

50

486

50

487

Services Repair/Repair of Commercial
Jet Aircraft

50

488

Services Repair/Jewelry Repair

51

489

Services Storage/Storage

51

490

Services Storage/Parking

52

106

Tires/General Rule

53

106

Tobacco/General Rule

53

535

Tobacco/Cigarettes

54

536

Tooling/Useful Life Between 12
Months and 3 years

54

537

Tooling-Useful Life Between 6-12
/Months

Services Repair/Parts used in repair of
Commercial Airplanes
Services Repair/Extended Warranty Repair Parts Used
Services Repair/Extended Warranty Service Repairs Used
Services Repair/Repair Labor General Rule
Services Repair/Repairs of Clothing
Services Repair/Repair of Railroad
Rolling Stock and Engines
Services Repair/Repair of Motor
Vehicle
Services Repair/Shoe Repair and
Cleaning
Services Repair/Automotive Painting
Services Repair/Landscaping & Lawn
Care
Services Repair/Snow Removal

Parts used to regain the function of or
extend the operational life of an
airplane.
Repair parts provided under an extended
warranty.
Repair services provided under an
extended warranty.
Labor used to regain the function of or
extend the operational life of an item.
Labor used in repairing clothing.
Repair of railcars and locomotive
engines.
Repair of motorized vehicles used to
transport people or product on roadways
Cleaning and/or repair of items normally
worn on the feet of the user.
Administering paint unto a motor vehicle
classified as an automobile.
A fee paid for the alteration or
maintenance of any plants.
Labor to remove snow from property.
Labor used to regain the function of or
extend the operational life of an
airplane.
Labor used to repair jewelry.
A charge for storing tangible personal
property.
Charge for the service of providing
parking or storage of automobiles.
To account for pneumatic devices
commonly known as tires.
Products made from tobacco leaves and
processed for uses other than cigarettes.
A slender roll of cut tobacco meant to be
smoked. Classified generally as cigarettes
as packaged.
Machining tools with a useful life
between twelve months and three years
that are used on equipment. Examples
are cutting bits and dies.
Machining tools with a useful life of six to
twelve months that are used on
equipment. Examples are cutting bits
and dies.

A F C S a l e s a n d U s e U s e r M a n u a l | 75 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER
Trans Type

Svc Type

NAME

DESCRIPTION

54

538

Tooling/Useful Life Exceeds 3 years

54

539

Tooling/Useful Life Less Than 6
Months

55

106

Vending/General Rule

55

237

Vending/Ice

55

540

55

541

55

542

55

543

55

544

55

545

55

546

55

547

55

548

55

549

55
55

550
551

56

552

56

553

Information Services/Public-Electronic
Transmission

56

554

Information Services/Private-Physical
Transmission

56

555

Information Services/PrivateElectronic Transmission

56

645

Information Services/Public-Elec Trans
(Financial & Securities)

Vending/Candy Sold For $0.76 or
More
Vending/Candy Sold For $0.50 or Less
Vending/Candy Between $0.51 and
$0.75
Vending/Chewing Gum Sold For $0.76
or More
Vending/Chewing Gum Sold For $0.50
or Less
Vending/Chewing Gum Between
$0.51 and $0.75
Vending/Hot Prepared Food
Vending/Carbonated Beverages For
$0.76 or More
Vending/Carbonated Beverages For
$0.51 to $0.75
Vending/Carbonated Beverages For
$0.50 or Less
Vending/Non-Carbonated Beverages
Vending/Hot Beverages
Information Services/Public-Physical
Transmission

Machining tools with a useful life of
three years or more that are used on
equipment. Examples are cutting bits
and dies.
Machining tools with a useful life of less
than six months that are used on
equipment. Examples are cutting bits
and dies.
A machine that is operated by coin.
Ice for human consumption sold from a
vending machine.
Items including chocolate.
Items including chocolate.
Items including chocolate.
Chewing gum selling for $0.76 or more.
Chewing gum selling for $0.50 or less.
Chewing gum selling between $.51 and
$.75.
A machine that is operated by coin.
A machine that is operated by coin.
A machine that is operated by coin.
A machine that is operated by coin.
A machine that is operated by coin.
A machine that is operated by coin.
Information Services that is public and
making a physical transmission.
A service providing the passive receipt of
information other than financial account
or securities trading data to the public by
electronic means.
Information Services that is private and
making a physical transmission.
Information Services that is private and
making an electronic transmission.
A service providing the passive receipt of
financial account or securities
information to the public by electronic
means.

A F C S a l e s a n d U s e U s e r M a n u a l | 76 of 329
Copyright  2018 Avalara, Inc.

Table 4-18 Transaction and Service Types
IDENTIFIER

NAME

DESCRIPTION

Trans Type

Svc Type

57

560

Digital Goods/Download from
Internet

57

561

Digital Goods/Download to Phone

57

609

Digital Goods/Streaming Video

57

633

Digital Goods/Downloaded Video

The purchase of goods such as music,
books, or phone ringtones downloaded
from the internet.
The purchase of goods such as ringtones
downloaded to a cell phone.
The purchase of video via the internet.
The purchaser does not retain
possession of the video.
The purchase of video via the internet.

Tax Types
When a transaction is processed through the AFC Engine, a Tax Type is assigned based on the results. The
Tax Type is determined by the transaction location and transaction/service pairs provided in the
transaction record and is used to accurately describe the exact nature of the tax applied (refer to Table 419 ).
With over 170 Tax Types available, highly detailed and specific tax descriptions are provided for use in
taxation disclosure. This is useful in billing and customer service, and simplifies tax compliance filing.
Users can only control the tax types with the Avalara EZdata product (sold separately). AFC allows for a
change, referred to as an override (see section 4.1.3), of the rate for a specific tax type and tax level in a
specific jurisdiction. When overriding a tax type, the tax type must exist in the jurisdiction where for the
override is to be made.
Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
1

NAME
Sales Tax

4

District Tax

11

Service Tax

12

Special Tax

17

Sales Web Hosting

24

Telecommunications
Infrastructure
Maintenance Fee

32

District Tax (Residential)

33

Transit Tax

DESCRIPTION
This is a tax on the privilege of purchasing goods and services.
District taxes are taxes associated with a particular district. This is
typically this is a school district; however it could be a redevelopment,
sports entertainment or some other type of district.
This tax is used to fund a service such as the telecommunications relay
service for the deaf.
Used to specify a tax that does not fit into a typical category.
Similar to tax type 1 (Sales Tax) but applies only to web hosting
services.
Fee used to fund the maintenance of telecommunications
infrastructure (network, switches, etc.).
Similar to tax type 4 (District Tax) but applies only to a residential
customer.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.

A F C S a l e s a n d U s e U s e r M a n u a l | 77 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID

NAME

42

Sales Tax (Business)

49

Use Tax

50

Sales Tax (Data)

57

Sales Tax (Interstate)

64

Communications
Services Tax

65

Value Added Tax (VAT)

66
67
68
69
94

Goods and Services Tax
(GST)
Harmonized Sales Tax
(HST)
Provincial Sales Tax (PST)
Quebec Sales Tax (QST)
Crime Control District
Tax

95

Library District Tax

96

Hospital District Tax

97
98

Health Services District
Tax
Emergency Services
District Tax

99

Improvement District Tax

100

Development District Tax

102

Ambulance District Tax

103

Fire District Tax

104

Police District Tax

105

Football District Tax

106

Baseball District Tax

119

Educational Sales Tax

120

Educational Use Tax

124

Convention Center Tax

126

School Board Tax A

DESCRIPTION
Similar to tax type 1 (Sales Tax) but applies only to a business
customer.
An ad Val Orem tax on the use, consumption, or storage of tangible
property and usually assessed at the same rate as the sales tax of the
applicable jurisdiction.
Similar to tax type 1 (Sales Tax) but applies only on data services.
Similar to tax type 1 (Sales Tax) but applies only on interstate telecom
services.
A tax on end users who consume communication services.
International based tax on the final consumption of certain goods and
services.
National Canadian VAT on the consumption of goods and services.
Provincial sales tax applied in specific Canadian provinces. Rate is a
combination of the provincial sales tax and the national GST.
Sales tax applied in various Canadian provinces.
Specific sales tax applied only in the province of Quebec, Canada.
A specific district tax that supports a crime control program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a library program. This district can
overlap county and local jurisdictions.
A specific district tax that supports hospital program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a health services program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an emergency services program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a public improvement program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a development program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an ambulance program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a fire district. This district can
overlap county and local jurisdictions.
A specific district tax that supports a police district. This district can
overlap county and local jurisdictions.
A specific district tax that supports a football program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a baseball program. This district
can overlap county and local jurisdictions.
Sales tax designated specifically for education and reported apart from
the general sales tax.
Use tax designated specifically for education and reported apart from
the general use tax.
Sales Tax designated for convention or conference centers.
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.

A F C S a l e s a n d U s e U s e r M a n u a l | 78 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID

NAME

127

School Board Tax B

128

School Board Tax C

129

School Board Tax D

130

School Board Tax E

131

School Board Tax F

132

School District Tax

133

Police Jury Tax B

134

Police Jury Tax C

135

Police Jury Tax E

139

Advanced Transit Tax

145

Tribal Sales Tax
Sales Tax (Data
Processing)

146
160

Statutory Gross Receipts
(Business)

172

Statutory Gross Receipts
(Video)

176

Sales Tax - Senior Citizen

184

Sales Tax-Manufacturing

185

Use Tax-Manufacturing

186
187

Sales Tax-Motor Vehicles
Use Tax-Motor Vehicles

188

Rental Tax

189

Rental Tax-Linen

190

Sales Tax-Vending

191
192
193
194
195

Rental Tax-Motor
Vehicles
Sales Tax-Wholesale
Sales Tax-Food and
Drugs
Sales Tax-Food
Fur Tax

DESCRIPTION
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund School Board. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund a School District. This is typically a Sales Tax.
Tax to fund Police jurisdictions. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund Police jurisdictions. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
Tax to fund Police jurisdictions. This is typically a Sales Tax. The letter
designation is used in compliance reporting.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.
Sales tax imposed by an Indian Tribe.
This is a tax imposed on the sale of data processing services.
Tax based upon the gross receipts of one or more transaction and
service type combinations. This tax type is returned when there is a
difference between the business rate and other rates.
Tax based upon the gross receipts of video services such as cable or
satellite.
Similar to tax type 1 (Sales Tax) but only applies to Senior Citizens who
meet certain age requirements.
Refers to a sales tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
Refers to a use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
Refers to a sales tax rate charged on the sale of motor vehicles.
Refers to a use tax rate charged on the sale of motor vehicles.
Tax exclusively on the rental of any item not specifically taxed by
another rental tax.
Tax covering the rental of linen based supplies.
Sales tax that applies to the retail sale of items sold through vending
machines.
Tax covering the rental of motor vehicles.
Sales Tax applying to wholesale transactions.
Refers to a rate charged on the sale of food, drugs or beverages.
Refers to a rate charged on the sale of food or beverages.
Tax charged on the sale of furs.

A F C S a l e s a n d U s e U s e r M a n u a l | 79 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID

NAME

197

Lead Acid Battery Fee

198

200
202

Sales Tax-Motor Fuel
Lead Acid Battery FeeLarger Battery
Sales Tax-Parking
Dry Cleaning Fee

203

White Goods Tax

199

204
205
206
207

Sales Tax-Medical
Equipment
Electronic Waste
Recycling Fee-Small
Electronic Waste
Recycling Fee-Medium
Electronic Waste
Recycling Fee-Large

208

Alcoholic Beverage Tax

209

Sales Tax-Alcohol

210

Liquor Drink Tax

243

Solid Waste Collection
Tax

273

Sales Tax – Other

279

Education Cess
Secondary and Higher
Education Cess

280
281

Utility Users Tax (Video)

294

Oklahoma Sales Tax

296

Premier Resort Area Tax

313
314
315
318

NY Sales Tax
NY Local Transit Tax
NY Local District Tax
Food and Beverage Tax

321

Vendor Use Tax

322

District Vendor Use Tax

323

Special Vendor Use Tax

324

Transit Vendor Use Tax

DESCRIPTION
Fee charged to cover the cost involved in the disposing of lead based
batteries.
Refers to a sales tax rate charged on the sale of motor fuel.
Fee charged for batteries over a certain pre-described voltage to cover
the cost involved in disposing lead based batteries.
Tax on the fee charged for the parking of motor vehicles.
Fee charged on the sale of dry cleaning services.
A fee applied to the sale of certain appliance and appliance type items
to cover the disposal of such items.
Sales Tax that applies exclusively to the sale of medical equipment.
A fee charged for smaller monitors to cover the disposal of such items.
A fee charged for certain sized monitors fitting between certain
dimensions to cover the disposal of such items.
A fee charged for larger monitors to cover the disposal of such items.
Alcoholic Beverages taxed under a different tax in lieu or in addition to
sales tax.
Refers to a sales tax rate charged on the sale of alcohol.
Applies where there is a distinct rate on the sale of mixed drinks ready
for on-site consumption.
Tax on the service of removing solid waste.
Refers to a separate sales tax rate charged on transactions that do not
fall into another existing category
A tax levied to collect funds for education.
A tax levied to collect funds for secondary and higher education.
Similar to Tax Type 16 (Utility Users Tax) but applies only on Video
services.
Similar to Tax Type 1 (Sales Tax) but applies only in Oklahoma.
Similar to Sales Tax (Tax Type 1) , but applied only in Premier Resort
Areas.
Similar to Tax Type 1 (Sales Tax) but applied only in New York.
Similar to Tax Type 33 (Transit Tax) but applied only in New York.
Similar to Tax Type 4 (District Tax) but applied only in New York.
A rate charged on the sale of food or beverages.
An ad valorem tax on the use, consumption, or storage of tangible
property and usually assessed at the same rate as the sales tax of the
applicable jurisdiction.
District taxes are taxes associated with a particular district. Typically
this is a school district, however, it could be a redevelopment, sports,
entertainment or some other type of district.
Used to specify a tax that does not fit into a typical category.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.

A F C S a l e s a n d U s e U s e r M a n u a l | 80 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349

NAME
Crime Control District
Vendor Use Tax
Library District Vendor
Use Tax
Hospital District Vendor
Use Tax
Health Services District
Vendor Use Tax
Emergency Services
District Vendor Use Tax
Improvement District
Vendor Use Tax
Development District
Vendor Use Tax
Ambulance District
Vendor Use Tax
Fire District Vendor Use
Tax
Football District Vendor
Use Tax
Baseball District Vendor
Use Tax
Educational Vendor Use
Tax
School District Vendor
Use Tax
Advanced Transit Vendor
Use Tax
Tribal Vendor Use Tax
Vendor Use Tax-Senior
Citizen
Vendor Use TaxManufacturing
Vendor Use Tax- Motor
Vehicles
Vendor Use Tax-Vending
Vendor Use Tax- Food
and Drugs
Vendor Use TaxFood
Vendor Use Tax-Motor
Fuel
Vendor Use Tax-Parking
Vendor Use Tax-Medical
Equipment
Alcoholic Beverage
Vendor Use Tax

DESCRIPTION
A specific district tax that supports a crime control program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a library program. This district can
overlap county and local jurisdictions.
A specific district tax that supports hospital program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a health services program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an emergency services program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a public improvement program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a development program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an ambulance program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a fire district. This district can
overlap county and local jurisdictions.
A specific district tax that supports a football program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a baseball program. This district
can overlap county and local jurisdictions.
Use tax designated specifically for education and reported apart from
the general use tax.
Tax to fund a School District.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.
Use tax imposed by an Indian Tribe.
Similar to tax type 321 (Vendor Use Tax) but only applies to Senior
Citizens who meet certain age requirements.
Refers to a use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
Refers to a use tax rate charged on the sale of motor vehicles.
Use Tax that applies to the retail sale of items sold through vending
machines.
Refers to a rate charged on the sale of food, drugs or beverages.
Refers to a rate charged on the sale of food or beverages.
Refers to a tax rate charged on the sale of motor fuel.
Tax on the fee charged for the parking of motor vehicles.
Tax that applies exclusively to the sale of medical equipment.
Alcoholic Beverages taxed under a different tax in lieu of or in addition
to sales tax.

A F C S a l e s a n d U s e U s e r M a n u a l | 81 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
350
351
352
353
354
355
356

NAME
Vendor Use Tax-Alcohol
Liquor Drink Vendor Use
Tax
Vendor Use Tax-Video
Premier Resort Area
Vendor Use Tax
NY Transit Vendor Use
Tax
NY District Vendor Use
Tax
Vendor Use Tax-Food
and Beverage

357

Consumer Use Tax

358

District Consumer Use
Tax

359

Special Consumer Use
Tax

360

Transit Consumer Use
Tax

361
362
363
364
365
366
367
368
369
370
371
372

Crime Control District
Consumer Use Tax
Library District Consumer
Use Tax
Hospital District
Consumer Use Tax
Health Services District
Consumer Use Tax
Emergency Services
District Consumer Use
Tax
Improvement District
Consumer Use Tax
Development District
Consumer Use Tax
Ambulance District
Consumer Use Tax
Fire District Consumer
Use Tax
Football District
Consumer Use Tax
Baseball District
Consumer Use Tax
Educational Consumer
Use Tax

DESCRIPTION
Refers to a sales tax rate charged on the sale of alcohol.
Applies where there is a distinct rate on the sale of mixed drinks ready
for on-site consumption.
A tax charged on the provision of video services.
Similar to Use Tax (Tax Type 49), but applied only in Premier Resort
Areas.
Similar to Tax Type 33 (Transit Tax), but applied only in New York.
Similar to Tax Type 4 (District Tax), but applied only in New York.
A rate charged on the sale of food or beverages.
An ad valorem tax on the use, consumption, or storage of tangible
property and usually assessed at the same rate as the sales tax of the
applicable jurisdiction.
District taxes are taxes associated with a particular district. Typically
this is a school district, however, it could be a redevelopment, sports,
entertainment or some other type of district.
Used to specify a tax that does not fit into a typical category.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.
A specific district tax that supports a crime control program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a library program. This district can
overlap county and local jurisdictions.
A specific district tax that supports hospital program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a health services program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an emergency services program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a public improvement program.
This district can overlap county and local jurisdictions.
A specific district tax that supports a development program. This
district can overlap county and local jurisdictions.
A specific district tax that supports an ambulance program. This
district can overlap county and local jurisdictions.
A specific district tax that supports a fire district. This district can
overlap county and local jurisdictions.
A specific district tax that supports a football program. This district can
overlap county and local jurisdictions.
A specific district tax that supports a baseball program. This district
can overlap county and local jurisdictions.
Use tax designated specifically for education and reported apart from
the general use tax.

A F C S a l e s a n d U s e U s e r M a n u a l | 82 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392

NAME
School District Consumer
Use Tax
Advanced Transit
Consumer Use Tax
Tribal Consumer Use Tax
Consumer Use TaxSenior Citizen
Consumer Use TaxManufacturing
Consumer Use TaxMotor Vehicles
Consumer Use TaxVending
Consumer Use Tax-Food
and Drugs
Consumer Use Tax-Food
Consumer Use TaxMotor Fuel
Consumer Use TaxParking
Consumer Use TaxMedical Equipment
Alcoholic Beverage
Consumer Use Tax
Consumer Use TaxAlcohol
Liquor Drink Consumer
Use Tax
Consumer Use Tax-Video
Premier Resort Area
Consumer Use Tax
NY Local Transit
Consumer Use Tax
NY Local District
Consumer Use Tax
Consumer Use Tax- Food
and Beverage

395

Business & Occupation
Tax-Rent and Royalty

396

Business & Occupation
Tax-Other Services

398

Rural Transportation
Authority District Tax

399

MHA District Tax

DESCRIPTION
Tax to fund a School District.
A specific state, county, district or local tax used to support a
transportation district or program. If this is a district program, the
boundaries can overlap county and local jurisdictions.
Use tax imposed by an Indian Tribe.
Similar to tax type 321 (Vendor Use Tax) but only applies to Senior
Citizens who meet certain age requirements.
Refers to a use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
Refers to a use tax rate charged on the sale of motor vehicles.
Use Tax that applies to the retail sale of items sold through vending
machines.
Refers to a rate charged on the sale of food, drugs or beverages.
Refers to a rate charged on the sale of food or beverages.
Refers to a tax rate charged on the sale of motor fuel.
Tax on the fee charged for the parking of motor vehicles.
Tax that applies exclusively to the sale of medical equipment.
Alcoholic Beverages taxed under a different tax in lieu of or in addition
to sales tax.
Refers to a sales tax rate charged on the sale of alcohol.
Applies where there is a distinct rate on the sale of mixed drinks ready
for on-site consumption.
A tax charged on the provision of video services.
Similar to Use Tax (Tax Type 49), but applied only in Premier Resort
Areas.
Similar to Tax Type 33 (Transit Tax), but applied only in New York.
Similar to Tax Type 4 (District Tax), but applied only in New York.
A rate charged on the sale of food or beverages.
Similar to Business & Occupation Tax (Tax Type 2) but only applied on
Rents and Royalties.
Similar to Business & Occupation Tax (Tax Type 2) but only applied to
Services.
A specific district tax that supports a Rural Transportation Authority.
A specific district tax that supports a Multi-jurisdictional Housing
Authority.

A F C S a l e s a n d U s e U s e r M a n u a l | 83 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID

401
402
403
404

NAME
Public Safety
Improvements District
Tax
Mass Transit District Tax
Metropolitan District Tax
RTA Consumer Use Tax
RTA Vendor Use Tax

405

MHA Consumer Use Tax

406

MHA Vendor Use Tax

400

407
408
412

Mass Transit District
Consumer Use Tax
Mass Transit District
Vendor Use Tax
Education Sales-Vending

431
441

Education Sales-Motor
Vehicles
Education Use-Motor
Vehicles
Education Consumer
Use-Motor Vehicles
Education Vendor UseMotor Vehicles
Education SalesManufacturing
Education UseManufacturing
Education Consumer Use
- Manufacturing
Education Vendor Use –
Manufacturing
Rental Use Tax - Motor
Vehicles
Consumer Use Rental
Tax - Motor Vehicles
Vendor Use Rental Tax Motor Vehicles
Commerce Tax
PIS

442
443
449

COFINS
ICMS
Rental Tax (Lower Rate)

469

Use Tax (Rental)

413
414
415
416
417
418
419
420
421
422
423

DESCRIPTION
A specific district tax that supports public safety improvements.
A specific district tax that supports Mass Transit.
A specific district tax that supports a Metropolitan district.
A specific district tax that supports a Rural Transportation Authority.
A specific district tax that supports a Rural Transportation Authority.
A specific district tax that supports a Multi-jurisdictional Housing
Authority.
A specific district tax that supports a Multi-jurisdictional Housing
Authority.
A specific district tax that supports Mass Transit.
A specific district tax that supports Mass Transit.
An educational sales tax rate that applies to the retail sale of items sold
through vending machines.
An educational sales tax rate charged on the sale of motor vehicles.
An educational use tax rate charged on the sale of motor vehicles.
An educational use tax rate charged on the sale of motor vehicles.
An educational use tax rate charged on the sale of motor vehicles.
An educational sales tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
An educational use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
An educational use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
An educational use tax rate charged on the sale of manufacturing
machinery and other manufacturing related items.
Refers to a use tax rate charged on the rental of motor vehicles.
Refers to a use tax rate charged on the rental of motor vehicles.
Refers to a use tax rate charged on the rental of motor vehicles.
Tax on Gross Revenue for the privilege of engaging in business.
A social contribution tax targeted to finance unemployment insurance
and allowance for low paid workers.
A contribution levied to finance social security, health and social care.
State tax for goods and services.
Similar to Rental Tax (Tax Type 188) but only applied to certain items at
a reduced rate.
Similar to Tax Type 49 (Use Tax) but only applied to rental services.

A F C S a l e s a n d U s e U s e r M a n u a l | 84 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
470

NAME
Use Tax (Other)

471

Consumer Use Tax
(Other)

472

Vendor Use Tax (Other)

492

Statutory Gross Receipts
NF
PUC Franchise Fee
(Video) NF

493
494

Sales Tax NF

495

District Tax NF

496

Hospital District Tax NF

497

Improvement District Tax
NF
Mass Transit District Tax
NF
Metropolitan District Tax
NF
MHA District Tax NF

498
499
500
501

502

Public Safety
Improvement District Tax
NF
Rural Transportation
Authority District Tax NF

503

Transit Tax NF

504

District Consumer Use
Tax NF
Hospital District
Consumer Use Tax NF
Improvement District
Consumer Use Tax NF

505
506
507
508

Mass Transit District
Consumer Use Tax NF
MHA Consumer Use Tax
NF

DESCRIPTION
Similar to Tax Type 49 (Use Tax) but only applied to transactions that
do not fall into another existing tax type. Generally transactions return
this tax type if a distinct use tax rate applies in a specific jurisdiction or
on a temporary basis.
Similar to Tax Type 357 (Consumer Use Tax) but only applied to
transactions that do not fall into another existing tax type. Generally
transactions return this tax type if a distinct consumer use tax rate
applies in a specific jurisdiction or on a temporary basis.
Similar to Tax Type 321 (Vendor Use Tax) but only applied to
transactions that do not fall into another existing tax type. Generally
transactions return this tax type if a distinct vendor use tax rate applies
in a specific jurisdiction or on a temporary basis.
Similar to Tax Type 14 (Statutory Gross Receipts), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 9 (P.U.C. Fee) but only applied to video services. This tax
does not include Federal USF or Federal FCC Regulatory Fees in the assessment
base.
Similar to Tax Type 1 (Sales Tax), but does not include Federal USF and Federal
FCC Regulatory Fees in the assessment base.
Similar to Tax Type 4 (District Tax), but does not include Federal USF and
Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 96 (Hospital District Tax), but does not include Federal USF
and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 99 (Improvement District Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 401 (Mass Transit District Tax), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 402 (Metropolitan District Tax), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 399 (MHA District Tax), but does not include Federal USF
and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 400 (Public Safety Improvements District Tax), but does not
include Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 398 (Rural Transportation Authority District Tax), but does
not include Federal USF and Federal FCC Regulatory Fees in the assessment
base.
Similar to Tax Type 33 (Transit Tax), but does not include Federal USF and
Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 358 (District Consumer Use Tax), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 363 (Hospital District Consumer Use Tax), but does not
include Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 366 (Improvement District Consumer Use Tax), but does
not include Federal USF and Federal FCC Regulatory Fees in the assessment
base.
Similar to Tax Type 407 (Mass Transit District Consumer Use Tax), but does not
include Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 405 (MHA Consumer Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.

A F C S a l e s a n d U s e U s e r M a n u a l | 85 of 329
Copyright  2018 Avalara, Inc.

Table 4-19 Tax Types Supported by AFC
TAX TYPE ID
509

515

NAME
RTA Consumer Use Tax
NF
Transit Consumer Use
Tax NF
District Vendor Use Tax
NF
Hospital District Vendor
Use Tax NF
Improvement District
Vendor Use Tax NF
Mass Transit District
Vendor Use Tax NF
MHA Vendor Use Tax NF

516

RTA Vendor Use Tax NF

517

Transit Vendor Use Tax
NF

518

State USF (VoIP
Alternate) NF

519

E-rate Broadband
Program (VoIP
Alternate)
ConnectME Fund
(VoIP Alternate)

510
511
512
513
514

520

DESCRIPTION
Similar to Tax Type 403 (RTA Consumer Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 360 (Transit Consumer Use Tax), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 322 (District Vendor Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 327 (Hospital District Vendor Use Tax), but does not include
Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 330 (Improvement District Vendor Use Tax), but does not
include Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 408 (Mass Transit District Vendor Use Tax), but does not
include Federal USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 406 (MHA Vendor Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 404 (RTA Vendor Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.
Similar to Tax Type 321 (Transit Vendor Use Tax), but does not include Federal
USF and Federal FCC Regulatory Fees in the assessment base.

Similar to Tax Type 282 (State USF (VoIP Alternate)) but does not
include Federal USF and Federal FCC Regulatory Fees in the
assessment base.
Similar to Tax Type 478 (E-rate Broadband Program) but gives
the user the ability to report VoIP usage based on actual usage
rather than using the Safe Harbor percentage.
Similar to Tax Type 215 (ConnectME Fund (VoIP) but gives the
user the ability to report VoIP usage based on actual usage
rather than using the Safe Harbor percentage.

For the most current list of Tax Types, refer to the EZTaxTaxType.h file located on the most recent
Distribution/Update. For .NET users, the tax types are also available in EZTaxConstants.cs. For Java users,
the tax types are also available in TaxType.java.

Nexus
AFC allows a client application to set the nexus information in multiple methods.
•

•
•
•

Set the appropriate nexus option in the configuration file (see TM_00548_AFC Configuration
Guide). The option specified in the configuration file will automatically be applied to every AFC
session as it is initialized. However, this option may be overridden by calling the EZTaxSetNexus
API function.
By EZTaxSetNexus API function.
By using a nexus_table at the transaction level.
By EZTaxSetStateNexus API function.

General Usage

A F C S a l e s a n d U s e U s e r M a n u a l | 86 of 329
Copyright  2018 Avalara, Inc.

When the engine determines there is no nexus for the taxing jurisdiction of the transaction, no taxes will
be returned.
If the nexus information has been set by either configuration file or by API call, the transaction level nexus
will take precedence.
EZTaxSetNexus allows one call to set all nexus information whereas EZTaxSetStateNexus allows the client
application to set each state individually.
By using EZTaxSetNexus with a null pointer and a nexus count of zero, it will reset the AFC engine to
default value of nexus in every state.
Nexus is only used within the United States.

Exclusions
AFC allows a client application to exclude states or countries (and all lower level jurisdictions) from
taxation. By using the exclusion option, the client is informing AFC that the specified state or country and
all lower jurisdictions are to return no taxes. An excluded state will exempt all state and lower level
jurisdiction taxes; however, it will continue to return federal level taxes. An excluded country will exempt
all federal and lower level jurisdiction taxes. Exclusions may be accomplished using several methods,
such as those listed below:
•
•
•

Set the appropriate exclusion option in the configuration file (see TM_00548_AFC Configuration
Guide). The option specified in the configuration file will automatically be applied to every AFC
session as it is initialized. However, this option may be overridden with other API functions.
Use the EZTaxSetStateExclusion API function.
Use the EZTaxClearExclusion API function.

General Usage
When the engine determines that taxes are excluded at the state level for a transaction, only federal level
taxes are returned. When the engine determines that taxes are excluded at the federal level, no taxes are
returned.
EZTaxClearExclusion will clear all exclusion information and return taxes at every level.

US Territories
US Territory exclusions function like state exclusions and are set and cleared when the federal level USA
country code is used without a state or territory. When specified as a state jurisdiction using the two
letter state code, ex. ‘USA,VI’, the exclusion behaves like any other state jurisdiction.

A F C S a l e s a n d U s e U s e r M a n u a l | 87 of 329
Copyright  2018 Avalara, Inc.

Country codes for US Territories are deprecated.

A F C S a l e s a n d U s e U s e r M a n u a l | 88 of 329
Copyright  2018 Avalara, Inc.

Utilities
Refer to Figure 5-1. While tax results are typically returned to the billing system using functions, the
primary output mechanism of the AFC Engine employs the EZtax Log. The EZTax.log is the link to the
outside world. There are twenty-four utilities to choose from, one of which will almost certainly suit your
need.
When an AFC session is started with the AFC Initialization Function, the Tax Log is opened if the Tax Log
parameter is set to true. This allows the AFC Log to capture the binary formatted transaction and tax
data generated by the AFC Engine.
After exiting the AFC session, the AFC Log becomes available for use. This file should be archived by the
user for reruns, recovery and auditing purposes. This is accomplished by simply copying the EZTax.log file
to a local storage location (refer to Figure 5-1). In most cases this binary file will be used in the future and
nearly all of the utilities will delete the contents of the AFC Log upon job completion.
Figure 5-1 AFC Log Data Path

If the Billing System is configured to use the AFC Functions and does not require the logging of data, set
the first parameter of the AFC Initialization Function to FALSE to disable transaction logging. For instance,
if your program is saving or using the tax data returned to it by the tax calculation functions, you would
have no need to use the data in the log file for later processing.

NOTE:
When running AFC in batch fashion the EZTax.log file is always
generated.

A F C S a l e s a n d U s e U s e r M a n u a l | 89 of 329
Copyright  2018 Avalara, Inc.

It is imperative that rigid backup practices are established and followed to avoid losing the transaction
and data information created during a session. Most utilities will delete the inputted log file when the
utility is finished and backups would be required should reruns be needed.

Utility Selection
AFC provides utilities for reporting and file management. The latest utilities, along with their file formats,
are located on the most current update. AFC has conversion utilities available for converting the tax log
file to formats used by compliance services. Contact Avalara for information on converting to specific
services.

Reporting Utilities
The reporting utilities are used for customer billing and compliance reporting. They extract specific data
from the content rich binary AFC Log file, commonly sorting the data into a logical and orderly format.
The resulting output is a flat file containing just the information required for the specific report,
compatible with common software such as spreadsheets and databases.
The most common use of this information is to file tax returns. However, other uses may include audit
trails, internal tracking and projections.

Reporting File Extensions
Refer to Table 5-1. The reporting utility output file extensions are customized to indicate the type of
information provided within the file. Note that some utilities may produce more than one type of output
file.
Table 5-1 File Extension Definitions
Log File
Extension
.csf

Log File Type
Customer Billable amounts

File
Format
.csf

.ssf

Tax Compliance amounts

.ssf

.nba

Non-billable amounts for
compliance

.ssf

.nca

Non-compliance amounts that
were billed

.ssf

.scl

Billable amounts combined with
non-billable amounts

.ssf

Note
This file is not generated when the [–cl]
command line option is used.
This file is not generated when the [–cl]
command line option is used. If there are no
non-billable amounts, this file is not created.
This file is generated only if there are
transactions in the AFC log that do not require
compliance with a jurisdiction.
This file is generated when the [-cl] command
line option is used. The .scl file is created
instead of the .ssf and .nba files.

A F C S a l e s a n d U s e U s e r M a n u a l | 90 of 329
Copyright  2018 Avalara, Inc.

The report file generated by the utility will be formatted as a comma delimited file or fixed field length file
depending on the utility used. Refer to the specific utility documentation to determine which formatting
will be provided.
Some report utilities provide specialized reports with the file name log.rpt. These comma delimited files
are modifications of .csf and .ssf report formats.
Refer to Figure 5-2. For example, the EZLog_NS.exe utility produces a comma-delimited flat file report
with an .ssf extension. When this file is copied into a preformatted (headings and column widths preset)
MS Excel spreadsheet the following output is displayed. If the spreadsheet had not been preformatted
the titles would not be present and the field widths might vary.
Figure 5-2 Sample EZLog_NS spreadsheet

Country State
USA
USA
USA
USA
USA
USA
USA
USA
USA
USA

AL
AZ
AZ
AZ
AZ
AZ
AZ

County

APACHE
APACHE
APACHE

Locality

Tax type Tax level Tax rate Tax amount

SPRINGERVILLE

6
7
18
16
1
10
12
1
1
1

0
0
0
1
1
1
1
1
2
1

0.0300
0.0076
0.0314
0.0670
0.0500
0.0125
0.0110
0.0500
0.0270
0.0500

29,881.87
10,116.13
11,145.49
969.97
0.81
9.07
7.98
0.81
0.44
0.71

Gross sales

Exempt

996,062.25
1,331,070.00
354,952.00
14,477.20
16.12
725.47
725.47
16.12
16.12
14.11

0
0
0
0
0
0
0
0
0
0

Adj.
0
0
0
0
0
0
0
0
0
0

Taxable
Measure
996,062.25
1,331,070.00
354,952.00
14,477.20
16.12
725.47
725.47
16.12
16.12
14.11

Minutes
14,859,213
20,410,578
5,446,827
220,239
245
11,038
11,038
245
245
215

File Management Utilities
File management utilities are provided for maintenance purposes, such as combining one or more
archived AFC log files or appending one log file to another.
Note that AFC provides the asciilog.exe utility for maintenance of AFC log files. It allows the user to view
the unsorted log file as readable ASCII text without deleting the file.

Specifying a Log File at Run Time
The AFC Log file to be submitted to a utility is specified by the log file name in the Filelocs.txt file
(EZTax.log by default). However, this file name will be ignored if a different file name is provided in the
AFC Initialization Function at session startup.
The Filelocs.txt contains the file locations for text file contains all of paths to the AFC Data Base files. Each
file in the AFC Data base is represented by one line. The lines in the text file must be in the defined order
and all files must be represented.

A F C S a l e s a n d U s e U s e r M a n u a l | 91 of 329
Copyright  2018 Avalara, Inc.

NOTE

Batch utility clients can only use the filelocs.txt file as they will not be
using the function programming method.

Log.sum File
The Log.sum file accumulates tax compliance totals over multiple runs to generate a compilation of the
tax totals. It contains a summary of the EZTax.log(s) with the data organized by taxing jurisdictions. Only
the EZ* prefix report utilities can be used to generate the log.sum file, which can then be passed as the
input to most of the report utilities.
This is a turnaround file used for maintaining one smaller log file rather than multiple log files in cases
where the customer billing cycle occurs more frequently than the tax compliance cycle. It carries tax
compliance information forward until the report is produced. The srt* utilities use this file for input only.

WARNING

The customer information is lost in the summation of the log.sum.
Remember to delete or move this file before running a utility that uses it,
if a combined report is not desired.

General Tips When Using Utilities
AFC is designed to provide optimum flexibility in creating reports. The following tips have been
accumulated to assist in making the best use of available options.
1. Combining Log Files
2. If an AFC log file exists when AFC is run, new tax data will be appended to the end of an existing
log file (i.e. not placed into a new log file). Also, log files can be combined prior to passing to a
utility, although they cannot be split apart after they are merged.
3. The criteria for deciding to combine files is based on how often AFC is run, how big the created
log files are and the date cycles of your billing and tax compliance system. Note that most
transactions will generate many tax records and that each tax record is either 100 or 168 bytes
long, depending on the configuration.
4. Many clients use a new log file for each run of AFC to reduce the complexity introduced when a
rerun or restart is required.
5. Most clients will do all of their customer billing processing within their Function programs and
use the log file to process only tax compliance data at a later date.
6. Utilities are provided to merge two or more log files into a single log file. This is useful when
running reports that reflect the combined data of the individual log files.
7. Primarily the srt* utilities will produce files sorted by the jurisdictional level.
A F C S a l e s a n d U s e U s e r M a n u a l | 92 of 329
Copyright  2018 Avalara, Inc.

8. AFC provides the asciilog.exe utility for maintenance of AFC log files, allowing the user to create
an ASCII version of the log file.
9. Many utilities produce a log.sum file that accumulates tax compliance totals over multiple runs to
generate a compilation of the tax totals.
10. The pkzip executable option listed with some utilities is only available with the windows platform.

A F C S a l e s a n d U s e U s e r M a n u a l | 93 of 329
Copyright  2018 Avalara, Inc.

AFC Utilities
Table 5-2 Utility Summary
Utility Name

Function

asciilog.exe

File Management

batch_sau.exe

File Management

commerge.exe

File Management

comrp.exe

Reporting

comptnum.exe

Reporting

csf20.exe

Processing

customsort.exe

Reporting

ezcomprep.exe

Reporting

ezlog_ns.exe

Reporting

ezlogcust.exe

Reporting

ezlogcustios.exe

Reporting

ezlogcustpts.exe

Reporting

ezlogcustptslnl.exe

Reporting

EZTax_20.exe

Processing

EZTaxappend.exe

File Management

EZTaxappendf.exe
log no tax
transactions

File Management

srtcdf20.exe

Reporting

srtcdf20p.exe

Reporting

srtcomcust20.exe

Reporting

Short Description
Dumps the contents of the logfilename.log to an ASCII version of
the log file
File Management Combines the log file with the log.sum (if
present) then sorts and combines the data.
Combines the log file with the log.sum (if present) then sorts and
combines the data.
Data formatted to produce a customer information file called
ComRPT.ssf.
Reads the log file specified in filelocs.txt and produces comma
delimited text files outputfilename.ssf, outputfilename.nca, and
outputfilename.nba (or a unified file outputfilename.scl) for tax
compliance filing.
Reads the log file specified in filelocs.txt. Uses a CDF filename
from the command line to name the output files.
Produces a comma-delimited file for compliance filing. User
selects sort criteria and preferences. Refer to the AFC Custom
Sort Utility User Manual for more information on this utility.
Produces a comma-delimited file for compliance filing. Sorting
and combining is performed at the jurisdictional level.
Produces a comma-delimited file for compliance filing.
Produces a comma-delimited file for customer billing. Sorting
and reporting is done at the customer level.
Produces a comma-delimited file for customer billing. Sorting
and reporting is done at the customer level.
Produces a comma-delimited file for customer billing. Sorting
and reporting is done at the customer level. The sort key also
contains PCode, optional, and Service Level Number fields.
Produces a comma-delimited file for customer billing. Sorting
and reporting is done at the customer level. In addition to the
PCode, optional, and Service Level Number fields and the
number of lines are also included.
Refer to batchfile processing for details on the Batch processing
method.
Combines two log files.
Combines multiple log files.
This is an option in the EZTax.cfg file, placed here as it may effect
the output.
Produces a fixed length text file logfilename.ssf for tax
compliance filing and a fixed length text file filename.csf for
customer billing.
Produces a fixed length text file EZTaxlogfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing.
Produces a comma delimited text file logfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing.

A F C S a l e s a n d U s e U s e r M a n u a l | 94 of 329
Copyright  2018 Avalara, Inc.

Table 5-2 Utility Summary
Utility Name

Function

srtcomma20.exe

Reporting

srtcomma20l.exe

Reporting

srtcomma20ld.exe

Reporting

srtrev20l.exe

Reporting

strg.exe

Reporting

upsize_log.exe

File Management

Short Description
Produces a comma delimited text file logfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing.
Produces a comma delimited text file logfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing, separating adjustments. The .csf file is used for
import into the billing system to populate customer bills. The
comma-delimited .ssf file is sorted at the jurisdictional level. The
.ssf file also contains the number of lines.
Produces a comma delimited text file logfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing.
Produces a comma delimited text file logfilename.ssf for tax
compliance filing and a fixed length text file logfilename.csf for
customer billing, separating adjustments. The .csf file is used for
import into the billing system to populate customer bills. The
comma-delimited .ssf file is sorted at the jurisdictional level. The
.ssf file also contains the number of lines and the base sale
amount. The base sale amount can be included in the csf by
command-line option.
Produces a fixed length text file logfilename.ssf for tax
compliance filing. If the extra logfilename is specified, it is used
for appending instead of the log.sum.
Converts the short format logfilename1 to a long format log
logfilename1.

A F C S a l e s a n d U s e U s e r M a n u a l | 95 of 329
Copyright  2018 Avalara, Inc.

asciilog.exe
COMMAND LINE
asciilog logfilename.log <+p> <+tc> <+a> <+h> <-csv> <-?>
DESCRIPTION
The asciilog.exe command dumps the contents of the logfilename.log to an ASCII version of the
log file. It does not sort or combine records. It produces a file named logfilename.txt which is a
legible version of the logfilename.log data.
INPUT
Log file: logfilename.log file as defined in the command line and is NOT deleted at end of job.
OUTPUT
Comma delimited logfilename.txt or logfilename.csv file.
FILE FORMAT KEY
The contents of the file are highly dependent upon the command line arguments. Use the +h
argument to prepend the output with a header row that defines each column.
ARGUMENTS (in any order)
+p option adds the P-Code to the output, located before the Country for each record
+tc option adds the tax category description to the end of each record
+a option outputs all available fields
+h option prepends the output with a header record
-csv option uses .csv as the extension for easier import to other applications
-? option displays usage screen and exits
NOTES:
AFC log is NOT deleted.
Also, to have valid values for transaction type and service type, the AFC session that generated the
log must have logtransserv=true (ref 7.2.3.8 Log Transaction / Service Types).

batch_sau.exe
batch_sau is a Processing Utility used to pass Sales and Use transaction records through the AFC Engine
in Batch fashion. Refer to batch file processing for details on the Batch processing method.
A F C S a l e s a n d U s e U s e r M a n u a l | 96 of 329
Copyright  2018 Avalara, Inc.

commerge.exe
COMMAND LINE
commerge
DESCRIPTION
The commerge.exe command reads the log file specified in filelocs.txt, combines the log file with
the log.sum (if present) then sorts and combines the data.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
No output file is produced as this is a log manipulation utility.
FILE FORMAT KEY
The output file produced is a log file with no format key as this is a log manipulation utility.
ARGUMENTS
None.
NOTES:
The log.sum file is created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
No output file is produced as this is a log manipulation utility.

A F C S a l e s a n d U s e U s e r M a n u a l | 97 of 329
Copyright  2018 Avalara, Inc.

comptnum.exe
COMMAND LINE
comptnum [-z ] outputfilename  [-cl]
DESCRIPTION
The comptnum.exe command reads the log file specified in filelocs.txt and produces comma
delimited text files outputfilename.ssf, outputfilename.nca, and outputfilename.nba (or a unified
file outputfilename.scl) for tax compliance filing.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run.
OUTPUT
Comma Delimited outputfilename.ssf (nca, nba, scl) file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Country, State, County, Locality, PCode, Tax type, Tax Type Description, Tax level, Tax Level
Description, Tax rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes
Figure 5-3 comptnum SSF File Format Key
Description
Country
State
County
Locality
PCode
Tax Type
Tax Type Description
Tax Level
Tax Level Description
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Customer number

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Alpha
Numeric
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Alpha

A F C S a l e s a n d U s e U s e r M a n u a l | 98 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS
-z  - path to zip executable file*

extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

A F C S a l e s a n d U s e U s e r M a n u a l | 99 of 329
Copyright  2018 Avalara, Inc.

SAMPLE DATA
USA, , , , 0, 6, Federal Excise Tax, 0, Federal, 0.030000, 63.946941, 2131.564739, 0.000000, 0.000000, 2131.564739, 2376516.0,

1

USA, CA, , , 253500, 9, P.U.C. Fee, 1, State, 0.001100, 0.072776, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0, 0000000000000002
USA, CA, , , 253500, 10, E911 Tax, 1, State, 0.006500, 0.450252, 69.269518, 0.000000, 0.000000, 69.269518, 155916.0, 0000000000004302
USA, CA, , , 253500, 19, State High Cost Fund, 1, State, 0.024300, 1.607688, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0,
0000000000999999
U,
1SA, CA, , , 253500, 21, CA Teleconnect Fund, 1, State, 0.001600, 0.105856, 66.159998, 0.000000, 0.000000, 66.159998,
155916.0, Customer Number 2
USA, CA, , , 253500, ,
155916.0, User value here

160, CA High Cost Fund A, 1, State, 0.001500, 0.099240, 66.159998, 0.000000, 0.000000, 66.159998,

USA, CO, , , 427200, 13, State Universal Service Fund, 1, State, 0.029000, 0.026172, 0.902500, 0.000000, 0.000000, 0.902500, 1920.0,
xxxxxxxxxxxxxxxx2
USA, CO, DENVER, , 442100, 4, District Tax, 2, County, 0.001000, 0.000211, 0.210945, 0.000000, 0.000000, 0.210945, 246.0,
00000000000000000000

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 100 of 329
Copyright  2018 Avalara, Inc.

comrpt.exe
COMMAND LINE
comrpt [-cl]
DESCRIPTION
The comrpt.exe command reads the log.sum. The data is then formatted to produce a customer
information file called compliance.ssf.
INPUT
Reads the log.sum file.
log.sum – optional input from previous run
OUTPUT
Fixed Length compliance.ssf file.
FILE FORMAT KEY
Figure 5-4 comrpt File Format Key
Description
PCode
Tax Type
Tax Level
Tax Rate
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric
Numeric

Length
9
6
1
8
12
36

Positions
1-9
10-15
16
17-24
25-36

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
None.
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 101 of 329
Copyright  2018 Avalara, Inc.

csf20.exe
COMMAND LINE
csf20 [-z ] outputfilename [-cl]
DESCRIPTION
The csf20.exe command is a processing utility that reads the log file specified in filelocs.txt. It
produces a fixed length file outputfilename.CSF. The command line argument determines the
output file name.
INPUT
Reads the log file as defined by filelocs.txt.
OUTPUT
Fixed Length outputfilename.csf file.
FILE FORMAT KEY
Table 5-3 csf20.exe File Format Key
Description
Customer Number

Type
A/N

Length
20

Positions
1-20

Tax type
Authority level
Tax amount sign
Tax amount
File record length

A/N
A/N
A
N

6
1
1
11.5
39

21-26
27
28
29-39

ARGUMENTS
outputfilename
-z  - path to zip executable file*
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
EZTax.log is not deleted.
filelocs.txt MUST be in the working directory.
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 102 of 329
Copyright  2018 Avalara, Inc.

customsort.exe
COMMAND LINE
customsort -cfg customsort.cfg [-log logfile] [-data datapath] [-work workpath] [-ext extension] [?]
DESCRIPTION
The custom sort utility is designed to allow clients to produce taxation reports which are sorted
and summarized using client-specified fields and/or options. The utility is restricted to fields
available in the AFC transaction log, which can be affected by configuration settings in the
EZTax.cfg.
INPUT
Reads the log file as defined by filelocs.txt.
OUTPUT
User defined.
ARGUMENTS (in any order)
-cfg customsort.cfg
-log logfile
-data 
-work 
-ext 
-summarize 
-out 
-?

: Required. Custom sort configuration to be used.
: EZTax log file to be processed (DEF: EZTax.log).
: Data directory; overrides config file value.
: Working directory; overrides config file value.
: Result file extension without ‘.’; overrides reserved config file extension.
: Log file is summarized into sumfile. On large log files, this option can
substantially speed up the sorting process.
: Output base filename; overrides config file. This option can be used
when there is a need to set the output files from a script so that different
sorts can share the same configuration file.
: Display usage and exit

Refer to the AFC Custom Sort Utility User Manual for more information on this utility.

A F C S a l e s a n d U s e U s e r M a n u a l | 103 of 329
Copyright  2018 Avalara, Inc.

ezcomprep.exe
COMMAND LINE
ezcomprep [-cl]
DESCRIPTION
The ezcomprep.exe command reads the log file specified in filelocs.txt and produces a commadelimited file for compliance filing. It does not include adjustments as part of Gross Sale. Sorting
and combining is performed at the jurisdictional level. It combines the contents of log.sum if it
exists.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited outputfilename.rpt file.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt,
Adjustments, Taxable measure, Minutes
Figure 5-5 ezcomprep File Format Key
Description
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

A F C S a l e s a n d U s e U s e r M a n u a l | 104 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
USA,,,, 6, 0, 0.030000, 29881.866905, 996062.252444, 0.000000, 0.000000, 996062.252444, 14859213.000000

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 105 of 329
Copyright  2018 Avalara, Inc.

ezlog_ns.exe
COMMAND LINE
ezlog_ns outputfilename [-cl]
DESCRIPTION
The ezlog_ns.exe command reads the log file specified in filelocs.txt and produces a commadelimited file for compliance filing.
INPUT
Reads the log file name from filelocs.txt.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited outputfilename.ssf file.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt,
Adjustments, Taxable measure, Minutes
Figure 5-6 ezlog_ns File Format Key
Description
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

ARGUMENTS
outputfilename
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
A F C S a l e s a n d U s e U s e r M a n u a l | 106 of 329
Copyright  2018 Avalara, Inc.

NOTES:
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
USA,,,, 6, 0, 0.030000, 29881.866905, 996062.252444, 0.000000, 0.000000, 996062.252444, 14859213.000000

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 107 of 329
Copyright  2018 Avalara, Inc.

ezlogcust.exe
COMMAND LINE
ezlogcust [-cl]
DESCRIPTION
The ezlogcust.exe command reads the log file specified in filelocs.txt and produces a commadelimited file for customer billing. Sorting and reporting is done at the customer level.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited log.rpt file.
Sorted and condensed by Customer Number, PCode, Tax Type, Tax Level, Tax Rate, Calculation
Type.
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Calculation Type, Tax amount, Gross
Sale, Exempt, Adjustments, Taxable measure, Minutes, Lines, Customer Number
Figure 5-7 ezlogcust File Format Key
Description
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Calculation Type
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines
Customer Number

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Alpha Numeric

A F C S a l e s a n d U s e U s e r M a n u a l | 108 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
USA, , , , 6, 0, 0.030000, RATE, 0.892576, 29.752527, 0.000000, 0.000000, 29.752527, 0.000000, 1, 1, 2143278889
USA, TX, , , 9, 1, 0.001670, RATE, 0.049687, 29.752527, 0.000000, 0.000000, 29.752527, 0.000000, 1, 0, 2143278889
USA, TX, , , 13, 1, 0.036000, RATE, 1.035438, 28.762179, 0.000000, 0.000000, 28.762179, 0.000000, 1, 0, 2143278889
USA, TX, , , 26, 1, 0.012500, RATE, 0.367089, 29.367090, 0.000000, 0.000000, 29.367090, 0.000000, 1, 0, 2143278889
USA, TX, DALLAS, DALLAS, 1, 1, 0.062500, RATE, 1.863693, 29.819089, 0.000000, 0.000000, 29.819089, 0.000000, 1, 0, 2143278889
USA, TX, DALLAS, DALLAS, 1, 3, 0.010000, RATE, 0.298022, 29.802214, 0.000000, 0.000000, 29.802214, 0.000000, 1, 0, 2143278889
USA, TX, DALLAS, DALLAS, 4, 3, 0.010000, RATE, 0.283838, 28.383766, 0.000000, 0.000000, 28.383766, 0.000000, 0, 0, 2143278889
USA, TX, DALLAS, DALLAS, 10, 3, 0.620000, PER_LINE, 0.620000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1, 0, 2143278889
USA, TX, DALLAS, DALLAS, 51, 3, 1.350000, PER_LINE, 1.350000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1, 0, 2143278889
USA, , , , 6, 0, 0.030000, RATE, 0.210216, 7.007192, 0.000000, 0.000000, 7.007192, 5.100000, 0, 0, 2143278889B
USA, , , , 18, 0, 0.072805, RATE, 0.009967, 0.136896, 0.000000, 0.000000, 0.136896, 0.100000, 0, 0, 2143278889B
USA, , , , 31, 0, 0.000730, RATE, 0.000099, 0.135089, 0.000000, 0.000000, 0.135089, 0.100000, 0, 0, 2143278889B
USA, TX, , , 9, 1, 0.001670, RATE, 0.011392, 6.821736, 0.000000, 0.000000, 6.821736, 5.000000, 0, 0, 2143278889B
USA, TX, , , 10, 1, 0.006000, RATE, 0.039000, 6.500000, 0.000000, 0.000000, 6.500000, 5.000000, 0, 0, 2143278889B
USA, TX, , , 13, 1, 0.036000, RATE, 0.242515, 6.736532, 0.000000, 0.000000, 6.736532, 5.100000, 0, 0, 2143278889B
USA, TX, , , 26, 1, 0.012500, RATE, 0.086118, 6.889438, 0.000000, 0.000000, 6.889438, 5.100000, 0, 0, 2143278889B
USA, TX, DALLAS, DALLAS, 1, 1, 0.062500, RATE, 0.436224, 6.979585, 0.000000, 0.000000, 6.979585, 5.100000, 0, 0, 2143278889B
USA, TX, DALLAS, DALLAS, 1, 3, 0.010000, RATE, 0.068331, 6.833129, 0.000000, 0.000000, 6.833129, 5.000000, 0, 0, 2143278889B
USA, TX, DALLAS, DALLAS, 4, 3, 0.010000, RATE, 0.068331, 6.833129, 0.000000, 0.000000, 6.833129, 5.000000, 0, 0, 2143278889B

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 109 of 329
Copyright  2018 Avalara, Inc.

ezlogcustios.exe
COMMAND LINE
ezlogcustios [-cl]
DESCRIPTION
The ezlogcustios.exe command reads the log file specified in filelocs.txt and produces a commadelimited file for customer billing. Sorting and reporting is done at the customer level.
INPUT
Reads the reads the log file specified in filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited log.rpt file.
Sorted and condensed by Customer Number, PCode, Invoice Number, Optional, Service Level
Number, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Invoice Number, Optional, Service Level Number, Country, State, County, Locality, Tax type, Tax
level, Tax rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes,
Customer Number

Figure 5-8 ezlogcustios File Format Key
Description
Invoice Number
Optional
Service Level Number
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes

Type
Numeric
Numeric
Numeric
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
A F C S a l e s a n d U s e U s e r M a n u a l | 110 of 329
Copyright  2018 Avalara, Inc.

Figure 5-8 ezlogcustios File Format Key
Description
Customer Number

Type
Alpha Numeric

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
6, 8, 7, USA, AL, AUTAUGA, AUTAUGAVILLE, 1, 1, 0.040000, RATE, 0.720000, 18.000000, 0.000000, 0.000000, 18.000000, 275.940002, 54, 18,
BillSoft Inc.
6, 8, 7, USA, AL, AUTAUGA, JONES, 1, 2, 0.020000, RATE, 0.320000, 16.000000, 0.000000, 0.000000, 16.000000, 245.280014, 48, 16, BillSoft Inc.
6, 8, 7, USA, AL, AUTAUGA, PRATTVILLE, 1, 3, 0.025000, RATE, 0.050000, 2.000000, 0.000000, 0.000000, 2.000000, 30.660000, 6, 2, BillSoft Inc.
6, 8, 7, USA, AL, AUTAUGA, AUTAUGAVILLE, 1, 3, 0.030000, RATE, 0.060000, 2.000000, 0.000000, 0.000000, 2.000000, 30.660000, 6, 2, BillSoft
Inc.
6, 8, 7, USA, , , , 6, 0, 0.030000, RATE, 14.312928, 477.097605, 0.000000, 0.000000, 477.097605, 5825.416504, 1140, 380, BillSoft Inc.
6, 8, 7, USA, AL, , , 8, 1, 0.060000, RATE, 2.200486, 36.674766, 0.000000, 0.000000, 36.674766, 551.879822, 108, 36, BillSoft Inc.
6, 8, 7, USA, AL, BALDWIN, , 10, 2, 0.690000, PER_LINE, 4.140000, 2.000000, 0.000000, 0.000000, 2.000000, 30.660000, 6, 2, BillSoft Inc.
6, 8, 7, USA, AL, AUTAUGA, , 10, 2, 0.850000, PER_LINE, 35.700001, 14.000000, 0.000000, 0.000000, 14.000000, 214.620010, 42, 14, BillSoft Inc.
6, 8, 7, USA, AL, , , 16, 1, 0.060000, RATE, 7.759929, 129.332160, 0.000000, 0.000000, 129.332160, 1931.577759, 378, 126, BillSoft Inc.
6, 8, 7, USA, , , , 18, 0, 0.089000, RATE, 5.340000, 60.000000, 0.000000, 0.000000, 60.000000, 919.800232, 180, 60, BillSoft Inc.
6, 8, 7, USA, AL, , , 23, 1, 0.150000, PER_LINE, 16.200001, 36.000000, 0.000000, 0.000000, 36.000000, 551.879822, 108, 36, BillSoft Inc.
6, 8, 7, USA, , , , 31, 0, 0.003560, RATE, 0.213600, 60.000000, 0.000000, 0.000000, 60.000000, 919.800232, 180, 60, BillSoft Inc.
6, 8, 7, USA, AL, BALDWIN, , 35, 2, 1.950000, PER_LINE, 11.700000, 2.000000, 0.000000, 0.000000, 2.000000, 30.660000, 6, 2, BillSoft Inc.
6, 8, 7, USA, AL, AUTAUGA, , 35, 2, 2.400000, PER_LINE, 100.800004, 14.000000, 0.000000, 0.000000, 14.000000, 214.620010, 42, 14, BillSoft
Inc.
6, 8, 7, USA, AL, , , 44, 1, 0.700000, FIXED, 12.600000, 18.474840, 0.000000, 0.000000, 18.474840, 275.940002, 54, 18, BillSoft Inc.
6, 8, 7, USA, , , , 55, 0, 0.025365, RATE, 1.014600, 40.000000, 0.000000, 0.000000, 40.000000, 613.199890, 120, 40, BillSoft Inc.
6, 8, 7, USA, , , , 56, 0, 0.010680, RATE, 0.213600, 20.000000, 0.000000, 0.000000, 20.000000, 306.599976, 60, 20, BillSoft Inc.
6, 8, 7, USA, , , , 62, 0, 0.001015, RATE, 0.040600, 40.000000, 0.000000, 0.000000, 40.000000, 613.199890, 120, 40, BillSoft Inc.
6, 8, 7, USA, , , , 63, 0, 0.000427, RATE, 0.008540, 20.000000, 0.000000, 0.000000, 20.000000, 306.599976, 60, 20, BillSoft Inc.

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 111 of 329
Copyright  2018 Avalara, Inc.

ezlogcustpts.exe
COMMAND LINE
ezlogcustpts [-cl]
DESCRIPTION
The ezlogcustpts.exe command reads the log file specified in filelocs.txt and produces a commadelimited file for customer billing. Sorting and reporting is done at the customer level. The sort
key also contains PCode, optional, and Service Level Number fields.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited log.rpt file.
Sorted and condensed by Customer Number, PCode, Optional, Service Level Number, Tax Type,
Tax Level, Tax Rate
FILE FORMAT KEY
PCode, Transaction type, Service Type, Country, State, County, Locality, Tax type, Tax level, Tax
rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes, Customer
Number.
Figure 5-9 ezlogcustpts File Format Key
Description
PCode
Optional
Service Level Number
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes

Type
Numeric
Numeric
Numeric
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
A F C S a l e s a n d U s e U s e r M a n u a l | 112 of 329
Copyright  2018 Avalara, Inc.

Figure 5-9 ezlogcustpts File Format Key
Description
Customer Number

Type
Alpha Numeric

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
•

WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
0, 1, 1, USA,,,, 6, 0, 0.030000, 0.128824, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
0, 1, 1, USA,,,, 18, 0, 0.072805, 0.291220, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 1, USA,,,, 31, 0, 0.000730, 0.002920, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 2, USA,,,, 6, 0, 0.030000, 0.128824, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
0, 1, 2, USA,,,, 18, 0, 0.072805, 0.291220, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 2, USA,,,, 31, 0, 0.000730, 0.002920, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 3, USA,,,, 6, 0, 0.030000, 0.128824, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
0, 1, 3, USA,,,, 18, 0, 0.072805, 0.291220, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 3, USA,,,, 31, 0, 0.000730, 0.002920, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 4, USA,,,, 18, 0, 0.072805, 0.291220, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 1, 4, USA,,,, 31, 0, 0.000730, 0.002920, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 2, 1, USA,,,, 6, 0, 0.030000, 0.120000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 2, 2, USA,,,, 6, 0, 0.030000, 0.120000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 2, 3, USA,,,, 6, 0, 0.030000, 0.120000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 2, 5, USA,,,, 6, 0, 0.030000, 0.120000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
0, 3, 6, USA,,,, 6, 0, 0.030000, 0.360000, 12.000000, 0.000000, 0.000000, 12.000000, 183.960007, BillSoft, Inc.
0, 3, 9, USA,,,, 6, 0, 0.030000, 0.120000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 1, 1, USA, AL, , , 16, 1, 0.060000, 0.257648, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
100, 1, 2, USA, AL, , , 16, 1, 0.060000, 0.257648, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
100, 1, 3, USA, AL, , , 16, 1, 0.060000, 0.257648, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
100, 1, 4, USA, AL, , , 16, 1, 0.060000, 0.257648, 4.294140, 0.000000, 0.000000, 4.294140, 61.320000, BillSoft, Inc.
100, 2, 1, USA, AL, , , 16, 1, 0.060000, 0.240000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 2, 2, USA, AL, , , 16, 1, 0.060000, 0.240000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 2, 3, USA, AL, , , 16, 1, 0.060000, 0.240000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 2, 4, USA, AL, , , 16, 1, 0.060000, 0.240000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 2, 5, USA, AL, , , 16, 1, 0.060000, 0.240000, 4.000000, 0.000000, 0.000000, 4.000000, 61.320000, BillSoft, Inc.
100, 3, 6, USA, AL, , , 16, 1, 0.060000, 0.720000, 12.000000, 0.000000, 0.000000, 12.000000, 183.960007, BillSoft, Inc.
200, 2, 5, USA, AL, AUTAUGA, , 10, 2, 0.050000, 0.100000, 2.000000, 0.000000, 0.000000, 2.000000, 30.660000, BillSoft, Inc.

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 113 of 329
Copyright  2018 Avalara, Inc.

ezlogcustptslnl.exe
COMMAND LINE
ezlogcustptslnl [-cl]
DESCRIPTION
The ezlogcustptslnl.exe command reads the log file specified in filelocs.txt and produces a
comma-delimited file for customer billing. Sorting and reporting is done at the customer level. In
addition to the PCode, optional, and Service Level Number fields and the number of lines are also
included.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma delimited log.rpt file.
Sorted and condensed by Customer Number, PCode, Optional, Service Level Number, Tax Type,
Tax Level, Tax Rate
FILE FORMAT KEY
PCode, Transaction type, Service Type, Country, State, County, Locality, Tax type, Tax level, Tax
rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes, Customer
Number, Lines
Figure 5-10 ezlogcustptslnl File Format Key
Description
PCode
Optional
Service Level Number
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments

Type
Numeric
Numeric
Numeric
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
A F C S a l e s a n d U s e U s e r M a n u a l | 114 of 329
Copyright  2018 Avalara, Inc.

Figure 5-10 ezlogcustptslnl File Format Key
Description
Taxable Measure
Minutes
Customer Number
Lines

Type
Numeric
Numeric
Alpha Numeric
Numeric

ARGUMENTS
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
•

WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
0, 0, 0, USA, , , , 6, 0, 0.030000, 2.462930, 82.097663, 0.000000, 0.000000, 82.097663, 0.000000, BillSoft, Inc. , 6, 2
0, 0, 0, USA, , , , 18, 0, 0.089000, 1.157000, 13.000000, 0.000000, 0.000000, 13.000000, 0.000000, BillSoft, Inc. , 0, 0
0, 0, 0, USA, , , , 31, 0, 0.000000, 0.000000, 13.000000, 13.000000, 0.000000, 0.000000, 0.000000, BillSoft, Inc. , 0, 0
1210800, 0, 0, USA, KS, , , 13, 1, 0.048700, 1.458565, 29.949999, 0.000000, 0.000000, 29.949999, 0.000000, BillSoft, Inc. , 0, 0
1284800, 0, 0, USA, KS, SALINE, , 10, 2, 0.750000, 2.250000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, BillSoft, Inc. , 3, 0
1284900, 0, 0, USA, KS, SALINE, SALINA, 1, 1, 0.053000, 2.039814, 38.487064, 0.000000, 0.000000, 38.487064, 0.000000, BillSoft, Inc. , 0, 0
1284900, 0, 0, USA, KS, SALINE, SALINA, 1, 2, 0.010000, 0.384871, 38.487064, 0.000000, 0.000000, 38.487064, 0.000000, BillSoft, Inc. , 0, 0
1284900, 0, 0, USA, KS, SALINE, SALINA, 1, 3, 0.007500, 0.288653, 38.487064, 0.000000, 0.000000, 38.487064, 0.000000, BillSoft, Inc. , 0, 0
2502500, 0, 0, USA, NY, , , 5, 1, 0.025000, 0.925712, 37.028499, 0.000000, 0.000000, 37.028499, 0.000000, BillSoft, Inc. , 0, 0
2502500, 0, 0, USA, NY, , , 45, 1, 0.003750, 0.138857, 37.028499, 0.000000, 0.000000, 37.028499, 0.000000, BillSoft, Inc. , 0, 0
2604000, 0, 0, USA, NY, NEW YORK, , 10, 2, 1.000000, 3.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, BillSoft, Inc. , 3, 0
2604000, 0, 0, USA, NY, NEW YORK, , 27, 2, 0.005950, 0.220320, 37.028499, 0.000000, 0.000000, 37.028499, 0.000000, BillSoft, Inc. , 0, 0
2604000, 0, 0, USA, NY, NEW YORK, , 28, 2, 0.001275, 0.047211, 37.028499, 0.000000, 0.000000, 37.028499, 0.000000, BillSoft, Inc. , 0, 0
2604100, 0, 0, USA, NY, NEW YORK, NEW YORK, 1, 1, 0.042500, 1.630325, 38.360599, 0.000000, 0.000000, 38.360599, 0.000000, BillSoft, Inc.
, 0, 0
2604100, 0, 0, USA, NY, NEW YORK, NEW YORK, 1, 3, 0.043750, 1.678276, 38.360599, 0.000000, 0.000000, 38.360599, 0.000000, BillSoft, Inc.
, 0, 0
2604100, 0, 0, USA, NY, NEW YORK, NEW YORK, 29, 3, 0.023500, 0.870170, 37.028499, 0.000000, 0.000000, 37.028499, 0.000000, BillSoft, Inc.
, 0, 0

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 115 of 329
Copyright  2018 Avalara, Inc.

EZTaxappend.exe
COMMAND LINE
EZTaxappend logfilename1.log logfilename2.log
DESCRIPTION
The EZTaxappend.exe command is used to combine two logfilename.log files. It appends
logfilename1.log to logfilename2.log, leaving logfilename1.log intact.
INPUT
logfilename1.log
OUTPUT
logfilename2.log
FILE FORMAT KEY
The output file produced is a log file with no format key as this is a log manipulation utility.
ARGUMENTS
logfilename1.log – the name of the EZTaxlog file to be appended
logfilename2.log – the name of the EZTaxlog file to be appended to.
NOTES:
•
•
•
•

log.sum is NOT created.
EZTax.log is NOT deleted.
logfilename1.log and logfilename2.log must be actual filenames.
Filelocs.txt is not used.

A F C S a l e s a n d U s e U s e r M a n u a l | 116 of 329
Copyright  2018 Avalara, Inc.

EZTaxappendf.exe
COMMAND LINE
EZTaxappendf filelist.txt extaxlogfilename.log
DESCRIPTION
The EZTaxappendf.exe command is used to combine the logfilename.log files listed in the
filelist.txt text file containing the paths and logfilename.log names to combine.
INPUT
Filelist.txt
OUTPUT
logfilename.log
FILE FORMAT KEY
The output file produced is a log file with no format key as this is a log manipulation utility.
ARGUMENTS
Filelist.txt – the text file supplied by the user with the names of the logfilename.log files.
logfilename.log – the name of the new logfilename.log to be created.
NOTES:
•
•
•
•
•
•

logfilename.log will be created if it does not exist. Otherwise it will append to the existing
logfilename.log file.
All log files defined in Filelist.txt are concatenated to logfilename.log
log.sum is NOT created.
EZTax.log is NOT deleted.
Filelocs.txt is not used.
Filelist.txt entries can be space or line delimited.

A F C S a l e s a n d U s e U s e r M a n u a l | 117 of 329
Copyright  2018 Avalara, Inc.

log no tax transactions
DESCRIPTION
LOGNOTAXTRANS=OFF
LOGNOTAXTRANS=ON
The Log No Tax Transaction option is used to allow writing zero tax amount transactions to the EZTax.ntl
log file. The default setting of “OFF” disables this logging function. When set to “ON,” AFC will write zero
tax amount transactions to the EZTax.ntl log file.
The no tax transaction log is used to track transactions that do not return any tax types and therefore do
not perform tax calculations. This allows for the distinction from a transaction that logs zero tax when a
calculation has occurred and resulted in a value of zero which is then placed in EZTax.log.
The no tax transaction log will be named [logname].ntl in which logname refers to the name of the AFC
transaction log file, minus the extension, and will be output to the same directory as the log file.
Example of Naming Convention:
(Based on the assumption that the billing system has two sessions with log files named SessionA.log and
SessionB.log.)
The output from a normal run with no tax transaction logging enabled would be:
SessionA.log
SessionA.sta
SessionA.tsr
SessionA.ntl
SessionB.log
SessionB.sta
SessionB.tsr
SessionB.ntl

NOTE:

The lognotaxtrans switch is over-ridden by the overall logging switch. If
logging is turned off when the EZTaxInitEx function initializes the AFC
session, the no-tax-trans log will not be created.
FILE FORMAT KEY
Short Format:
Company Identifier, Customer Number, Transaction Type, Service Type, P Code, Charge

A F C S a l e s a n d U s e U s e r M a n u a l | 118 of 329
Copyright  2018 Avalara, Inc.

Figure 5-11 Short EZTax.ntl Log File Format Key
Description
Company Identifier
Customer Number
Transaction Type
Service Type
P Code
Charge
Record Length

Type
Alpha
Numeric
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric

Length

Positions

20

1-20

20

21-40

4
4
10
15.5
73

41-44
45-48
49-58
59-73

Long Format:
Company Identifier, Customer Number, Optional Alpha Text, Transaction Type, Service Type, P Code,
Charge
Figure 5-12 EZTax.ntl Long Log File Format Key
Description
Company Identifier
Customer Number
Optional Alpha
Transaction Type
Service Type
P Code
Charge
Record Length

Type
Alpha
Numeric
Alpha
Numeric
Alpha
Numeric
Numeric
Numeric
Numeric

Length

Positions

20

1-20

20

21-40

20
4
4
10
15.5
93

41-60
61-64
65-68
69-78
79-93

NOTES:
None
SAMPLE DATA
Short Format:
company_identifier, customer_number, transaction_type, service_type, P_Code, charge
--- Sample output begins on the next line ---------EZtax version 9.0.0.0.5 No-tax Transaction Log
6215687423a,
TU98602746, 0001, 0027, 2102300,
6215687423a,
OP97602744, 0001, 0027, 2102300,
6215687423a,
104602742, 0004, 0008, 2102300,
6215687423a,
555602718, 0001, 0027, 2102300,
6215687423a,
16055602716, 0001, 0027, 2102300,
6215687423a,
22602711, 0001, 0027, 2102300,
6215687423a,
19602709, 0003, 0006, 2102300,
6215687423a,
33602707, 0001, 0027, 2102300,
6215687423a,
55602705, 0001, 0027, 2102300,
6215687423a,
LD55602703, 0001, 0027, 2102300,
6215687423a,
56602701, 0003, 0006, 2102300,

1395.00000
630.00000
950.00000
100.00000
100.00000
100.00000
266.44000
300.00000
500.00000
100.00000
266.44000

A F C S a l e s a n d U s e U s e r M a n u a l | 119 of 329
Copyright  2018 Avalara, Inc.

6215687423a,
6215687423a,
6215687423a,

57602699, 0001, 0027, 2102300,
58602697, 0001, 0027, 2102300,
58587819, 0001, 0027, 2350600,

300.00000
500.00000
500.00000

Long Format:
company_identifier, customer_number, optional alpha text, transaction_type, service_type, P_Code, charge
--- Sample output begins on the next line ---------EZtax version 9.0.0.0.5 No-tax Transaction Log
6215687423a,
TU98602746,
Optional Text, 0001, 0027, 2102300,
6215687423a,
OP97602744,
Optional Text, 0001, 0027, 2102300,
6215687423a,
104602742,
Optional Text, 0004, 0008, 2102300,
6215687423a,
555602718,
Optional Text, 0001, 0027, 2102300,
6215687423a,
16055602716,
Optional Text, 0001, 0027, 2102300,
6215687423a,
22602711,
Optional Text, 0001, 0027, 2102300,
6215687423a,
19602709,
Optional Text, 0003, 0006, 2102300,
6215687423a,
33602707,
Optional Text, 0001, 0027, 2102300,
6215687423a,
55602705,
Optional Text, 0001, 0027, 2102300,
6215687423a,
LD55602703,
Optional Text, 0001, 0027, 2102300,
6215687423a,
56602701,
Optional Text, 0003, 0006, 2102300,
6215687423a,
57602699,
Optional Text, 0001, 0027, 2102300,
6215687423a,
58602697,
Optional Text, 0001, 0027, 2102300,
6215687423a,
58587819,
Optional Text, 0001, 0027, 2350600,

1395.00000
630.00000
950.00000
100.00000
100.00000
100.00000
266.44000
300.00000
500.00000
100.00000
266.44000
300.00000
500.00000
500.00000

A F C S a l e s a n d U s e U s e r M a n u a l | 120 of 329
Copyright  2018 Avalara, Inc.

srtcdf20.exe
COMMAND LINE
srtcdf20 [-z ] outputfilename [-nN] [extralogfilename] [-cl]
DESCRIPTION
The srtcdf20.exe command reads the log file specified in filelocs.txt and produces a fixed length
text file outputfilename.ssf for tax compliance filing and a fixed length text file outputfilename.csf
for customer billing.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run, or uses the extralogfilename from the command line.
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEYS
Figure 5-13 srtcdf20 SSF File Format Key
Description
PCode
Tax Type
Tax Level
Tax Rate
Tax Amount Sign
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric
Alpha
Numeric

Length
9
6
1
8.5
1
11.5
36

Positions
1-9
10-15
16
17-24
25
26-36

Figure 5-14 srtcdf20 CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric

Length
20
6
1
12
39

Positions
1-20
21-26
27
28-39

A F C S a l e s a n d U s e U s e r M a n u a l | 121 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS:
-z  - path to zip executable file*
N or n – CSF file is not sorted
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA

0
1
2
3
123456789012345678901234567890123456
-----------------------------------------------------------000000000000006000003000+00098418707
000000000000007000000580+00018387113
000000000000018000003180+00081599822
000000000000031000000039+00001000752
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 122 of 329
Copyright  2018 Avalara, Inc.

srtcdf20p.exe
COMMAND LINE
srtcdf20p [-z ] outputfilename [-nN] [-cl]
DESCRIPTION
The srtcdf20p.exe command reads the log file specified in filelocs.txt and produces a fixed length
text file outputfilename.ssf for tax compliance filing and a fixed length text file outputfilename.csf
for customer billing.
The .csf file is used for import into the billing system to populate customer bills. Various
compliance vendors use the .ssf file. The csf file also contains the PCode.
INPUT
Reads the logfile as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEYS
Figure 5-15 srtcdf20p SSF File Format Key
Description
PCode
Tax Type
Tax Level
Tax Rate
Tax Amount Sign
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric
Alpha
Numeric

Length
9
6
1
8.5
1
11.5
36

Positions
1-9
10-15
16
17-24
25
26-36

Figure 5-16 srtcdf20p CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount
PCode

Type
Numeric
Numeric
Numeric
Numeric
Numeric

Length
20
6
1
12
9

Positions
1-20
21-26
27
28-39
40-48

A F C S a l e s a n d U s e U s e r M a n u a l | 123 of 329
Copyright  2018 Avalara, Inc.

Figure 5-16 srtcdf20p CSF File Format Key
Description
File Record Length

Type

Length
48

Positions

ARGUMENTS:
-z  - path to zip executable file*
N or n – CSF file is not sorted
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 124 of 329
Copyright  2018 Avalara, Inc.

srtcomcust20.exe
COMMAND LINE
srtcomcust20 [-z ] outputfilename [nN] [extra log file name] [-cl]
DESCRIPTION
The srtcomcust20.exe command reads the log file specified in filelocs.txt and produces a comma
delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing.
The .csf file is used for import into the billing system to populate customer bills. The commadelimited .ssf file is sorted at the customer level.
INPUT
Reads the log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run or uses the extra log file name from the command
line.
OUTPUT
Comma Delimited outputfilename.ssf file for tax compliance filing.
Sorted and condensed by Customer Number, PCode, Tax Type, Tax Level, Tax Rate, Calculation
Type.
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate

FILE FORMAT KEY
Figure 5-17 srtcomcust20 SSF File Format Key
Description
Country
State
County
Locality
PCode
Tax Type
Tax Level
Tax Rate
Calculation Type
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
A F C S a l e s a n d U s e U s e r M a n u a l | 125 of 329
Copyright  2018 Avalara, Inc.

Figure 5-17 srtcomcust20 SSF File Format Key
Description
Minutes
Lines
Customer Number

Type
Numeric
Numeric
Alpha Numeric

Figure 5-18 srtcomcust20 CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric

Length
20
6
1
12
39

Positions
1-20
21-26
27
28-39

ARGUMENTS:
-z  - path to zip executable file*
N or n – CSF file is not sorted
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

srtcomma20.exe

A F C S a l e s a n d U s e U s e r M a n u a l | 126 of 329
Copyright  2018 Avalara, Inc.

COMMAND LINE
Srtcomma20 [-z ] outputfilename [nN] [extra log file name][-cl]
DESCRIPTION
The srtcomma20.exe command reads the log file specified in filelocs.txt and produces a comma
delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing.
The .csf file is used for import into the billing system to populate customer bills. The commadelimited .ssf file is sorted at the jurisdictional level.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run or uses the extra log file name from the command
line.
OUTPUT
log.sum – sorted and condensed log file as optional input for next run
Comma Delimited outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt,
Adjustments, Taxable measure, Minutes
Figure 5-19 srtcomma20 SSF File Format Key
Description
Country
State
County
Locality
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

A F C S a l e s a n d U s e U s e r M a n u a l | 127 of 329
Copyright  2018 Avalara, Inc.

Figure 5-19 srtcomma20 SSF File Format Key
Description

Type
Numeric

Minutes

Figure 5-20 srtcomma20 CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount Sign
Tax Amount
File Record Length

Type
Alpha
Numeric
Numeric
Alpha
Numeric

Length
20
6
1
1
11.5
39

Positions
1-20
21-26
27
28
29-39

ARGUMENTS:
-z  - path to zip executable file*
N or n – CSF file is not sorted
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
• The Tax Rate field is sensitive to positive and negative values
• The log.sum file is NOT created
• WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
SAMPLE DATA
USA,,,, 6, 0, 0.030000, 29881.866905, 996062.252444, 0.000000, 0.000000, 996062.252444, 14859213.000000
USA,,,, 7, 0, 0.007600, 10116.132171, 1331070.000000, 0.000000, 0.000000, 1331070.000000, 20410578.000000
USA,,,, 18, 0, 0.031400, 11145.492379, 354952.000000, 0.000000, 0.000000, 354952.000000, 5446827.000000
USA, AL, , , 16, 1, 0.067000, 969.972210, 14477.196802, 0.000000, 0.000000, 14477.196802, 220238.671875
USA, AZ, , , 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014
USA, AZ, , , 10, 1, 0.012500, 9.068400, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578
USA, AZ, , , 12, 1, 0.011000, 7.980192, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578
USA, AZ, APACHE, , 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014
USA, AZ, APACHE, , 1, 2, 0.027000, 0.435283, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014
USA, AZ, APACHE, SPRINGERVILLE, 1, 1, 0.050000, 0.705320, 14.106400, 0.000000, 0.000000, 14.106400, 214.620010

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 128 of 329
Copyright  2018 Avalara, Inc.

srtcomma20l.exe
COMMAND LINE
srtcomma20l [-z ] outputfilename  <-p> <-s>   [cl]
DESCRIPTION
The srtcomma20l.exe command reads the log file specified in filelocs.txt and produces a comma
delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing, separating adjustments.
The .csf file is used for import into the billing system to populate customer bills. The commadelimited .ssf file is sorted at the jurisdictional level. The .ssf file also contains the number of
lines.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run or uses the extra log file name from the command
line.
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate.
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate, Tax Amount.
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt,
Adjustments, Taxable measure, Minutes, Lines
WITH -p OPTION SPECIFIED
PCode, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable
measure, Minutes, Lines
Figure 5-21 srtcomma20l SSF File Format Key
without –p option
Description
Country
State
County
Locality

Type
Alpha
Alpha
Alpha
Alpha

A F C S a l e s a n d U s e U s e r M a n u a l | 129 of 329
Copyright  2018 Avalara, Inc.

Figure 5-21 srtcomma20l SSF File Format Key
without –p option
Description
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines

Type
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

Figure 5-22 srtcomma20l SSF File Format Key
with –p option
Description

Type
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

PCode
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines

Figure 5-23 srtcomma20l CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount Sign
Tax Amount
File Record Length

Type
Alpha
Numeric
Numeric
Alpha
Numeric

Length
20
6
1
1
11.5
39

Positions
1-20
21-26
27
28
29-39

ARGUMENTS
-z  - path to zip executable file*
N or n – .csf file is unsorted
-p – add PCode to ssf file. Does not add PCode to csf file
-s – produce only the ssf. The .csf file is not created.
-pcsf – add PCode to csf file.
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.

A F C S a l e s a n d U s e U s e r M a n u a l | 130 of 329
Copyright  2018 Avalara, Inc.

* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
USA,,,, 6, 0, 0.030000, 29881.866905, 996062.252444, 0.000000, 0.000000, 996062.252444, 14859213.000000, 0
USA,,,, 7, 0, 0.007600, 10116.132171, 1331070.000000, 0.000000, 0.000000, 1331070.000000, 20410578.000000, 0
USA,,,, 18, 0, 0.031400, 11145.492379, 354952.000000, 0.000000, 0.000000, 354952.000000, 5446827.000000, 0
USA, AL, , , 16, 1, 0.067000, 969.972210, 14477.196802, 0.000000, 0.000000, 14477.196802, 220238.671875, 0
USA, AZ, , , 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
USA, AZ, , , 10, 1, 0.012500, 9.068400, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578, 0
USA, AZ, , , 12, 1, 0.011000, 7.980192, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578, 0
USA, AZ, APACHE, , 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
USA, AZ, APACHE, , 1, 2, 0.027000, 0.435283, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
USA, AZ, APACHE, SPRINGERVILLE, 1, 1, 0.050000, 0.705320, 14.106400, 0.000000, 0.000000, 14.106400, 214.620010, 0

SAMPLE DATA WITH -p OPTION
0, 6, 0, 0.030000, 29881.866905, 996062.252444, 0.000000, 0.000000, 996062.252444, 14859213.000000, 0
0, 7, 0, 0.007600, 10116.132171, 1331070.000000, 0.000000, 0.000000, 1331070.000000, 20410578.000000, 0
0, 18, 0, 0.031400, 11145.492379, 354952.000000, 0.000000, 0.000000, 354952.000000, 5446827.000000, 0
100, 16, 1, 0.067000, 969.972210, 14477.196802, 0.000000, 0.000000, 14477.196802, 220238.671875, 0
125300, 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
125300, 10, 1, 0.012500, 9.068400, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578, 0
125300, 12, 1, 0.011000, 7.980192, 725.472000, 0.000000, 0.000000, 725.472000, 11037.642578, 0
125400, 1, 1, 0.050000, 0.806080, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
125400, 1, 2, 0.027000, 0.435283, 16.121600, 0.000000, 0.000000, 16.121600, 245.280014, 0
125500, 1, 1, 0.050000, 0.705320, 14.106400, 0.000000, 0.000000, 14.106400, 214.620010, 0

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 131 of 329
Copyright  2018 Avalara, Inc.

srtcomma20ld.exe
COMMAND LINE
srtcomma20ld [-z ] outputfilename  <-p> <-s>  
[-cl] [-tc]
DESCRIPTION
The srtcomma20ld.exe command reads the log file specified in filelocs.txt and produces a comma
delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing, separating adjustments.
The .csf file is used for import into the billing system to populate customer bills. The commadelimited .ssf file is sorted at the jurisdictional level. The .ssf file also contains the number of
lines.
Note: srtcomma20ld handles adjustments differently than srtcomma20l does by subtracting the
adjustment from the Gross Sales before the Net Taxable Amount is calculated.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run or uses the extra log file name from the command
line.
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate.
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate, Tax Amount.
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Discount type, Calculation type, Tax rate, Tax
amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes, Lines
WITH -p OPTION SPECIFIED
PCode, Tax type, Tax level, Discount type, Calculation type, Tax rate, Tax amount, Gross Sale,
Exempt, Adjustments, Taxable measure, Minutes, Lines

A F C S a l e s a n d U s e U s e r M a n u a l | 132 of 329
Copyright  2018 Avalara, Inc.

Figure 5-24 srtcomma20ld SSF File Format Key
without –p option
Description
Country
State
County
Locality
Tax Type
Tax Level
Discount Type
Calculation Type
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

Figure 5-25 srtcomma20ld SSF File Format Key
with –p option
Description

Type
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

PCode
Tax Type
Tax Level
Discount Type
Calculation Type
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines

Figure 5-26 srtcomma20l CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount Sign
Tax Amount
Tax Category (optional)
File Record Length

Type
Alpha
Numeric
Numeric
Alpha
Numeric
Alpha

Length
20
6
1
1
11.5
50
39 or 89

Positions
1-20
21-26
27
28
29-39
40-69

A F C S a l e s a n d U s e U s e r M a n u a l | 133 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS
-z  - path to zip executable file*
N or n – .csf file is unsorted
-p – add PCode to ssf file. Does not add PCode to csf file
-s – produce only the ssf. The .csf file is not created.
-pcsf – add PCode to csf file.
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
-tc adds the tax category description to the end of each line
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
USA, NY, NEW YORK, NEW YORK, 1, 1, 0, 1, 0.042500, 50.950600, 1198.837637, 0.000000, 0.000000, 1198.837637, 480.0, 0
USA, NY, NEW YORK, NEW YORK, 1, 3, 0, 1, 0.041250, 49.452053, 1198.837637, 0.000000, 0.000000, 1198.837637, 480.0, 0
USA, PA, BERKS, KEMPTON, 1, 1, 0, 1, 0.060000, 58.370907, 972.848456, 0.000000, 0.000000, 972.848456, 240.0, 0
USA, PA, SCHUYLKILL, NEW PHILADELPHIA, 1, 1, 0, 1, 0.060000, 58.370907, 972.848456, 0.000000, 0.000000, 972.848456, 240.0, 0

SAMPLE DATA WITH -p OPTION
1040600, 1, 1, 0, 1, 0.060000, 34.397387, 573.289778, 0.000000, 0.000000, 573.289778, 240.0, 0
1054600, 1, 1, 0, 1, 0.060000, 34.397387, 573.289778, 0.000000, 0.000000, 573.289778, 240.0, 0
1615500, 1, 1, 0, 1, 0.050000, 25.328978, 506.579556, 0.000000, 0.000000, 506.579556, 480.0, 0
2395900, 1, 1, 0, 1, 0.060000, 111.182681, 1853.044679, 0.000000, 0.000000, 1853.044679, 480.0, 0
2604100, 1, 1, 0, 1, 0.042500, 50.950600, 1198.837637, 0.000000, 0.000000, 1198.837637, 480.0, 0
2604100, 1, 3, 0, 1, 0.041250, 49.452053, 1198.837637, 0.000000, 0.000000, 1198.837637, 480.0, 0
3232600, 1, 1, 0, 1, 0.060000, 58.370907, 972.848456, 0.000000, 0.000000, 972.848456, 240.0, 0
3415300, 1, 1, 0, 1, 0.060000, 58.370907, 972.848456, 0.000000, 0.000000, 972.848456, 240.0, 0

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 134 of 329
Copyright  2018 Avalara, Inc.

srtcommadetail.exe
COMMAND LINE
srtcommadetail [-z ] outputfilename [nN] <-nocsf>  [-cl]
DESCRIPTION
The srtcommadetail.exe command reads the log file specified in filelocs.txt and produces a
comma delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run.
OUTPUT
Comma Delimited outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Country, State, County, Locality, PCode, Tax type, Tax Type Description, Tax level, Tax Level Description,
Tax rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable measure, Minutes
Figure 5-27 srtcommadetail SSF File Format Key
Description
Country
State
County
Locality
PCode
Tax Type
Tax Type Description
Tax Level
Tax Level Description
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes

Type
Alpha
Alpha
Alpha
Alpha
Numeric
Numeric
Alpha
Numeric
Alpha
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
A F C S a l e s a n d U s e U s e r M a n u a l | 135 of 329
Copyright  2018 Avalara, Inc.

Figure 5-28 srtcommadetail CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount Sign
Tax Amount
File Record Length

Type
Alpha
Numeric
Numeric
Alpha
Numeric

Length
20
6
1
1
11.5
39

Positions
1-20
21-26
27
28
29-39

ARGUMENTS
-z  - path to zip executable file*

n or N – csf file is not sorted
-nocsf – csf file is not created
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
USA, , , , 0, 6, Federal Excise Tax, 0, Federal, 0.030000, 63.946941, 2131.564739, 0.000000, 0.000000, 2131.564739, 2376516.0
USA, CA, , , 253500, 9, P.U.C. Fee, 1, State, 0.001100, 0.072776, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0
USA, CA, , , 253500, 10, E911 Tax, 1, State, 0.006500, 0.450252, 69.269518, 0.000000, 0.000000, 69.269518, 155916.0
USA, CA, , , 253500, 19, State High Cost Fund, 1, State, 0.024300, 1.607688, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0
USA, CA, , , 253500, 21, CA Teleconnect Fund, 1, State, 0.001600, 0.105856, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0
USA, CA, , , 253500, 60, CA High Cost Fund A, 1, State, 0.001500, 0.099240, 66.159998, 0.000000, 0.000000, 66.159998, 155916.0
USA, CO, , , 427200, 13, State Universal Service Fund, 1, State, 0.029000, 0.026172, 0.902500, 0.000000, 0.000000, 0.902500, 1920.0
USA, CO, DENVER, , 442100, 4, District Tax, 2, County, 0.001000, 0.000211, 0.210945, 0.000000, 0.000000, 0.210945, 246.0

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 136 of 329
Copyright  2018 Avalara, Inc.

srtrev20l.exe
COMMAND LINE
srtrev20l [-z ] outputfilename  <-p> <-s>   [-cl] [tc]
DESCRIPTION
The srtrev20l.exe command reads the log file specified in filelocs.txt and produces a comma
delimited text file outputfilename.ssf for tax compliance filing and a fixed length text file
outputfilename.csf for customer billing, separating adjustments. It is intended for use with log
files created using the tax inclusive calculation functionality in AFC.
The .csf file is used for import into the billing system to populate customer bills. The commadelimited .ssf file is sorted at the jurisdictional level. The .ssf file also contains the number of
lines.
INPUT
Reads the logfilename.log file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run or uses the extra log file name from the command
line.
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate.
Fixed Length outputfilename.csf file for customer billing.
Sorted and condensed by Customer Number, Tax Type, Tax Level, Tax Rate, Tax Amount.
FILE FORMAT KEY
Country, State, County, Locality, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt,
Adjustments, Taxable measure, Minutes, Lines, Sale amount
WITH -p OPTION SPECIFIED
PCode, Tax type, Tax level, Tax rate, Tax amount, Gross Sale, Exempt, Adjustments, Taxable
measure, Minutes, Lines

Country
State

Figure 5-29 srtrev20l SSF File Format Key
without –p option
Description
Type
Alpha
Alpha

A F C S a l e s a n d U s e U s e r M a n u a l | 137 of 329
Copyright  2018 Avalara, Inc.

Figure 5-29 srtrev20l SSF File Format Key
without –p option
Description
Type
County
Alpha
Locality
Alpha
Tax Type
Numeric
Tax Level
Numeric
Tax Rate
Numeric
Tax Amount
Numeric
Gross Sale
Numeric
Exempt
Numeric
Adjustments
Numeric
Taxable Measure
Numeric
Minutes
Numeric
Lines
Numeric
Sale Amount
Numeric

Figure 5-30 srtrev20l SSF File Format Key
with –p option
Description

Type
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric
Numeric

PCode
Tax Type
Tax Level
Tax Rate
Tax Amount
Gross Sale
Exempt
Adjustments
Taxable Measure
Minutes
Lines
Sale Amount

Figure 5-31 srtrev20l CSF File Format Key
Description
Customer Number
Tax Type
Tax Level
Tax Amount Sign
Tax Amount
Tax Category (optional)
Base Sale Amount (optional)
File Record Length

Type
Alpha
Numeric
Numeric
Alpha
Numeric
Alpha
Numeric

Length
20
6
1
1
11.5
50
8
39, 47, 69, or 77

Positions
1-20
21-26
27
28
29-39
40-69
40-47 or 70-77

A F C S a l e s a n d U s e U s e r M a n u a l | 138 of 329
Copyright  2018 Avalara, Inc.

ARGUMENTS
-z  - path to zip executable file*
N or n – .csf file is unsorted
-p – add PCode to ssf file. Does not add PCode to csf file
-s – produce only the ssf. The .csf file is not created.
-pcsf – add PCode to csf file.
extra log file name – use instead of log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
-tc adds the tax category description to the end of each line in the csf
-b adds the base sale amount to the end of each linein the csf
* The pkzip executable option is only available with the windows platform.
NOTES:
•
•
•

The Tax Rate field is sensitive to positive and negative values
The log.sum file is NOT created
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.

SAMPLE DATA
USA, , , , 55, 0, 0.136000, 2.086860, 41.360000, 26.015440, 0.000000, 15.344560, 3.5, 0, 41.36
USA, , , , 170, 0, 0.015000, 0.015000, 41.360000, 26.015440, 0.000000, 15.344560, 3.5, 0, 41.36
USA, PA, , , 44, 1, 1.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 3.5, 0, 41.36
USA, PA, ALLEGHENY, PITTSBURGH, 1, 1, 0.060000, 2.738097, 45.634953, 0.000000, 0.000000, 45.634953, 3.5, 0, 41.36
USA, PA, ALLEGHENY, PITTSBURGH, 1, 2, 0.010000, 0.456350, 45.634953, 0.000000, 0.000000, 45.634953, 3.5, 0, 41.36
USA, PA, ALLEGHENY, PITTSBURGH, 14, 1, 0.050000, 2.173093, 43.461860, 0.000000, 0.000000, 43.461860, 3.5, 0, 41.36

SAMPLE DATA WITH -p OPTION
0, 55, 0, 0.136000, 0.000000, 82.720000, 52.030880, 15.344560, 15.344560, 7.0, 0, 82.72
0, 170, 0, 0.015000, 0.000000, 82.720000, 52.030880, 15.344560, 15.344560, 7.0, 0, 82.72
3198500, 44, 1, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 7.0, 0, 82.72
3206100, 1, 1, 0.060000, 0.000000, 91.269906, 0.000000, 45.634953, 45.634953, 7.0, 0, 82.72
3206100, 1, 2, 0.010000, 0.000000, 91.269906, 0.000000, 45.634953, 45.634953, 7.0, 0, 82.72
3206100, 14, 1, 0.050000, 0.000000, 86.923720, 0.000000, 43.461860, 43.461860, 7.0, 0, 82.72

Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 139 of 329
Copyright  2018 Avalara, Inc.

strg.exe
COMMAND LINE
strg outputfilename  [-cl]
DESCRIPTION
The srtg.exe command reads the log file specified in filelocs.txt and produces a fixed length text
file outputfilename.ssf for tax compliance filing. If the extralogfilename is specified, it is used for
appending instead of the log.sum.
INPUT
Reads the logfilename file as defined by filelocs.txt or AFC Initialization Function.
log.sum – optional input from previous run
 - optional input superseding log.sum
OUTPUT
Fixed Length outputfilename.ssf file for tax compliance filing.
Sorted and condensed by PCode, Tax Type, Tax Level, Tax Rate
FILE FORMAT KEY
Figure 5-32 strg SSF File Format Key
Description
PCode
Tax Type
Tax Level
Tax Rate
Tax Amount Sign
Tax Amount
File Record Length

Type
Numeric
Numeric
Numeric
Numeric
Alpha
Numeric

Length
9
6
1
8
1
11.5
36

Positions
1-9
10-15
16
17-24
25
26-36

ARGUMENTS

extralogfilename - optional input superseding log.sum
–cl creates a combined compliance log file with a .scl extension, containing both the billable and
non-billable amounts instead of a separate log file for each.
NOTES:
WARNING - EZTax.log is DELETED. Make backups in case reruns are needed.
Removes log.sum (or extra log)

A F C S a l e s a n d U s e U s e r M a n u a l | 140 of 329
Copyright  2018 Avalara, Inc.

SAMPLE DATA
0
1
2
3
123456789012345678901234567890123456
-----------------------------------------------------------000000000000006000003000+00098418707
000000000000007000000580+00018387113
000000000000018000003180+00081599822
000000000000031000000039+00001000752
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 141 of 329
Copyright  2018 Avalara, Inc.

upsize_log.exe
COMMAND LINE
upsize_log logfilename1.log logfilename2.log
DESCRIPTION
The upsize_log.exe command converts the short format logfilename1.log to a long format log
logfilename2.log.
INPUT
First log file logfileame1.
OUTPUT
The output file produced is a log file with no format key as this is a log manipulation utility.
ARGUMENTS
None.
NOTES:
log.sum is NOT created.
EZTax.log is NOT deleted.
Refer to Transactions and Tax Types for descriptions of the data in the generated file.

A F C S a l e s a n d U s e U s e r M a n u a l | 142 of 329
Copyright  2018 Avalara, Inc.

BATCH FILE PROCESSING
AFC allows company transactions to be taxed without directly interfacing AFC with the billing system
using the batch_sau command line feature. Although system performance is excellent using the batch
file processing method, it is less efficient than a direct interface in the following ways:

1.
2.

The billing system must provide an additional function that creates the AFC batch file.
AFC must read the batch-input file. With a direct interface, this is not necessary as the billing
system itself will read all required data from databases or files in order to perform rating functions.
3.
The billing system must read results of the AFC process for inclusion on end customer bills and
journal entries in the users accounting system.
However, this method can be the most cost effective, and provide the quickest solution to tax
compliance, depending upon the billing system in use and the level of technical expertise available. This
is available to both AFC SaaS Standard and AFC on-site licensed product clients.

Batch Processing Description
Refer to Figure 6-1. The Batch processing method allows for transaction information in a pre-defined
fixed length ASCII formatted file to be exported to and read by the AFC engine, without directly
integrating to a billing system. The formatted file is submitted to the AFC Engine using the precisely
defined format shown in Section 6.2. AFC processes the file and returns the taxes in a separate fixed
length ASCII file generated by one of available utilities. This file can be imported by the billing system and
viewed as a spreadsheet or other compatible software. The file contains key references, keyed per
transaction or per account.
AFC automatically summarizes tax data generated based upon the key passed, thereby returning unique
taxes per record or summarized results per customer. This simple method of interfacing is performed
with relative ease and with little programming experience.
Avalara clients that perform billing on mainframe computers have also found this method beneficial
because most mainframe users utilize a batch or batch-like billing process, which allows for easy insertion
of a new taxation method. The taxation step is simply replaced with an export and an import process.
When taxation is to be performed, all transactions are exported to a PC for taxation and the results are
imported back into the mainframe.

A F C S a l e s a n d U s e U s e r M a n u a l | 143 of 329
Copyright  2018 Avalara, Inc.

Figure 6-1 AFC Batch Mode Model

When using the batch utility, the location of the AFC Data Base must be specified by using the filelocs.txt
file. The batch utility has built in edit functions to stop any erroneous data from being submitted to the
tax engine or to warn you about possible problems and still allow the transaction to be processed. An
output file is generated containing warning and error messages found during the run along with the line
number of the transaction.
Clients submitting CDS files in Batch fashion automatically produce an EZTax.log file. The user may select
from several utilities to create a .csf file to be imported back into the billing system. Refer to Section 5.1
for aid in output utility selection.

A F C S a l e s a n d U s e U s e r M a n u a l | 144 of 329
Copyright  2018 Avalara, Inc.

AFC CDS Input File Specifications
The CDS fixed length input file contains one or more data records comprised of the fields detailed in
Figure 6-2. Note that a file containing this specification is provided with the monthly update.
Figure 6-2 CDS Client Input Data Specification
Column
number
1

Type

Len

Positions

FOB flag

N

1

0

2

Ship from jurisdiction

N

10

1-10

3

Ship from flag

A

1

11

4

Ship to jurisdiction

N

10

12-21

5

Ship to flag

A

1

22

6

Customer type

N

1

23

7

Sale/Resale flag

A

1

24

8

Transaction type

N

6

25-30

9

Service type

N

6

31-36

10
11

Attribute
Invoice date

N
N

2
8

37-38
39-46

12

Refund flag

A

1

47

13

Charge

N

11

48-58

14

Count

N

10

59-68

15

Incorporated flag

N

1

69

16

Fed exempt

A

1

70

17

State exempt

A

1

71

18

County exempt

A

1

72

19

Local exempt

A

1

73

A/N

20

74-93

N

1

94

0 for false, 1 for true

N

1

95

0 for false, 1 for true

N

1

96

0 for false, 1 for true

N
N
N

2
1
2

97-98
99
100-101

See table of discount types
See table of finance types
See table of installation types

N

1

102

0 for false, 1 for true

20
21
22
23
24
25
26
27

Data Description

Customer number (primary
output key)
Freight property: paid to
seller
Freight property: common
carrier
Freight property: seller
required shipping
Discount property: type
Finance property: type
Installation property: type
Shipping/handling property:
seller required shipping

Note
0 if shipping point, 1if destination point
Originating PCode if flag=P
Originating FIPS code if flag=F
Set to P if using PCode, or F if using FIPS
code
Destination PCode if flag=P, Destination
FIPS code if flag=F
Set to P if using PCode, or F if using FIPS
code
‘B’ for Business, ‘R’ for Residential, ‘I’ for
Industrial, ‘S’ for Senior Citizen
‘S’ for sale, ‘R’ for resale
See table of transaction types and service
types
See table of transaction types and service
types
See table of attribute types
Format "CCYYMMDD"
‘+ for normal transaction,’-‘ for refund, ‘p’
for tax inclusive calculation, ‘m’ for tax
inclusive calculation refund
Format "99999999999" zero filled, 5
decimal places, no decimal point
Number of items on invoice
1 if customer is inside incorporated area,
0 if customer is outside incorporated area
‘X’ if call is exempt from federal taxes,
blank otherwise
‘X’ if call is exempt from state taxes, blank
otherwise
‘X’ if call is exempt from county taxes,
blank otherwise
‘X’ if call is exempt from local taxes, blank
otherwise
Defines primary key for client summary
data

A F C S a l e s a n d U s e U s e r M a n u a l | 145 of 329
Copyright  2018 Avalara, Inc.

Column
number
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

Data Description
Software maintenance
property: seller required
Software maintenance
property: type
Software maintenance
property: update type
Service contract property:
seller required
Service contract property:
type
Service contract property:
sale type
Service contract property:
item type
Maintenance agreement
property: seller required
Maintenance agreement
property: type
Maintenance agreement
property: sale type
Maintenance agreement
property: item type
Factory warranty property:
seller required
Factory warranty property:
agreement type
Extended warranty property:
seller required
Extended warranty property:
agreement type
Extended warranty property:
sale type

Type

Len

Positions

N

1

103

0 for false, 1 for true

N

1

104

See table of software maintenance types

N

1

105

See table of software maintenance
update types

N

1

106

0 for false, 1 for true

N

1

107

See table of service contract types

N

1

108

See table of service contract sale types

N

1

109

See table of service contract item types

N

1

110

0 for false, 1 for true

N

1

111

N

1

112

N

1

113

N

1

114

0 for false, 1 for true

N

1

115

See table of factory warranty agreement
types

N

1

116

0 for false, 1 for true

N

1

117

See table of extended warranty
agreement types

N

1

118

See table of extended warranty sale types

J=Taxing Jurisdiction Info. C=Customer Info.
T/S=Transaction/Service type M= Misc.

Note

See table of maintenance agreement
types
See table of maintenance agreement sale
types
See table of maintenance agreement
item types

CO=Company Info. T=Transaction Info.
R=Required, O=Optional

Each field within a record contains information specific to one of three categories; Taxing Jurisdiction
Identification, Customer and Transaction (see Table 6-1). These four categories are addressed in detail in
the following subsections.
Table 6-1 CDS Categories
Taxing Jurisdiction
Identification
Information
FOB
Ship-From
Ship-From Flag
Ship-To
Ship-To Flag

Customer Transaction Information
Customer
Transaction Information
Information
Customer Type
Sale/Resale flag
Incorporated Flag
Transaction Type
Fed Exempt
Service Type
State Exempt
Attribute/Properties
County Exempt
Invoice Date
Local Exempt
Refund Flag
Customer Number
Charge
(Primary Output Key)
Count
A F C S a l e s a n d U s e U s e r M a n u a l | 146 of 329
Copyright  2018 Avalara, Inc.

Taxing Jurisdiction Identification Information
The Ship-From, Ship-From Flag, Ship-To, and Ship-To Flag fields of the record are discussed in this section.
The batch interface method is designed to allow for the transaction ship-from and ship-to points to be
entered as PCodes or FIPS Codes in the first fields of the transaction record. (Note that there are
advantages to using the PCode as described in Section Error! Reference source not found.).
1.
PCodes are proprietary permanent jurisdiction codes created by Avalara that allow AFC
software users to populate their databases with proper jurisdiction assignments. When
jurisdiction codes change, they are re-mapped by Avalara and the PCode is updated, providing
clients with up to date information without making any changes themselves. The PCode is the
preferred method of assigning and maintaining jurisdiction identification, and the time invested
in including PCodes into your database records will pay off with increased accuracy and reliability.
2.

FIPS codes are described in section FIPS Codes.

Ship-From
The shipping location of the transaction to be taxed. It can be filled with the PCode or FIPS Code.

Ship-From Flag
The Ship-From Flag specifies the configuration of the information in the Ship-From field. This field should
contain P if the Ship-From is in PCode format or F if the Ship-From is in FIPS format.

Ship-To
The destination location of the transaction to be taxed. It can be filled with the PCode or FIPS Code.

Ship-To Flag
The Ship-To Flag specifies the configuration of the information in the Ship-To field. This field should
contain P if the Ship-From is in PCode format or F if the Ship-From is in FIPS format.

A F C S a l e s a n d U s e U s e r M a n u a l | 147 of 329
Copyright  2018 Avalara, Inc.

Customer Information
The transaction customer information is supplied using the following fields; Customer Type, Incorporated
Flag, Fed Exempt, State Exempt, County Exempt, Local Exempt, Federal Exemption JCode, State
Exemption JCode, County Exemption JCode, Locality Exemption JCode, and Customer Number.

Customer Type
This field is used to specify the type of customer involved in the transaction. The Customer Type is
selected from one of the following four options.
Business – When transactions are made at a place of business.
Residential – When transactions are made by a customer for home use.
Industrial – When transactions are made at an industrial business.
Senior Citizen – When transactions made by a customer meeting the jurisdiction requirements to be
considered a senior citizen and qualify for senior citizen tax breaks.

Incorporated Flag
The Incorporated Flag field is used to specify whether the customer involved in this transaction is inside
(specified with an “I” in the one character length field) or outside (specified with an “O” in the one
character length field) of the incorporated area designated as their location. The tax may or may not be
affected by this designator depending upon whether or not the unincorporated areas are taxed in the
same manner as the incorporated areas.

Exemption Levels
The exemption level is the jurisdictional level of the taxing authority that defines the tax. It is used to
exempt taxes at specific federal, state, county and/or local taxes.
Fed Exempt
The Federal Exempt field is used to specify a Federal level tax exemption.
State Exempt
The State Exempt field is used to specify a State level tax exemption.
County Exempt
The County Exempt field is used to specify a County level tax exemption.
Local Exempt
The Local Exempt field is used to specify a Local level tax exemption.

Customer Number (Primary Output Key)
The Primary Output Key (POK) is a 20-character text field that is not manipulated during processing and
stored as part of the log file record.

A F C S a l e s a n d U s e U s e r M a n u a l | 148 of 329
Copyright  2018 Avalara, Inc.

It can be used as part of the sorting key (see Figure 6-3) when using some utilities, allowing for the
combining of records based upon this and other fields. It is useful when it is desired to have like taxes
from different transactions combined, to have taxes from each transaction detailed individually in a
report or to have each transaction detailed at the customer level.
Figure 6-3 Primary Output Key
Uniquekey.cds
0

1248900P2009108550FRS

34

106 020100815+

100000000

11

BillSoft, Inc. - 1

0

1248900P

1248900PRS

34

106 020100815-

100000000

11

BillSoft, Inc. - 2

0

1248900P

1248900PRS

34

106 020100815p

100000000

11

BillSoft, Inc. - 3

0

1248900P

1248900PRS

34

106 020100815m

100000000

11

BillSoft, Inc. - 4

Uniquekey.csf

Combined taxes

If you would want like taxes combined at the customer level, then you specify a
like POK for the records you want combined.

Samekey.cdf
0

1248900P2009108550FRS

34

106 020100815+

100000000

11

BillSoft, Inc.

0

1248900P

1248900PRS

34

106 020100815-

100000000

11

BillSoft, Inc.

0

1248900P

1248900PRS

34

106 020100815p

100000000

11

BillSoft, Inc.

0

1248900P

1248900PRS

34

106 020100815m

100000000

11

BillSoft, Inc.

A F C S a l e s a n d U s e U s e r M a n u a l | 149 of 329
Copyright  2018 Avalara, Inc.

Samekey.csf

A F C S a l e s a n d U s e U s e r M a n u a l | 150 of 329
Copyright  2018 Avalara, Inc.

Transaction Information
The transaction information is contained in fields found in the transaction record. The Sale/Resale Flag,
Transaction Type, Service Type, Attribute/Properties, Invoice Date, Refund Flag, Charge, and Count fields
of the record are discussed in this section.

Sale/Resale Flag
Transactions may be taxed differently if the sale is to a retail customer or to a wholesale customer, who
will sell the item again.
Companies are taxed on transactions made by their clients, which in some cases can be passed on or
“resold” to their customers in part or in total. The Resale (wholesale) flag is used to indicate whether the
product or service transaction is final or if it is to be resold.
To have exempt taxes available for reporting, exemption type 3 (Sales For Resale) should be used in
combination with Resale.

Transaction Type
Refer to Section 2.6 Mapping Transactions for details of this field.

Service Type
Refer to Section 2.6 Mapping Transactions for details of this field.

Attribute/Properties
Refer to Section 4.4 Sales and Use for details of these fields.

Invoice Date
The Invoice Date is normally populated with the bill date. Generally accepted accounting principles
dictate that liabilities should be recorded when revenues are recorded. In most cases, neither of these is
recorded (or even known) until billing occurs.
AFC compares this date to the effective date of each tax that applies to the transaction.
•

If the date passed to AFC is "equal to" or "greater than" the effective tax date, the current tax
rate is used.

•

If the date passed to AFC is prior to the effective date, the tax rate in effect for the tax
is used to generate the tax amount applicable to the transaction.

•

If a transaction is passed to AFC without a date (that is, the date is set to zero),
AFC will set the date to the current date.

A F C S a l e s a n d U s e U s e r M a n u a l | 151 of 329
Copyright  2018 Avalara, Inc.

Note: The invoice date passed to the server in the transaction by default is preserved as is. It is
recommended that clients not use time zone modifiers on the invoice date.

Refund Flag
The Taxable Amount Sign field is filled with either a “+” (plus) sign to indicate a charge or a “-“ (minus)
sign to indicate a refund or credit. In addition, the letters “p” (plus) and “m” (minus) are respectively
used to indicate the appropriate refund or credit on tax inclusive calculations.

Charge
The Charge field specifies the amount of the transaction to be taxed. This amount will be passed through
AFC to rate the tax based on the specified transaction/service pair. In addition, when peforming a tax
inclusive calculation, the taxable or charge amount entered by the user must reflect the desired total
charge plus the total tax returned (i.e. revenue + total tax).

Count
Number of items in the transaction.

Federal or State Exclusion
The Federal or State Exclusion option allows the EZTax_20 user to prevent federal and/or state (or
province) and all lower jurisdictions including county, and local taxes from being created for Call Detail
Records (CDRs) from specified countries or states. If excluding a state, the Federal taxes will be calculated
from CDR records that have been designated for state exclusion. If excluding a country, no taxes,
including federal taxes, will be calculated.
When running AFC in batch fashion it checks for the exclude.txt file. If the file exists, the state and
country jurisdictions listed in the file will be excluded. For state exclusions, state, county and local taxes
are excluded. For country (federal) exclusions, country, state, county and local taxes are excluded.
If the file does not exist, the plain ASCII text file “exclude.txt” federal/state exclusions file can be created.
Please reference Section 1.5 Exclusion Configuration File in the AFC Manager User Manual for additional
details and instructions on creating exclusion files.

A F C S a l e s a n d U s e U s e r M a n u a l | 152 of 329
Copyright  2018 Avalara, Inc.

Accumulating the Log
For AFC users that run using the batch processing to do billing daily, the EZTax.Log needs to be
accumulating to run the sorting utility at the end of the month to create a tax compliance file.
Daily:

1. Run the taxation on *.CDS file.
2. Archive the EZTax.Log file to another location on the system.
3. Run the sorting utility executable. *.CSF is used for current client billing. The optional *.SSF file is

intended for end of the month tax compliance filing and can be ignored if generated.
4. The next taxation run of the *.CDS file will produce a new EZTax.Log file when using some utilities
since it has been emptied by the previous sorting utility.
Monthly:
BillSoft supplies the EZTaxappend and extaxappendf executable utilities that can be used to combine logs
into a single monthly log file. At the end of the month, select the utility that best fits your requirements
and combine the appropriate achieved log files. This will produce the tax compliance file .ssf file. The
optional .csf file is intended for use by billing clients and can be ignored if generated.

A F C S a l e s a n d U s e U s e r M a n u a l | 153 of 329
Copyright  2018 Avalara, Inc.

batch_sau Utility Specification
COMMAND LINE
batch_sau inputfilename.cds
DESCRIPTION
The batch_sau command is a processing utility designed to accept records submitted in batch
fashion. Records are supplied as an ASCII formatted file inputfilename.cds.
INPUT
Reads the inputfilename.cds ASCII text file
OUTPUT
EZTax.Log – as defined by filelocs.txt.
Read_err.st – any errors found while editing input file are reported here.
Billing.log – date/time stamp log (appended to).
Bureau_log – run totals (appended to).
EZTax.sta – status
inputfilename.rpt – break down by totals (not for compliance filing).
FILE FORMAT KEY
Refer to Figure 6-2 CDS Input Data Specifications
ARGUMENTS
input filename is the cds file with input records
NOTES:
The transactionservice.exp file must be in the AFC working directory.
EZTax.log is not deleted.
Filelocs.txt MUST be in the working directory.

A F C S a l e s a n d U s e U s e r M a n u a l | 154 of 329
Copyright  2018 Avalara, Inc.

The C/C++ API
The software for AFC is written in C/C++ and is delivered as an executable, creating a flexible
programming environment. The AFC engine operates independently from the client’s billing system
allowing it to be easily integrated using APIs. Making use of the AFC API functions is the most efficient
interface to the AFC Engine and there is very little performance difference when running the AFC taxation
generation.
To integrate with AFC, programmers simply link with it and interface through a standard and well
documented set of API calls. Programmers can typically perform the integration of AFC with a billing
system by utilizing the documentation. If questions should arise, Avalara provides unlimited phone
support for the integration of AFC and provides consulting services if desired.
Many AFC clients have accomplished integration in a matter of days and indicated that the effort with
their previous system took from three months to a year. Many companies spend multiples of the yearly
license cost to integrate with competing products, enduring long periods of inoperability during the
integration process. The product is delivered as a DLL, shared library or shared executable allowing
upgrades and enhancements of AFC to be accomplished by simply replacing a file.
Furthermore, the AFC API provides a rich and complete set of interfaces for taxation. In addition to
taxation APIs, it provides the ability to do adjustments, refunds, debits, prepaids, overrides, jurisdiction
information conversions and database interfaces. The APIs allow taxation using jurisdictional information
provided by jurisdiction codes, NPANXX, address and zip codes.
AFC API calls are descriptively named for easy identification and selection. For instance, functions that
end with “JCode” or “J” are Jurisdiction Code functions. Similar naming standards are maintained for the
“PCode,” “Zip”, and “Fips” functions.

Language Interfaces for AFC
AFC is written in C/C++ code. Interfaces to other software languages are provided that add another DLL
for the translation from C/C++ to that other language.
AFC supports interfaces to Java, the Microsoft .NET family, RPG, COBOL and Microsoft VB6.

A F C S a l e s a n d U s e U s e r M a n u a l | 155 of 329
Copyright  2018 Avalara, Inc.

Configuration
Avalara offers all programs and file updates through a client login site, allowing for the download of a zip
file containing the installation or update files. After an order is processed, the download zip file will be
placed in the company’s user folder. Check this folder regularly for new downloads, updates and
announcements about Avalara’s products and services.
The install wizard suggests a default file folder organization (refer to the AFC Installation Manual).
Avalara encourages the use of the default settings to simplify the monthly update procedure. Changing
the default settings will require a modification of each monthly update in order for it to it to adhere to
the modified file folder organization, increasing the possibility of errors and poor performance.
The include files (header files) directory and the lib file must be incorporated into the C/C++ compiler and
linker and the appropriate include files must be added to your source code to access the Avalara
constants and structures. These files are in the same folder as the DLL.

Filelocs.txt File
AFC installs the Filelocs.upd file. This file must be moved to your working directory and renamed to
filelocs.txt. Windows Explorer should be set to show file extensions so that there is no confusion
between the two files. The Filelocs (File Locations) file (see Table 7-1) contains the paths to the files used
by AFC.
Table 7-1 Filelocs.txt Example
PATH
C:\BillSoft\EZtax\Data\EZTax.dat;
C:\BillSoft\EZTax\Data\EZTax.idx;
C:\BillSoft\EZTax\Data\EZTax.dll;
EZTax.log;
C:\BillSoft\EZTax\Data\EZTax.npa;
EZTax.sta;
tmp77777.dat;
C:\BillSoft\EZTax\Data\EZDesc.dat;
C:\BillSoft\EZTax\Data\EZZIP.dat;
C:\BillSoft\EZTax\cust_key;
C:\BillSoft\EZTax\Data\EZTax.pcd;
C:\BillSoft\EZTax\Data\EZTax.jtp;

INPUT:
INPUT:
INPUT:
I/O:
INPUT:
OUTPUT:
I/O:
INPUT:
INPUT:
I/O:

DESCRIPTION
EZtax Data file
EZtax IDX file
EZtax DLL file
EZtax log file
EZtax NPANXX cross reference file
EZtax status file
EZtax temporary file
EZtax location description file
EZtax ZIP Code file
EZtax customer key file

A F C S a l e s a n d U s e U s e r M a n u a l | 156 of 329
Copyright  2018 Avalara, Inc.

Filelocs.sta File
The Filelocs.sta file will be created by EZTaxInitEx when the file paths are not provided or incomplete, and
if EZTaxInitEx cannot find Filelocs.txt in the current working directory. The directory where Filelocs.sta is
created is the working directory that AFC is using, and this is where Filelocs.txt should be placed. Copy
the Filelocs.upd file that is distributed with the AFC monthly update, rename it to Filelocs.txt, edit the
locations to match your configuration, and rerun your application.
AFC produces two .sta files:
•
•

filelocs.sta
EZTax.sta

In addition, the utilities can produce:
•
•

log_file.sta
read_err.sta

All the files except EZTax.sta are normally zero length. Any other size indicates a problem. Refer to Table
7-2 for an example of the output in EZTax.sta.
Table 7-2 EZTax.sta Example
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.240 :
04/14/09 07:40:08.318 :
04/14/09 07:40:08.364 :
04/14/09 07:40:08.364 :
04/14/09 07:40:08.364 :

EZtax Version Number: 9.8.0.4, platform = Windows!
work dir = <>
Data = 
Idx
= 
Dll
= 
Log
= 
Npa
= 
Status = 
Ovrd = 
Desc = 
Zip
= 
Cust = 
PCode = 
JCode = 
FIPS = <>
PCDFIPS = <>
Ovr
= <>
Bundle = 
Nexus = <>
Exclusion = <>
no supplemental files inserted
PCODE file closed, 0 PCODE records not found
JCODE file closed, 0 JCODE records not found
Closing EZtax session 337ba0

A F C S a l e s a n d U s e U s e r M a n u a l | 157 of 329
Copyright  2018 Avalara, Inc.

General Overview of AFC API Integration
When integrated using the C/C++ APIs, the AFC Engine operates independent of the client’s billing system
giving the client more options. The engine is designed to allow passing of data through the program
rather than integration with the client’s billing system.
Refer to Figure 7-1. With the Application Programmer Interface (API), the billing system passes
transaction information to the AFC Engine as it is being rated for billing. AFC accepts the transaction
information, calculates all of the required taxes and returns the generated tax information to the billing
system.
Figure 7-1 AFC API Model

Refer to Figure 7-2Figure 7-2. In addition to calculating and generating tax information, the AFC Engine
can store all of the generated tax data in AFC database log files. Utilities are provided for performing data
manipulation and generating reports that facilitate tax filing and provide insight to the rating, billing and
taxing processes.
Figure 7-2 AFC Engine

A F C S a l e s a n d U s e U s e r M a n u a l | 158 of 329
Copyright  2018 Avalara, Inc.

Detailed Discussion of AFC API Integration
Avalara, Inc. provides a multi-threaded dynamic link library that is utilized to interface with AFC software.
Integration of an API interface opens the full capabilities of AFC.
Refer to Figure 7-3. The AFC Engine primarily accepts transaction information from the customer billing
system and returns the taxes associated with the transaction. However, it can also be used to perform
the following functions:

1. Perform tax adjustments.
2. Supply Jurisdiction information and JCodes based on address, Zip Code or Fips information.
3. Supply Jurisdiction information, address information, and convert JCodes to PCodes and PCodes
to JCodes.

4. Return Tax information based on Transactions.
Tax Adjustments
Adjustment information is returned to the billing system and is utilized to update tax data for report
generation and compliance filing. AFC also provides facilities that allow users to insert tax overrides and
exempt a transaction from taxes at federal, state, county and local authority levels. In addition, AFC also
provides the capability to limit exemptions to a specific jurisdiction and to exempt specific taxes.
Obtaining Jurisdiction and Address Information From JCodes and PCodes
The AFC Address Database is available to obtain the address of a specific JCode or PCode. This is normally
not used during the AFC session as the billing system normally has address information required for
billing. AFC uses this database when generating reports for tax filing. The Address Database interface is
provided as a valuable tool to Avalara customers.
Obtaining Tax Information From Transactions
AFC accepts transaction information and returns taxes to the Customer Billing System. Refer to Section
Error! Reference source not found. for a detailed description of this process.

A F C S a l e s a n d U s e U s e r M a n u a l | 159 of 329
Copyright  2018 Avalara, Inc.

Figure 7-3 AFC API Operation Diagram

A F C S a l e s a n d U s e U s e r M a n u a l | 160 of 329
Copyright  2018 Avalara, Inc.

Preparing the AFC Application Programmer Interface (API) Interface
This section defines the steps required to interface AFC directly with a billing system. With this interface,
the billing system passes transactions to AFC as they are being rated or billed. AFC calculates all required
taxes and returns the tax information to the billing system per transaction. In addition, AFC stores all tax
data generated in its databases and provides reports that facilitate tax filing and provide insight to the
rating, billing and taxing processes.
AFC functions are included in the dynamic link library EZTax2.lib. To access AFC functions, this library
must be accessible when building the executable for the billing system at either link or executable build
time. When using the DLL, EZTax2.dll must be in a location that will allow the system to load the DLL.
To use the AFC Engine in a C or C++ code environment, the include file directory and the lib file must be
incorporated into the client C/C++ compiler and linker.

1. The include file directory is in the same folder as the dll found at C:\BillSoft\EZTax\dll if you

installed using the default directory. Add this folder to the include folders for your C++ compiler.

2. Add the following include files located in the dll folder to your source code in order to access the
Avalara constants and structures.

a. EZTaxSauStruct.h - Provides data structures required to interface with the Sales and Use
module of AFC. Refer to Appendix D for the detailed structure.
b. EZTaxStruct.h - Provides data structures required to interface with AFC. Refer to
Appendix A for the detailed structure.
c. EZTaxSauDefine.h - Provides data constants required to interface with AFC. Refer to
Appendix E for the detailed structure.
d. EZTaxDefine.h, EZTaxTransType, EZTaxServType, EZTaxTaxType.h, EZTaxServType.h,
EZTaxCountryType.h, EZTaxStateType.h - Provides data constants required to interface
with EZtax. Refer to Appendix B for the detailed structure.
e. EZTaxSauProto.h - Contains function prototypes. Refer to Appendix F for the detailed
structure.
f. EZTaxProto.h - Contains function prototypes. Refer to Appendix C for the detailed
structure.

3. Add the selected include files and the lib file to your project file list if you wish to use editing tools
such as Microsoft Visual Studio to perform code completion based on the structure members.

A F C S a l e s a n d U s e U s e r M a n u a l | 161 of 329
Copyright  2018 Avalara, Inc.

AFC API Function Calls
An AFC session is started with a call to one of the initialization routines (EZTaxInitEx or EZTaxInitExMT,
usually) to initialize the task. APIs are called to perform specified AFC functions that achieve the desired
results of the session.
Once all transactions are completed, EZTaxExitSessionEx must be called for each session started to flush
database buffers, de-allocate memory and perform other clean-up duties which free up resources utilized
by AFC. Sessions must be completed by a call to EZTaxExitSessionEx at least once per tax filing period to
insure that the tax log is properly configured and complete before utilities that generate filing information
are started.

Retrieving Taxes
The AFC Tax Table
The AFC table is allocated during AFC session initialization. The size of this table is dependent upon the
maximum taxes that can be generated for a single transaction. As such, the size of this table can change
from month to month as new taxes are generated or removed from taxing jurisdictions. It is always safe
to access from 0 (zero) to [tax_count_returned -1] locations of the table. The user is cautioned to treat
this as a read only area. Attempting to access locations that do not exist will result in access violations on
most operating systems.
Each function that performs tax calculations or adjustments returns a count of the taxes generated for
the transaction and stores the taxes in the Tax Table. The taxes can be retrieved for storage in a billing
system by using the taxes_tbl struct pointer, which is activated when EZTaxInitEx is called. The pointer to
the AFC table can be used to select a tax from the array of taxes_tbl objects using the following code.
{

}

int index;
double tax;
tax = EZTax_table[index].tax_amount;

A F C S a l e s a n d U s e U s e r M a n u a l | 162 of 329
Copyright  2018 Avalara, Inc.

Sample Code to Retrieve Taxes
To retrieve taxes generated, the following code segment (shown without proper status checking) can be
used with the DLL:
#include 
#include 
#include 
main()
{
short int
short int
int
double
struct enhanced_taxes_tbl
struct sau_J_Code
EZTaxSession

i;
tax_count;
err_code;
tax;
*EZTax_table;
transaction;
session;

EZTax_table = EZTaxInitEx(FALSE, NULL, &session);
// initialize the transaction here
tax_count = EZTaxSAUJCode(session, &transaction,
NULL, 0, &err_code);
if (tax_count > 0)
{
for(i=0; i 0)
{
ProcessResults(sales, taxTable, taxCount);
}
zipsales.trans_data = sales.trans_data;
zipsales.FOB = sales.FOB;

A F C S a l e s a n d U s e U s e r M a n u a l | 170 of 329
Copyright  2018 Avalara, Inc.

/* this sets up a freight transaction */
sales.trans_data.attr = SAU_FREIGHT;
sales.trans_data.property.freight.CmnC = TRUE;
sales.trans_data.property.freight.Paid = TRUE;
sales.trans_data.property.freight.SReq = TRUE;
/* in this line, we are passing in a nexus, so it will NOT use */
/* the session nexus */
taxCount = EZTaxSAUPCode(session, &sales, nexus_r, nexus_count,
&error_code);
/* this line will remove the session nexus */
EZTaxSetNexus(session, NULL, 0 );

A F C S a l e s a n d U s e U s e r M a n u a l | 171 of 329
Copyright  2018 Avalara, Inc.

Enhanced Override Structure Date Table and Rate Table Considerations
When using the EZTaxOvrJCodeEx, EZTaxOvrPCodeEx, EZTaxOvrNCodeEx or EZTaxOvrZCodeEx care must
be taken when loading the enhancedOverride structure.
When the user is adding date information to the dateTable, the overrideDate from
enhancedDateOverride that is being added MUST be in descending date order (future to past order).
For example:
/* Primary override structure for AFC release 9 */
struct enhancedOverride
{
short int
scope;
/* Scope of override */
short int
type;
/* tax type identifier */
short int
level;
/* tax level identifier */
short int
dateCount;
/* number of date records (normally 2) */
struct enhancedDateOverride
*dateTable;
/* address of array of date records */
};

When adding rate Table information to the enhancedDataOverride *rateTable, the actual rate
information in enhancedRateOverride structure must be in ascending order based on max_base.
For example:
/* entries in the dateTable for overrides if the tax type is telecom (non-sales tax) */
struct enhancedDateOverride
{
unsigned long int
overrideDate; /* starting (effective) date for this set of tax rates */
short int
rateCount;
/* number of rate records for this date (normally 1) */
short int
levelExempt;
/* TRUE indicates tax can be exempted by an */
/*
exemption for all taxes at the same level as */
/*
this tax, FALSE indicates it canNOT be exempted. */
/*
NOTE: Tax can still be exempted by specific tax */
/*
exemption. */
struct enhancedRateOverride
*rateTable;
/* address of array of telecom rate records */

A F C S a l e s a n d U s e U s e r M a n u a l | 172 of 329
Copyright  2018 Avalara, Inc.

API Listings

Table 7-3 APIs Listed Alphabetically
Sorted Alphabetically
EZTaxClearTSR
EZTaxCountryToPCode
EZTaxDBVersion
EZTaxDLLVersion
EZTaxExitSessionEx
EZTaxFlushToLogEx
EZTaxFreeRates
EZTaxFtoPCodeEx
EZTaxGetAddressEx
EZTaxGetCountryID
EZTaxGetCustomLog
EZTaxGetCustomLogCount
EZTaxGetLogName
EZTaxGetLogV914
EZTaxGetLogV914Count
EZTaxGetNoTaxTrans
EZTaxGetRates
EZTaxGetStateID
EZTaxGetTaxCatV98
EZTaxGetTaxDescription
EZTaxGetTSR
EZTaxGroupResults
EZTaxInitEx
EZTaxInitExMt
EZTaxInitV914
EZTaxInitV98
EZTaxJtoPCodeEx
EZTaxJTTypeEx
EZTaxMaxTaxCount
EZTaxNextAddressEx
EZTaxNextCustomerEx
EZTaxOvrJCodeEx
EZTaxOvrPCodeEx
EZTaxOvrZipEx
EZTaxPtoFipsEx
EZTaxPtoJCodeEx
EZTaxPTTypeEx
EZTaxRestoreEx
EZTaxSAUAdjFips
EZTaxSAUAdjJCode
EZTaxSAUAdjPCode
EZTaxSAUAdjTaxInclusiveJCode
EZTaxSAUAdjTaxInclusivePCode
EZTaxSAUAdjTaxInclusiveZip
EZTaxSAUAdjZip
A F C S a l e s a n d U s e U s e r M a n u a l | 173 of 329
Copyright  2018 Avalara, Inc.

Table 7-3 APIs Listed Alphabetically
Sorted Alphabetically
EZTaxSAUDRAdjFips
EZTaxSAUDRAdjJCode
EZTaxSAUDRAdjPCode
EZTaxSAUDRAdjZip
EZTaxSAUFips
EZTaxSAUJCode
EZTaxSAUPCode
EZTaxSAUTaxInclusiveJCode
EZTaxSAUTaxInclusivePCode
EZTaxSAUTaxInclusiveZip
EZTaxSAUZip
EZTaxSessionDbVersion
EZTaxSetInvoiceModeEx
EZTaxSetInvoiceModeV98
EZTaxSetNexus
EZTaxSetStateExclusions
EZTaxSetStateNexus
EZTaxWriteToLogEx
EZTaxWriteToLogV914
EZTaxZtoJCodeEx
EZTaxZtoPCodeEx

EZTaxClearTSR
Description
EZTaxClearTSR allows API functionality to delete the data created by EZTaxGetTSR. This is used to
prevent memory leaks during operation.
Format
void EZTaxClearTSR(EZTaxSession session, struct rtr_data* rpt)
Return Value List
Void
Parameters
session : session handle returned for session when initialized with call to EZTaxInitEx
rpt : pointer to the T/S Report created by EZTaxGetTSR. This will be cleared from memory by
EZTaxClearTSR.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 174 of 329
Copyright  2018 Avalara, Inc.

EZTaxCountryToPCode
Description
EZTaxCountryToPCode takes a 3 byte country ISO code and converts it to the correct PCode for
that country.
Format

unsigned long int EZTaxCountryToPCode(EZTaxSession session,
const char* iso_code,
int *err_code)

Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
PCode : converted from the input fips code
0 : if conversion is unsuccessful
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*iso_code: 3 byte country ISO code to convert
*err_code : error status returned
Remarks
The value “UNS” will return the PCode for unsupported country. If the initial call fails due to the
county code not being supported, this can be a fallback value to use.

A F C S a l e s a n d U s e U s e r M a n u a l | 175 of 329
Copyright  2018 Avalara, Inc.

EZTaxDBVersion
Description
Function EZTaxDbVersion reads the database version from EZTax.dll and returns it to the caller.
Format
short int EZTaxDbVersion(char *psz_EZTax_dat, char *psz_db_version);
Header(s) Required
EZTaxDefine.h,
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
TRUE if database version is returned in psz_db_version
FALSE if database version couldn't be obtained
Parameters
*psz_EZTax_dat : path to EZTax.dat file
*psz_db_version : address of character array that will receive the database version.
Remarks
The database version will be returned in the form ww.xx.yy.zz, where each piece of the database
version number can be 1 or 2 digits.

A F C S a l e s a n d U s e U s e r M a n u a l | 176 of 329
Copyright  2018 Avalara, Inc.

EZTaxDLLVersion
Description
Function EZTaxDllVersion returns the version number of the AFC API.
Format
short int EZTaxDllVersion(char *psz_library_version);
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
TRUE : if the database version is returned in psz_library_version
FALSE : if database version couldn't be obtained
Parameters
psz_library_version : version string returned
Remarks
The version string is the same value that is displayed in the EZTax.sta status file.

A F C S a l e s a n d U s e U s e r M a n u a l | 177 of 329
Copyright  2018 Avalara, Inc.

EZTaxExitSessionEx
Description
EZTaxExitSessionEx will terminate a session specified by valid session handle. EZTaxExitSessionEx
writes the current internal tax log buffers to the tax log disk file, de-allocates cached database
memory, closes all AFC database files, and performs other clean-up duties which free up resources
utilized for the specified session.
Format
short int EZTaxExitSessionEx(EZTaxSession session);
Header(s) Required
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
TRUE : if session exited successfully
FALSE : if an error occurred
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
Remarks
The session handle and the struct taxes_tbl * returned by EZTaxInitEx during the initialization of the
given session handle are invalidated by a call to this function. Attempting to use either after a call to
EZTaxExitSessionEx will cause errors.

A F C S a l e s a n d U s e U s e r M a n u a l | 178 of 329
Copyright  2018 Avalara, Inc.

EZTaxFlushToLogEx
Description
EZtax FlushToLogEx writes the current internal tax log buffers to the tax log disk file. The internal tax
log buffers are normally written to when they are filled to capacity or EZTaxExit is called. This function
can be called to force a write to tax log disk file.
Format
short int EZTaxFlushToLogEx(EZTaxSession session);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
always returns TRUE
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
Remarks
EZTaxFlushToLogEx writes the content of internal tax log buffers to disk.

A F C S a l e s a n d U s e U s e r M a n u a l | 179 of 329
Copyright  2018 Avalara, Inc.

EZTaxFreeRates
Description
EZTaxFreeRates frees up the memory from the table of all taxes for a jurisdiction returned from
EZTaxGetRates
Format
short int EZTaxFreeRates(struct jurisdictionTaxes *taxes);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
always returns 0
Parameters
*taxes : tax information to be freed
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 180 of 329
Copyright  2018 Avalara, Inc.

EZTaxFtoPCodeEx
Description
EZTaxFtoPCodeEx converts a Fips Code into a PCode. Zero is returned if not found.
Format
unsigned long int EZTaxFtoPCodeEx(EZTaxSession session, char *Fips,
int *err_code)
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
PCode : converted from the input fips code
[0]: if conversion is unsuccessful
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*Fips: Fips code to convert
*err_code : error status returned
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 181 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetAddressEx
Description
EZTaxGetAddressEx utilizes a J-Code as input to produce the location /address data for the jurisdiction
identified by the J-Code.
Format
short int EZTaxGetAddressEx(EZTaxSession session,
unsigned long int j_code,
struct address_data_p4 *address,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
NOT_FOUND : EZTaxGetAddressEx failed due to invalid JCode or an error has occurred.
FOUND : EZTaxGetAddressEx successfully retrieved address
MORE : EZTaxGetAddressEx successfully retrieved address and other valid addresses exist for this
jurisdiction. Other address can be obtained by calling EZTaxNextAddressEx.
Parameters
Session : session handle returned when initialized with call to EZTaxInitEx
j_code : j-code to find an address for
*address : the address information returned
*err_code : error status code
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 182 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetCountryID
Description
EZTaxGetCountryID returns the country ID associated with the PCode passed in.
For a list of country codes, refer to the NpaNxx Country Id column listed under “Appendix D –
International NPANXX IDs” in document TM_00561_AFC Comprehensive Guide to Reports and Data
Files.pdf.
Format
unsigned int EZTaxGetCountryID(EZTaxSession session, unsigned long int PCode, int *err_code);
Return Value List
unsigned int representing the country id associated with the PCode passed in.
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx.
PCode : AFC proprietary code representing a taxing jurisdiciton
*err_code: Error codes returned. See the header EZTaxDefine.h for definitions.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 183 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetCustomLog
Description
EZTaxGetCustomLog is a routine that returns a pointer to a log structure, which is used for
customized logging.
Format

struct EZTax_logEx *EZTaxGetCustomLog(EZTaxSession session)

Return Value List
NULL : Indicates an error has occurred
pointer : The logging structure pointer
Parameters
session: session handle returned with call to initialize the AFC session.
Remarks
This function is used after a call to initialize the AFC session and before any taxes are calculated.
The log structure returned can be used to call EZTaxWriteToLogEx to output the information to
the AFC log. EZTaxGetCustomLogCount can be used to get the record count in the log table as
needed.
When a transaction has been processed, the custom log structure will contain the tax information
generated by that transaction.
The value in eztax_logEx.p_code is the jcode representation of the jurisdiction.

A F C S a l e s a n d U s e U s e r M a n u a l | 184 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetCustomLogCount
Description
Function returns the number of records in the current custom log table. This function can be used in
conjunction with EZTaxGetCustomLog() which returns a pointer to the custom log table.
Format
short int EZTaxGetCustomLogCount(EZTaxSession session)
Return Value List
Count of records : 0 if no records exist, else the number of records in the custom log table.
Parameters
session: session handle returned with call to initialize the AFC session.
Remarks
GetCustomLogCount returns the number of taxes contained in the EZTaxGetCustomLog
structure. The log count includes no summarization. The log count always includes the nonbillable tax count.

A F C S a l e s a n d U s e U s e r M a n u a l | 185 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetLogName
Description
EZTaxGetLogName retrieves the log filename when it is specified using the filelocs.txt. Current use is
in the batch executables that open the log file and must know the filename.
Format
short int EZTaxGetLogName(EZTaxSession session, char *filename);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
SESSION_NOT_INIT : if session handle is invalid
TRUE : otherwise
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*filename: filename from filelocs.txt configuration file or paths variable EZTaxInitEx was called with
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 186 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetLogV914
Description
EZTaxGetLogV914 is a routine that returns a pointer to a log structure, which is used for customized
logging.
Format
struct eztax_log_v914 *EZTaxGetLogV914(EZTaxSession session)
Return Value List
NULL : Indicates an error has occurred
pointer : The v914 logging structure pointer
Parameters
session: session handle returned with call to initialize the AFC session.
Remarks
This function is used after a call to initialize the AFC session and before any taxes are calculated. The
log structure returned can be used to call EZTaxWriteToLogV914 to output the information to the AFC
log. EZTaxGetLogV914Count can be used to get the record count in the log table.
When a transaction has been processed, the V914 tax log structure will contain the tax information
generated by that transaction. In addition it will contain the charge and t/s pair used in the tax
calculation. This can be valuable when processing bundled transactions, as the t/s pair will be the
bundled product and the charge the % allocated to this t/s pair.
The value in eztax_log_v914.p_code is the jcode representation of the jurisdiction.

A F C S a l e s a n d U s e U s e r M a n u a l | 187 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetLogV914Count
Description
Function returns the number of records in the current custom log table. This function can be used in
conjunction with EZTaxGetLogV914 () which returns a pointer to the v9114 tax log table.
Format
short int EZTaxGetLogV914Count (EZTaxSession session)
Return Value List
Count of records : 0 if no records exist, else the number of records in the v914 tax log table.
Parameters
session: session handle returned with call to initialize the AFC session.
Remarks
GetLogV914Count returns the number of taxes contained inthe EZTaxGetLogV914
structure. The log count includes no summarization. The log count always includes the
non-billable tax count.

A F C S a l e s a n d U s e U s e r M a n u a l | 188 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetNoTaxTrans
Description
EZTaxGetNoTaxTrans is a routine that returns a pointer to a no-tax transaction structure, which is used
for tracking transactions that produce no taxes.
Format
struct no_tax_tbl *EZTaxGetNoTaxTrans(EZTaxSession session)
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
NULL : Indicates an error has occurred pointer : The no tax transaction structure pointer
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
Remarks
This function is used after a call to EZTaxInitEx.

A F C S a l e s a n d U s e U s e r M a n u a l | 189 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetStateID
Description
EZTaxGetStateID returns the state id associated with the PCode passed in.
For a list of US state codes, refer to the Id column listed under “Appendix B – Supported States,
Territories and Provinces” in document TM_00561_AFC Comprehensive Guide to Reports and Data
Files.pdf.
Format
unsigned int EZTaxGetStateID (EZTaxSession session, unsigned long int PCode, int *err_code);
Return Value List
unsigned int representing the state id associated with the PCode passed in.
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx.
PCode : AFC proprietary code representing a taxing jurisdiciton
*err_code: Error codes returned. See the header EZTaxDefine.h for definitions.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 190 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetRates
Description
EZTaxGetRates utilizes a P-Code as input to produce the table of all taxes for that jurisdiction.
Format
short int EZTaxGetRates(EZTaxSession session, unsigned long int p_code,
struct jurisdictionTaxes *taxes, int *err_code)
Header (s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
SUCCESS: 0
FAILURE: 1
Parameters
pCode : jurisdiction to get rate information for
*taxes : tax rates
*err_code : error codes
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 191 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetTaxCatV98
Description
EZTaxGetTaxCatV98 retrieves the tax category description for a specified tax code. Current use is in
utilities reporting from the log, but users can also use this new feature.
Format
char *EZTaxGetTaxCatV98(EZTaxSession session, int taxCode);
Header (s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
the tax category description
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
taxCode : the tax type to get the description for
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 192 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetTaxDescription
Description
EZTaxGetTaxDescription retrieves the tax description for a specified tax code. Current use is in utilities
reporting from the log, but users can also use this new feature.
Format
char *EZTaxGetTaxDescription(EZTaxSession session, int taxCode);
Header (s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
the tax description
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
taxCode : the tax type to get the description for
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 193 of 329
Copyright  2018 Avalara, Inc.

EZTaxGetTSR
Description
EZTaxGetTSR allows applications API functionality to get the transaction service report. A flag is used
to specify whether the report data should be returned or written to file.
Format
struct rtr_data* EZTaxGetTSR(EZTaxSession session, int *size, short int returnData)
Return Value List
Pointer to rtr_data : if method succeeded AND returnData is true
NULL : otherwise
Parameters
session: session handle returned with call to initialize the AFC session.
size : an integer passed by reference that will be set to the size of the returned array
returnData : flag that determines if the TSR data should be returned or written to file.
Remarks
EZTaxGetTSR returns a pointer to an array of data. This data is cleared from memory using
EZTaxClearTSR. Using EZTaxGetTSR without calling EZTaxClearTSR can lead to memory leaks.
If returnData is false, the function flushes the TSR data to file and clears the data from memory.
If returnData is true, the function returns the TSR data as an array and does not clear the data. Once
the returned data is processed and no longer needed, the calling application should call
EZTaxClearTSR() to clear the data from memory.

A F C S a l e s a n d U s e U s e r M a n u a l | 194 of 329
Copyright  2018 Avalara, Inc.

EZTaxGroupResults
Description
EZTaxGroupResults sets the mode that AFC uses to group the returned taxes by. After calling this
function, the results in the tax return table will be grouped as specified by the groupMode parameter.
Format
short int EZTaxGroupResults(EZTaxSession session, unsigned long int groupMode);
Header (s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
short int : TRUE or FALSE indicating if the function succeeded or not.
Parameters:
int groupMode: Constant indicating how tax calculation results should be returned. The options to
group taxes by tax level are the following:
GROUP_SAME_LEVEL: This option indicates that taxes at the same level should be grouped
together.
GROUP_CO_LOCAL: When using this option, AFC will group all state taxes into a single record,
and county and local taxes will be grouped together into a separate record.
GROUP_ST_CO_LOCAL. State, county and local taxes will be grouped together.
The options to group sales taxes separately may be appended to a tax level option by using the bitwise
OR operator (|). These options are:
GROUP_SALES: Sales taxes (tax type 1) and Use Taxes (tax type 49) will be grouped separately
from other taxes.
GROUP_SALES_CATEGORY: All taxes in the sales tax category will be grouped into a single record.
The DEFAULT option may be used to disable tax grouping.
These options are included in the EZTaxDefine.h header file.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 195 of 329
Copyright  2018 Avalara, Inc.

EZTaxInitEx
Description
EZTaxInitEx reads AFC files and initializes the AFC system. Multiple calls may be made to set up
completely independent sessions.
Format
struct enhanced_taxes_tbl *EZTaxInitEx(short int tax_log,
struct file_path *paths,
EZTaxSession *session);
Header(s) Required
EZTaxProto.h
EZTaxStruct.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
pointer : to structure where taxes are returned later
NULL : if an error occurred
Parameters
tax_log : flag to log taxes or not
*paths : data structure with file-paths, if null or incomplete, paths are read from file_locs.txt
*session : session handle returned
Remarks
This function initializes and starts an AFC session.
Multiple sessions can be initialized by successive calls to EZTaxInitEx.

A F C S a l e s a n d U s e U s e r M a n u a l | 196 of 329
Copyright  2018 Avalara, Inc.

EZTaxInitExMt
Description
EZTaxInitExMt reads AFC files and initializes the AFC system. Multiple calls may be made to set up
completely independent sessions.
Format
struct enhanced_taxes_tbl *EZTaxInitEx(short int tax_log,
struct file_path *paths,
EZTaxSession *session,
char *directory);
Header(s) Required
EZTaxProto.h
EZTaxStruct.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
pointer : to structure where taxes are returned later
NULL : if an error occurred
Parameters
tax_log : flag to log taxes or not
*paths : data structure with file-paths, if null or incomplete, paths are read from file_locs.txt
*session : session object returned
*directory : name of directory that AFC will search for EZTax.cfg and filelocs.txt
Remarks
This function initializes and starts an AFC session.
This function is designed to be thread-safe – other sessions on other threads can be running AFC
calculations when this function is called.
Be sure to call EZTaxExitSessionEx for each EZTaxSession object created by EZTaxInitExMt. EZTaxExit
will not close sessions created by EZTaxInitExMt. Failure to call EZTaxExitSessionEx will result in
memory leaks.

A F C S a l e s a n d U s e U s e r M a n u a l | 197 of 329
Copyright  2018 Avalara, Inc.

EZTaxInitV914
Description
EZTaxInitV914 reads AFC files and initializes the AFC system. Multiple calls may be made to set up
completely independent sessions.
The input structure allows all optional input files to be specified through the initialization method.
This method does not use filelocs.txt and will ignore exclusion, nexus and bundle file settings in
EZTax.cfg.
struct file_path_v914
{
char
*EZTax_data_dir;
char
*EZTax_work_dir;
char
*EZTax_log_file;
char
*EZTax_status_file;
char
*EZTax_ovr_file;
char
*EZTax_exc_file;
char
*EZTax_nex_file;
char
*EZTax_bdl_file;
};

/*
/*
/*
/*
/*
/*
/*
/*

EZTax data directory */
Working directory */
EZTax log */
EZTax status file */
EZTax override file */
EZTax exclusion file */
EZTax nexus file */
EZTax bundle file */

Format
struct enhanced_taxes_tbl * EZTaxInitV914(short int tax_log_enabled,
struct file_path_v914 *paths,
EZTaxSession *session);
Return Value List
pointer : to structure where taxes are returned later
NULL : if an error occurred
Parameters
tax_log_enabled : flag to enable the log taxes process
*paths : data structure with file-paths.
*session : session object returned
*directory : name of directory that AFC will search for EZTax.cfg and filelocs.txt
Remarks
This function initializes and starts an AFC session and is designed to be thread-safe - other sessions on
other threads can be running AFC calculations when this function is called.
Be sure to call EZTaxExitSessionEx for each EZTaxSession object created by EZTaxInitV914. EZTaxExit
will not close sessions created by EZTaxInitV914. Failure to call EZTaxExitSessionEx will result in
memory leaks.

A F C S a l e s a n d U s e U s e r M a n u a l | 198 of 329
Copyright  2018 Avalara, Inc.

EZTaxInitV98
Description
EZTaxInitV98 reads AFC files and initializes the AFC system. It differs from EZTaxInitExMT in that the
tax table returned includes tax category information. Multiple calls may be made to set up completely
independent sessions.
Format
struct taxes_tbl_v98 *EZTaxInitV98(short int tax_log,
struct file_path *paths,
EZTaxSession *session,
char *directory);
Header(s) Required
EZTaxProto.h
EZTaxStruct.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
pointer : to structure where taxes are returned later
NULL : if an error occurred
Parameters
tax_log : flag to log taxes or not
*paths : data structure with file-paths, if null or incomplete, paths are read from file_locs.txt
*session : session object returned
*directory : name of directory that AFC will search for EZTax.cfg and filelocs.txt
Remarks
This function initializes and starts an AFC session.
This function is designed to be thread-safe – other sessions on other threads can be running AFC
calculations when this function is called.
Be sure to call EZTaxExitSessionEx for each EZTaxSession object created by EZTaxInitV98. Failure to
call EZTaxExitSessionEx will result in memory leaks.

A F C S a l e s a n d U s e U s e r M a n u a l | 199 of 329
Copyright  2018 Avalara, Inc.

EZTaxJtoPCodeEx
Description
EZTaxJtoPCodeEx Returns PCode that is cross-referenced to a JCode.
Format
unsigned long int EZTaxJtoPCodeEx(EZTaxSession session,
unsigned long int JCode,
int *err_code);
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
PCode : for the input jcode if found, 0 otherwise
Parameters
session: Session handle returned when initialized with call to EZTaxInitEx
JCode: j-code to convert
*err_code: Error status returned
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 200 of 329
Copyright  2018 Avalara, Inc.

EZTaxJTTypeEx (EZTaxJTType deprecated)
Description
Returns transaction type for a given pair of JCodes indicating whether the call is interstate or
intrastate. The first JCode is the originating and the second the terminating JCode. Will set error code
to INTERSTATE_NOT_VALID_FOR_INTERNATIONAL_CALLS
If the originating country and terminating country are not the same.
The returned value can also be used to determine service types. For example
for transaction type, 19, 20, 21, 59, the interstate service type is 49, the
intrastate service is 50. For transaction type 61, the intersate service is 585,
intrastate service is 586. But caller is responsible to map INTERSTATE or INTRASTATE
to the right service type.
Format
short int EZTaxJTType(EZTaxSession session,
unsigned long int orig_J_Code,
unsigned long int term_J_Code,
int* err_code)
Return Value List
INTERSTATE or INTRASTATE : depending on the origination and termination States.
Parameters
session: Session handle returned when session was initialized
orig_J_Code: origination j-code
term_J_Code: termination j-code
*err_code : error status returned
Remarks
This call will eventually be deprecated. Recommend usage of EZTaxPTTypeEx(…) which works with
PCodes in place of this call.

A F C S a l e s a n d U s e U s e r M a n u a l | 201 of 329
Copyright  2018 Avalara, Inc.

EZTaxMaxTaxCount
Description
EZTaxMaxTaxCount returns the maximum number of taxes that one transaction can generate.
Format
Short int EZTaxMaxTaxCount();
Header(s) Required
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
Count : Maximum tax count generated by one transaction
Parameters
None
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 202 of 329
Copyright  2018 Avalara, Inc.

EZTaxNextAddressEx
Description
EZTaxNextAddressEx returns the next sequential record containing alternative address information for
a specific JCode. This function can be used to obtain additional address for a specified jurisdiction
when EZTaxGetAddressEx returns MORE, indicating additional information is available. The majority of
jurisdictions have more than one set of address/zip code data associated with them.
Format
short int EZTaxNextAddressEx(EZTaxSession session,
struct address_data_p4 *address,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
FOUND : is returned if last address found
MORE : is returned if an address is found and more addresses are available
NOT_FOUND : is returned if not found
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*address : address information
*err_code : error status returned
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 203 of 329
Copyright  2018 Avalara, Inc.

EZTaxNextCustomerEx
Description
EZTaxNextCustomerEx puts the taxes calculated in the customer table into a customer tax table that
the client can reference, and reinitializes the customer table to prepare for the next set of customer
records.
Format
int EZTaxNextCustomerEx(EZTaxSession session);
Libraries
EZTax2.lib
Header(s) Required
EZTaxProto.h,
EZTaxDefine.h,
EZTaxStruct.h
Return Value List
Tax count : positive if all taxes waiting have been returned
-1 if there was an error
-1*tax count if more taxes are waiting to be retrieved
Parameters
session : Session handle returned for session when initialized with call to EZTaxInit.
Remarks
To be used if the system is in Invoice Mode. See EZTaxSetInvoiceMode. Reinitializes the customer
table to prepare for the next set of customer records when all waiting taxes have been retrieved. If
the
return value is negative (and not -1), EZTaxNextCustomer must be called again to retrieve more taxes.
Interface data structures are also described in detail in the AFC Data Structures section.
Note that the summarized taxes returned when calling EZTaxNextCustomer are identical to the total of
the individual taxes returned from the taxing APIs. Typically one or the other is used but not both.
Combining the individual taxes and the summarized taxes will result in twice as much taxes as should
be normal.

A F C S a l e s a n d U s e U s e r M a n u a l | 204 of 329
Copyright  2018 Avalara, Inc.

EZTaxOvrJCodeEx
Description
EZTaxOvrJCodeEx specifies an override for a specific tax. Tax Jurisdiction information is passed via
jurisdiction code. It takes a J_Code and an override structure as input and inserts a tax override into
the AFC db system.
Format
short int EZTaxOvrJCodeEx(EZTaxSession session,
unsigned long int j_code,
struct enhancedOverride *over)
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx
j_code : Specifies jurisdiction to override via JCode
*over : pointer to override information in the same form as returned by EZTaxGetRates. See struct
enhancedOverride in EZTaxStruct.h for detailed information. Note that this structure points to other
structures with detailed information on effective date for each tax rate and tax bracket. Interface
data structures are also described in detail in the AFC Data Structures section.
Return Value List
FALSE : Override failed
TRUE : Override established
Remarks
Taxes which are overridden are in effect from the time the override is established until the AFC session
is terminated. All overrides can be removed from the system using the method EZTaxRestore.
Overrides must be approached with caution. The system allows overrides of all taxes and allows the
user to specify the scope of the override. Overriding a tax on a state or county level can impact taxes
in excess of a thousand jurisdictions in some cases. Further detail is contained in the AFC Data
Structure section.

A F C S a l e s a n d U s e U s e r M a n u a l | 205 of 329
Copyright  2018 Avalara, Inc.

EZTaxOvrPCodeEx
Description
EZTaxOvrPCodeEx specifies an override for a specific tax. Tax jurisdiction information is passed via
permanent jurisdiction code. It takes a P_Code and an override structure as input and inserts a tax
override into the AFC db system.
Format
short int EZTaxOvrPCodeEx(EZTaxSession session,
unsigned long int p_code,
struct enhancedOverride *over)
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx
p_code : Specifies jurisdiction to override via PCode
*over : pointer to override information in the same form as returned by EZTaxGetRates. See struct
enhancedOverride in EZTaxStruct.h for detailed information. Note that this structure points to other
structures with detailed information on effective date for each tax rate and tax bracket. Interface data
structures are also described in detail in the AFC Data Structures section.
Return Value List
FALSE : Override failed
TRUE : Override established
Remarks
Taxes which are overridden are in effect from the time the override is established until the AFC session
is terminated. All overrides can be removed from the system using the method EZTaxRestore.
Overrides must be approached with caution. The system allows overrides of all taxes and allows the
user to specify the scope of the override. Overriding a tax on a state or county level can impact taxes
in excess of a thousand jurisdictions in some cases. Further detail is contained in the AFC Data
Structure section.

A F C S a l e s a n d U s e U s e r M a n u a l | 206 of 329
Copyright  2018 Avalara, Inc.

EZTaxOvrZipEx
Description
EZTaxOvrZipEx specifies an override for a specific tax. Tax jurisdiction information is passed via zip
code and address. It takes zip code plus 4 and address information, as well as an override structure as
input and inserts a tax override into the AFC db system.
Format
short int EZTaxOvrZipEx(EZTaxSession session,
struct zip_address_p4 int zip_addr,
struct enhancedOverride *over,
int *err_code)
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
Libraries
EZTax2.lib
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx.
zip_addr : Specifies jurisdiction to override via Zip code and address.
*over : pointer to override information in the same form as returned by EZTaxGetRates. See struct
enhancedOverride and struct zip_address_p4 in EZTaxStruct.h for detailed information.
Note that the enhancedOverride structure points to other structures with detailed information on
effective date for each tax rate and tax bracket. Interface data structures are also described in detail
in the AFC Data Structures section.
err_code : error status returned
Return Value List
FALSE : Override failed
TRUE : Override established
Remarks
Taxes which are overridden are in effect from the time the override is established until the AFC
session is terminated. All overrides can be removed from the system using the method EZTaxRestore.
Overrides must be approached with caution. The system allows overrides of all taxes and allows the
user to specify the scope of the override. Overriding a tax on a state or county level can impact taxes
in excess of a thousand jurisdictions in some cases. Further detail is contained in the AFC Data
Structure section.
Either the two-character or three-character ISO country code may be used here.

A F C S a l e s a n d U s e U s e r M a n u a l | 207 of 329
Copyright  2018 Avalara, Inc.

EZTaxPtoFipsEx
Description
EZTaxPtoFipsEx returns FIPS Code that is cross-referenced to a PCode. It converts a PCode into a Fips
Code. Zero is returned if not found.
Format
char *EZTaxPtoFipsEx(EZTaxSession session,
unsigned long int PCode,
int *err_code);
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
FALSE : (0) Indicates that the PCode specified was not found or an error has occurred.
FIPS Code : FIPS Jurisdiction code
Parameters
session : Session handle returned when initialized with call to EZTaxInitEx.
PCode : Permanent jurisdiction code.
*err_code : Error codes returned. See the header EZTaxDefine.h for definitions.
Remarks
If the supplied PCode was not found or an error has occurred 0 is returned.

A F C S a l e s a n d U s e U s e r M a n u a l | 208 of 329
Copyright  2018 Avalara, Inc.

EZTaxPtoJCodeEx
Description
EZTaxPtoJCodeEx converts a PCode into a J-Code. PCODE_NOT_FOUND returned if not found.
Format
unsigned long int EZTaxPtoJCodeEx(EZTaxSession session, unsigned long
int PCode, int *err_code);
Header(s) Required
EZTaxDefine.h
EZTaxStruct.h
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
FALSE (0) : Indicates that the PCode specified was not found or an error has occurred.
JCode : Jurisdiction code
Parameters
session : Session handle returned when initialized with call to EZTaxInitEx
PCode : Permanent jurisdiction code.
*err_code : Error codes returned. See the header EZTaxDefine.h for definitions.
Remarks
If the supplied PCode was not found or an error has occurred 0 is returned, which is a valid U.S.
Federal level code.
Please check the error code before using the JCode that is returned.

A F C S a l e s a n d U s e U s e r M a n u a l | 209 of 329
Copyright  2018 Avalara, Inc.

EZTaxPTTypeEx
Description
Returns transaction type for a given pair of PCodes indicating whether the call is interstate or
intrastate. The first JCode is the originating and the second the terminating PCode. Will set error code
to INTERSTATE_NOT_VALID_FOR_INTERNATIONAL_CALLS
If the originating country and terminating country are not the same.
The returned value can also be used to determine service types. For example
for transaction type, 19, 20, 21, 59, the interstate service type is 49, the
intrastate service is 50. For transaction type 61, the intersate service is 585,
intrastate service is 586. But caller is responsible to map INTERSTATE or INTRASTATE
to the right service type.
Format
short int EZTaxPTType(EZTaxSession session,
unsigned long int orig_PCode,
unsigned long int term_PCode,
int* err_code)
Return Value List
INTERSTATE or INTRASTATE : depending on the origination and termination States.
Parameters
session: Session handle returned when session was initialized
orig_PCode: origination p-code
term_PCode: termination p-code
*err_code : error status returned
Remarks
This is the preferred API to be used and replaces usage of EZTaxJTType and EZTaxJTTypeEx.

A F C S a l e s a n d U s e U s e r M a n u a l | 210 of 329
Copyright  2018 Avalara, Inc.

EZTaxRestoreEx
Description
EZTaxRestoreEx removes all overrides that have been inserted, by the user, into the AFC databases.
This action occurs automatically on EZTaxExit. The function provides the user with the ability to
remove prior overrides, without terminating an AFC session.
This program restores the AFC db to its original state (i.e. before overrides). All tables modified,
except for the federal tax table, are restored by restoring EZTax.dll and clearing cache. This is so
because all tables are modified by appending overrides to the end of the table and changing the
references from the old record to the new record. Therefore, when cache is cleared and new data is
pulled from the unmodified EZTax.dll, it references the original, unmodified record in the associated
tables. As federal taxes do not work in this fashion, federal tax overrides are installed and restored
using a unique procedure.
Format
short int EZTaxRestoreEx(EZTaxSession session);
Header(s) Required
EZTaxDefine.h
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
TRUE : Restore succeeded
FALSE : Restore failed
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx.
Remarks
All prior overrides are lost and the system databases are returned to their original configuration.

A F C S a l e s a n d U s e U s e r M a n u a l | 211 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjFips
Description
EZTaxSAUAdjFips accepts transaction data and performs appropriate tax calculations. If the AFC
session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using fips codes.
Format
short int EZTaxSAUAdjFips(EZTaxSession session,
struct sau_Fips_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 212 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjJCode
Description
EZTaxSAUAdjJCode accepts transaction data and performs appropriate tax calculations required to
refund or credit taxes (Debit transactions use EZTaxAdjDebitEx API’s). If the AFC session was started
with the tax log open, appropriate taxes reductions are logged and will be reflected in tax reports.
FOB, ship_from and ship_to information is passed using JCodes.
Format
short int EZTaxSAUAdjJCode(EZTaxSession session,
struct sau_J_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count, int adj_method,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 213 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjPCode
Description
EZTaxSAUAdjPCode accepts transaction data and performs appropriate tax calculations. If the AFC
session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using PCodes.
Format
short int EZTaxSAUAdjPCode(EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 214 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjTaxInclusiveJCode (EZTaxSAUAdjRevJCode deprecated)
Description
EZTaxSAUAdjTaxInclusiveJCode accepts transaction data and performs a tax inclusive adjustment
calculation to arrive at the base sale amount. The desired total (charge plus all taxes) is placed in the
‘charge’ field in the transaction, and base charge necessary to generate that total is returned in the
‘base_sale’ parameter. Taxes for the desired transaction are returned in the same manner as
EZTaxSAUAdjJCode does. If the AFC session was started with the tax log open, tax calculations are
logged and will be reflected in tax reports. FOB, ship_from and ship_to information is passed using
JCodes. The base sale amount will also be stored in the ‘optional’ field in the log output, converted to
an integer.
Format
short int EZTaxSAUAdjTaxInclusiveJCode(EZTaxSession session,
struct sau_J_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
adj_method: adjustment method
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent, is insufficient to cover the taxes generated,

A F C S a l e s a n d U s e U s e r M a n u a l | 215 of 329
Copyright  2018 Avalara, Inc.

then no taxes will be calculated and the err_code will be set to -37. An error will be logged to the
status file indicating an insufficient charge error occurred.
**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that
total.

A F C S a l e s a n d U s e U s e r M a n u a l | 216 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjTaxInclusivePCode (EZTaxSAUAdjRevPCode deprecated)
Description
EZTaxSAUAdjTaxInclusivePCode accepts transaction data and performs a tax inclusive adjustment
calculation to arrive at the base sale amount. The desired total (charge plus all taxes) is placed in the
‘charge’ field in the transaction, and base charge necessary to generate that total is returned in the
‘base_sale’ parameter. Taxes for the desired transaction are returned in the same manner as
EZTaxSAUAdjPCode does. If the AFC session was started with the tax log open, tax calculations are
logged and will be reflected in tax reports. FOB, ship_from and ship_to information is passed using
PCodes. The base sale amount will also be stored in the ‘optional’ field in the log output, converted to
an integer.
Format
short int EZTaxSAUAdjTaxInclusivePCode(EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
adj_method: adjustment method
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent in is insufficient to cover the taxes generated,

A F C S a l e s a n d U s e U s e r M a n u a l | 217 of 329
Copyright  2018 Avalara, Inc.

then no taxes will be calculated and the err_code will be set to -37. An error will be logged to the
status file indicating an insufficient charge error occurred.
**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that
total.

A F C S a l e s a n d U s e U s e r M a n u a l | 218 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjTaxInclusiveZip (EZTaxSAUAdjRevZip deprecated)
Description
EZTaxSAUAdjTaxInclusiveZip accepts transaction data and performs a tax inclusive adjustment
calculation to arrive at the base sale amount. The desired total (charge plus all taxes) is placed in the
‘charge’ field in the transaction, and base charge necessary to generate that total is returned in the
‘base_sale’ parameter. Taxes for the desired transaction are returned in the same manner as
EZTaxSAUAdjZip does. If the AFC session was started with the tax log open, tax calculations are
logged and will be reflected in tax reports. FOB, ship_from and ship_to information is passed using zip
codes. The base sale amount will also be stored in the ‘optional’ field in the log output, converted to
an integer.
Format
short int EZTaxSAUAdjTaxInclusiveZip(EZTaxSession session,
struct sau_Zip_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
adj_method: adjustment method
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent in is insufficient to cover the taxes generated,

A F C S a l e s a n d U s e U s e r M a n u a l | 219 of 329
Copyright  2018 Avalara, Inc.

then no taxes will be calculated and the err_code will be set to -37. An error will be logged to the
status file indicating an insufficient charge error occurred.
**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that
total.

A F C S a l e s a n d U s e U s e r M a n u a l | 220 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUAdjZip
Description
EZTaxSAUAdjPCode accepts transaction data and performs appropriate tax calculations. If the AFC
session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using PCodes.
Format
short int EZTaxSAUAdjPCode(EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 221 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUDRAdjFips
Description
EZTaxSAUDRAdjFips accepts transaction data and performs appropriate debit
adjustment tax calculations. If the AFC session was started with the tax log
open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using fips codes.
Format
short int EZTaxSAUDRAdjFips(
struct sau_Fips_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code );

EZTaxSession session,

Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 222 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUDRAdjJCode
Description
EZTaxSAUDRAdjJCode accepts transaction data and performs appropriate debit
adjustment tax calculations required to refund or credit taxes (Debit
transactions use EZTaxAdjDebitEx API’s). If the AFC session was started with
the tax log open, appropriate taxes reductions are logged and will be reflected
in tax reports. FOB, ship_from and ship_to information is passed using JCodes.
Format
short int EZTaxSAUDRAdjJCode(
EZTaxSession session,
struct sau_J_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count, int adj_method,
int *err_code );
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 223 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUDRAdjPCode
Description
EZTaxSAUDRAdjPCode accepts transaction data and performs appropriate
debit adjustment tax calculations. If the AFC session was started with the tax
log open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using PCodes.
Format
short int EZTaxSAUDRAdjPCode(
EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code );
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0] : No taxes calculated or an error was found
[n] : Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 224 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUDRAdjZip
Description
EZTaxSAUAdjPCode accepts transaction data and performs appropriate tax calculations. If the AFC
session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using PCodes.
Format
short int EZTaxSAUDRAdjPCode(
EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int adj_method,
int *err_code );
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
adj_method : adjustment method (DLM)
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 225 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUFips
Description
EZTaxSAUFips accepts transaction data and performs appropriate tax calculations. If the AFC session
was started with the tax log open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using fips codes.
Format
short int EZTaxSAUFips(EZTaxSession session,
struct sau_Fips_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 226 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUJCode
Description
EZTaxSAUJCode accepts transaction data and performs appropriate tax calculations. If the AFC session
was started with the tax log open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using JCodes.
Format
short int EZTaxSAUJCode(EZTaxSession session,
struct sau_J_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 227 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUPCode
Description
EZTaxSAUPCode accepts transaction data and performs appropriate tax calculations. If the AFC session
was started with the tax log open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using PCodes.
Format
short int EZTaxSAUPCode(EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*nex_tab : list of states where a business nexus exists.
nexus_count : number of entries in nex_tab
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 228 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUTaxInclusiveJCode (EZTaxSAURevJCode deprecated)
Description
EZTaxSAUTaxInclusiveJCode accepts transaction data and performs a tax inclusive calculation to arrive
at the base sale amount. The desired total (charge plus all taxes) is placed in the ‘charge’ field in the
transaction, and base charge necessary to generate that total is returned in the ‘base_sale’ parameter.
Taxes for the desired transaction are returned in the same manner as EZTaxSAUJCode does. If the
AFC session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using JCodes. The base sale amount will
also be stored in the ‘optional’ field in the log output, converted to an integer.
Format
short int EZTaxSAUTaxInclusiveJCode (EZTaxSession session,
struct sau_J_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent in is insufficient to cover the taxes generated,
then no taxes will be calculated and the err_code will be set to -37. An error will be logged to the
status file indicating an insufficient charge error occurred.

A F C S a l e s a n d U s e U s e r M a n u a l | 229 of 329
Copyright  2018 Avalara, Inc.

**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that total.

A F C S a l e s a n d U s e U s e r M a n u a l | 230 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUTaxInclusivePCode (EZTaxSAURevPCode deprecated)
Description
EZTaxSAUTaxInclusivePCode accepts transaction data and performs a tax inclusive calculation to arrive
at the base sale amount. The desired total (charge plus all taxes) is placed in the ‘charge’ field in the
transaction, and base charge necessary to generate that total is returned in the ‘base_sale’ parameter.
Taxes for the desired transaction are returned in the same manner as EZTaxSAUPCode does. If the
AFC session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using JCodes. The base sale amount will
also be stored in the ‘optional’ field in the log output, converted to an integer.
Format
short int EZTaxSAUTaxInclusivePCode(EZTaxSession session,
struct sau_P_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent in is insufficient to cover the taxes generated,
then no taxes will be calculated and the err_code will be set to -37. An error will be logged to the
status file indicating an insufficient charge error occurred.

A F C S a l e s a n d U s e U s e r M a n u a l | 231 of 329
Copyright  2018 Avalara, Inc.

**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that total.

A F C S a l e s a n d U s e U s e r M a n u a l | 232 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUTaxInclusiveZip (EZTaxSAURevZip deprecated)
Description
EZTaxSAUTaxInclusiveZip accepts transaction data and performs a tax inclusive calculation to arrive at
the base sale amount. The desired total (charge plus all taxes) is placed in the ‘charge’ field in the
transaction, and base charge necessary to generate that total is returned in the ‘base_sale’ parameter.
Taxes for the desired transaction are returned in the same manner as EZTaxSAUZip does. If the AFC
session was started with the tax log open, tax calculations are logged and will be reflected in tax
reports. FOB, ship_from and ship_to information is passed using zip codes. The base sale amount will
also be stored in the ‘optional’ field in the log output, converted to an integer.
Format
short int EZTaxSAUTaxInclusiveZip(EZTaxSession session,
struct sau_Zip_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
double *base_sale,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
[-1]: A critical error occurred while preparing the tax inclusive calculation session
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session: session handle returned when initialized with call to EZTaxInitEx
*trans: transaction information
*nex_tab: list of states where a business nexus exists.
nexus_count: number of entries in nex_tab
*base_sale: calculated charge returned
*err_code: error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error. The base_sale
returned will equal the charge sent in. If the charge sent in is insufficient to cover the taxes
generated, then no taxes will be calculated and the err_code will be set to -37. An error will be logged
to the status file indicating an insufficient charge error occurred.

A F C S a l e s a n d U s e U s e r M a n u a l | 233 of 329
Copyright  2018 Avalara, Inc.

**Note**: Non-billable taxes are not included in the calculation of the base sale amount. Adding the
base sale amount and all taxes that appear in the log for a transaction may result in a value greater than
the target amount, as any non-billable taxes returned by the transaction *will* be included in that
total.

A F C S a l e s a n d U s e U s e r M a n u a l | 234 of 329
Copyright  2018 Avalara, Inc.

EZTaxSAUZip
Description
EZTaxSAUZip accepts transaction data and performs appropriate tax calculations. If the AFC session
was started with the tax log open, tax calculations are logged and will be reflected in tax reports. FOB,
ship_from and ship_to information is passed using zip information.
Format
short int EZTaxSAUZip(EZTaxSession session,
struct sau_Zip_Code *trans,
struct nexus_table *nexus_tab,
short int nexus_count,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
EZTaxSauProto.h
EZTaxSauDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: No taxes calculated or an error was found
[n]: Indicates number of taxes stored in the struct enhanced_taxes_tbl array for this transaction
Parameters
session : session handle returned when initialized with call to EZTaxInitEx
*trans : transaction information
*err_code : error status returned
Remarks
When both return and err_code are 0, no taxes were found, but there is no error.

A F C S a l e s a n d U s e U s e r M a n u a l | 235 of 329
Copyright  2018 Avalara, Inc.

EZTaxSessionDbVersion
Description
Function EZTaxSessionDbVersion reads the database version being used by the specified AFC session
and returns it to the caller.
Format
short int EZTaxDbVersion(EZTaxSession session, char *psz_db_version);
Return Value List
TRUE if database version is returned in psz_db_version
FALSE if database version couldn't be obtained
Parameters
session : session handle
*psz_db_version : address of character array that will receive the database version.
Remarks
The database version will be returned in the form ww.xx.yy.zz, where each piece of the database
version number can be 1 or 2 digits.

A F C S a l e s a n d U s e U s e r M a n u a l | 236 of 329
Copyright  2018 Avalara, Inc.

EZTaxSetInvoiceModeEx
Description
Function EZTaxSetInvoiceModeEx sets Invoice Mode on or off – allocating or freeing memory for
tables.
This function sets the Invoice Mode on or off. When the Invoice Mode is off AFC works in the normal
fashion, each transaction passed is taxed with caps and limits calculated on a per transaction basis.
When Invoice Mode is on, AFC performs appropriate tax calculations and returns the taxes calculated,
AFC also keeps the tax amounts in memory and uses them to apply caps and limits to the taxes
generated for each subsequent transaction. When EZTaxNextCustomerEx is called a summarized
version of the taxes is returned.
Format
struct enhanced_cust_taxes_tbl *EZTaxSetInvoiceModeEx(EZTaxSession session,
short int mode);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
pointer: to the tax table if successful
null: if an error occurred
Parameters
session : session handle returned for session when initialized with call to EZTaxInitEx
mode: flag for turning Invoice Mode on (TRUE) or off (FALSE)
Remarks
Interface data structures are also described in detail in the AFC Data Structures section.
Before setting the Invoice Mode to false, EZTaxNextCustomerEx must be called in order to get the
summarized taxes for the final customer (the summarized taxes should be processed prior to turning
off the Invoice Mode). Failure to call EZTaxNextCustomerEx will cause the last customer's summarized
taxes to be lost.
Note: The summarized taxes returned when calling EZTaxNextCustomerEx are identical to the total of the
individual taxes returned from the taxing APIs. Typically one or the other is used but not both. Combining
the individual taxes and the summarized taxes will result in twice as much taxes as should be normal.

A F C S a l e s a n d U s e U s e r M a n u a l | 237 of 329
Copyright  2018 Avalara, Inc.

EZTaxSetInvoiceModeV98
Description
Function EZTaxSetInvoiceModeV98 sets Invoice Mode on or off – allocating or freeing memory for
tables. It differs from EZTaxSetInvoiceModeEx in that the tax table returned contains tax category
information.
This function sets the Invoice Mode on or off. When the Invoice Mode is off AFC works in the normal
fashion, each transaction passed is taxed with caps and limits calculated on a per transaction basis.
When customer mode is on, AFC performs appropriate tax calculations and returns the taxes
calculated, AFC also keeps the tax amounts in memory and uses them to apply caps and limits to the
taxes generated for each subsequent transaction. When EZTaxNextCustomerEx is called a summarized
version of the taxes is returned.
Format
struct cust_taxes_tbl_v98 *EZTaxSetInvoiceModeV98(EZTaxSession session,
short int mode);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
pointer: to the tax table if successful
null: if an error occurred
Parameters
session : session handle returned for session when initialized with call to EZTaxInitEx
mode: flag for turning Invoice Mode on (TRUE) or off (FALSE)
Remarks
Interface data structures are also described in detail in the AFC Data Structures section.
Before setting the Invoice Mode to false, EZTaxNextCustomerEx must be called in order to get the
summarized taxes for the final customer (the summarized taxes should be processed prior to turning
off the customer mode). Failure to call EZTaxNextCustomerEx will cause the last customer's
summarized taxes to be lost.
Note: The summarized taxes returned when calling EZTaxNextCustomerEx are identical to the total of
the individual taxes returned from the taxing APIs. Typically one or the other is used but not both.
Combining the individual taxes and the summarized taxes will result in twice as much taxes as should be
normal.

A F C S a l e s a n d U s e U s e r M a n u a l | 238 of 329
Copyright  2018 Avalara, Inc.

EZTaxSetNexus
Description
Function EZTaxSetNexus sets nexus on or off for the specified states.
This function sets the nexus information by jurisdiction on or off. For each nexus point in the
nexus_table, the engine will calculate its jurisdiction and either set nexus on or off based on the
has_nexus variable of the nexus_table structure.
Format
short int EZTaxSetNexus(EZTaxSession session, struct nexus_table *nexus_tbl,
short int nexus_count);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
TRUE if nexus information was changed;
FALSE otherwise
Parameters
session : session handle returned for session when initialized with call to EZTaxInitEx
*nexus_table : Pointer to nexus table structure that contains nexus information.
See the nexus_table struct in the header file EZTaxStruct.h.
nexus_count : Number of nexus points in the structure.
Remarks
Interface data structures are also described in detail in the AFC Data Structures section.
Using this API with the nexus=on option in the configuration file is not recommended. This API is to be
used as a programmatic option instead of a configuration file option.

A F C S a l e s a n d U s e U s e r M a n u a l | 239 of 329
Copyright  2018 Avalara, Inc.

EZTaxSetStateExclusions
Description
EZTaxSetStateExclusion uses the country code and, optionally, a state code to set an exclusion. A flag
is used to determine if the country/state jurisdiction is to be turned off (enable regular taxation) or on
(exclude country and/or state taxation for all jurisdictions within the country or state including county
and local taxation). Transactions for an excluded state continue to return federal (country) level taxes
for all transactions within the excluded state.
Note: The three-character country code should be used for countries and the two-character code
should be used for states, including US territories.
In this context, references to state apply to either a state or province.
For US territories, the USA Federal exclusions have precedence over US Terriotry jurisdictions. As a
result, all US Territory exclusions will be set or cleared along with US Federal exclusions when only USA
is specified.
Please make note, country codes for US territories have been deprecated.
Format
short int EZTaxSetStateExclusion(EZTaxSession session,
char country_ISO[4], char state_abv[3], short int flag);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
TRUE : EZTaxSetStateExclusion was successful.
FALSE : EZTaxSetStateExclusion failed.
Parameters
Session: session handle returned when initialized with call to EZTaxInitEx
country_ISO: The country code. These are listed in EZTaxDefine.h.
state_abv: The state abbreviation. These are listed in EZTaxDefine.h.
flag: TRUE – Exclude this state from taxation.
FALSE: Do not exclude this state from taxation.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 240 of 329
Copyright  2018 Avalara, Inc.

EZTaxSetStateNexus
Description
EZTaxSetStateNexus uses a state code to set the nexus. A flag is used to determine if the state has
nexus (true) or not (false).
Format
short int EZTaxSetStateNexus(EZTaxSession session, char state_abv[3],
short int flag);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
TRUE : EZTaxSetStateNexus was successful.
FALSE : EZTaxSetStateNexus failed.
Parameters
Session: session handle returned when initialized with call to EZTaxInitEx
state_abv: The state abbreviation. These are listed in EZTaxDefine.h.
flag: TRUE or FALSE.
Remarks
None

A F C S a l e s a n d U s e U s e r M a n u a l | 241 of 329
Copyright  2018 Avalara, Inc.

EZTaxWriteToLogEx
Description
Function EZTaxWriteToLogEx allows customers to create the correctly formatted binary AFC log from
scratch by passing in data they have stored from a different database or saved from AFC transactions
using EZTaxInitExp.
Format
short int EZTaxWriteToLogEx(EZTaxSession session, int count,
struct EZTax_logEx *log);
Header(s) Required
EZTaxProto.h
EZTaxStruct.h
Libraries
EZTax2.lib
Return Value List
FALSE : An error occurred
TRUE : Success
Parameters
session : Session handle returned when initialized with call to EZTaxInitEx
count: Number of taxes in the log structure
*log : Log structure to save information from
Remarks
EZTaxWriteToLogEx does not support logging of the transaction type and service type.

A F C S a l e s a n d U s e U s e r M a n u a l | 242 of 329
Copyright  2018 Avalara, Inc.

EZTaxWriteToLogV914
Description
Function EZTaxWriteToLogV914 allows customers to create the correctly formatted binary AFC log
from scratch by passing in data they have stored from a different database or saved from AFC
transactions.
Format
short int EZTaxWriteToLogV914(EZTaxSession session, int count, struct eztax_log_v914 *log
Return Value List
FALSE : An error occurred
TRUE : Success
Parameters
session: session handle returned with call to initialize the AFC session.
count: Number of taxes in the log structure
*log : Log structure containing records to be written to file.
Remarks
EZTaxWriteToLogEx does not support logging of the transaction charge, the tax description, the tax
category id or the tax category description.

A F C S a l e s a n d U s e U s e r M a n u a l | 243 of 329
Copyright  2018 Avalara, Inc.

EZTaxZtoJCodeEx
Description
EZTaxZtoJCodeEx utilizes zip code plus 4 and address information supplied by the user, to obtain a JCode.
Format
unsigned long int EZTaxZtoJCodeEx(EZTaxSession session,
struct zip_address_p4 *address,
int *err_code);
Header(s) Required
EZTaxProto.h
EZTaxDefine.h
Libraries
EZTax2.lib
Return Value List
[0]: Error Code has been set. If the supplied address was not found or an error has occurred 0 is
returned, which is a valid U.S. Federal level code. Please check the error code before using the JCode
that is returned.
JCode : Error Code has not been set.
Parameters
session : Session handle returned when initialized with call to EZTaxInitEx
address : Address information with zip+4
*err_code : Error status returned
Remarks
AFC currently has Zip Code information for U.S. and Canadian jurisdictions. The six character Canadian
postal code must be broken up for entry. The first 3 characters go into the zip code field and the last 3
characters go into the plus 4 field.

A F C S a l e s a n d U s e U s e r M a n u a l | 244 of 329
Copyright  2018 Avalara, Inc.

EZTaxZtoPCodeEx
Description
EZTaxZtoPCodeEx returns PCode cross-referenced to a zip code and address.
Format
unsigned long int EZTaxZtoPCodeEx(EZTaxSession session, struct
zip_address_p4 *address, int *err_code);
Header(s) Required
EZTaxProto.h
Libraries
EZTax2.lib
Return Value List
PCode : Permanent jurisdiction code. If the supplied address was not found or an error has occurred 0
is returned which is a valid U.S. Federal level code. Please check the error code before using the
PCode that is returned.
Parameters
session : Session object returned for session when initialized with call to EZTaxInitEx.
*address : Pointer to zip_address_p4 structure containing valid address data, see struct in
EZTaxStruct.h Interface data structures are also described in detail in the AFC Data Structures
section.
*err_code : Error codes returned. See the header EZTaxDefine.h for definitions.
Remarks
AFC currently has Zip Code information for U.S. and Canadian jurisdictions. The six character Canadian
postal code must be broken up for entry. The first 3 characters go into the zip code field and the last 3
characters go into the plus 4 field.

A F C S a l e s a n d U s e U s e r M a n u a l | 245 of 329
Copyright  2018 Avalara, Inc.

Appendices A - G
The complete content of the structures, constants and prototypes are provided in the following
Appendices. Also included are the monthly update procedures and a help guide.
8.1 EZTaxStruct.h
8.2 EZTaxDefine.h
8.3 EZTaxProto.h
8.4 EZTaxSauStruct.h
8.5 EZTaxSauDefine.h
8.6 EZTaxSauProto.h
8.7 Monthly Update Procedure
8.8 Help Guide

A F C S a l e s a n d U s e U s e r M a n u a l | 246 of 329
Copyright  2018 Avalara, Inc.

Appendix A EZTaxStruct.h
/*
EZTaxStruct.h
The file defines structures that are required to interface with
the EZTax system.
*/
#ifndef _inc_EZTaxStruct_
#define _inc_EZTaxStruct_
/* If defined for C++ environment */
#ifdef __cplusplus
extern "C" {
#endif
#include "EZTaxDefine.h"
/* jurisdiction structure returned by EZTaxGetRates */
struct jurisdictionTaxes
{
unsigned long int
pCode;
/* jurisdiction's PCode */
short int
taxesCount;
/* count of all taxes for jurisdiction */
struct enhancedOverride *taxesTable;
/* table of all taxes for jurisdiction in override
format */
/* notes: (1) the scope value will be set to the tax level */
/*
(2) the taxesTable should be freed when the results */
/*
are no longer needed to prevent a memory leak */
};
/* Primary override structure for EZTax release
struct enhancedOverride
{
short int
scope;
short int
type;
short int
level;
short int
dateCount;
struct enhancedDateOverride
*dateTable;
};

9 */

/*
/*
/*
/*
/*

Scope of override */
tax type identifier */
tax level identifier */
number of date records (normally 2) */
address of array of date records */

/* entries in the dateTable for overrides if the tax type is telecom (non-sales tax) */
struct enhancedDateOverride
{
unsigned long int overrideDate; /* starting (effective) date for this set of tax rates */
short int
rateCount;
/* number of rate records for this date (normally 1) */
short int
levelExempt;
/* TRUE indicates tax can be exempted by an */
/*
exemption for all taxes at the same level as */
/*
this tax, FALSE indicates it cannot be exempted. */
/* NOTE: Tax can be exempted by specific tax exemption. */
struct enhancedRateOverride
*rateTable;
/* address of array of telecom rate records */
};
/* rate entries in rateTable for telecom taxes */
struct enhancedRateOverride
{
double
tax;
/* tax amount (rate) */
double
max_base;
/* max amount subject to this tax(end of bracket) */
short int
repl_st;
/* if TRUE tax replaces state tax */
double
st_ovrd_tax;
/* overrides state rate if present */
short int
repl_co;
/* if TRUE tax replaces county tax */
double
co_ovrd_tax;
/* if present, override county tax */
};
/* Deprecated tax override structure (Prior to version 9) */
struct tax_ovrd
{
short int
scope;
/* Scope of override */

A F C S a l e s a n d U s e U s e r M a n u a l | 247 of 329
Copyright  2018 Avalara, Inc.

short int
short int
short int

type;
level;
level_exempt;

short int

limit;

unsigned long int
float
float
float

date;
tax;
prev_tax;
max_base;

float

excess_tax;

float
float
short int
short int

st_ovrd_tax;
co_ovrd_tax;
repl_st;
repl_co;

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

tax type identifier */
tax level identifier */
TRUE indicates tax can be exempted by an */
exemption for all taxes at the same level as */
this tax, FALSE indicates it cannot be exempted. */
NOTE: Tax can be exempted by specific tax exemption. */
limit - applies to local taxes to indicate */
max lines to apply tax to. */
tax effective date */
tax amount */
previous tax amount */
max amount to which tax is */
applied - amounts above this */
will be taxed at excess rate if */
county has excess rate */
rate for amount above max_base */
returned as part of county tax */
overrides state rate if present */
if present, override county tax */
if TRUE tax replaces state tax */
if TRUE tax replaces county tax */

};
/* logic Override structure */
struct logicOverride
{
short int
trans_type;
short int
srv_type;
short int
type;
short int
level;
short int
scope;
short int
dateCount;
void
*detailTable;
};

/*
/*
/*
/*
/*
/*
/*

See the programmer user's manual
See the programmer user's manual
tax type identifier */
tax level identifier */
Scope of override */
number of date records (normally
pointer to table of detail logic

/* logic Override Detail per effective date */
struct logicOverrideDetail
{
unsigned long int date;
/*
short int
calc_type_id;
/*
short int
data_type_id;
/*
short int
eff_sales_id;
/*
short int
surcharge;
/*
short int
sale;
/*
short int
resale;
/*
short int
business;
/*
short int
residential;
/*
short int
regulated;
/*
short int
unregulated;
/*
short int
senior_citizen;
/*
short int
industrial;
/*
short int
lifeline;
/*
short int
ilec;
/*
short int
clec;
/*
short int
primary_ld;
/*
short int
primary_local;
/*
short int
franchise;
/*
short int
nonfranchise;
/*
short int
facilities;
/*
short int
nonfacilities;
/*
short int
tier_at_transaction;
/*
short int
billable;
/*
short int
pro_rated;
/*
short int
unrolled_id;
/*
short int
tier_on_total;
/*
short int
tax_by_oth;
/*
short int
compliance;
/*
double
tam;
/*
double
tas;
/*
short int
ex_flag;
/*
/*

or EZTaxDefine.h */
for valid svc */

1) */
overrides */

logic effective date */
calculation rule */
tax data type (rate, flat, et cetera */
effect on sales tax (city, co, st) */
indicates that tax is surcharge */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
1=Tax Level, 2=City, 3=Local */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
Transaction amount multiplier */
Transaction exempt amount */
flag showing whether 0-rate */
brackets are exempt or not */

A F C S a l e s a n d U s e U s e r M a n u a l | 248 of 329
Copyright  2018 Avalara, Inc.

short int
taxTaxesCount;
struct taxTaxesOverride *taxTaxesTable;

/* count of tax taxes entries */
/* ptr to table of taxes that this is taxed by */

};
/* logic Override Detail per effective date,
struct logicOverrideDetailP
{
unsigned long int date;
short int
calc_type_id;
short int
data_type_id;
short int
eff_sales_id;
short int
surcharge;
short int
sale;
short int
resale;
short int
business;
short int
residential;
short int
regulated;
short int
unregulated;
short int
senior_citizen;
short int
industrial;
short int
lifeline;
short int
lifeline_only;
short int
ilec;
short int
clec;
short int
primary_ld;
short int
primary_local;
short int
franchise;
short int
nonfranchise;
short int
facilities;
short int
nonfacilities;
short int
tier_at_transaction;
short int
billable;
short int
pro_rated;
short int
unrolled_id;
short int
tier_on_total;
short int
tax_by_oth;
short int
compliance;
double
tam;
double
tas;
short int
ex_flag;
short int
prepaid;
short int
taxTaxesCount;
struct taxTaxesOverride *taxTaxesTable;

with prepaid flag */

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

logic effective date */
calculation rule */
tax data type (rate, flat, et cetera */
effect on sales tax (city, co, st) */
indicates that tax is surcharge */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
1=Tax Level, 2=Cty, 3=Local */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
Transaction amount multiplier */
Transaction exempt amount */
flag showing whether 0-rate */
brackets are exempt or not */
TRUE, FALSE */
count of tax taxes entries */
ptr to table of taxes that this is taxed by */

};
/* logic Override Detail per effective date, with prepaid flag */
struct logicOverrideDetailUseTax
{
unsigned long int date;
/* logic effective date */
short int
calc_type_id;
/* calculation rule */
short int
data_type_id;
/* tax data type (rate, flat, et cetera */
short int
eff_sales_id;
/* effect on sales tax (city, co, st) */
short int
surcharge;
/* indicates that tax is surcharge */
short int
sale;
/* TRUE, FALSE */
short int
resale;
/* TRUE, FALSE */
short int
business;
/* TRUE, FALSE */
short int
residential;
/* TRUE, FALSE */
short int
regulated;
/* TRUE, FALSE */
short int
unregulated;
/* TRUE, FALSE */
short int
senior_citizen;
/* TRUE, FALSE */
short int
industrial;
/* TRUE, FALSE */
short int
lifeline;
/* TRUE, FALSE */
short int
lifeline_only;
/* TRUE, FALSE */
short int
ilec;
/* TRUE, FALSE */
short int
clec;
/* TRUE, FALSE */
short int
primary_ld;
/* TRUE, FALSE */
short int
primary_local;
/* TRUE, FALSE */
short int
franchise;
/* TRUE, FALSE */

A F C S a l e s a n d U s e U s e r M a n u a l | 249 of 329
Copyright  2018 Avalara, Inc.

short int
short int
short int
short int
short int
short int
short int
short int
short int
short int
double
double
short int

nonfranchise;
facilities;
nonfacilities;
tier_at_transaction;
billable;
pro_rated;
unrolled_id;
tier_on_total;
tax_by_oth;
compliance;
tam;
tas;
ex_flag;

short int
sales_flag;
short int
use_flag;
short int
prepaid;
short int
threshold;
short int
consumed;
short int
vendor_use;
short int
taxTaxesCount;
struct taxTaxesOverride *taxTaxesTable;

/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
1=Tax Level(no Unroll), 2=Cty, 3=Local */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
Transaction amount multiplier */
Transaction exempt amount */
flag showing whether 0-rate */
brackets are exempt or not */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
TRUE, FALSE */
count of tax taxes entries */
pointer to table of taxes that this is taxed by

*/
};
/* structure for each tax that this tax is taxed by */
struct taxTaxesOverride
{
short int
tax_type_id;
/* Identifier of tax that has this tax applied to it. */
short int
tax_level_id;
/* Identifier of level of tax_type_id */
};

/* Individual tax exempt structure */
struct tax_exempt
{
short int
tax_type;
/* tax type identifier */
short int
tax_level;
/* tax level identifier */
unsigned long int
exempt_J_Code; /* for local exemption */
};
/* EZTax_data structure contains data required for tax calculations */
struct EZTax_data
{
short int
business;
/* TRUE = business customer, FALSE = residential */
short int
sale;
/* TRUE = Sale, FALSE = Resale */
short int
regulated;
/* TRUE = Regulated, FALSE = unregulated */
short int
trans_type;
/* See the programmer user's manual or EZTaxDefine.h */
short int
srv_type;
/* See the programmer user's manual for valid trans */
/* transaction and service type combinations. */
/* EZTaxDefine.h defines valid service types */
unsigned long int
date;
/* Transaction bill date. Field is provided to */
/*
allow rating and taxing to occur on */
/*
date other than billing date. */
float
charge;
/* amount charge to customer for transaction */
float
minutes;
/* Minutes of call, defaults to zero when */
/*
not appropiate (NOTE: some taxes are per minute. */
int
lines;
/* number of lines (use with transaction type */
/*
LOCAL and service type LINES) */
int
locations;
/* number of locations (use with transaction */
/*
type LOCAL and service type LOCATION) */
short int
incorp;
/* TRUE indicates within incorporated area */
/*
of local jurisdiction, FALSE is outside */
short int
FED_exempt;
/* If TRUE, transaction exempt from Federal Tax */
short int
st_exempt;
/* If TRUE, transaction exempt from State Tax */
short int
co_exempt;
/* If TRUE, transaction exempt from County Tax */
short int
loc_exempt;
/* If TRUE, transaction exempt from local tax */
unsigned long int
FED_J_Code;
/* Jurisdiction for Federal exemption */
unsigned long int
st_J_Code;
/* Jurisdiction for state exemptionn */
unsigned long int
co_J_Code;
/* Jurisdiction for county exemption */

A F C S a l e s a n d U s e U s e r M a n u a l | 250 of 329
Copyright  2018 Avalara, Inc.

unsigned long int
short int
struct tax_exempt
unsigned long int
unsigned long int
unsigned long int
char

loc_J_Code;
spc_exempt;

/* Jurisdiction for local exemption */
/* 0 indicates no of special exempts, */
/* other value indicates number of special exempts */
*s_exempt;
/* Pointer to tax exempt structure that contains the */
/*
number of special tax exemptions (spc_exempt) */
inv_no;
/* Invoice number, user defined */
srv_lvl_no;
/* Service level number, user defined */
optional;
/* User defined value for reporting */
cust_no[CUST_NO_SIZE]; /* Customer number, user defined */

};
/* EZTax_dataEx structure contains data required for tax calulations */
struct EZTax_dataEx
{
short int
customer_type;
/* 0=residential, 1=business, 2=Senior Citizen,
3=Industrial */
/* See the programmer user's manual or EZTaxDefine.h */
short int
sale;
/* TRUE = Sale, FALSE = Resale */
short int
regulated;
/* TRUE = Regulated, FALSE = unregulated */
short int
trans_type;
/* See the programmer user's manual or EZTaxDefine.h */
short int
srv_type;
/* See the programmer user's manual for valid trans */
/* transaction and service type combinations. */
/* EZTaxDefine.h defines valid service types */
short int
business_class;
/* CLEC = 1, ILEC = 0 */
short int
service_class;
/* Primary Long Distance = 1, Local Service = 0 */
/* (Default Long Distance) */
short int
facilities_based; /* Facilities Based=TRUE, Non-Facilities Based=FALSE */
/* (Default Non-Facilities) */
short int
franchise;
/* Franchise = TRUE, Non-Franchise = FALSE */
/* (Default Non-Franchise) */
short int
lifeline;
/* Lifeline = TRUE, Non-lifeline = FALSE */
unsigned long int
date;
/* Transaction bill date. Field is provided to */
/*
allow rating and taxing to occur on */
/*
date other than billing date. */
double
charge;
/* amount charge to customer for transaction */
double
minutes;
/* Minutes of call, defaults to zero when not */
/*
appropriate (some taxes are per minute) */
int
lines;
/* number of lines (use with transaction type */
/*
LOCAL and service type LINES) */
int
locations;
/* number of locations (use with transaction */
/*
type LOCAL and service type LOCATION) */
short int
incorp;
/* TRUE indicates within incorporated area */
/*
of local jurisdiction, FALSE is outside */
short int
FED_exempt;
/* If TRUE, transaction exempt from Federal Tax */
short int
st_exempt;
/* If TRUE, transaction exempt from State Tax */
short int
co_exempt;
/* If TRUE, transaction exempt from County Tax */
short int
loc_exempt;
/* If TRUE, transaction exempt from local tax */
unsigned long int
FED_J_Code;
/* Jurisdiction for Federal exemption */
unsigned long int
st_J_Code;
/* Jurisdiction for state exemption */
unsigned long int
co_J_Code;
/* Jurisdiction for county exemption */
unsigned long int
loc_J_Code;
/* Jurisdiction for local exemption */
short int
spc_exempt;
/* 0 indicates no of special exempts, */
/* other value indicates number of special exempts */
struct tax_exempt
*s_exempt;
/* Pointer to tax exempt structure that contains the */
/*
number of special tax exemptions (spc_exempt) */
short int
exempt_type;
/* Reason for exemption */
unsigned long int
inv_no;
/* Invoice number, user defined */
unsigned long int
srv_lvl_no;
/* Service level number, user defined */
unsigned long int
optional;
/* User defined value for reporting */
char
cust_no[CUST_NO_SIZE]; /* Customer number, user defined */
char
company_identifier[CO_IDENTIFIER_SIZE];
/* Company Identifier */
char
opt_alpha_1[CUST_NO_SIZE];
/* optional alpha field */
unsigned long int
opt_4;
/* optional numeric field */
unsigned long int
opt_5;
/* optional numeric field */
unsigned long int
opt_6;
/* optional numeric field */
unsigned long int
opt_7;
/* optional numeric field */
unsigned long int
opt_8;
/* optional numeric field */
unsigned long int
opt_9;
/* optional numeric field */
unsigned long int
opt_10;
/* optional numeric field */
};

A F C S a l e s a n d U s e U s e r M a n u a l | 251 of 329
Copyright  2018 Avalara, Inc.

/* The J_Code structure is used for interfacing with EZTax using J_Codes. */
/* This data structure is passed to EZTax with the function EZTaxJCode. */
struct J_Code
{
unsigned long int
BTN_J_Code;
/* Bill To Number Jurisdiction Code */
unsigned long int
orig_J_Code;
/* Origination number Jurisdiction Code */
unsigned long int
term_J_Code;
/* Termination number Jurisdiction Code */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* The J_CodeEx structure is used for interfacing with EZTax using J_Codes. */
/* This data structure is passed to EZTax with the extended function EZTaxJCodeEx. */
struct J_CodeEx
{
unsigned long int
BTN_J_Code;
/* Bill To Number Jurisdiction Code */
unsigned long int
orig_J_Code;
/* Origination number Jurisdiction Code */
unsigned long int
term_J_Code;
/* Termination number Jurisdiction Code */
struct EZTax_dataEx tax_data;
/* Required tax information */
};
/* The this_J_Code structure is used for interfacing with EZTax using */
/* a specific J_Code. This data structure is passed to EZTax with the */
/* function EZTaxThisJCode. With this function taxes will be calculated */
/* based upon the jurisdiction represented by the specified J_Code. */
struct this_J_Code
{
unsigned long int
J_Code;
/* Jurisdiction for tax determination */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* The this_J_CodeEx structure is used for interfacing with EZTax using */
/* a specific J_Code. This data structure is passed to EZTax with the */
/* function EZTaxThisJCodeEx. With this function taxes will be calculated */
/* based upon the jurisdiction represented by the specified J_Code. */
struct this_J_CodeEx
{
unsigned long int
J_Code;
/* Jurisdiction for tax determination */
struct EZTax_dataEx tax_data;
/* Required tax information */
};
/* The this_P_Code structure is used for interfacing with EZTax using */
/* a specific P_Code. This data structure is passed to EZTax with the */
/* function EZTaxThisPCode. With this function taxes will be calculated */
/* based upon the jurisdiction represented by the specified PCode. */
struct this_P_Code
{
unsigned long int
P_Code;
/* Jurisdiction for tax determination */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* The this_P_Code structure is used for interfacing with EZTax using */
/* a specific P_Code. This data structure is passed to EZTax with the */
/* function EZTaxThisPCodeEx. With this function taxes will be calculated */
/* based upon the jurisdiction represented by the specified PCode. */
struct this_P_CodeEx
{
unsigned long int
P_Code;
/* Jurisdiction for tax determination */
struct EZTax_dataEx tax_data;
/* Required tax information */
};
/* The priv_line_P_Code structure is used for interfacing with EZTax using */
/* two specifics P_Codes. This data structure is passed to EZTax with the */
/* function EZTaxPrivateLine. With this function taxes will be calculated */
/* based upon the jurisdictions represented by the specified PCode,
*/
/* allocated to each jurisdiction by the percentage value
*/
struct private_line_P_Code
{
unsigned long int
point_A;
/* Jurisdiction for tax determination */
unsigned long int
point_Z;
/* Jurisdiction for tax determination */
double
split;
/* percentage of charge that should
*/
/* be applied to the first jurisdiction */

A F C S a l e s a n d U s e U s e r M a n u a l | 252 of 329
Copyright  2018 Avalara, Inc.

struct EZTax_dataEx

tax_data;

/* Required tax information */

};

/* The P_Code structure is used for interfacing with EZTax using P_Codes. */
/* This data structure is passed to EZTax with the function EZTaxPCode. */
struct P_Code
{
unsigned long int
BTN_P_Code;
/* Bill To Number PCode */
unsigned long int
orig_P_Code;
/* Origination number PCode */
unsigned long int
term_P_Code;
/* Termination number PCode */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* The P_Code structure is used for interfacing with EZTax using P_Codes. */
/* This data structure is passed to EZTax with the function EZTaxPCodeEx. */
struct P_CodeEx
{
unsigned long int
BTN_P_Code;
/* Bill To Number PCode */
unsigned long int
orig_P_Code;
/* Origination number PCode */
unsigned long int
term_P_Code;
/* Termination number PCode */
struct EZTax_dataEx tax_data;
/* Required tax information */
};
/* The NPANXX structure is used for interfacing with EZTax using NPANXXs. */
/* This data structure is passed to EZTax with the function EZTaxNPAN. */
struct NPANXX_code
{
unsigned long int
BTN_NPANXX;
/* Bill To NPANXX Code */
unsigned long int
orig_NPANXX;
/* Origination NPANXX Code */
unsigned long int
term_NPANXX;
/* Termination NPANXX Code */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* The NPANXX_codeEx structure is used for interfacing with EZTax using NPANXXs. */
/* This data structure is passed to EZTax with the function EZTaxNPANEx. */
struct NPANXX_codeEx
{
unsigned long int
BTN_NPANXX;
/* Bill To NPANXX Code */
unsigned long int
orig_NPANXX;
/* Origination NPANXX Code */
unsigned long int
term_NPANXX;
/* Termination NPANXX Code */
struct EZTax_dataEx tax_data;
/* Required tax information */
};

/* The zip_address structure is used to pass address data to */
/* EZTax in order to obtain a jurisdiction code. */
struct zip_address
{
long int
zip_code;
/* Zip code of taxing jurisdiction */
unsigned short int
state_id;
/* state identifier */
char
county[25];
/* County name in null terminated string */
char
locality[26]; /* Locality name in null terminated string */
};
/* zip_address structure to accommodate Zip code Plus 4 */
struct zip_address_p4
{
char
zip_code[6];
/* String containing zip code */
char
zip_p4[5];
/* String containing zip_p4 */
char
country_ISO[4];
/* String containing country ISO code */
char
state_abv[3];
/* String containing state level abbreviation */
char
county[25];
/* County name in null terminated string */
char
locality[26];
/* Locality name in null terminated string */
};
/* The zip_code structure is used for interfacing with EZTax using address */
/* information. This data structure is passed to EZTax with the function */
/* EZTaxZip. */
struct zip_code
A F C S a l e s a n d U s e U s e r M a n u a l | 253 of 329
Copyright  2018 Avalara, Inc.

{
struct zip_address
struct EZTax_data

zip_addr;
tax_data;

/* ZIP code and address information */
/* Required tax information */

};
/* Zip code structure for use with Zip plus 4 */
struct zip_code_p4
{
struct zip_address_p4
zip_addr;
/* ZIP code+4 and address information */
struct EZTax_data
tax_data;
/* Required tax information */
};
/* Zip code structure for use with Zip plus 4 */
struct zip_codeEx
{
struct zip_address_p4
zip_addr;
/* ZIP code+4 and address information */
struct EZTax_dataEx
tax_data;
/* Required tax information */
};

/* The BridgeConferenceTransaction structure is used for calculating tax for a */
/* bridge conference with 1 to n participants. */
/* Note: USA PCode of 0 is considered invalid for Bridge/Billing/Host - for USA must be state
level or lower */
struct BridgeConferenceTransaction
{
unsigned short int ProcessInvalidParticipant; /* Process invalid Participants w/greatest tax
liability (default=false) */
unsigned short int IsAdjustment;
/* Flag indicating call is an adjustment or
credit calculation */
unsigned short int DiscountType;
/* Discount type (for adjustment calculation –
else ignored) */
int NumberOfParticipants;
unsigned long int *ParticipantPCodeList;
unsigned long int *ParticipantNpaNxxList;
struct zip_address_p4 *ParticipantAddressList;

/*
/*
/*
/*

Size of participant list */
Participant PCode List
*/
Participant NpaNxx List
*/
Participant Address List */

unsigned long int BridgePCode;
unsigned long int BridgeNpaNxx;
struct zip_address_p4 BridgeAddress;

/* Bridge PCode
/* Bridge NpaNxx
/* Bridge Address

*/
*/
*/

unsigned long int HostPCode;
unsigned long int HostNpaNxx;
struct zip_address_p4 HostAddress;

/* Host PCode
/* Host NpaNxx
/* Host Address

*/
*/
*/

unsigned long int BillingPCode;
unsigned long int BillingNpaNxx;
struct zip_address_p4 BillingAddress;

/* Billing PCode
*/
/* Billing NpaNxx */
/* Billing Address */

struct EZTax_dataEx trans_data;

/* Required transaction information */

};
struct BridgeConferenceParticipant
{
int ParticipantId;
/* By order received - 1 to N */
int Offset;
/* Where in tax table participant starts */
int TaxCount;
/* Number of taxes in tax table for participant */
int ErrorCode;
/* Error code (if applicable) for participant */
short int TransactionType; /* The transaction type used for participant */
short int ServiceType;
/* The service type used for participant */
};
struct BridgeConferenceTaxes
{
struct EZTax_log_v914 *BCTaxes; /*
unsigned short int TaxCount;
/*
struct BridgeConferenceParticipant*
int ParticipantCount;
/*
};

Individual Participant Taxes for Conference */
Total number of taxes in BCTaxes array */
BCParticipants; /* Participant array */
Number of Participants in BCParticipants array */

A F C S a l e s a n d U s e U s e r M a n u a l | 254 of 329
Copyright  2018 Avalara, Inc.

/* Structures use by EZTaxTPP and EZTaxAdjTPP
struct TPP_addr
{
struct zip_address_p4
ship_from;
/*
struct zip_address_p4
ship_to;
/*
struct zip_address_p4
point_of_accpt; /*
struct EZTax_data
tax_data;
/*
};

*/

origin ZIP code+4 and address information */
delivery ZIP code+4 and address information */
bill-to ZIP code+4 and address information */
Required tax information */

/* Structures use by EZTaxTPPEx and EZTaxAdjTPPEx */
struct TPP_addrEx
{
struct zip_address_p4
ship_from;
/* origin ZIP code+4 and address information */
struct zip_address_p4
ship_to;
/* delivery ZIP code+4 and address information */
struct zip_address_p4
point_of_accpt; /* bill-to ZIP code+4 and address information */
struct EZTax_dataEx
tax_data;
/* Required tax information */
};
struct nexus_table
{
char
state[3];
short int
have_nexus;
};
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*
/*

/* state abbreviation */
/* TRUE, FALSE */

The taxes structure defines the data structure used to return tax
information to the user. The functions EZTaxJCode, EZTaxNPAN, and
EZTaxZip each return a short int. Zero indicates that no taxes were
calculated for the transaction passed. If taxes were calculated, the
value returned indicates the number of taxes returned in an array
of struct taxes with the size of array being the number of taxes,
Use the following definition to access the calculated taxes
*/
"extern struct taxes *tax_tbl;". The following code segment
demonstrates an acceptable method of retrieving calculated tax data.
struct taxes_tbl
extern struct taxes_tbl

tax;
*EZTax_table;

for (i=0; i.doc

•

filelocs.upd – rename this new file “filelocs.txt”

Monthly Maintenance
Proper monthly maintenance will keep the AFC system operating without interruption. Refer to the
following figure for the update procedure flow.
1.
2.
3.
4.
5.

Take an inventory of all file directories and locations.
Create a backup of these either on media such as a diskette or save them to a backup directory.
Once the update is installed, closely review the update file locations.
Run a Test on a small file.
Review the \support\docs directory for tax changes and current update information.

A F C S a l e s a n d U s e U s e r M a n u a l | 328 of 329
Copyright  2018 Avalara, Inc.

Figure 8-5 EZtax Update Procedure

A F C S a l e s a n d U s e U s e r M a n u a l | 329 of 329
Copyright  2018 Avalara, Inc.

Help Guide
The Help guide is provided to support users when encountering difficulties with AFC. Users are
encouraged to contact Avalara with concerns of any nature:
Toll Fee: 800-525-8175
Corporate Website: http://communications.avalara.com/
AFC Comms Platform Website: https://communications.avalara.net
Email: communicationsupport@avalara.com

Troubleshooting
Troubleshooting information is provided to assist users in diagnosing and resolving issues when
encountered.
Table 8-1 Troubleshooting
Issue
Solution
When running an application that uses the EZTax2.dll, get Make sure that EZTax2.dll is located in the working
Unable to locate DLL error.
directory or in a directory that is in your search path.
Open of filelocs.txt configuration file failed!
Place the filelocs.txt file in your working directory
There is number of reasons EZTaxInitEx failed. Look in the
*.sta status files for indication of why the failure
EZTaxInitEx function call returns null tax table pointer
happened. Most common items are the Database files are
and invalid session handle.
expired or the file paths to the database and output files
were not specified.
When using the AFC adjustment functions, make sure the
When making adjustments, AFC returns a positive tax.
tax amount entered is positive. The adjustment functions
will then negate the charge or lines.
I calculate taxes by hand using the charge I sent and the
AFC takes into account tax on taxes, which will make the
tax rate and tax amount AFC returns and the results do
tax base larger than the charge that was passed to AFC.
not compute.

A F C S a l e s a n d U s e U s e r M a n u a l | 330 of 329
Copyright  2018 Avalara, Inc.

FAQ’s
FAQ’s are provided to answer common user questions.
Table 8-2 FAQ’s
Question
What happens if I passed in an invalid NPANXX?
How do I apply taxes to other countries by using the
NPANXX functions?
I want to call AFC to compute taxes for a quote but not
log the taxes to the file.
What if I want to get a PCode for a Country or State in
AFC?

Do I need to input the county for EZTaxZip functions?
I have more than one tax log for the month. How do I
produce one compliance report?
Do the field lengths include the null terminator for C
strings.

Answer
No taxes are generated and the invalid number is reported
to EZTax.sta, and the err_code is set.
By passing into the system the country id for that country
as the NPANXX. This should be defined in a header file.
Open a second session with logging turned off.
Use the EZTaxZipToPCodeP4Ex function. If trying to find
PCode for a country, specify the country ISO code and the
rest of the field as null strings. If trying to find PCode for a
state, specify the country ISO code, state abbreviation and
the rest of the fields as null strings.
No, but if city crosses county boundaries, AFC will return
the first match it finds.
You can use EZTaxAppend or EZTaxAppendF utilities to
append binary tax logs together. Also some AFC reporting
utilities allow combining tax logs together.
All field lengths are the actual size in the structure. Be sure
to allow one character for the null terminator.

A F C S a l e s a n d U s e U s e r M a n u a l | 331 of 329
Copyright  2018 Avalara, Inc.



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.5
Linearized                      : Yes
Author                          : Alicia Combs
Company                         : Avalara, Inc.
Create Date                     : 2018:06:25 10:21:59-04:00
Modify Date                     : 2018:06:25 10:25:16-04:00
Source Modified                 : D:20180625142051
Language                        : EN-US
Tagged PDF                      : Yes
XMP Toolkit                     : Adobe XMP Core 5.6-c015 84.159810, 2016/09/10-02:41:30
Metadata Date                   : 2018:06:25 10:25:16-04:00
Creator Tool                    : Acrobat PDFMaker 18 for Word
Document ID                     : uuid:66b16e75-69a8-4ccc-8b29-8f3a127f98ce
Instance ID                     : uuid:991c3c22-d710-459b-8589-66ada9ac47df
Subject                         : 38
Format                          : application/pdf
Title                           : 
Creator                         : Alicia Combs
Producer                        : Adobe PDF Library 15.0
Page Layout                     : OneColumn
Page Count                      : 342
EXIF Metadata provided by EXIF.tools

Navigation menu