How to migrate from EXEMPTAX to ResaleProof
If you’re on EXEMPTAX (~$250/mo) and want to move to a native Shopify app, here’s the fastest path. Total time: usually under 15 minutes for a few hundred certs.
Before you start
- Install ResaleProof from the Shopify App Store. The 14-day free trial on paid plans means you can validate the migration before committing.
- Run through the onboarding wizard — confirm your nexus states, accepted cert types, and email branding.
- Make sure your EXEMPTAX account is still active; we’ll pull the export from it.
Step 1 — Export your certificates from EXEMPTAX
- Log into EXEMPTAX admin.
- Navigate to Customers → Exemption Certificates → Export.
- Pick CSV format. Leave the default column set (EXEMPTAX’s default includes everything ResaleProof needs:
customer_email,cert_state,cert_type,tax_id,expiration,pdf_url,notes). - Download the resulting file.
Tip: If EXEMPTAX has paginated the export, download every page and concatenate them. A merged CSV up to 500 rows fits in a single ResaleProof import batch; larger exports split naturally.
Step 2 — Import into ResaleProof
- In Shopify admin, open Apps → ResaleProof → Import.
- Step 1 of the wizard: drop in the EXEMPTAX CSV. Parse completes in under 5 seconds.
- Step 2: ResaleProof auto-detects the EXEMPTAX column layout. You’ll see green checks next to
customer_email → Customer email,cert_state → State,cert_type → Cert type,tax_id → Permit number,expiration → Expires,pdf_url → PDF URL. Thenotescolumn is unmapped by default — change the dropdown to another field if you want to preserve those comments. - Step 3: review the validation summary. Expect a handful of “Need review” rows for:
- Customers whose email isn’t yet in your Shopify store (skipped).
- Already-expired certs (imported but flagged).
- Rows without a
pdf_url(imported without an attachment — you can re-upload individually later).
- Step 4: click Import. ResaleProof loops through each row, looks up the Shopify customer, fetches the PDF (opportunistic, 10-second timeout per), and inserts the cert as
pending.
Step 3 — Bulk-approve the imported certs
Imported rows land as pending so you can double-check the data before tax exemption flips on. Open Apps → ResaleProof → Certificates, filter by status: pending, bulk-select the imported rows, and click Approve. Shopify’s customerAddTaxExemptions mutation fires per cert; tax skipping is live the moment the bulk action completes.
Step 4 — Cancel EXEMPTAX
Once you’ve confirmed a handful of approved certs are skipping tax correctly at checkout (place a test order on a previously-exempted customer), cancel your EXEMPTAX subscription. Your old certs + new certs now live in one place.
Gotchas to know about
- 500-row cap per import. If you have >500 certs, split the CSV. ResaleProof warns you in-wizard when you’re over the cap.
- Customer email mismatch. If EXEMPTAX has an email that isn’t a Shopify customer (common for customers who moved platforms), that row gets skipped and shows up in the failure list. Add the customer to Shopify manually, then re-import just that row.
- PDF URL access. EXEMPTAX’s CDN URLs are usually public-readable for a while post-cancellation, but don’t wait weeks — migrate before you cancel.
Why merchants switch
| EXEMPTAX | ResaleProof | |
|---|---|---|
| Monthly price | $250 | From $29 |
| Shopify-native | No (external tool) | Yes (embedded + extension) |
| Audit-ready PDF bundle | Extra add-on | Included in every plan |
| AI OCR cert parsing | No | Pro tier |
| QuickBooks sync | No | Pro tier |