If you're building a product that needs to calculate SaaS sales tax for your customers, this guide is for you. It covers Michigan's SaaS tax rules and rates, what to account for when you build sales tax calculation into your product, and how Ziptax returns accurate Michigan rates through an API without you building and maintaining a rate engine.
Michigan SaaS sales tax at a glance
Product Taxability Rules
| Does Michigan tax SaaS? | No. Exempt when accessed remotely with no transfer of the underlying code. A locally installed client or desktop agent can change this, unless it's incidental to a separate service. |
|---|---|
| Is a law change pending? | No. Treasury's current position dates to Revenue Administrative Bulletin 2023-10 (July 2023), which replaced a 1999 bulletin. Nothing is pending today, though the state has revisited its position before. |
| Base State Tax Rate | 6% |
| Local Combined Rate Range | None. Michigan charges a single flat 6% statewide and does not permit cities or counties to add a local sales tax, so there's no address-level rate to resolve. |
State Registration & Collection Triggers
| What triggers a tax collection requirement? | Meeting either of these conditions (whichever happens first):• Economic nexus: gross receipts into Michigan exceeding $100,000, or 200 or more separate transactions, in the previous calendar year.• Physical nexus: an office, inventory or other property, or an employee working in Michigan. |
|---|---|
| What revenue counts toward the $100,000/200-transaction threshold? | Gross receipts, not just taxable sales of tangible personal property. Both taxable and non-taxable sales count toward the threshold. |
| Does exempt SaaS revenue count toward the threshold? | Yes. Because the threshold rides on gross receipts rather than a tangible-personal-property basis, a SaaS company can cross it on exempt subscription revenue alone. |
| Lookback Calculation Window | Previous calendar year only. |
| Are marketplace sales included? | Yes, for counting toward the threshold: a seller's total includes both direct sales and sales made through a marketplace facilitator. However, if your sales into Michigan are 100% facilitated by a registered marketplace, the Treasury administratively waives the requirement to register. |
| SST State (Streamlined Sales Tax)? | Yes. Michigan has been a Full Member of the Streamlined Sales Tax Governing Board since October 1, 2005. |
| Primary Data Sources | Michigan Department of Treasury, Streamlined Sales Tax Governing Board |
Which types of software does Michigan tax?
Michigan taxes software based on whether the customer ends up with any control over the underlying code, not on what the product is called. Pure remote access is not a taxable sale. A full download is. A locally installed client sits in between, and Treasury applies a separate test to decide whether it's incidental to a service you're really selling.
| What you sell | Taxable in Michigan |
|---|---|
| SaaS, accessed remotely through a browser, no code transferred | No |
| SaaS bundled with a local client or desktop agent, where the software is incidental to a separate service you provide | No, under the "incidental to service" test. This is the same fact pattern Auto-Owners itself won on: a desktop agent was installed, but the transaction stayed exempt because the software was incidental to the underlying service. |
| SaaS or software bundled with a local client or desktop agent, sold as the product itself rather than incidental to another service | Likely yes on the delivered component. Treasury treats a locally installed client as "delivered"; don't assume exemption without running the incidental-to-service analysis. |
| Prewritten software, downloaded in its entirety or delivered on physical media | Yes |
| Custom software designed and developed to the specifications of a specific purchaser | No. Exempt under MCL 205.51a(p) because it falls outside the definition of prewritten computer software. |
| Digital products that aren't software (e-books, digital audio, digital video) | No, regardless of delivery method. Treasury's bulletin treats non-software digital goods as a separate, broader exemption from the software delivery test. |
| Software maintenance and support contracts | Mixed. Optional, separately stated support services without software updates are exempt. Mandatory contracts, or those providing downloaded software updates, are evaluated under the "incidental to service" test. |
| SaaS bundled with tangible goods | Split the bundle. Tangible line items are taxable and the software or service portion follows its own rule above. If the invoice doesn't separate them, the whole charge is exposed. |
Bundles are where implementations break, and Michigan's version of that risk is subtler than a flat "has a download" rule. Don't hardcode "local client present equals taxable." Treasury's own controlling case kept a bundled, locally-installed product exempt because the software was incidental to a separate service, so the real question is what the customer is actually paying for, not just whether anything landed on their machine.
How do you charge the correct sales tax rate for SaaS in Michigan?
For Michigan specifically, rate resolution isn't the hard part. There's one rate, 6%, and it applies the same way no matter which Michigan address the sale goes to, because the state doesn't allow local sales taxes.
The hard part is classification: deciding whether a given transaction counts as a taxable delivery of software at all, and if it's bundled, whether it's incidental to a service.
Option 1: Use the Ziptax Sales Tax API
You send the buyer's address at checkout, and the API returns Michigan's flat combined rate without you needing to track jurisdiction boundaries, because there aren't any below the state level here.
To calculate a live rate against a Michigan address, use the v60 endpoint:
Bash
curl -G https://api.zip-tax.com/request/v60 \
-H "X-API-KEY: <apiKey>" \
-d key=your-api-key \
--data-urlencode "address=100 N Capitol Ave, Lansing, MI, 48933"To verify complete payload structures, explore the REST API documentation.
Three things to do with that response:
- Multiply by the combined rate rather than assembling it from components, since Michigan has none to assemble.
- Store the jurisdiction on the transaction anyway; your system runs across every state, not just Michigan, and consistency matters more than Michigan's simplicity.
- Store the effective date too, because it is what lets you answer a question about a past period if Treasury's position ever shifts again.
The real work for Michigan is on the product side, not the address side. If your product catalog handles complex items like SaaS, bundled services, or digital goods, pass a product taxability code to dynamically check product rules.Search for the correct product code and review Taxability Information Codes (TICs) to see how the response returns product-specific tax flags and exemptions for pure SaaS, bundled/incidental software, downloaded software, and non-software digital goods as distinct categories.
What an API will not tell you: whether your company has crossed Michigan's economic nexus threshold, and whether a specific bundled transaction passes the incidental-to-service test. Both stay on your side of the integration.
To automate threshold tracking, tax filings, and remittance, you can set up merchant management to connect TaxCloud automated compliance for your own business or for sub-merchants building on your platform.
Option 2: Build and maintain it yourself
A real choice if you already hold jurisdiction data for other reasons, though Michigan is one of the lighter lifts on the rate side. If you take this route, Michigan needs four things handled:
- A classification test separate from the rate lookup. First, did the customer receive any control over the code (pure access versus a download versus a locally installed client)? Second, if something was delivered locally, is it incidental to a separate service you're providing? Both questions have to resolve before the rate question is even relevant.
- Threshold accumulation on the right basis. Previous calendar year only, not current or rolling. Gross receipts, not a tangible-personal-property basis, meaning exempt SaaS revenue counts toward the $100,000/200-transaction figure even though it owes no tax itself.
- Marketplace-sale handling. Count marketplace-facilitated Michigan sales toward your own threshold total, but check separately whether your specific sales mix still requires you to register once facilitator-collected sales are accounted for.
- An effective date on every rule, even though Michigan's current position (RAB 2023-10) has been stable since 2023. It replaced a 1999 bulletin, so "stable" isn't the same as "permanent."
Four things to watch out for:
- Treating a local client or desktop agent as an automatic taxable trigger. Michigan's own controlling case involved a desktop agent and still came out exempt, because the software was incidental to a service. Build a multi-factor flag, not a boolean on "was anything installed."
- Conflating gross receipts with taxable sales for threshold purposes. Two companies with identical exempt-SaaS revenue into Michigan can land on opposite sides of the $100,000 threshold compared to how they'd be counted in a state that only counts taxable tangible personal property.
- Applying the software delivery test to non-software digital products. Michigan's digital-goods exemption is broader and delivery-method-independent; don't run an e-book or a streamed video file through the same "was it downloaded" logic you use for software.
- Assuming the marketplace threshold-counting rule and the marketplace registration carve-out always point the same direction. Treasury's own materials count marketplace sales toward your threshold while separately noting that a marketplace-only seller isn't required to register. Confirm which applies to your actual sales mix rather than assuming one settles the other.
There's no state-specific local tax mechanic to flag here, no home-rule cities, no special districts, no police-jurisdiction-style rule. Michigan doesn't permit local sales taxes at all, which is the simplest registration-and-rate picture in this template series so far. The complexity in this state is entirely in classification, not geography.
When does a SaaS business have to collect sales tax in Michigan?
Registration and collection are two separate obligations with different triggers, and Michigan is a state where it's easy to assume an exempt product means no obligations at all. That assumption breaks down here faster than it would in a state that only counts taxable sales toward its threshold.
To get this right, view collection requirements and nexus, and have your application and billing stack track these two operational rules:
Rule 1: Monitor your registration triggers (nexus)
You must legally register to file with the state the moment either of these conditions is met:
- Physical presence: an employee working in Michigan, an office, inventory held in the state, or leased server capacity.
- Economic threshold: check economic nexus thresholds to determine when your gross receipts into Michigan exceed $100,000, or you have 200 or more separate transactions, in the previous calendar year. This count includes exempt SaaS revenue.
Rule 2: Apply the correct collection logic
Because Michigan measures its threshold on gross receipts rather than taxable tangible personal property, a pure-SaaS company can cross it on subscription revenue alone, register, and then file returns reporting $0 in tax due, because the product itself stays exempt. That's a real and fairly common outcome in Michigan, closer to how a California filer handles an exempt product than to a state where pure SaaS revenue rarely trips the threshold at all.
If any part of your Michigan revenue is a delivered, non-incidental software sale, a full download, or a bundled tangible good, that portion is taxable at the flat 6% rate and has to be calculated, collected, and remitted once you've registered. If your only Michigan revenue runs through a marketplace facilitator that's already collecting, Treasury explicitly waives your obligation to register. Confirm this against your exact sales mix to determine if filing is required.
Where Ziptax helps
If you're building a custom billing engine, a niche ERP, or a B2B SaaS platform, you don't need an enterprise compliance suite just to calculate an accurate checkout rate. You just need a fast, reliable endpoint.
Ziptax handles the infrastructure layer of sales tax calculation so your team can focus on your core product.
- Rooftop Precision: Resolves rates across 12,000+ U.S. tax jurisdictions using exact address and coordinate-based lookups, so a multi-state product applies Michigan's flat rate correctly alongside every other state's address-level complexity, without special-casing it in your own code.
- Engineered for Platforms: Built specifically to embed live tax calculations directly into checkout workflows, API endpoints, and marketplace billing frameworks.
- Frictionless Pricing: Designed for cost-conscious development teams who want to pay strictly for active calculation calls without committing to heavy enterprise software contracts.
- The TaxCloud Runway: When your transaction volume scales or your users demand automated filing and remittance services, you can pair Ziptax with TaxCloud for the rest of compliance. You get a lightweight API to deploy today and a filing and remittance backend ready when you need it.
Get Michigan SaaS tax rates from an API
Address-level rates for every Michigan jurisdiction, plus the rest of the US, Canada, and select other markets.
Frequently asked questions
Do you have to register in Michigan if your SaaS product is exempt there? Possibly, and more likely than in a state that only counts taxable sales toward its threshold. Michigan measures its $100,000/200-transaction economic nexus threshold on gross receipts, not just taxable tangible personal property. Revenue from an exempt SaaS subscription still counts. A software company with no other Michigan footprint can cross the threshold purely on subscription revenue, register, and then file returns reporting $0 in tax due, because the product itself stays exempt.
Does Michigan tax software differently depending on how it is delivered? Yes, and delivery—specifically whether the customer ends up with any control over the underlying code—decides it. Software accessed only remotely, with nothing transferred to the customer's own systems, isn't a taxable sale under current Michigan Department of Treasury guidance and Michigan Court of Appeals precedent. Software downloaded in its entirety is taxable. A locally installed client or desktop agent counts as delivered, but that alone doesn't make the transaction taxable: Michigan still runs an "incidental to service" test on bundled transactions, the same test that kept a desktop-agent product exempt in the state's own controlling case.
Do you need address-level rate resolution for Michigan sales? No, not for the rate itself. Michigan charges a single flat 6% sales and use tax rate statewide, and state law doesn't allow cities or counties to add a local sales tax on top of it. Once you've determined a transaction is taxable, the rate is the same no matter which Michigan address the sale goes to. The real engineering work for Michigan is classification, not geography: deciding whether a given transaction counts as a taxable delivery of software in the first place.
Is a Michigan law change to SaaS taxability pending? Not currently. Michigan is a stable, fully exempt state for SaaS with nothing pending in the 2026-2027 window this template tracks. The state's current position traces to a 2023 Treasury bulletin that replaced a 1999 one, so the position has already been revisited once on this timeline and could be again, but there's no pending change to build toward today.
Sources
- SaaS and Software Taxability: Michigan Department of Treasury, Revenue Administrative Bulletin 2023-10, Sales and Use Taxation of Computer Software and Digital Goods (approved July 31, 2023; replaces RAB 1999-5). MCL 205.51a(p) and MCL 205.92b(p) statutory definitions.https://www.michigan.gov/taxes/rep-legal/rab/2023-revenue-administrative-bulletins/revenue-administrative-bulletin-2023-10
- Controlling Case Law: Auto-Owners Ins Co v Dep't of Treasury, 313 Mich App 56 (2015); Michigan Department of Treasury taxpayer notice on the decision (issued January 6, 2016), applying the "incidental to service" test from Catalina Marketing Sales Corp v Dep't of Treasury, 470 Mich 13 (2004).https://michigan.gov/treasury/reference/taxpayer-notices/auto-owners-insurance-company-v-department-of-treasury
- Economic Nexus and Marketplace Facilitators: Michigan Department of Treasury taxpayer notice on 2019 PAs 143-146, Marketplace Facilitators and Economic Nexus (issued December 23, 2019); MCL 205.52b; Marketplace Facilitator / Seller FAQs.https://www.michigan.gov/treasury/reference/taxpayer-notices/2019/12/23/2019-pas-143---146-marketplace-facilitators-and-economic-nexus https://www.michigan.gov/taxes/business-taxes/sales-use-tax/information/marketplace-facilitator-seller-faqs
- Remote Seller Guidance: Michigan Department of Treasury, Sales and Use Tax Information for Remote Sellers.https://www.michigan.gov/taxes/business-taxes/sales-use-tax/resources/sales-and-use-tax-information-for-remote-sellers
- State Sales and Use Tax Rate: Michigan Department of Treasury, Sales and Use Tax overview (6% statewide; Michigan does not permit local sales taxes). MCL 205.52.https://www.michigan.gov/taxes/business-taxes/sales-use-tax
- Streamlined Sales Tax (SST) Status: Streamlined Sales Tax Governing Board, Michigan state detail (Full Member since October 1, 2005).https://www.streamlinedsalestax.org/state-tables/michigan