AvaTax for Jobber Integration Guide

Built by Taxiom

Jobber Avalara
Back

A walk-through of how AvaTax for Jobber connects your accounts and how sales tax flows from a Jobber job through to a Jobber invoice.

If you haven't already, pay the setup fee to receive your AvaTax for Jobber portal credentials. The portal (our integration) is how you'll connect Jobber to Avalara. If you have any questions, please email us at avataxforjobber@taxiom.com.

Two ways to learn the integration

Watch the walkthrough, or scroll down to the written guide for step-by-step detail on every feature.

Prefer reading? Skip to the written guide ↓

Prefer to have us walk you through this on a live call? Add our Guided Setup add-on ($299) — two calls with our team, up to 45 minutes each. Add Guided Setup — $299

Before you start

↑ back to top

You will need three things in place before connecting:

  • An active Jobber account with API access enabled on your plan.
  • An Avalara AvaTax subscription with the destinations you sell into enabled for tax calculation. If you do not have one yet, the Taxiom team can help you scope and set one up.
  • Accurate job-site property addresses on the Jobber jobs you want sales tax calculated for. The job-site address is the destination Avalara uses to choose the right rate.

Step 1 - Pay the setup fee and create your Taxiom portal account

↑ back to top

Start on the AvaTax for Jobber sign-up page. After payment, you receive a welcome email at the address you signed up with. The email includes a link to set your portal password at avataxforjobber.taxiom.com. The link is good for seven days.

Step 2 - Set your portal password and sign in

↑ back to top

Click the Set Your Password link in your welcome email. After setting your password, you land on the AvaTax for Jobber portal. The portal is where you connect Jobber and Avalara and where you can see the status of every invoice the integration has touched.

Step 3 - Connect your Jobber account

↑ back to top

In the portal, click Connect Jobber. Jobber walks you through a standard OAuth approval where you confirm the scopes the integration needs to read clients, jobs, quotes, and invoices, and to write Tax Rates and Custom Fields back to your account. Once approved, the portal confirms the connection is live and the integration registers webhook subscriptions so Jobber pushes invoice events as they happen.

Step 4 - Connect your Avalara account

↑ back to top

In the Taxiom portal, paste your Avalara API account number and license key. Taxiom verifies the credentials by running a test calculation through Avalara before saving. Avalara remains the system of record for sales tax. The integration calls Avalara on each Jobber invoice using the tax codes, customer data, exemption data, and address information configured for your Avalara account.

Step 5 - Confirm property addresses and line item taxability

↑ back to top

Spot-check a few recent Jobber jobs to confirm the property address is populated with at least street, city, state, and ZIP. If a property address is incomplete when an invoice fires through the integration, the calculation is recorded with an address-incomplete status and no tax is written. Confirm your line items are correctly flagged as taxable or non-taxable for what you sell. If you use Avalara tax codes for product or service mapping, confirm those are mapped in your Avalara account ahead of go-live. The Taxiom team walks through all of this with you on the setup call.

Validating addresses outside of Jobber (optional)

↑ back to top

During the calculation call, Avalara validates the ship-to address and surfaces any issues back to the integration. Any errors land on your Errors Logs page so you can fix the underlying property record in Jobber. If you want to clean up a batch of addresses before connecting (or audit your current client list), the Taxiom team uses this Excel-based validator: Validate and fix addresses in Excel. Export your Jobber client or property list to a spreadsheet, run it through the validator, and import the corrected addresses back into Jobber.

Map your products and services to Avalara tax codes

↑ back to top

In the integration portal sidebar, open Product Tax Mapping. The page lists every Product or Service you have in Jobber. For each one, enter the Avalara tax code that describes how it should be taxed. The integration sends this tax code on the matching line of every invoice so Avalara applies the correct rules. Products you leave blank fall back to Avalara's account default (typically taxable tangible personal property).

Common Avalara tax codes: P0000000 tangible personal property, PS080101 labor (computer setup), PS080104 computer maintenance services, SW054000 SaaS / software access, FR020100 shipping and handling. Full list at taxcode.avatax.avalara.com.

Shipping, freight, and handling charges

↑ back to top

Jobber does not have a first-class shipping field on invoices. To bill shipping, freight, or handling and have Avalara apply the correct taxability per state, create a Jobber Product/Service for the charge (for example "Shipping" or "Freight"), add it as a line item on the relevant invoice, and map it to Avalara tax code FR020100 on the Product Tax Mapping page. Avalara will then apply each state's shipping taxability rules to that line automatically.

Discounts

↑ back to top

Recommended: discount the line item itself, not the document. Instead of using Jobber's standard job or invoice discount field, reduce the price directly on the line item you are discounting. Tax is then calculated on exactly what the customer pays for each line, the math flows cleanly across discounted lines, and the Avalara transaction mirrors your Jobber invoice line for line.

If you do use Jobber's document-level discount field, the integration still handles it: the discount amount is sent to Avalara at the document level and spread proportionally across the taxable lines, per Avalara's discount handling rules. This works, but because the discount is distributed rather than applied to a specific line, the per-line amounts in Avalara will not match the line prices shown in Jobber. For the cleanest records and the most predictable tax result, discount the line items directly.

Tax-exempt customers (entity use codes)

↑ back to top

The recommended pattern is to upload your customer's exemption certificate to Avalara against the same customer code the integration sends. The integration uses JOBBER-CUST-{client id} as the customer code on every transaction. With a current certificate on file in Avalara, exemptions are applied automatically at calculation time.

