All integrations

TaxJar

BUSINESS · COMMERCE & FINANCE

Sales tax calculations, combined rates, and nexus determination on their own key.

Acts as the person, not as itself

Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.

Credentials never touch the agent

Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.

Every call on the record

Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.

What an agent can do

Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.

taxjar_delete_customers_by_customer_idWRITE

Delete an exemption customer via DELETE /customers/{customer_id}. Deletes an existing customer created through the API. DESTRUCTIVE. The customer's exemptions stop applying to future calculations that reference this `customer_id`. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_delete_transactions_orders_by_transaction_idWRITE

Delete an order transaction via DELETE /transactions/orders/{transaction_id}. Deletes an existing order transaction created through the API. DESTRUCTIVE and not reversible through this API: TaxJar returns the deleted transaction's id rather than the record, and there is no undelete endpoint. The account's filed totals change with it. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_delete_transactions_refunds_by_transaction_idWRITE

Delete a refund transaction via DELETE /transactions/refunds/{transaction_id}. Deletes an existing refund transaction created through the API. DESTRUCTIVE and not reversible through this API: TaxJar returns the deleted transaction's id rather than the record, and there is no undelete endpoint. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_categoriesREAD

List product tax categories via GET /categories. Lists all tax categories. A static reference list of TaxJar's product tax codes with a name and description for each; it is account-independent, takes no arguments and is the endpoint this integration probes a pasted key against. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_customersREAD

List exemption customers via GET /customers. Lists existing customers created through the API. Returns an array of customer IDS, not the customer records; read each one with the show tool. A TaxJar customer exists to carry an exemption, not to be a CRM contact. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_customers_by_customer_idREAD

Show an exemption customer via GET /customers/{customer_id}. Shows an existing customer created through the API. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_nexus_regionsREAD

List the account's nexus regions via GET /nexus/regions. Lists existing nexus locations for an existing TaxJar account. Reads the regions configured under the account's State Settings -- where TaxJar believes this business must collect. It takes no arguments and answers for the connected account only. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_rates_by_zipREAD

Look up sales tax rates for a location via GET /rates/{zip}. Shows the sales tax rates for a given location. Please note this endpoint only returns the full combined rate for a given location. It does not support nexus determination, sourcing based on a ship from and ship to address, shipping taxability, product exemptions, customer exemptions, or sales tax holidays. Prefer the calculation tool for anything that will be charged: this returns a combined rate for a location and nothing about whether the account has nexus there. Supplying `city` and `street` alongside the zip gets a rooftop-accurate rate where TaxJar has one. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. COSTS A PLAN TRANSACTION. TaxJar's Billing section: "Each sales tax calculation or rate lookup request made to our API results in a 'transaction'. These transactions will be counted toward your monthly plan limit. Overage fees are charged separately if you exceed your plan limit." This tool is one of exactly two the reference names that way, so calling it in a loop spends the customer's plan. Batch what you can, cache a result while the order has not changed, and use the free summarized-rates tool as a fallback. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_summary_ratesREAD

List summarized rates by region via GET /summary_rates. Retrieve minimum and average sales tax rates by region as a backup. A per-region summary (minimum and average rate) intended as a FALLBACK when the calculation endpoint cannot be reached -- TaxJar names it that way in its own rate-limit guidance. It takes no arguments. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_transactions_ordersREAD

List order transactions via GET /transactions/orders. Lists existing order transactions created through the API. Returns an array of transaction IDS, not the orders themselves; read each one with the show tool. Use `transaction_date` for a single day, or `from_transaction_date` with `to_transaction_date` for a range. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_transactions_orders_by_transaction_idREAD

Show an order transaction via GET /transactions/orders/{transaction_id}. Shows an existing order transaction created through the API. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_transactions_refundsREAD

List refund transactions via GET /transactions/refunds. Lists existing refund transactions created through the API. Returns an array of refund transaction IDS, not the refunds themselves. Use `transaction_date` for a single day, or `from_transaction_date` with `to_transaction_date` for a range. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_get_transactions_refunds_by_transaction_idREAD

Show a refund transaction via GET /transactions/refunds/{transaction_id}. Shows an existing refund transaction created through the API. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. `provider` scopes the lookup to the source that recorded the transaction and defaults to "api" -- so a transaction imported by a TaxJar marketplace or cart integration is NOT visible to this tool unless its provider is named. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_post_addresses_validateREAD

Validate a US address via POST /addresses/validate. Validates a customer address and returns back a collection of address matches. US addresses only -- "At this time only US addresses can be validated" -- and `street` may carry the whole address as freeform input. The response is a COLLECTION of matches: zero, one, or several candidate addresses. PLAN-GATED: "Address validation requires a TaxJar Professional or higher subscription." On a lower plan TaxJar refuses the call; that is the account's tier, not the credential. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_post_customersWRITE

Create an exemption customer via POST /customers. Creates a new customer. `exemption_type` is one of wholesale, government, other or non_exempt, and `exempt_regions` lists the country/state pairs the exemption applies in. `customer_id` is the caller's own identifier for the customer and is what the calculation and transaction tools reference. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_post_taxesREAD

