Documentation Index

Fetch the complete documentation index at: https://help.servicetitan.com/llms.txt

Use this file to discover all available pages before exploring further.

Avalara integration guide

Prev Next

Overview

The Avalara integration lets you calculate sales tax accurately using AvaTax. AvaTax calculates sales tax for businesses that operate in simple or complex tax areas, or sell items across various zip codes.


Who uses this feature

  • Administrators, office employees, managers, accountants, bookkeepers

  • Applies to all business types

 Feature configuration

Account configuration is required to use this feature. Please contact Technical Support for details.

Things to know

  • Avalara's AvaTax calculates sales tax on estimates and invoices. 

  • Avalara's AvaTax keeps track of frequent changes so you may file period end sales tax reports more efficiently and easily. 

  • Avalara integration sends invoice details directly from ServiceTitan to Avalara.

  • Avalara's AvaTax automatically files your sales tax.

  • The Avalara integration does not support the Application for Payment workflow.

  • You can send both an origin and a destination address to Avalara on invoices. See Tax addresses on invoices.

  • If you send both addresses, every business unit that bills through Avalara must have a complete address. See Business unit address requirements.

Integration options

To help reduce costs, you have two options for integrating ServiceTitan with Avalara's cache feature. This feature is designed to minimize the number of API calls to Avalara, which can lower your Avalara usage charges.

Without cache integration

With this option, ServiceTitan requests a tax update from Avalara each time you edit an invoice, add or modify tasks, change prices, or update invoice details. This keeps the tax amount accurate and current at all times, but it results in frequent API calls and higher costs.

With cache integration

With this option, ServiceTitan makes a single API call to Avalara when the job is booked to create the transaction and apply the maximum local tax rate to the invoice. Precise tax details are requested only when you email, print, collect payment, or when a customer views the invoice online. This ensures accurate tax is shared externally, though the tax shown on the invoice page may not be current between those actions.

Use the Calculate Tax option on the estimate screen to calculate taxes on the estimate before you sell or convert the estimate. This prevents multiple API calls from being made when estimate items are added or edited, causing taxes to be frequently recalculated.

Below is a list of actions that triggers a tax calculation or recalculation on an invoice when you're using this option:

  • Present estimate

  • Sell estimate

  • Email estimate

  • Print estimate

  • Collect deposit on estimate

  • Complete job

  • Collect payment on invoice

  • Email invoice

  • Print invoice

  • Post invoice

  • Email statement

  • Print statement

  • Email project

  • Print project

Before you get started

Before setting up your Avalara integration with ServiceTitan, make sure your Avalara account is set up successfully and you have the following details from Avalara:

  • Account number

  • License key

  • Company code

Note: If you plan to send both an origin and a destination address to Avalara, add a complete address to every business unit that bills through Avalara before you turn the setting on. See Business unit address requirements.

Set up Avalara integration

When you set up Avalara AvaTax in ServiceTitan, you only need to configure one integration. However, you can choose to create multiple integrations, depending on which business units the integration is mapped to. To configure Avalara AvaTax for your ServiceTitan account, complete the following:

  1. Configure Avalara AvaTax for your ServiceTitan account.

  2. Understand your tax code levels in pricebook.

  3. Assign Avalara tax codes for each item in pricebook.

