Customers upload once. Tax skips automatically at checkout. Your audit folder builds itself in the background — organized by state, signed, time-stamped.
Six moving pieces you'd otherwise build yourself — admin dashboard, audit PDF, renewal cron, customer portal, state form library, checkout exemption — shipped as one app.
Live status across your wholesale book. No spreadsheet archaeology, no inbox threads. Approve, reject, export — bulk or per-row.
Cover sheet, state TOC, every cert — mail it to the auditor.
Shopify's native customerAddTaxExemptions
applies per-state exemption at checkout.
Same shots we ship to the Shopify App Store. Each one carries its own headline so you can scan the product without reading a word of marketing copy.
No "tax-exempt customer" tags to maintain. No CSVs to update. No more screenshotting forms from email threads at 11pm before an audit.
On cert approval we call Shopify's native
customerAddTaxExemptions with the right
US_<STATE>_RESELLER_EXEMPTION enum —
Shopify Tax enforces at checkout. No merchant tagging, no flags to
forget.
Cover sheet, table of contents organized by state, every certificate with the full audit log. The artifact your CPA or state auditor actually wants in their inbox.
MTC Multistate plus CA, TX, NY, IL fillable in-app; Florida points buyers to the state DOR retrieval flow (DR-13 is upload-only by design). All signed digitally, stored in your Shopify Files.
90 / 60 / 30 / 7-day reminders sent from your domain, branded with your logo. The one-click renewal email deep-links the customer into a pre-filled portal flow.
Buyers manage certs inside their existing Shopify account — no second login, no third-party portal. It's a native Customer Accounts extension, not an iframe.
Coming from EXEMPTAX, a spreadsheet, or something homegrown? A 4-step wizard auto-maps common column names and imports up to 500 rows per batch into your pending queue.
Six forms covering the bulk of US B2B resale volume — five fillable in-app (MTC Multistate plus CA, TX, NY, IL) and Florida as upload-only with a DOR retrieval walkthrough. Every other state works via upload: your buyers drop in their existing state-issued cert and we validate format + file it in Shopify Files.
All 50 states via upload-only fallback. Custom state-specific generators are on the roadmap — drop a line at support@resaleproof.com to vote for yours.
Same product on every tier. You’re only paying for headroom on active certs — pending, rejected, and expired certs never count toward your cap. 14-day free trial on every paid plan; cancel from your Shopify admin in two clicks.
Billed through Shopify’s Managed Pricing. 30-day pricing — recurring charges are billed every 30 days in USD.
Don't see yours? Email support — we reply within 1 business day.
When you approve a cert, we call Shopify's native
customerAddTaxExemptions mutation with the
matching per-state enum (e.g. US_CA_RESELLER_EXEMPTION). Shopify Tax then
enforces the exemption at checkout automatically — no merchant tags
to maintain, no checkout extension your customers can mis-click. On
expiration or rejection, we call customerRemoveTaxExemptions to revoke it.
The MTC Multistate form (covers 37 states) plus five of the highest-volume single-state forms: California CDTFA-230, Texas 01-339, New York ST-120, Illinois CRT-61. Florida's DR-13 is upload-only by design — buyers retrieve it from the Florida DOR portal; we embed a walkthrough in the customer flow. Every other state works via upload-only fallback.
Yes. A 4-step wizard at /app/import accepts
CSV with auto-mapped column names, validates rows, and lands them in
your pending queue. Batch size is capped at 500 rows per import with
a 4-minute budget. Use existing bulk-Approve to activate a batch at
once.
Open the Audit export builder, pick a date range and state(s), and click export. You get a single PDF: cover page with merchant attestation, table of contents organized by state, every certificate with the full audit log (approval timestamp, Shopify customer ID, submission source). The download link is valid for seven days.
Yes to all three. The native exemption primitive we use is respected across regular checkout, Plus B2B, and draft orders — the same customer exemption record is read everywhere. (One known quirk: draft orders lock tax at draft-create time; changing a customer's exemptions after won't retroactively update an existing draft.)
PDFs live in your Shopify Files, not ours. We hold only
metadata (state, expiry, status, a Shopify Files GID pointer) in
our database. On customer redact we call fileDelete to remove the PDF from your
shop too. If you uninstall Resale Proof, the PDFs stay where they
are.
All three Shopify GDPR webhooks are wired (customers/redact, customers/data_request, shop/redact). Soft-delete on uninstall with a 30-day recovery window; hard-delete sweep after. Our Privacy and Terms pages document the full data lifecycle — read them here.