Calculate sales tax for an order via POST /taxes. Shows the sales tax that should be collected for a given order. This is the calculation endpoint and the one to prefer over the rate lookup: it applies nexus determination, ship-from/ship-to sourcing, shipping taxability, product and customer exemptions and sales tax holidays. Either `amount` or `line_items` is required. `to_zip` is required when `to_country` is "US" and `to_state` when it is "US" or "CA" -- the reference's parameter table marks both plainly required, but its own Notes and TaxJar's client contract make them conditional, so only `to_country` and `shipping` are required here. Either an address on file, `nexus_addresses`, or the `from_*` fields are needed to calculate at all, and supplying `nexus_addresses` OVERRIDES the account's State Settings for this call. Either an address on file (the account's State Settings) or the `from_*` fields are required; TaxJar answers 406 naming the missing field otherwise. COSTS A PLAN TRANSACTION. TaxJar's Billing section: "Each sales tax calculation or rate lookup request made to our API results in a 'transaction'. These transactions will be counted toward your monthly plan limit. Overage fees are charged separately if you exceed your plan limit." This tool is one of exactly two the reference names that way, so calling it in a loop spends the customer's plan. Batch what you can, cache a result while the order has not changed, and use the free summarized-rates tool as a fallback. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_post_transactions_ordersWRITE

Create an order transaction via POST /transactions/orders. Creates a new order transaction. Records an order that has already been calculated and charged; it does NOT calculate anything, and `sales_tax` is the amount actually collected. `transaction_id` should only include alphanumeric characters, underscores and dashes, and `transaction_date` may be a date (2015-05-25), an ISO UTC date/time, or an ISO date/time with a zone offset. Either an address on file (the account's State Settings) or the `from_*` fields are required; TaxJar answers 406 naming the missing field otherwise. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. COSTS A PLAN TRANSACTION, as an IMPORTED ORDER rather than as a calculation. TaxJar counts plan usage under Plans & Billing -> Transaction History, where the count breaks down into "imported orders and calculations"; this tool writes one of those imported records. It is not one of the two the Billing section names as a calculation or rate lookup, so the cost is stated separately rather than folded into that sentence. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_post_transactions_refundsWRITE

Create a refund transaction via POST /transactions/refunds. Creates a new refund transaction. A refund is bound to the order it refunds by `transaction_reference_id`, which is REQUIRED and must name an existing order transaction. TaxJar recommends passing NEGATIVE values for `amount`, `shipping`, `sales_tax` and line-item money fields when recording a refund. Either an address on file (the account's State Settings) or the `from_*` fields are required; TaxJar answers 406 naming the missing field otherwise. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. COSTS A PLAN TRANSACTION, as an IMPORTED ORDER rather than as a calculation. TaxJar counts plan usage under Plans & Billing -> Transaction History, where the count breaks down into "imported orders and calculations"; this tool writes one of those imported records. It is not one of the two the Billing section names as a calculation or rate lookup, so the cost is stated separately rather than folded into that sentence. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_put_customers_by_customer_idWRITE

Update an exemption customer via PUT /customers/{customer_id}. Updates an existing customer created through the API. A FULL REPLACEMENT, not a patch: `exemption_type` and `name` are required on every update, and `exempt_regions` that are omitted are not kept. The id in the path identifies the record. TaxJar's parameter table also lists it as a required field of the update body, and its own client's `Update*Params` type requires it there, so send it in both and keep the two identical. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_put_transactions_orders_by_transaction_idWRITE

Update an order transaction via PUT /transactions/orders/{transaction_id}. Updates an existing order transaction created through the API. The id in the path identifies the record. TaxJar's parameter table also lists it as a required field of the update body, and its own client's `Update*Params` type requires it there, so send it in both and keep the two identical. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. Either an address on file (the account's State Settings) or the `from_*` fields are required; TaxJar answers 406 naming the missing field otherwise. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api
taxjar_put_transactions_refunds_by_transaction_idWRITE

Update a refund transaction via PUT /transactions/refunds/{transaction_id}. Updates an existing refund transaction created through the API. `transaction_reference_id` stays required on an update: it is what binds the refund to its order. The id in the path identifies the record. TaxJar's parameter table also lists it as a required field of the update body, and its own client's `Update*Params` type requires it there, so send it in both and keep the two identical. Addressed entirely by the value in the path -- nothing in the body or the query selects the target -- and a value TaxJar cannot resolve answers 404. The 404 body names the route it matched, so a 404 here is a missing record rather than a missing endpoint. Either an address on file (the account's State Settings) or the `from_*` fields are required; TaxJar answers 406 naming the missing field otherwise. On a connection whose `environment` is `sandbox`, TaxJar returns a STUBBED response for this endpoint ("Transaction endpoints for orders and refunds return stubbed responses"), so a sandbox result proves the request was accepted, not that a record exists. Consumes NO plan transaction: it is neither a sales tax calculation nor a rate lookup, which are what TaxJar's Billing section counts. Agentic Fabriq pins `x-api-version: 2022-01-24` on every TaxJar request, so this tool validates identically for every connected account instead of following whatever version each account defaults to. TaxJar limits API requests to 10,000 per minute on Professional plans and 25,000 per minute on Premium; a 429 is that budget, never the credential.

api

Put TaxJar behind one governed endpoint.

Same permissions, same audit trail, whatever else you connect next.