Articles on: Shipping & Tax

Avalara AvaTax Configuration Guide

A hands-on, step-by-step walkthrough for store admins


On this page

Before You Start
How AvaTax Works in FlyCommerce
Step 1: Company and Connection
Step 2: Map Tax Classes to AvaTax Tax Codes
Step 3: Configuration and Features
Handling Tax Exemptions
What Customers See at Checkout
How Orders Are Recorded in Avalara
Reports and Logs
Common Issues



Before You Start


This guide covers one thing only: connecting and configuring Avalara AvaTax as the tax engine for your FlyCommerce store. By the end you will have AvaTax calculating live tax at checkout, every order recorded in your Avalara company, and exemptions handled correctly.
Everything is organized around three steps you complete in order:

  • Step 1 - Company and Connection: enter your Avalara credentials and point FlyCommerce at the right Avalara company.
  • Step 2 - Map Tax Classes to AvaTax Tax Codes: tell Avalara what each group of products is, so it taxes them correctly.
  • Step 3 - Configuration and Features: turn on tax calculation and the optional features you need (address validation, exemption certificates, logging, and more).

What you need first

  • An Avalara AvaTax account. If you do not have one, sign up at avalara.com. You manage everything Avalara-side from the Avalara Admin Console.
  • Your Account ID and License Key. Generate these in the Avalara Admin Console under Settings > License and API Keys.
  • Admin access to FlyCommerce. All tax settings live under Settings > Tax in the admin dashboard.





Tip: Sandbox vs Production. Avalara gives you two separate environments. Sandbox is for certification and testing - it returns realistic rates but files nothing. Production is live and affects real returns. Always validate your full setup in Sandbox first, then re-enter Production credentials when you go live. Each environment has its own Account ID and License Key.


How AvaTax works in FlyCommerce

When AvaTax is enabled, FlyCommerce stops using its built-in rate tables and instead asks Avalara to calculate tax for every cart and order in real time. Avalara uses three things to get the number right:

  • Where: the ship-from and ship-to addresses determine which jurisdictions apply.
  • What: the AvaTax tax code you mapped to each product's tax class determines how it is taxed (clothing, food, digital goods, freight, etc.).
  • Who: the customer's exemption status (if any) can reduce or remove tax.

Get those three right and the rest is automatic. The three steps below set them up. Steps 1 and 2 are required before tax calculation can be switched on - Step 3 will not let you enable it otherwise.


Step 1 - Company and Connection

This step has two parts on the same screen: first you connect your Avalara account with credentials, then you tell FlyCommerce which Avalara company to use and fill in a few company-level defaults.
Go to Settings > Tax > AvaTax.


1.1 Connect with AvaTax

At the top of the AvaTax page is the Connect with AvaTax card. Fill in the three fields:


Field

What to enter

Where to find it

Account ID

Your Avalara account number.

Avalara Admin Console → Settings → License and API Keys.

License Key

The API license key for that account.

Same screen. Generate a new key if you don’t have one saved — Avalara only shows it once.

Environment

Choose Production for live tax, or Sandbox / Development for testing.

Use Sandbox while you set up and certify, then switch to Production.


Click Connect. FlyCommerce verifies the credentials against Avalara. On success the card shows a green Connected badge, and two buttons appear: Disconnect and Ping.


Tip: Use Ping any time. The Ping button re-tests the live connection to Avalara without changing anything. If tax calculation suddenly stops working, Ping first - it tells you immediately whether the credentials are still valid or the environment is unreachable.


Important: Disconnecting clears your stored credentials. You can reconnect at any time, but you will need to re-enter the Account ID and License Key. Disconnecting does not delete anything in your Avalara company.

1.2 Company and Connection settings

Once connected, scroll to the configuration card below. The first section is labelled Step 1: Company and Connection. This is where you tell FlyCommerce exactly which Avalara company to post to and set a few company-wide defaults.



Field

What it does

Company Code  (required)

The code of the Avalara company that will receive your transactions. If FlyCommerce can read your companies from Avalara it appears as a dropdown; otherwise type it manually (e.g. DEFAULT). This must match a company that exists in your Avalara account.

Company ID

The numeric ID of that same company (e.g. 12345). Required for CertCapture, the Items catalog, Locations, and Reports. Find it in Avalara → Company Management. Leave blank only if you’re doing basic rate calculation and nothing else.

Capability Status

A read-only panel that tells you what’s ready: Credentials Valid, Company ID Configured, and CertCapture Ready. Use it as your checklist — anything showing “Needs attention” or “Missing” should be fixed before relying on that feature.

Fallback Ship-From Address

