Registry Avalara Web Services

Purpose:

These registries supports an alternative method of computing sales tax on AR Invoices using the Avalara Web Service Integration instead of SAMPro's internal computations. This functionality is currently supported for Sales Tax and Tax Exempt invoices, but not for Use tax computation. An advantage of using Avalara is that they will provide the tax reporting to supported districts. After obtaining your license and credentials from Avalara, the following registry must be set to enable the Avalara Web Integration. It is required that testing in a 'sandbox' test system be conducted before running live.

See Avalara Web Service Overview for additional setup and configuration details.

Registries to Turn on Avalara Web Integration

Registry Id: sys-ffv-global-settings

Setting Key: UseExternalTaxService  Setting Value: true

This registry is the master switch to enable the use of the Avalara Web Integration for tax computation instead of SAMPro's internal tax is computation. If it is set to false, the Site Address validation may still be conducted provided that the Avalara Account information is properly defined.

Setting Key: TaxServiceProvider   Setting Value: Avalara

This registry specifies that the Avalara Web Service Integration is used for the tax computation.

Registry to Configure or Enable / Disable Avalara Web Service by Company

This release supports optional registry settings that enable company-specific settings within a multi-tenant database (Intercompany).

Company-specific settings provide replacement values for any standard Avalara setting found in the sys-avalara registry.  It is NOT necessary to completely define all settings in the company-specific registry.  You only need to include those that are different from the standard (sys-avalara) settings.  This allows different Avalara Account and License numbers to be specified, or for the Avalara Web functionality to be disabled for one or more Companies within the SAMPro database.

Registry Id is formatted as sys-avalara-company:CompanyId

Example: Disable Tax Service for Company 01:

Id: sys-avalara-company:01

Setting Key: TaxServiceDisabled    Setting Value: true

Example: Specify Different License and Account Number for Company 02

Note that this registry assumes that the ProductionEnvironment, CompanyCode and OriginAddress options are set in the base sys-avalara registry.

Id: sys-avalara-company:02

Setting Key: Account   Setting Value: 123456789

Setting Key: License   Setting Value: ABC123456789

Registries to Define Avalara Web Service Account and Posting Information

Registry Id: sys-avalara  (this registry supports via sys-avalara-securityid entries)

Setting Key: ProductionEnvironment  Setting Value: true  (default is false)

This option is set to true if actual live is being sent. It should be set to false if this data is being used for 'sandbox' testing.

Setting Key:  Account   Setting Value: as provided by Avalara

Setting Key:  License   Setting Value: as provided by Avalara

Setting Key: CompanyCode    Setting Value: as provided by Aralara

The Setting Values for the Account, License and CompanyCode keys are created during Avalara setup. The CompanyCode setting supports Intercompany configurations; it is passed with each call to Avalara.

Setting Key:  OriginAddressLine1   Setting Value: street address

The origin or ship-from street address.

Setting Key:  OriginAddressCity   Setting Value: city

The origin or ship-from city.

Setting Key:  OriginAddressState   Setting Value: 2 character state code

The origin or ship-from state or province two character abbreviation.

Setting Key:  OriginAddressPostalCode   Setting Value: postal/zip code

The origin or ship-from Postal Code. Use the: five digit ZIP Code (12345), nine digit ZIP+4 Code (12345-6789) or six character Canadian Postal Code (A1B 2C3)

Setting Key: TaxAuthorityGLAccountId  Setting Value: A valid GL Account Id

The sales tax liability account to be credited. Double-click on this field to select from a list of GL Accounts. This registry may be overridden on a state by state basis as defined in the following option.

Setting Key: TaxAuthorityGLAccountId~StateCode  Setting Value: A valid GL Account Id

Example: To specify a different GL Account for Ohio invoices:

Setting Key: TaxAuthorityGLAccountId~OH  Setting Value: 201500

Exempt Codes

Setting Key: DefaultExemptEntityCode   Setting Value:  G  (or as defined by Avalara)

Job Specific Avalara Exempt Codes

