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.
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.
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
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
Setting Key: DefaultExemptEntityCode Setting Value: G (or as defined by Avalara)
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
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.
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).
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)
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.
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)
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.