The origin address Avalara uses when an order has no warehouse address of its own. It’s pulled from General Settings → Business Details; use the Open Business Details link to edit it. An accurate ship-from is essential — the wrong origin produces the wrong tax.

Shipping Tax Code

The AvaTax tax code applied to shipping/freight charges. Defaults to FR020100 (General Freight), which is correct for most stores. Only change it if your shipping is taxed differently in your jurisdictions.


Select Save to store the company settings. Watch the Capability Status panel update.


Tip: Aim for a fully green Capability Status before moving on: Credentials Valid + Company ID Configured. CertCapture readiness only matters if you plan to collect exemption certificates (covered in Step 3 and the Exemptions section).


Step 2 - Map Tax Classes to AvaTax Tax Codes

This is the step most people get stuck on, so we will take it slowly. The goal is simple: every product in your store belongs to a tax class, and each tax class must point to an AvaTax tax code so Avalara knows how to tax it.


Tax class > AvaTax tax code is the whole idea. A tax class is your grouping ("Clothing", "Digital", "Food"); the AvaTax tax code is Avalara's official identifier for how that kind of product is taxed everywhere. You create the classes, then map each one to a code.


Note: If you map nothing, Avalara falls back to the default code P0000000 (tangible personal property), which is taxed at the standard rate everywhere. That is fine for general merchandise but wrong for clothing, groceries, digital goods, or anything with special treatment. Mapping is how you get those right.


2.1 Create and manage tax classes

Open Settings > Tax > Classes. You will see the Tax Classes list. Every store starts with a Standard Rate class (it cannot be deleted). The Usage column shows how many products are assigned to each class.

To add one, select Create Tax Class. A New Tax Class modal opens with two fields:



Field

What to enter

Name

A clear, recognizable name — this is just for you to identify the class (e.g. “Clothing”, “Digital Goods”, “Groceries”).

VAT Treatment

Standard, Zero-rated, Exempt, or Reduced. This only affects the MENA VAT calculator — it is ignored when AvaTax is your active checkout engine. If you’re using AvaTax, leave it on Standard; the AvaTax tax code you map in the next part is what actually controls the tax.


Click Create. Repeat for each distinct group of products you sell that’s taxed differently. You can Edit (rename) or Delete any class except Standard Rate.


Tip: Do not over-create classes. Make one class per tax treatment, not per product. "Clothing" is a class; "Blue T-Shirt" is not. Most stores need only a handful: Standard, plus whichever of Clothing, Food, Digital, or Freight actually apply to them. Fewer classes means simpler mapping and fewer mistakes.

After creating a class, assign products to it from the product editor's tax class field. The Usage column then reflects the count.

2.2 Understanding Tax Code Lookup

Before mapping, you need the right AvaTax tax codes. An AvaTax tax code is Avalara's standardized identifier for a category of goods or services. Avalara maintains thousands of them, and the correct code is what makes Avalara apply the right rules in every state and country.


You do not have to memorize codes or leave FlyCommerce to find them. The mapping screen (Step 2 of the configuration card) includes a built-in Tax Code Lookup box:

  • Search by code or by word. Type a tax code if you already know it (for example, PC030122), or type a plain word from the description (for example, Clothing, Freight, Digital). Matching codes appear with their official descriptions.
  • Apply or Copy. Each result has two buttons. Apply drops the code straight into the tax-class row you are working on; Copy puts it on your clipboard so you can paste it wherever you need.
  • Browse the full catalog. The Browse all on Avalara link opens Avalara's complete, searchable tax-code reference at taxcode.avatax.avalara.com. This is the authoritative source - use it when you are unsure which code best fits a product category.


Tip: A few codes you will see often: P0000000 = general tangible goods (the default), FR020100 = general freight and shipping, PC030100 = clothing, D0000000 = digital goods. When in doubt, search the description on the Avalara tax-code site and read the notes - picking the closest official category is far better than leaving it on the default.


2.3 Map each tax class to a tax code

In the configuration card, the second section is labelled Step 2: Map Tax Classes to AvaTax Tax Codes. It lists every tax class you created, each with a field to enter its AvaTax tax code and a per-row Lookup button.



  • For each class row, select Lookup (or use the Tax Code Lookup box above), find the right code, and select Apply - or type the code directly into the field (placeholder P0000000).
  • Work through every row. While any class is unmapped, an Incomplete Mapping badge stays visible as a reminder.
  • Select Save once all classes have a code.

Important: Every class must be mapped before you can enable tax calculation. Step 3 keeps the Enable AvaTax tax calculation toggle locked until the badge clears and all classes are mapped. If you try to save Step 3 early, you will see "All tax classes must be mapped before enabling tax calculation." This is intentional - it stops Avalara from silently taxing everything as generic goods.