In previous releases, all exempt jobs used the sys-avalara registry setting for DefaultExemptEntityCode.  In this release, an option allows for job-specific Exempt Entity Codes using the following registry AND by setting the appropriate Job User Field.

Registry Id: sys-avalara

Setting Key: ExemptEntityCodeUserField  Setting Value: JobUserFieldNumber

Example: Use Job User field 10 to provide specify the GL Entity Id that overrides the GL Entity specified by the DefaultExemptEntityCode registry option:

Setting Key: ExemptEntityCodeUserField  Setting Value: 10

Setting Key: DefaultExemptEntityCode  Setting Value: G

Registries to Define Default Fixed Fee Tax Codes:

Setting Key: FixedFeeTaxableTaxCode   Setting Value:  Avalara Tax Code

Setting Key: FixedFeeNonTaxableTaxCode  Setting Value: Avalara Tax Code

Setting Key: FixedFeeExemptTaxCode  Setting Value:  Avalara Tax Code

The above registry settings specify the appropriate default Avalara Tax Code to use for Fixed Fee Billing Items. They may be trumped by the Alavara Tax Code in the Job Billing Item.

Registry and Setting for Overriding Fixed Fee Tax Codes by Job Billing Item:

This enhancement supports the optional specification of Job Billing Item-specific Avalara Tax Codes If the following registry is enabled it is used to switch between the two methods of determining the appropriate Alalara Tax Code:

a) Fixed Fee Avalara Tax Codes referenced in the sys-avalara registry;

b) Avalara Tax Codes in the Job Billing Item User field defined in the registry below.

This information will be referenced in the Record Billing Adjustments function when the user pushes the Compute Taxes button.

Id: sys-avalara

Setting Key: FixedFeeTaxCodeUserField   Setting Value: integer from 1 to 5

The Setting Value specifies which Job Billing Item User field should contain the Avalara Tax Code for Fixed Fee Job Billing Items. If entered, it trumps all other Fixed Fee-based Tax Codes from the Avalara registry.

Tip: Job Billing Item User Field Referenced by FixedFeeTaxCodeUserField  
It is strongly recommended that the Custom Fields functionality is used to relabel the applicable Job Billing Item User field as "Avalara Tax Code: ". The appropriate Custom Field Values should also be set to the appropriate 8 or 2 character code (as specified by Avalara).

Registry to Disable Use Tax Calculations

This option (highly recommended) disables calls to the Avalara external tax service in situations where Use Tax is being calculated.  When disabled, Use Tax computations are done with SAMPro and no external call is made.

Id: sys-ffv-global-settings

Setting Key: UseExternalTaxServiceForUseTax   Setting Value: false  (default is true)

Other Record Configurations for the Avalara Web Service

User:

A SAMPro Special User must be set up to manage the handshake between SAMPro and the Avalara Web Service Integration.  This User Id and Password must both be set to taxservice.

Job Cost Category:

Job Cost Category Group: Avalara

Avalara Tax Code:
Service Invoice Job Cost Categories should have this field completed if the Avalara-defined default value should not be used.

Job Cost Category Group:
A Job Cost Category Group should be created with the Id of Avalara.

Job:

Sales Tax Group:
If this Group was created in SAMPro (not imported from Avalara), SAMPro's internal sales tax processing will be used to generate sales or use tax on invoices for this job. If this field is blank, it will be completed when the Job is invoiced for the first time using the Avalara Web Integration.

 If the Avalara Web Integration is enabled, clicking this button will make a call to Avalara to set the correct Sale Tax Group for invoicing this Job.

Client Site:

If the Avalara Web Integration is enabled, clicking this button will make a call to Avalara to validate that Work Site Address is correctly configured so that the correct Sales Tax Authority Group can be determined when invoicing.

Other Files

The following files compatible with the v.exe SAMPro image must reside in the same directory:

vdevw.exe.manifest

v.exe.manifest

SamproNetFramework.dll

Newtonsoft.Json.dll

Data-Basics.Avalara.Net (Folder and contents)

Starter Functions

Start Validate Avalara Configuration

This function allows validation without having the UseExternalTaxService setting turned on.  This allows authentication of the configuration (sys-avalara) prior to enabling live integration.