Exemptions

Exemptions represent tax relief certificates that allow certain customers to purchase goods or services without paying tax, or at a reduced rate. Abacus Tax Engine models exemptions as first-class resources linked to a customer record.

When a transaction references a customer with an active exemption that matches the transaction's jurisdiction, the exemption is applied automatically during tax determination.

Overview

An exemption has three key attributes:

  • Customer - the specific customer the exemption belongs to
  • Jurisdiction - the country and state(s) where the exemption applies
  • Validity period - optional start and end dates defining when the exemption is active

See the Exemptions API Reference for the full request and response schemas.

Jurisdiction Scope

The jurisdictions array controls where the exemption applies:

{ "country": "US", "jurisdictions": ["CA"] }              // Single state
{ "country": "US", "jurisdictions": ["CA", "NY", "TX"] }  // Multiple states
{ "country": "US", "jurisdictions": [] }                   // All US jurisdictions

An empty array means the exemption applies to all jurisdictions within the specified country.

Revoking an Exemption

Update exemption_status to cancelled:

Applying Exemptions to Transactions

Automatic application

Once an exemption is active and linked to a customer, it is applied automatically when a transaction references that customer and the shipping address falls within a matching jurisdiction. No additional fields are needed on the transaction.

Per-item exemption override

You can apply a specific exemption to an individual line item, overriding the customer-level lookup - useful when only certain items in an order qualify:

{
  "items": [
    {
      "name": "Raw Materials",
      "unit_price": "500.00",
      "quantity": "1",
      "tax_code": "MATERIALS",
      "exemption_id": "<exemption-uuid>",
      "exemption_reason": "resale_certificate"
    },
    {
      "name": "Office Supplies",
      "unit_price": "50.00",
      "quantity": "1",
      "tax_code": "SUPPLIES"
    }
  ]
}

Only the first item is exempted. The second is taxed normally.

Exemption Application in the Response

When an exemption is applied to a line item, check these response fields:

Field Description
items[].is_exempt true if the item was fully exempted
items[].exemption_id UUID of the certificate that was applied
items[].exemption_reason Human-readable reason (e.g., resale_certificate, customer_fully_exempt)
items[].taxability_reason customer_exempt when an exemption suppressed the tax
items[].tax.total_tax "0.00" for fully exempted items

Wholesale Customers and Exemptions

Customers with customer_type: "wholesale" are taxable by default. Tax is only suppressed once an active exemption certificate is attached.

The typical flow for a wholesale/resale customer:

  1. Create the customer with customer_type: "wholesale"
  2. Create an exemption for the relevant jurisdictions
  3. Submit transactions - tax is suppressed automatically in matching jurisdictions

Creating a customer as wholesale alone does not suppress tax. The exemption certificate is a separate, required step.

API Reference

See the Abacus Tax Engine API Reference for the full interactive schema, including all exemption request and response fields.