Tip: Mapping checklist: (1) every tax class has a code, (2) the codes match what each class actually contains, (3) the shipping tax code in Step 1 is set (FR020100 by default), (4) the Incomplete Mapping badge is gone. When all four are true, you are ready for Step 3.



Step 3 - Configuration and Features

The third section of the configuration card, Step 3: Configuration and Features, is where you turn AvaTax on and choose the optional features you want. Each is a toggle; enable the ones you need and select Save.


Toggle

What it does / when to turn it on

Enable AvaTax tax calculation

The master switch. When on, AvaTax calculates tax for every cart and order. Locked until all tax classes are mapped (Step 2). Turn this on last.

Report transactions to AvaTax

Records each order as a committed transaction in your Avalara company so it appears in returns and reports. Turn this on in Production if you use Avalara for filing. Leave off in Sandbox testing if you don’t want test transactions recorded.

Address validation

Has Avalara verify and standardize customer addresses at checkout, improving rooftop-accurate rates. Recommended for US addresses.

Exemption certificates

Enables exemption handling and the link to the CertCapture Console. Requires a Company ID (Step 1). See the Exemptions section for the full workflow.

Enable Avalara API logging

Logs every request/response between FlyCommerce and Avalara. Invaluable for troubleshooting. Use the View Logs link to inspect them (also at Settings → Tax → AvaTax → Logs).

Log retention (days)

How long to keep API logs (1–365, default 30). Raise it if you need a longer audit trail.

Tax-inclusive pricing

Treat your product prices as already including tax. Turn on only if you display and sell tax-inclusive prices (common outside the US).

Multi-vendor marketplace transactions

Enables multi-document transactions so each vendor’s portion of an order is recorded separately in Avalara. Turn on if you run a multi-vendor marketplace.


Select Save. With tax calculation enabled and everything green, AvaTax is now live at checkout.


Tip: Recommended go-live order: (1) finish Steps 1 and 2, (2) in Sandbox, enable tax calculation and address validation and test a few orders, (3) enable exemption certificates and logging if you need them, (4) switch credentials to Production, turn on Report transactions to AvaTax, and place one real test order to confirm it lands in your Avalara company.



Confirming your setup

The screen does not change its layout after you finish - the same three cards stay in place. What changes are the status indicators, which flip to green so you can confirm at a glance that AvaTax is live. Use this as your done checklist: compare each indicator to the "After setup" column.


Indicator

Before setup

After successful setup

Connect with AvaTax

Connect button

Green Connected badge + Disconnect and Ping buttons

Credentials (Step 1 Capability Status)

Red Needs attention

Green Valid

Company ID (Step 1)

Orange Missing

Green Configured

CertCapture (Step 1)

Gray Disabled

Green Ready (or orange Unavailable if Avalara cannot reach it)

Fallback Ship-From (Step 1)

Amber "address incomplete" warning

Your actual Business Details address lines

Step 2 header

Red Incomplete Mapping badge

Badge gone; every row shows its tax code

Enable AvaTax tax calculation (Step 3)

Toggle off, "Map all tax classes first" warning

Toggle on; CertCapture Console and View Logs links visible


You are done when: the Capability Status panel is all green, the Incomplete Mapping badge is gone, and Enable AvaTax tax calculation is on. From here, AvaTax calculates live at checkout - verify with a test order as described above.


Handling Tax Exemptions

Some customers (resellers, non-profits, government buyers) should not be charged tax. AvaTax handles this through entity use codes - a one-letter classification that tells Avalara why a customer is exempt - backed by an exemption certificate. You manage everything from Settings > Tax > Exemptions. An exemption can start in two ways: a customer claims it from their account, or an admin creates it directly.
The Exemptions screen gives you four counts (Total, Approved, Pending Local Review, Pending CertCapture) and source tabs (All, Admin Created, Customer - Local, Customer - CertCapture) so you can see where each record came from.

How a customer claims an exemption

A logged-in customer requests their own exemption from their account area in the storefront. They do not set any codes themselves - they submit the supporting details and a certificate, and it arrives in your dashboard as a pending request for approval. The request includes:


  • Exemption type and reason (for example, Resale, Non-Profit, Government).
  • Certificate number and the certificate document (PDF, JPG, or PNG) - the upload is required.
  • Exempt jurisdictions and a valid-from and valid-until date range.