If you also want to apply an entity use code directly (for example government, charitable, or resale), add a Jobber Client custom field on the client record named Avalara Entity Use Code. Set its value to the entity use code you want to apply (such as C for resale or E for charitable). The integration reads the value at calculation time and sends it to Avalara, which applies the exemption rules. The full list of allowed values lives in your Avalara portal under Tax Codes → Entity Use Codes.

Purchase order numbers on invoices

↑ back to top

If a customer wants their PO number recorded on the Avalara transaction (useful for audits and reporting), add a Jobber Invoice custom field named Purchase Order Number and populate it on each invoice that has one. The integration passes the value to Avalara as the transaction's purchase order number on every calculation.

Manual tax overrides

↑ back to top

For rare cases where you need to override Avalara's calculated tax amount or use a different tax calculation date, add either of these Jobber Invoice custom fields and populate them on the affected invoice:

  • Avalara Tax Override Amount - enter the exact tax dollar amount Avalara should record on the transaction instead of calculating it. Use sparingly; this overrides Avalara's rules.
  • Avalara Tax Override Date - enter a date (YYYY-MM-DD format) for Avalara to use as the tax calculation date, while keeping the invoice's transaction date as is. Useful when an invoice is being corrected after the fact and you want the original tax rates to apply.

If both fields are populated, the override amount wins. Leave the fields blank for normal calculations.

Reviewing Avalara calls in the portal

↑ back to top

Every Avalara API call the integration makes (calculate, commit, void, refund) is recorded on the Avalara Tax Logs page in the integration portal sidebar. Click any row to see the full request payload, the Avalara response, the HTTP status, and the round-trip time. Use this as the first stop whenever an invoice's tax does not match what you expected. Avalara error messages (including address validation feedback) also surface on the Errors Logs page so you can act on them directly.

Step 6 - Watch the first invoices flow through

↑ back to top

When a Jobber invoice is created or updated, the integration takes the job-site address and the line items, sends them to Avalara, and writes the resulting sales tax back to the Jobber invoice. The invoice shows the right Sales Tax in the same Tax line you have always seen on Jobber invoices. Nothing else about your invoice layout changes.

When recalculation happens

↑ back to top

Recalculation runs while the invoice is in draft or awaiting payment status. Editing line items on the related job, correcting the property address, or creating a new invoice all trigger a fresh calculation. Once an invoice is marked paid, bad debt, or closed, the integration does not recalculate it automatically. If you need a correction on an already-paid invoice, the right path is a manual adjustment in Avalara or a follow-up with the Taxiom team. Plan to review and finalize tax on a Jobber invoice before sending it for payment.

Avalara transaction timing

↑ back to top

Avalara transaction timing follows your portal setting, the same way it works in Taxiom's other AvaTax integrations. The integration calculates and writes the sales tax to Jobber on each invoice change. Avalara transactions for the calculation are stored uncommitted by default so they do not post to filings until your portal interval says to commit. Filing and Managed Returns are separate from the calculation integration and are scoped under a separate Taxiom or Avalara engagement.

Configurable commit timing

Under Sync Settings in the Taxiom portal you can choose:

  • Commit on invoice creation — tax becomes reportable as soon as the Jobber invoice is created.
  • Commit on payment — tax becomes reportable when Jobber fires the payment event for the invoice.
  • Don’t commit — calculations still post to Avalara as SalesOrders for visibility but never roll up into filings.

If the invoice is deleted in Jobber, the matching Avalara transaction is voided automatically. If a payment is deleted in Jobber on a committed transaction, a Return Invoice is posted to Avalara so your filings net out correctly.

Finding the transaction in Avalara

The Avalara document code follows a JOBBER-INV-{invoice id} pattern for invoices and JOBBER-QUO-{quote id} for quotes. The Jobber invoice ID is visible in the URL when you open the invoice in Jobber (for example secure.getjobber.com/invoices/12345 → document code JOBBER-INV-12345). The customer code follows the same pattern: JOBBER-CUST-{client id}. Use these codes to search the Avalara Transactions view or to attach an exemption certificate in Avalara CertCapture.

If you sync Jobber to QuickBooks Online

↑ back to top

If your Jobber account has QuickBooks Online sync enabled, coordinate with the Taxiom team before go-live. The integration creates Jobber Tax Rate entries dynamically as new destinations are encountered. If Jobber's QuickBooks Online Automated Sales Tax feature is also active, the two engines can produce conflicting tax entries downstream. The Taxiom team helps you choose the right posture for your accounting flow.

What Taxiom observes during your first invoices

↑ back to top

During initial setup, the Taxiom team observes the first few invoices flow through to confirm everything looks the way you expect. We watch the inbound webhook log, the calculation ledger, and the Jobber invoice totals. If anything looks off, we surface it before it reaches a customer.

What appears on the buyer-facing invoice

↑ back to top

Your Jobber invoices show the sales tax line as Sales Tax (X.XX%) $YY.YY. The dollar amount is what your customer owes. The percentage Jobber displays is the rate the integration assigned to the invoice. For a single-jurisdiction invoice where every line is taxed the same way, that percentage is the real local rate (for example, 8.25% in Austin TX) and is accurate for each line.

If an invoice has line items that Avalara taxes at different rates because they map to different tax codes (for example, taxable hardware on one line and an exempt SaaS subscription on another), the integration calculates the total tax through Avalara and writes a single blended effective rate to the Jobber invoice. The dollar amount is always correct. The percentage shown is the blended rate (total tax divided by taxable subtotal). This is a Jobber template limitation: Jobber assigns one tax rate per invoice, not one per line, so we cannot show per-line rates on the buyer-facing layout. For typical field-service invoices with consistent taxability across lines, the displayed percentage is the true per-line rate and the blended-rate behavior never matters.