Step 1: Configure Avalara AvaTax for your ServiceTitan account

  1. Go to the navigation bar and click Settings

  2. In the side panel, go to Integrations > Avalara.

  3. On the Avalara Integration screen, open the connection you want to configure. The Edit Connection screen opens.

  4. In the Connection section, enter your Avalara credentials:

    1. Company Code: The unique identifier for the Avalara company profile used for tax calculations and reporting. This value must match the company code configured for your company in Avalara. To find it, sign in to the Avalara portal and go to Account > Companies.

      Note: The Company Code is not the same as the Company ID.

    2. Account Number: Your Avalara Account ID, used to authenticate API requests and integrations. To find it, sign in to the Avalara portal and go to Account > Account ID.

    3. License Key: A string of letters and numbers. To find it, sign in to the Avalara portal and go to Settings > License and API Keys.

    4. Account Type: Select whether to use the Production or Sandbox servers.

    5. Cutoff Date: The date Avalara begins calculating sales tax. Populate this when you switch from tax zones to Avalara.

    Note: Click Avalara Account Info to open your account details in Avalara.

  5. In the Business units section, select which business units use this Avalara account.

  6. In the Tax calculation & reporting section, turn on the options you want:

    1. Enable Sales Tax Calculation: Turn this on to use the Avalara integration.

    2. Report to Avalara: Turn this on to submit your invoices to Avalara. When it is on, Avalara transactions are committed when you post invoices in ServiceTitan. Leave it off if you do not use Avalara to file your sales tax reports.

    3. Do not send requests to Avalara for $0 invoices for jobs created from membership appointments: Turn this on if you do not want to submit $0 invoices from membership jobs to Avalara.

    4. Use business unit and service location for invoice tax addresses: Turn this on to have Avalara transactions use the business unit address as the origin (ship from) and the service location address as the destination (ship to), instead of a single location. This option is off by default. Before you turn it on, make sure every business unit that bills through Avalara has a complete address. See Tax addresses on invoices.

    Configuration settings for Avalara integration, including account details and tax reporting options.

  7. At the top of the screen, click Test Connection to test your connection to the AvaTax service and verify your credentials.

    1. If you get a Connection Successful message, continue to the next step.
      Connection successful message displayed with a button to test the connection.

    2. If you get a Connection Failed message, go back to the Connection section to ensure your Avalara account details are entered correctly. Error message indicating connection failure with a button to test the connection.

  8. When you get a Connection Successful message, click Save.

Step 2: Understand your tax code levels in pricebook

For services, materials, and equipment, you can set up your tax codes in the following levels:

  • Item

  • Subcategory

  • Category

Avalara always attempts to pull the tax code from the item level first. If no tax code is assigned at the item level, Avalara then attempts to pull the tax code at the subcategory level. If no tax code is assigned at the subcategory level, then Avalara pulls the tax code from the category level.

When tax codes are assigned at all three levels, Avalara pulls from the item level first, then subcategory, and finally at the category level.

If all the items within the category have the same tax code, you can assign the tax code to the category rather than each individual item.

Step 3: Assign Avalara tax codes for items in pricebook

Avalara needs a tax code assigned for each item in your pricebook to determine the correct sales tax. If a tax code is not assigned to an item, Avalara pulls the tax code assigned to the subcategory or category.

To assign tax codes:

  1. Go to the navigation bar and click Pricebook

  2. In the side menu, click Service, Materials, or Equipment.

  3. Search for the item you want and click Actions  > View/Edit.

  4. On the edit screen, enter the Avalara tax code in the following fields:

    1. Avalara Tax Code (Residential): This is the default product code for each item within this category. If only the Residential field is provided, this code is used for both commercial and residential jobs.

      Note: Click Find Tax Codes to get AvaTax codes for goods and services. These codes determine the taxability of the goods and services you sell.

    2. Avalara Tax Code (Commercial): This field is optional. This is the product code for each item within this category. 

  5. When finished, click Save.

Select reason for tax exempt customer and location

When customers or locations are marked as Non-Taxable, you must enter an Avalara Entity Code to provide an exemption reason. 

Note: If a location address fails to validate, an error message appears stating that the sales tax cannot be correctly calculated because the address cannot be validated.

To select an Avalara Entity Code on tax exempt customer or location: 

  1. Search for and go to the customer or location record. 

  2. On the customer or location record, click Edit  .

  3. On the edit screen, select an exemption reason on the Avalara Entity Code dropdown.

  4. When finished, click Save.

Use Avalara address validation tool when booking a job

When booking a job, use Avalara's address validation tool to confirm that sales tax can be calculated at the location. If Avalara cannot verify the location address, the job cannot be booked. 