On submit, FlyCommerce creates a pending record tagged as customer-submitted and routes it to the right workflow automatically: if AvaTax CertCapture is enabled (connected + Exemption certificates on + a Company ID set), the request is marked Customer - CertCapture; otherwise it is Customer - Local. The customer sees "Your tax exemption request has been submitted for review," and it shows up in your Exemptions list.



Note: Customers cannot approve their own exemptions or pick the entity use code - that is the admin's job in the next steps. A request has no tax effect until you approve and classify it.

How an admin creates an exemption directly

When your team receives a certificate by email or in person, create the record yourself. Select Add Local Exemption to open the Add Tax Exemption modal and fill in:


Field

What to enter

Customer  (required)

Search and pick the existing customer the certificate belongs to. (If no customers exist yet, create one first.)

Exemption Type  (required)

Wholesale, Resale Certificate, Non-Profit Organization, Government Entity, or Diplomatic. Picking one auto-fills a matching Entity / Use Code as a smart default (e.g. Resale → G, Non-Profit → E, Government → B, Diplomatic → D).

Entity / Use Code

The Avalara classification (codes A–J) sent to AvaTax. Adjust the smart-default if needed. This is the field that actually makes AvaTax apply the exemption — see the code table below.

Certificate Number  (required)

The reference number on the customer’s certificate.

Exempt Jurisdictions  (required)

The regions where the exemption applies (e.g. US-CA, US-NY, SA, AE).

Valid From / Valid Until  (required)

The certificate’s validity window.

Document  (required)

Upload the certificate file (PDF/JPG/PNG, up to 10 MB). It’s stored in DokanCloud and linked to the customer.


Select Create Local Exemption. Because you supplied the entity use code, the record is classified immediately and AvaTax will honor it for that customer's qualifying orders.


Tip: Use Add Local Exemption when your team holds the certificate. If you would rather have the customer upload directly into Avalara, use the CertCapture invite path (below) instead - the modal links to Open CertCapture for that.


How an admin approves a request and assigns the entity use code

For any pending request (customer-submitted or otherwise), open the row's actions menu (⋮). You will see up to three choices depending on your setup:


Action

When to use it

What happens

Approve & Classify

You have (or don’t require) the certificate and just need the customer flagged exempt with the correct code.

Opens the Approve & Classify dialog where you pick the Entity / Use Code (A–J) and click Confirm Approval. The code is assigned to the customer locally and AvaTax stops charging tax on qualifying orders right away.

Approve & Send CertCapture Invite

You want the customer to upload a valid certificate straight into Avalara. (Only shown when CertCapture is enabled.)

Approves and emails the customer a CertCapture invite. Once they accept, the exemption is backed by an audit-ready document stored in Avalara.

Reject

The request isn’t valid.

Marks the record rejected; no exemption is applied.


The Approve and Classify dialog is the main place an admin assigns the entity use code to a customer: review the type and certificate (you can download the uploaded file from here), choose the code from the dropdown, and confirm. After approval you can later Revoke an approved exemption from the same menu.



Important: A local exemption you approve in FlyCommerce does apply at checkout - the entity use code is sent to Avalara on the customer's transactions, so Avalara honors it. Use CertCapture when you need a documented certificate on file for audit purposes, not because local exemptions are ignored.


Entity use codes (A-J)

An entity use code tells Avalara why a customer is exempt; AvaTax then applies the correct rules per jurisdiction. FlyCommerce uses Avalara's standard list:

Code

Meaning

Auto-filled for type

A

Federal government

-

B

State government

Government Entity

C

Tribal government

-

D

Foreign diplomat

Diplomatic

E

Charitable organization

Non-Profit Organization

F

Religious organization

-

G

Resale

Resale Certificate

H

Agricultural production

-

I

Industrial production

-

J

Direct pay permit

-

Note: Use the CertCapture Console link (in Step 3 or on the Exemptions screen) to manage stored certificates directly in Avalara. CertCapture features require the Company ID from Step 1 and the Exemption certificates toggle from Step 3.

What Customers See at Checkout

This is the payoff for all the configuration above - here is exactly what a shopper experiences once AvaTax is live, and how to confirm it is working.

Live tax calculation in the order summary

As soon as the customer enters or changes their shipping address (country, state, city, and ZIP), FlyCommerce sends the cart - each item with its tax class, plus shipping - to Avalara and gets back the tax for that exact destination. In the order summary the Tax line behaves like this:

  • While Avalara is being queried, the Tax line shows "calculating..."
  • A moment later it updates to the calculated tax amount, and the order total recomputes as Subtotal + Tax + Shipping - Discount.
  • It recalculates automatically whenever the shipping destination, items, or quantities change - the customer never does anything except fill in their address. The amount reflects the AvaTax tax codes you mapped (Step 2), the shipping tax code (Step 1), and the customer's exemption status - so an exempt customer with an approved entity use code sees reduced or zero tax automatically.

