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_idWRITEDelete 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.
taxjar_delete_transactions_orders_by_transaction_idWRITEDelete 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.
taxjar_delete_transactions_refunds_by_transaction_idWRITEDelete 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.
taxjar_get_categoriesREADList 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.
taxjar_get_customersREADList 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.
taxjar_get_customers_by_customer_idREADShow 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.
taxjar_get_nexus_regionsREADList 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.
taxjar_get_rates_by_zipREADLook 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.
taxjar_get_summary_ratesREADList 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.
taxjar_get_transactions_ordersREADList 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.
taxjar_get_transactions_orders_by_transaction_idREADShow 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.
taxjar_get_transactions_refundsREADList 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.
taxjar_get_transactions_refunds_by_transaction_idREADShow 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.
taxjar_post_addresses_validateREADValidate 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.
taxjar_post_customersWRITECreate 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.
taxjar_post_taxesREADCalculate 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.
taxjar_post_transactions_ordersWRITECreate 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.
taxjar_post_transactions_refundsWRITECreate 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.
taxjar_put_customers_by_customer_idWRITEUpdate 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.
taxjar_put_transactions_orders_by_transaction_idWRITEUpdate 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.
taxjar_put_transactions_refunds_by_transaction_idWRITEUpdate 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.
Often connected alongside
Put TaxJar behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.