To use Avalara's address validation tool: 

  1. On the call screen, click + New Customer

  2. On the Create Customer screen that opens, enter the location details. 

  3. Click on the Avalara address validation tool.

    1. If the address is validated, continue to the next step. 

    2. If the address is not validated, an error message states Unable to book this job because Avalara cannot verify the address for sales tax purposes

  4. When finished, click Create Customer.

Tax addresses on invoices

Avalara applies each state's sourcing rules using two addresses: where the sale originates and where the service is delivered. Most states apply tax based on the job location, some apply it based on the origin address, and others use a combination of both.

By default, ServiceTitan sends the service location to Avalara as a single address on invoices. To send an origin address and a destination address instead, turn on Use business unit and service location for invoice tax addresses on your Avalara account. This option is off by default for both new and existing Avalara accounts.

When this option is turned on:

  • Ship From is the address of the business unit on the invoice.

  • Ship To is the service location. If the invoice has no location, Ship To uses the customer's main location address. If the customer has no location, Ship To uses the customer address.

  • Adjustment invoices follow the same rules.

Things to know about this option:

  • Transactions sent to Avalara before you turn on this option are not updated. Only invoices created or adjusted after you turn it on include both addresses.

  • Ship From and Ship To are not shown on the invoice in ServiceTitan. To review them, open the transaction in Avalara.

  • Use tax on bills, purchase orders, and receipts is not affected. These already send an origin and a destination address.

Business unit address requirements

When this option is turned on, ServiceTitan uses the business unit address as the Ship From address. If a business unit does not have a usable address, tax cannot be calculated for invoices on that business unit and an error appears. No request is sent to Avalara.

To avoid this, add a complete address to every business unit that bills through Avalara before you turn it on.

To add or edit a business unit address:

  1. Go to the navigation bar and click Settings.

  2. In the side panel, go to Operations > Business Units.

  3. Select the business unit you want, then click the Address tab.

  4. Enter the complete address, then click Save.

Note: Check every business unit, not only the one you are working in. When you collect a payment from the Invoice screen, the payment can apply to any of the customer's open invoices, and those invoices can belong to different business units.


Modifying a posted invoice

If an invoice is created before the Avalara integration is enabled, the invoice is not updated with Avalara tax calculations. If the invoice is updated later, Avalara tax calculations are applied to the invoice. 

When an invoice is posted, ServiceTitan commits the transaction in Avalara. If you later unpost the invoice, the transaction should be uncommitted in Avalara. 

If you use accounting periods, closing an accounting period with a Close Through Date also commits the transaction in Avalara. Reopening the accounting period does not change the committed status.

Note: Once Avalara files the sales tax report for an invoice, you can no longer unpost the invoice in ServiceTitan to make changes.

Tax calculations in ServiceTitan Mobile

If you are using the Avalara integration with ServiceTitan Mobile, the following occurs:

  • Technicians can still build estimates. Sales tax is based on the stored general sales tax rate for goods and services, as saved when booking a job. 

  • Technicians can still sell estimates. A disclaimer appears at the bottom of the page with the following message: ServiceTitan is unable to connect to the server and get the actual tax rates. The tax shown here is an estimate. This amount will be updated with the actual tax rate once a connection is established. 

  • Technicians can still accept payment and complete a job. If a customer pays an invoice total before sales tax has been calculated, the above disclaimer will appear on the Invoice screens so that the customer understands that the final amount will change. 

  • ServiceTitan updates the sales tax on the invoice based on Avalara's tax calculations when the internet connection is re-established.

Tax calculations in Application for Payment (AFP)

If you are using the Avalara integration with Application for Payment, the following occurs:

  • To use Avalara to calculate sales tax for Application for Payment, enable the Avalara tax option in the Application for Payment settings. You can use the global AFP settings or in the individual project AFP settings page.

  • The Application for Payment preview won't be available but sales tax will appear when you print the document.

  • Taxes are shown in a separate line.