Address validation and tax-inclusive pricing

  • Address validation: if you turned this on in Step 3, the customer may be prompted to confirm a standardized version of their address. This gives Avalara rooftop-level accuracy for US destinations and prevents wrong rates from a mistyped ZIP.
  • Tax-inclusive pricing: if enabled, displayed prices already include tax, so the customer does not see tax added as a separate amount on top - it is reflected within the price instead.

On the invoice

After the order is placed, the tax also appears on the customer's invoice, broken down line by line: Subtotal, Shipping, Discount, each tax line with its name and rate (for example, Sales Tax (8.25%)), the Tax total, and the grand Total. When AvaTax produced the numbers, the invoice also notes the source - Tax by Avalara · Ref (transactionCode) - tying the document back to the recorded Avalara transaction.


Tip: Quick way to verify your setup. Add a product to the cart, go to checkout, and enter an address in a state where you collect tax. The Tax line should switch from "calculating..." to a real amount within a second. Then enter an address in a state with no tax (for example, Oregon) - it should drop to zero. If it stays on "calculating..." or returns nothing, check the Avalara API logs.


How Orders Are Recorded in Avalara

When Report transactions to AvaTax is on, each completed order is posted to your Avalara company as a committed transaction under the Company Code you set in Step 1. These transactions are what Avalara uses for reporting and filing returns.


  • Multi-vendor stores: with Multi-vendor marketplace transactions enabled, each vendor's portion is recorded as its own document.
  • Refunds and cancellations: adjusting an order in FlyCommerce posts the corresponding correction to Avalara so your recorded liability stays accurate.
  • Verify go-live: after switching to Production, place one real order and confirm it appears under Transactions in the Avalara Admin Console.


Reports and Logs


Avalara API logs (inside FlyCommerce)

If you enabled Avalara API logging in Step 3, FlyCommerce keeps a record of every call to Avalara. Open them with the View Logs link, or go to Settings > Tax > AvaTax > View API Logs. Each entry shows the request, Avalara's response, and any error - this is your first stop when a rate looks wrong or a transaction did not record. Logs are kept for the Log retention window you set (default 30 days).


Tax reports and returns (in the Avalara console)


Important: FlyCommerce does not generate tax liability or return reports itself. Because Avalara is the system of record for everything it calculates, your tax reports, liability worksheets, and return filings live in Avalara - not in the FlyCommerce dashboard. Do not look for a "Tax Report" export in FlyCommerce; it is not there by design.


To get your tax reports, sign in to the Avalara Admin Console and use:

  • Transactions: every order FlyCommerce reported, searchable by date, jurisdiction, and status.
  • Reports: liability and tax-detail reports you can export (CSV or PDF) for any period and jurisdiction.
  • Returns: if you use Avalara Returns, your filing schedules and filed returns.

Tip: The link between the two systems is the Company Code from Step 1. Everything FlyCommerce reports lands under that company in Avalara, so make sure you are looking at the same company in the console that you configured in FlyCommerce.


Common Issues


Symptom

Likely cause and fix

Cannot connect / "Connection failed."

Wrong Account ID or License Key, or wrong Environment. Re-generate the key in Avalara, confirm Sandbox vs Production, and use the Ping button to test.

Cannot enable tax calculation

A tax class is still unmapped - the Incomplete Mapping badge is showing. Finish Step 2; map every class to a code, then save.

Everything taxed at the standard rate

Products are falling back to P0000000. Map their tax classes to the correct AvaTax codes in Step 2.

Wrong tax amount by location

Check the Fallback Ship-From Address (Step 1) and enable Address validation. A bad origin or unvalidated destination produces wrong rates.

Exempt customer still charged

Confirm the exemption was approved (Approve and Classify) and the right entity use code is assigned. For documented exemptions, check the certificate status in CertCapture.

Orders not appearing in Avalara

Turn on Report transactions to AvaTax (Step 3) and confirm the Company Code matches the company you are viewing in the console.

Shipping taxed incorrectly

Check the Shipping Tax Code in Step 1 - it should normally be FR020100 (General Freight).

Need to see what Avalara returned

Enable Avalara API logging and open View Logs to inspect the exact request and response.


Once Steps 1-3 are green and a Sandbox test order calculates correctly, switch to Production credentials, enable transaction reporting, and place one live test order. After that, AvaTax runs automatically - your day-to-day work is just keeping tax classes mapped as you add new product categories.

Updated on: 06/08/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!