This integration connects HubSpot to your AvaTax account, allowing for real-time tax calculation from Avalara inside HubSpot.
Before proceeding, please make sure the setup fee has been paid to receive your portal credentials, then click here to schedule a call with the Taxiom team so we can guide you through the setup.
Click below to go to a section in the guide:
Connecting AvaTax & HubSpot Multiple Ship From Addresses Configuring Sync Settings How to Calculate Tax How to Calculate International Tax (VAT) HubSpot Product to Avalara Tax Code Mapping How to Handle Exemptions Multiple Ship To Addresses Overriding Avalara's Tax Calculation Validating Addresses Accessing the Logs TroubleshootingTo configure the integration and connect HubSpot to AvaTax:
1) Check your email for the credentials and login to the integration portal - https://avataxforhubspot.taxiom.com/login
2) You'll need to connect to HubSpot FIRST. In the menu on the left, click 'Connect to HubSpot' to initiate the connection and select the HubSpot account you want to connect to
3) Next under Company Settings, input your company address. This will be used as the 'Ship From' address for tax calculation. If you have multiple Ship From locations, such as warehouses, see next section.
4) Then go to 'Avalara Credentials', input your Account ID (see here), License Key (see here), and Company Code (see here), and then select Production* for the environment. Click 'Save Info' to verify the information provided.
*If connecting to a Sandbox, select Sandbox from the dropdown instead and provide the Sandbox Account ID, License Key, & Company Code.
5) After, you'll want to configure the Tax Settings (see next section)
See next section for guidance on saving HubSpot transactions in AvaTax for tax reporting & filings
By default, the integration uses your company address (entered in Company Settings) as the Ship From address for all tax calculations. However, if you ship products from multiple warehouses or locations, you can configure additional Ship From addresses and specify which location each line item ships from.
When would you need this?
If your business ships from multiple warehouses, fulfillment centers, or office locations, the Ship From address affects how sales tax is calculated. This feature ensures accurate tax calculation based on the actual origin of each shipment.
How to set up multiple Ship From locations:
Log in to the integration portal, go to Company Settings in the left menu
Check the box that says "Click here if you have multiple Ship From locations such as warehouses"
A new section will appear where you can add your warehouse locations. For each location, enter:
Location Code - A unique identifier (e.g., TX-01, CA-WAREHOUSE)
Location Name - A friendly name that will appear in HubSpot (e.g., Texas Warehouse2)
Address details - Street address, city, state, zip code, and country
Click "Add Location" to save
Automatic sync to HubSpot:
When you add, edit, or delete a location in the integration portal, the changes automatically sync to HubSpot. The Location Names you enter will appear as options in the "Ava_ShipFromLocation" dropdown field on line items. For example, if you add locations named "Texas Warehouse2" and "California Warehouse," those exact names will appear in the dropdown for your team to select when creating Quotes/Invoices. There's no manual setup required in HubSpot - just configure your locations in the portal and they'll be ready to use.
How to use Ship From locations on a Quote/Invoice:
Create or edit a Quote/Invoice in HubSpot and go to the Line Items section
Click on a line item to edit it
Find the "Ava_ShipFromLocation" dropdown field (if you don't see it, click Edit Columns and add it)
Select the warehouse/location that the item will ship from - you'll see the Location Names you configured in the portal
Repeat for other line items as needed - each line item can ship from a different location
When you calculate tax, each line item will use its specified Ship From address
**Note: If you don't select a Ship From location for a line item (or leave it set to "Default Location"), the default company address will be used automatically.
See next section for guidance on configuring sync settings....
This setting will allow you to control when the HubSpot transactions get synced and 'committed' in AvaTax.
In AvaTax, the term 'committed' refers to the status of a transaction, indicating that it is considered final and ready for inclusion in compliance reports and tax return filings.
And 'uncommitted' means the transaction has not yet been finalized (or paid) and is not included in reports or tax returns. It's a provisional status for transactions that are subject to review and might not be ready for reporting or filing liability calculations.
Option 1 - Commit when quote/invoice paid - If you're accepting payments through HubSpot, this is the recommended option. When a Quote/Invoice is created, the transaction is saved in AvaTax as 'uncommitted.' Once the Quote/Invoice is paid through HubSpot, the transaction automatically updates to 'committed' in AvaTax. Similarly, if the Quote/Invoice is converted to an Invoice and that Invoice is paid, the AvaTax transaction will also update to 'committed.'
**If you aren't using HubSpot Commerce to accept payments, you can still convert a Quote/Invoice to an Invoice, then manually mark the Invoice as paid and the integration will update the transaction from uncommitted to committed.
Option 2 - Commit when quote/invoice created - This option would save the transaction in AvaTax as 'committed' when the quote/invoice is created. If you aren't using HubSpot to process your payments, then consider this option so the quotes/invoices are committed to AvaTax when they are created.
Option 3 - Don't commit to AvaTax - This option would NEVER save a transaction in AvaTax. Select this if you only want to receive tax calculation from AvaTax but not save the transactions in AvaTax.
See next section for guidance on how to calculate tax....
To calculate tax, begin by creating a Quote/Invoice as you normally would: create the Quote/Invoice, link it to a Deal, and enter the buyer's information.
If selling to an individual: Don't add a Company to the Quote/Invoice, and tax will be calculated based on the individual's address.
If selling to a business: Add the Company to the Quote/Invoice, and tax will be calculated using the Company's address.
Please ensure there is a complete address, including the city, state, zip, & country, as this is needed for AvaTax to properly calculate the tax.
When the integration was installed, a new 'Total Calculated Tax' product was created for you. This is where the tax total is displayed for all line items.
Add the 'Total Calculated Tax' product to EVERY QUOTE/INVOICE or the integration won't work properly.
When you are ready to have tax calculated, set the 'Ava_InitiateTax' dropdown to Request for any line item (doesn't matter which one). If you don't see the 'Ava_InitiateTax' dropdown, hit Edit Columns, search for it, then add it to the view.
After setting the 'Ava_InitiateTax' dropdown to Request, save the Quote/Invoice & then refresh the page. Return to the Line Items section and you'll see the Avalara calculated sales tax amount. If tax doesn't seem to have calculated, then hit refresh again.
Once tax is calculated, the 'Ava_InitiateTax' field for each line item will get set to 'Done'.
If you need to recalculate, simply set any line item's 'Ava_InitiateTax' dropdown back to Request, hit save, then refresh.
If you sell to customers in the EU, UK, or other VAT regions, the listed price often already includes VAT. This is called VAT inclusive pricing and is the standard for most B2C transactions in these regions.
With VAT inclusive pricing, AvaTax extracts the VAT from the gross price you enter. For example, if you list a product at $10,000.00 and the UK VAT rate is 20%, AvaTax determines that the net price is $8,333.33 and the VAT is $1,666.67. The total stays at $10,000.00.
This is different from the US model, where tax is added on top of the listed price. A $100.00 product with 8% sales tax becomes $108.00 at checkout.
To enable VAT inclusive pricing:
The available options are:
Note: When using the "international only" option, transactions shipping to the US and Canada will continue to work exactly as before. Tax will be added on top of the price. Only transactions with a Ship To country outside the US and Canada will have VAT extracted from the listed price.
VAT calculations depend on both the seller's location (Ship From) and the buyer's location (Ship To). Getting these right is essential for accurate international tax.
A complete address including country is always required for tax calculation. If the destination country is missing or blank, the integration will not assume international VAT inclusive behavior. The transaction will be treated as tax excluded until the address is corrected.
If your buyer is a VAT-registered business, you can enter their VAT registration number in HubSpot:
The Buyer VAT ID is passed to AvaTax and can influence how the transaction is handled, including B2B treatment depending on your Avalara tax profile configuration. Even if it does not change the tax outcome for a given scenario, it is good practice to populate it whenever the buyer has a VAT registration number.
For B2C customers (individuals without a VAT number), leave this field blank.
When VAT inclusive pricing is active for a transaction, the results in HubSpot will look slightly different from a standard US tax calculation:
Mixed quotes: If a single quote includes both US and international line items (for example, one line shipping to the US and another shipping to the UK), the "Total Calculated Tax" will include only the US portion of the tax. The international VAT inclusive portion will not be added to the tax line item since it is already in that line's price.
After running a tax calculation, you can verify the results directly in Avalara:
In the example above, a $10,000.00 line item with UK 20% VAT included results in a net (taxable) amount of $8,333.33 and VAT of $1,666.67. The total remains $10,000.00.
Recommended test approach: Start with a simple known case. Set Ship From to a UK address, Ship To to a UK address, and use a standard rated product with VAT inclusive pricing enabled. Verify that the extracted VAT matches the expected rate. Then try changing the Ship To to a different country to see how the behavior changes.
Discounts reduce the taxable base before VAT is calculated. When VAT inclusive pricing is active, AvaTax extracts VAT from the discounted gross price, not the original price.
For example: You list a product at $120.00 with 20% VAT included and then apply a $20.00 discount. The new gross price sent to AvaTax is $100.00. AvaTax extracts VAT from $100.00, resulting in a lower VAT amount than it would have extracted from the full $120.00. The quote total in HubSpot reflects the discounted gross price, and the "Total Calculated Tax" line remains at $0.00 for VAT inclusive lines.
Both percentage-based discounts and fixed-amount discounts are supported. The discount is applied before the line amount is sent to AvaTax.
When a transaction is refunded, the integration creates a return transaction in Avalara that reverses the original tax treatment:
To verify a refund: Open the return transaction in Avalara and confirm the tax amounts are negative relative to the original transaction. The absolute values should match the original.
Note: The current integration supports full refunds. Partial refunds (refunding individual line items from a multi-line transaction) are not currently supported through the automated flow. If you need a partial refund recorded in Avalara, you can create an adjustment directly in the Avalara Admin Portal.
If the buyer's country is missing or blank in HubSpot, the integration will not assume international VAT inclusive behavior. Instead, it will treat the transaction as tax excluded until a complete address (including country) is provided. Always ensure the buyer's Company record in HubSpot has a valid country before requesting a tax calculation.
When selling internationally, freight or delivery terms can affect how VAT is calculated. The Transport setting tells Avalara who is responsible for delivering the goods to the buyer. This is especially relevant for cross-border transactions where delivery terms like Incoterms (e.g., DDP, EXW, FCA) determine the VAT treatment of shipping and import duties.
How to set Transport:
The available options are:
Note: Transport is set at the Company level in HubSpot, not per line item. All line items on a quote for that company will use the same Transport value. If the field is left blank or not set, Avalara uses its default behavior, which is appropriate for most domestic transactions.
The Transport value is passed to Avalara as a transaction-level parameter. It affects how Avalara determines the place of supply and which party is liable for VAT on cross-border transactions. For purely domestic sales (within the same country), the Transport setting typically has no effect.
When calculating tax on certain international transactions, Avalara returns invoice messages — these are regulatory compliance messages that should appear on the customer's invoice or quote. The integration automatically captures these messages and stores them on the associated Deal in HubSpot.
When do invoice messages appear?
Invoice messages are a VAT-only feature. They will never appear for US or Canadian domestic sales tax transactions. Avalara generates invoice messages in scenarios such as:
Note: For invoice messages to appear, the buyer typically must have a VAT ID on record (populated in the "Buyer VAT ID" field on the HubSpot Company). Without a buyer VAT ID, Avalara treats the transaction as B2C, which generally does not trigger invoice messages.
Where to find invoice messages:
Invoice messages are informational and are intended to be included on the document sent to the buyer for VAT compliance purposes. You can copy these messages into your invoice template or quote PDF as needed.
If no invoice messages are returned by Avalara (which is the case for all domestic transactions and most B2C international transactions), the field will remain empty.
Reconnect Required: The Transport and Invoice Messages features require updated HubSpot permissions. If you see a yellow banner on your integration portal dashboard asking you to reconnect HubSpot, please click the "Reconnect HubSpot" button to grant the updated permissions. This is a one-time step. Your existing settings and configuration will not be affected.
Out of the box, AvaTax doesn't know what you're selling-every company uses different SKUs and descriptions. Avalara Tax Codes tell AvaTax whether you're selling software, a t-shirt, or anything else. By mapping your HubSpot Product SKUs to the appropriate Avalara Tax Codes, AvaTax can accurately determine taxability in each US jurisdiction.
Do you need to map your HubSpot Product SKUs?
It depends on what you sell. If you skip this step, AvaTax will tax everything as tangible personal property, which may be fine for some, but not others.
Mapping is essential if you offer anything that could be taxed differently than tangible personal property - shipping, software, services, warranties, etc.
What should be mapped?
Any item that can appear on a quote/invoice-product, service, shipping, warranty-should have it's HubSpot Product SKU mapped to an Avalara Tax Code.
How to map Tax Codes
1) In HubSpot go to Commerce, then Products
2) Click on a Product to open details screen.
3) If you don't see 'Ava_TaxCode', click Actions, Customize Properties, then Add a Property, and then select 'Ava_TaxCode'
4) Look up the appropriate AvaTax Tax Codes at - http://taxcode.avatax.avalara.com
5) After finding the appropriate Tax Code, enter it in the 'Ava_TaxCode' field in the HubSpot Product details.
6) That's it! Do this once per product and any time that product is added to a Quote/Invoice, it will automatically pass along the AvaTax Tax Code!
*It would be good to make sure that each HubSpot Product also has a SKU. This will help with reporting and keeping things clean.
SPECIAL NOTE ON SHIPPING CHARGES:
Shipping should be treated as its own product. Create a "Shipping" Product & SKU in HubSpot and map it to the relevant Avalara Tax Code. If you have multiple types of shipping (e.g., by company vehicle vs. common carrier), create separate shipping Products & SKUs and assign each the appropriate tax code.
See next section for guidance on address validation & tax overrides...
The best way to manage exempt customers is through AvaTax. The idea, similar to mapping your HubSpot Products to Avalara Tax Codes, is to map the HubSpot ID of the Company to it's certificate in AvaTax. This will allow AvaTax to exempt them based on the specific certificate and it's expiration date.
Start by finding the HubSpot Company ID. When you open their Company account record in HubSpot, the HubSpot Company ID is in the address bar, as pictured below.
Copy the HubSpot Company ID, then go to your AvaTax console, under Exemptions, and add a new customer. You'll input the Company Name, along with the Customer Code (the HubSpot Company ID), then hit 'Save and add certificate' to provide the specific certificate information so AvaTax knows where they should be exempt.
Then for every transaction coming through, AvaTax will check to see if the Customer Code (HubSpot ID) has a valid certificate in Avalara and then automatically exempt them.
And if needed, you can use a custom HubSpot Company identifier. Go to the company record, click on Actions, then View All Properties and then search for 'Ava_CustomerCode'. There you can input a custom identifier that will get used as that company's AvaTax Customer Code.
Alternatively, you can Use Codes (for both Entities & Line items) from inside HubSpot to tell AvaTax that a company or a specific line item should be exempt from sales tax for a specific reason.
When you apply the Use Code to the COMPANY, all line items on any order for that company will have the company's Use Code applied and then be exempted. To add or edit a company's entity use code in HubSpot:
1) Go to HubSpot and find that company record.
2) From within the record properties, find the record called 'Ava_EntityUseCode'.
3) Input the desired entity the code (see below).
a. Please note, the entity use code should be 1 LETTER only. So, for Resale you would just enter the letter 'G' in the 'Ava_EntityUseCode' field.
When you apply the Use Code to the LINE ITEM, only the specific line item that contains the use code will be exempted, but the other line items that don't have a Use Code will be taxed as normal. To add or edit a line item's Use Code:
1) Go to the HubSpot Quote/Invoice and go to the Line Items section
2) Click on the product in question, then enter the 1 letter Use Code in the 'Ava_LineUseCode' field. Do this for each product/line item you want to apply a Use Code to.
a. Please note, the line use code should be 1 LETTER only.
Use Codes
A - Federal government (United States)
B - State government (United States)
C - Tribe / Status Indian / Indian Band (both)
D - Foreign diplomat (both)
E - Charitable or benevolent org (both)
F - Religious or educational org (both)
G - Resale (both)
H - Commercial agricultural production (both)
I - Industrial production / manufacturer (both)
J - Direct pay permit (United States)
K - Direct mail (United States)
L - Other (both)
M - Not Used
N - Local government (United States)
O - Not Used
P - Commercial aquaculture (Canada)
Q - Commercial Fishery (Canada)
R - Non-resident (Canada)
See next section for guidance on setting up product taxability....
By default, tax will be calculated using your company's address as the Ship From and the main address of your customer (as listed in their contact or company record in your HubSpot account) as the Ship To.
If you need to ship line items to different addresses, you can have sales tax calculated based on the shipping address of each individual line item.
To edit the address for an individual line item:
Open the Quote/Invoice, then go the Line Items section, click on the product/line item in question. You'll see the below fields where you can input the custom address that line item should use for shipping and tax calculation.
Ava_ShipToStreetAddress
Ava_ShipToCity
Ava_ShipToState
Ava_ShipToPostalCode
Ava_ShipToCountry
See next section for guidance on address validation ...
For Avalara's Tax Engine to accurately determine taxes, the address for the company (or individual) you're selling to will need to be complete.
The address has to include the city, state, zip code, AND country for sales tax to calculate properly.
If you don't receive a tax value back from AvaTax, it may be because the customer address is incomplete. If there is an address error, our integration system will send you an email notifying you so you can correct the specific company record, then re-run the transaction.
If you'd like to get ahead of this, we have partnered with Excel Distance Calculators to help you validate addresses in bulk. Using their "Validate and Fix Mailing Addresses" Excel plugin makes this super easy. Just export your companies (or contacts) out of HubSpot, clean the addresses in Excel, then reimport the data into HubSpot. Below is a quick video demonstration.
Here's how to set everything up:
Step 1 - Purchase the "Validate and Fix Mailing Addresses in Excel" plugin from Excel Distance Calculators here.
Step 2 - Export your companies (or contacts) from HubSpot and include the address in the export.
Step 3 - Open the 'Address Validation Software v10 - SU' Excel file that was emailed to you after purchasing the plugin.
Step 4 - Setup Google Maps API account - See Short Video here, then input Google Maps API Key into the 'Address Validation Software v10 - SU' file.
Step 5 - Copy the addresses from the HubSpot export and paste them into the '15 - Address Validation Software v10 - SU' file, then click the 'Run' button.
Step 6 - Copy the newly cleaned addresses from the '15 - Address Validation Software v10 - SU' file and paste them back into the HubSpot export file.
Step 7 - Reimport the information back into HubSpot! And all done!
See next section for guidance on tax overrides....
In the event you don't agree with Avalara's tax calculation, you can override it.
1. Go to the HubSpot Quote/Invoice and go to the Line Items section
2. If you don't see 'Ava_OverrideTaxValue', then hit Edit Columns, and add the property to the Line Item View
3. Then Input the desired sales tax amount.
a. This amount will get used as the tax amount for that specific line, and get posted to Avalara as the tax (instead of what Avalara calculated)
See next section for guidance on accessing the logs...
You can find the record logs in the integration's settings portal, in the menu on the left, under Avalara Tax Logs. This can be used for troubleshooting.
See next section for guidance on troubleshooting...
If you run into issues with the AvaTax for HubSpot integration, feel free to:
Reach out to Taxiom Support - avataxforhubspot@taxiom.com
Reach out to Avalara Support - See here
If sales tax is slowing down finance, we can own execution end to end.
Book a Meeting