FAQ


What actions cause taxes to be recalculated on invoices?

The following actions prompt taxes to be recalculated on invoices:

  • Email invoice

  • Print invoice

  • Click on the Payment Collection screen

  • View the invoice online through the customer portal

Note: This only applies when you have the caching feature enabled.

Why do I get a "Ship From address is required" error?

This error appears when Use business unit and service location for invoice tax addresses is turned on for your Avalara account and a business unit does not have a complete address. ServiceTitan uses the business unit address as the Ship From address, so it cannot build a valid request for Avalara without one.

You may see this error when you book a job, or when you collect a payment.

When you collect a payment from the Invoice screen, the payment can apply to any of the customer's open invoices, and those invoices can belong to different business units. The error can appear even when the business unit on the invoice you are working in has a complete address, because another open invoice for that customer belongs to a business unit that does not.

To resolve this, add a complete address to every business unit that bills through Avalara. Go to Settings > Operations > Business Units, select the business unit, and open the Address tab. See Business unit address requirements.

Does the Avalara integration support Purchase Orders?

Purchase Orders are currently not supported in this integration.

What is the Avalara cache integration?

ServiceTitan integrates with Avalara to calculate tax rates through API calls. When you book a job, ServiceTitan sends the necessary information, such as the tax code and address, to Avalara, which then calculates the tax and sends it back to ServiceTitan.

To help reduce the costs for the customer, which are incurred from these API calls, ServiceTitan has implemented an Avalara cache feature. This feature minimizes the number of calls made to Avalara, thereby reducing the end-of-month billing from Avalara.

How does the Avalara cache integration work?

Here's how it works:

  • Without Cache Integration: ServiceTitan requests tax calculation updates from Avalara every time you edit an invoice, add a task, change prices, update invoice details, and for nearly all actions related to an invoice. This could lead to numerous API calls and higher costs.

  • With Cache Integration: When a job is initially booked, ServiceTitan makes a single API call to Avalara to obtain basic information and create the transaction. ServiceTitan does not make any additional API calls to Avalara unless you perform actions such as emailing or printing an invoice, or collecting payment. At this time, ServiceTitan requests tax information from Avalara, and this process ensures that you send accurate tax totals to your customers, provide correct estimated tax value on estimates, or collect payments based on correct tax rates.

Why is tax calculated as $0 on my invoice?

Make sure that items have Avalara Tax Codes assigned to them in Pricebook. If they don't, make sure the items are assigned to a Category in Pricebook, and the category has an Avalara Tax Code assigned to it.

Then, make sure the location, such as county and state, of the invoice is included in your Avalara account under Settings >Where you collect tax section.

Keep in mind that ServiceTitan does not calculate taxes, and only displays calculations provided by Avalara. To check if Avalara also calculates taxes as $0 for a given item, go to your Avalara account then go to Transactions > Tax Calculator section and enter the location and Avalara Tax Code of the item.

You can also review the transaction in Avalara to determine if the product or service is taxable.

How does the Do not send requests to Avalara for $0 invoices for jobs created from membership appointments option in Settings work?

If this option is turned on, no call is made to Avalara only if all of the following conditions are satisfied:

  • The invoice is linked to a job with a recurring service event

  • The Total of the invoice is $0

  • There are no chargeable materials on the invoice

Why is a transaction not in a Committed status in Avalara?

When a transaction is created in ServiceTitan, it is pushed to Avalara in an Uncommitted status. The status is then updated to Committed in Avalara as soon as the transaction is posted in ServiceTitan.

If you use accounting periods, closing an accounting period with a Close Through Date also updates the transaction to Committed in Avalara. Reopening the accounting period does not change the committed status.

If you unpost the transaction in ServiceTitan, it goes back to the Uncommitted status in Avalara.

As soon as a sales tax report for a transaction is filed in Avalara, the transaction becomes locked and you won't be able to unpost it in ServiceTitan anymore.

Want to learn more?