Skip to main content

What customer exemptions are

Some buyers do not owe sales tax on a sale due to the nature of their business, sale type, or other circumstances. The most common example is resale. For example a retailer buying inventory to sell on presents a resale certificate to their supplier, and the supplier charges no tax. The tax will be collected instead when the goods reach the end consumer. Here is a non-exhaustive list of other exemptions: driveaway (a vehicle bought to be titled in another state), agriculture, manufacturing, direct pay, and government or nonprofit organizations. Taxwire stores exemption certificates on customer records. You manage them in the Taxwire App by opening the buyer on the Customers page and adding each certificate with its type, dates, covered states and the certificate document. If you want to load customers and their certificates in bulk, contact Taxwire support. At calculation time, each active certificate becomes the matching jurisdiction-scoped customer attribute. A resale certificate covering Texas becomes RESALE_USA_TX on every line that buyer appears on. The exemption then applies when the line’s product carries the matching product attribute, such as _RESALE. Most exemptions are deliberately double-triggered, because a buyer holding a resale certificate can still purchase items for their own use.

Referencing the buyer with customer.preset

  • For customers created in Taxwire’s dashboard, preset.id is the customer id input into the platform and preset.source is taxwire (the default).
  • For customers synced from a connected platform, preset.id is the platform’s own id for that customer and preset.source is the platform name, for example stripe or quickbooks.
  • For customers created with the Customers API, preset.id, preset.source and preset.source_account_id are the customer’s source_id, source and source_account_id.
When the preset matches a customer record, Taxwire derives the customer attributes from that customer’s active certificates automatically, so you never pass RESALE_USA_TX yourself. The certificate is only half of the trigger, though. The line still needs the matching product attribute (for example _RESALE), either from its product preset or passed explicitly on product.tax_attributes. If the certificate is on file but the line carries no product attribute, the line is treated as taxable.

Verifying the setup

Run a calculation for the exempt buyer in a state the certificate covers and check that tax comes back zero. Then check the negatives: a different buyer on the same products is still taxed, and the exempt buyer in a state the certificate does not cover is still taxed.
Exemption management is enabled per organization. If certificates you have loaded are not affecting calculations, contact support to confirm it is enabled for your account.

Reading a customer’s exemptions

Retrieve customer returns an exemption block with what is on file for the buyer:
  • overrides are the buyer’s exempt, resale and manufacturing switches from the Taxwire App.
  • jurisdictions has one row per approved certificate per jurisdiction it covers. A certificate that covers three states gives three rows.
  • jurisdiction is the jurisdiction’s path, such as USA.S-CA, CAN.P-ON or a country code. A city has a longer path, such as USA.S-IL.M-CHICAGO. jurisdiction_name is the same place in readable form.
  • starts_at and expires_at are the first and last day the certificate covers. expires_at is null when it never expires.
  • status is valid when today (UTC) is inside the certificate’s dates, expired after its expires_at, and not_yet_active before its start date. Treat the list of values as open, because Taxwire can add more.
  • exemption_type_other has the certificate’s own description when exemption_type is other. Otherwise it is null.
  • exemption.updated_at is when the buyer’s approved certificates last changed. It is null when the buyer never had one. The customer’s own updated_at is separate.
  • Certificates that are still in review or were rejected do not appear.
Rows are not grouped. When a buyer renews a certificate, the old row stays as expired next to the new valid row for the same jurisdiction. To check whether a buyer is covered in a jurisdiction, look for any row for it with status valid. The block is a snapshot as of now. It lists the certificates on file and does not promise that a given sale is exempt, because the product’s attributes and the sale date also decide whether a certificate applies. Use a calculation to get the tax for a sale. The customer’s updated_at tracks the customer’s own fields and overrides only. Adding, approving, editing or removing a certificate moves exemption.updated_at instead. A certificate that expires moves neither, because nothing about it changes: its row’s status changes. To find out when coverage changed, compare exemption.updated_at with the last one you stored, and read status and expires_at for expiries. A row shows that a certificate is inside its dates. It does not show that Taxwire applies it. A certificate affects a calculation only when your organization has exemption management on and Taxwire has a rule for the certificate’s type in that jurisdiction. Today those rules cover resale, manufacturing, driveaway and 501(c)(3) certificates, in US states. A city such as Chicago uses its state’s rule. A row for another type, or for a country or province, is on file and changes no calculation. When the source system merges two customers, new sales go to the customer that remains. That customer keeps the merged customer’s overrides but not its certificates, so its jurisdictions can be empty while the merged customer still lists them. A customer with merged_into_customer_id set no longer gets new sales. Its certificates matter only for its past sales.

The alternative: force attributes

Certificates only derive customer attributes for the exemption types Taxwire supports: resale, manufacturing, driveaway and 501(c)(3) nonprofit organizations. This functionality is also useful when you cannot reference customer records at all. In those cases, assert the exemption directly on the request by passing a force attribute on customer.tax_attributes:
FORCE_RESALE is single-triggered, which means it treats the line as a resale purchase with no certificate on file and no product attribute required. It is an unconditional override, so only use it for buyers whose every purchase is exempt. Keep the buyer’s paperwork on record anyway. See Force attributes for the full behavior, the jurisdiction-scoped variants, and the cautions. Prefer the certificate path when the buyer’s exemption type supports it. It scopes the exemption to the states the certificate actually covers, stops applying when the certificate expires, and leaves an audit trail.