...
This article describes how the on-prem Avalara billsoft integration functions and is configured in EngageIP. If you are configuring the AvaTax Cloud version please see the Avalara AvaTax Cloud – Configuration article instead.
Normally within EngageIP taxes are calculated based on user-defined rates. A Tax Code which defines a geographical region will be setup under an Owner, within the Tax Code are rates which apply within the region (i.e. federal, state, county, city). To accurately tax a given customer, all necessary information regarding applicable taxes must be pre-populated by the Owner. A Tax Code which uses the EngageIP taxing system is setup using the Local tax vendor.
...
Download either the 32bit or 64bit installer files. Which you choose will of course depend on whether the server you are installing it on is 64bit or 32bit. Extract the files. Run update.exe. This will walk you through installing the Billsoft software. Avalara strongly suggests using the default directories (i.e. C:\BillSoft). The EngageIP library expects to find EZtax in this location
If EngageIP is running on a 64bit server:
Ensure you installed the 64bit version of Billsoft
Verify the IIS APP POOL has 'Allow 32 bit' set to false
Verify HANDLERS in IIS has only one .rails pointing to FRAMEWORK64 (Check this for the AdminPortal and default sites)
Configure the Environment Variables as outlined by the Billsoft Documentation *** Environment Path should be equal to: C:\BillSoft\EZTax\DLL;C:\BillSoft\EZTax\EXE; (Make sure no spaces are used and that the semicolons are in place)
Reboot the system for the Path changes to take effect
In the EngageIP AdminPortal, Setup tab add the following Workflow to update p-codes based on the users address
Create an "Action"
Name: EZtax pcode
Event: ContactPointAddress.Create,ContactPointAddress.Update
Code:Code Block int id = Int32.Parse(context["ContactPointAddressID"].ToString()); return EZTaxWrapper.GetPcode(id);
Configure the Billsoft tax vendor for transactional or invoice level taxing
To configure taxation per transaction:
Load the Setup page
Load Tax Vendor
Click Add
In the TaxVendor Type list select BillSoft
Click Save
For Vendor enter Billsoft
For the Charge Script enter
Code Block TaxCode taxCode = (TaxCode)context["taxCode"]; double taxableAmount = (double)context["taxableamount"]; StatementDetails sd = (StatementDetails)context["statementdetails"]; int taxTypeId = (int)context["taxtypeid"]; return TaxVendorManager.GetTaxes(taxCode, taxableAmount, sd, taxTypeId);
Click Save
To configure taxation on invoice close:
See the invoice level taxing section below
Enable the tax log, detailed here (further down page) This is required for reporting and reconciliation purposes
Check on the Configuration page in the EngageIP AdminPortal to ensure scripts are compiling correctly. If not, check for errors
Update the Billsoft install folder (default install directory name is 'BillSoft') granting EVERYONE - FULL CONTROL permissions
In the AdminPortal > Setup tab add a Tax Code called 'Default' as shown below
Note: the less you configure in the Tax Code the more customers it will apply to. I.e. if you do not populate any location details (Country, State, County, City) then all accounts under the owner will use the Tax Code and therefore use Billsoft. If you need to tax services slightly different by way of tax categories, you can create multiple tax codes called Default with different location configurations to meet your requirements
Import Service Tax Categories or Setup Custom Billsoft Tax Types (EngageIP 8.5.17.0+ required)
Import Service Tax Categories using the the instructions provided below. You will need to make this list into an XML file for import using the following format:
XML Files and Data Formatting
Service TaxTypes Import
Note: Service Tax Categories if used at all should be added to ALL services that require taxing to be sure the correct tax is applied. Please contact Avalara support for further assistance here
Note: if you are running an EngageIP version below 8.5.17.0 and want taxes to be applied by Billsoft, you MUST use the service tax categories that Billsoft recognizes. Custom Service Tax Categories are not available prior to EngageIP 8.5.17.0See the Setting up Custom Billsoft Tax Types section below if you wish to setup Custom Billsoft Tax Types
Setup / Import Account Tax Categories (Billsoft supports the following tax categories - Residential, Residential Incorporated, Business, Business Incorporated)
Note: An account tax category of just 'Residential' implies that the account is 'unincorporated'. The same is true for a 'Business' account tax category, it really means 'Business Unincorporated'Import Account Tax Categories using the XML linked to below or Configure Tax Categories on the Setup tab and add them to the customer accounts as required
AccountTaxCategoryXMLImportAccount Tax Categories are added as components on the customers 'Overview' page. Load the customer's Account and under the Components section click Add and then Account Tax Category. Select the Appropriate tax category and click SaveNote: Account Tax Category needs to exist on the sub account and on the main account to tax the account specific packages and services correctly
For EngageIP 8.5.26.0+ Installs:
Download, extract and run the following script on the EngageIP DB server to create and populate the EZTaxTaxTypeMapping table
EZTaxTaxTypeMappingInsertScript
...
To verify Taxing is working, first follow the Testing Billsoft Taxing section below, and then add the appropriate package to a test account and verify that inclusive taxation is occurring by referencing the Transactions tab.
...
Ensure you are viewing the invoice to verify that taxing is occurring (taxes are not reflected in the 'Amount' column on the Packages list)
If you are taxing using the Service or Billing Contact 'Address' ensure a Jurisdiction Code is present as a Component on the Address Contact Point (the JCode will be added automatically by EngageIP)
To see all accounts with no Jurisdiction Codes you can setup a Custom Report, see Find Missing Jurisdiction Codes for instructions. Refer to the 'Jurisdiction Code is not being added as a Component on the Address' section below for further troubleshooting steps
If a Jurisdiction Code is present ensure tax is applicable, for example some US States have no sales tax. Setup an account with an address which taxes are applicable to, for instance in Ontario HST is applied to all sales. If the JCode is being returned as zero, see the 'Jurisdiction Code Equals Zero' section below
Ensure the Account in question and its Parent Accounts (if any) do not have a 'Tax Exempt' or 'Tax Exempt Level' component present which would exempt the taxes you are attempting to apply
Check the Event Log Report for taxing errors
Make sure the default tax code (when in the US) is using the country name 'USA'. Having 'United States' specified there will not work as Billsoft wants to see 'USA'.
...