
Handling tax-exempt B2B customers on Magento or Adobe Commerce is two problems, not one. Native customer tax classes and a zero-rate tax rule stop charging sales tax at checkout, which is easy. Collecting, validating, storing, and renewing the resale certificates that make that exemption defensible in an audit is the hard part, and native Magento does none of it.
Tax exemption is a certificate problem, not a calculation problem
Most Magento tax guides stop at the calculation: create a tax-exempt customer group, set its rate to zero, done. That is the trivial half. The half that carries real risk is the paperwork. A wholesale buyer, reseller, nonprofit, or government account is only tax-exempt if you hold a valid exemption or resale certificate for the right jurisdiction, in force on the transaction date. If a state auditor asks for proof three years later and you cannot produce a valid certificate, the uncollected tax becomes your liability, plus penalties and interest.
So the real system you are building is a certificate lifecycle: collect the certificate at or before the first exempt order, validate that it is complete and correct for the jurisdiction, store it against the customer, watch for expiration, and re-collect before it lapses. Native Magento gives you exactly none of that. It gives you a switch that turns tax off. This distinction is why exemption handling that looks trivial in a demo becomes a compliance headache at 200 or 2,000 wholesale accounts.
The same gap exists on Shopify, Shopware, and BigCommerce: the platform can zero out tax, but certificate management is a separate capability every serious B2B seller has to add. On Magento and Adobe Commerce the difference is that the B2B feature set and the tax connectors give you more control over where in the flow the certificate work happens.
The native Magento setup, and exactly where it stops
The native tax-exempt configuration is worth knowing because it is the foundation every connector builds on. It rests on Magento customer tax classes, which decide how tax applies to each customer group. The sequence is:
- Create a customer tax class, for example “Tax-Exempt,” under Stores, Taxes, Tax Rules.
- Create a tax rule that pairs that class with a tax rate of zero percent.
- Create or edit a customer group, for example “Wholesale,” and set its tax class to Tax-Exempt.
- Assign the exempt customer to that group.
From then on, Magento skips sales tax at checkout for anyone in that group. It works, and for a store with a handful of exempt accounts and one state of nexus, it can be enough.
Here is where it stops. It does not collect a certificate. It does not check whether the certificate covers the state the order ships to. It does not know the certificate expired last month. It does not distinguish a blanket resale certificate from a single-use exemption. And it applies the exemption to every order from that customer regardless of ship-to state, which is wrong the moment you have nexus in more than one state and a certificate valid in only one. The native switch is state-blind, and multi-state sellers are exactly the ones who get audited.
The three states every exempt B2B order moves through
Thinking of an exempt order as a lifecycle rather than a flag makes the design obvious. Every order should resolve into one of three states.
| Order state | What it means | What the system should do |
|---|---|---|
| Exempt and documented | Customer is exempt and you hold a valid certificate for the ship-to jurisdiction | Apply zero tax, keep the order clean for audit |
| Exempt but undocumented | Customer claims exemption but you lack a valid current certificate | Collect the certificate before or at checkout, or charge tax and refund on receipt |
| Taxable | No exemption applies for this jurisdiction | Calculate and collect tax normally |
Native Magento can only represent the first and third states, and it cannot tell them apart from the second, which is the dangerous one. A grown-up exemption system treats the undocumented state as a first-class case: it prompts the buyer to upload or complete a certificate, and it does not silently zero out tax against a promise.
Automating the certificate lifecycle: Avalara ECM versus TaxJar
Once you outgrow the native switch, you add a tax engine that also manages certificates. The two most common on Magento are Avalara AvaTax and TaxJar, and they are not equivalent for exemption work.
Avalara pairs AvaTax (calculation and jurisdiction logic) with Exemption Certificate Management, formerly branded CertCapture. ECM collects certificates from B2B customers, auto-validates certificate formats, stores them, reconciles them against transactions in real time, and alerts you before they expire. The Magento connector exposes certificate upload and management from both the admin console and the storefront, and the exemption certificate features require an active Avalara ECM Pro or ECM Premium subscription. That subscription gate matters for budgeting; the calculation engine and the certificate management are priced separately.
TaxJar, by contrast, treats certificates as storage rather than a managed lifecycle. It will hold a document, but the automated validation, expiration alerting, collection portal, and audit support that reduce real risk are largely on you. For a store with few exempt accounts that may be acceptable. For a distributor with hundreds of resale accounts across many states, the manual overhead is exactly the liability you were trying to remove.
| Capability | Native Magento | TaxJar | Avalara AvaTax plus ECM |
|---|---|---|---|
| Zero tax for exempt groups | Yes | Yes | Yes |
| Jurisdiction-aware exemption (per ship-to state) | No | Partial | Yes |
| Collect certificate from storefront | No | No | Yes (with ECM) |
| Auto-validate certificate format | No | No | Yes |
| Expiration alerts and renewal | No | No | Yes |
| Audit-ready certificate storage | No | Storage only | Yes |
| Extra subscription required | No | Per plan | ECM Pro or Premium |
The honest summary: native Magento is fine for a single-state store with a short list of exempt accounts, TaxJar suits stores that want automated calculation with light exemption needs, and Avalara with ECM is the option that actually defends a multi-state B2B seller in an audit.
Where the certificate work lives on a Hyva storefront
Every guide describes the admin side and skips the storefront, which is where Hyva changes the job. The exemption experience touches three storefront surfaces, and each is a Hyva rendering decision.
The first is the certificate upload, usually in the customer account area. On Hyva this is a template you build with inline Alpine.js rather than a Knockout widget, and it needs to handle a file upload, show current certificate status, and surface expiration cleanly. The second is checkout: an undocumented exempt buyer should see a clear path to provide their certificate rather than a silent zero or a surprise tax line. If you run Hyva Checkout, the exemption step is a checkout component; if you run the Luma checkout under a Hyva theme, the standard connector flow generally renders, but test it. The third is the account dashboard, where a company administrator on a B2B account should see certificate status for the whole company, not just their own user.
This is genuinely B2B storefront work, and it overlaps with the company-account and shared-catalog structure that B2B accounts already need. If you are building a wholesale experience, exemption handling should be scoped alongside it rather than bolted on later. Bemeir’s guide to building a self-service dealer portal on Magento and Hyva covers the account structure this plugs into, and the broader Adobe Commerce B2B on Hyva compatibility guide maps which B2B features render natively.
Economic nexus raises the stakes on every certificate
The reason exemption discipline matters more now than it did a decade ago is economic nexus. Since the Wayfair ruling, you can owe sales tax collection in a state where you have no physical presence simply by crossing a revenue or transaction threshold. That means a distributor selling nationally can have collection obligations in dozens of states, and an exemption certificate valid in one state does nothing for an order shipping to another.
Both Avalara and TaxJar track your volume against each state’s thresholds and warn you as you approach one. But nexus tracking and exemption management are two sides of the same coin: the more states you collect in, the more places a stale or missing certificate turns an exempt sale into an unpaid liability. This is why the state-blind native switch becomes actively dangerous as you grow, and why the certificate’s jurisdiction and expiration date matter as much as the fact that it exists. The full picture of multi-state calculation and nexus is in Bemeir’s guide to Magento sales tax automation with Avalara and TaxJar.
An implementation sequence that scales
Build it in the order that protects you fastest. First, get calculation right with a real tax engine so taxable orders are correct across every jurisdiction you touch. Second, stand up certificate collection so no new exempt account transacts without a certificate on file. Third, backfill existing exempt accounts, prioritizing the states and dollar volumes where audit exposure is highest. Fourth, turn on expiration alerting so renewals happen before certificates lapse. Doing it in this order means you are never zeroing out tax against a promise, and you are closing your largest exposure first.
Getting the storefront, the B2B account structure, the tax engine, and the certificate lifecycle to work as one system is the kind of integration work Bemeir does as a Magento and Adobe Commerce agency, drawing on the tax and compliance vendors in its technology partner ecosystem. You can read more about the team and its B2B focus on the About Bemeir page, and about its Hyva work as the first US Hyva development Gold Partner.
FAQ
Can I make a customer tax-exempt in Magento without an extension?
Yes. Create a Tax-Exempt customer tax class, pair it with a zero-percent tax rule, assign that class to a customer group such as Wholesale, and put the customer in that group. Magento then skips tax at checkout for that group. The catch is that this native approach does not collect, validate, or expire resale certificates, and it applies the exemption regardless of the ship-to state, which is a problem once you have nexus in more than one state.
What is the difference between AvaTax and CertCapture or ECM?
AvaTax is Avalara’s tax calculation engine; it determines the right rate for each jurisdiction. Exemption Certificate Management, previously called CertCapture, is the separate product that collects, validates, stores, and renews exemption and resale certificates. On Magento you typically run both, and the storefront and admin certificate features require an active ECM Pro or Premium subscription in addition to AvaTax.
Does tax exemption handling work on a Hyva storefront?
Yes, but the storefront surfaces are Hyva rendering work. Certificate upload in the customer account, the exemption path in checkout, and company-level certificate status on a B2B account dashboard all need to be built or verified on Hyva with inline Alpine.js. The tax calculation happens server-side and is unaffected, but the buyer-facing experience is where a Hyva build needs attention.
Should undocumented exempt customers be charged tax?
It is the safer default. If a customer claims exemption but you do not yet hold a valid certificate for the ship-to jurisdiction, the lowest-risk pattern is to collect the certificate before completing the exempt order, or to charge tax and refund once a valid certificate is received. Silently zeroing tax against an unproven claim is what creates audit liability.
How does economic nexus change exemption handling?
Economic nexus means you can owe collection in states where you have no physical presence, so a national B2B seller may collect in many states. An exemption certificate is jurisdiction-specific, so a certificate valid in one state does not exempt an order shipping to another. The more states you collect in, the more a missing or expired certificate turns an exempt sale into an unpaid tax liability.
The takeaway
Turning off tax is a four-step admin task. Keeping those exemptions defensible across every state you sell into, with valid certificates that have not expired, is an ongoing system. Native Magento covers the first and none of the second. Scope exemption handling as a certificate lifecycle wired into your B2B account structure and your tax engine, build the Hyva storefront surfaces to collect and display certificate status, and sequence the rollout so you close your largest audit exposure first.




