How to migrate from EXEMPTAX to Resale Proof
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 Resale Proof 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 Resale Proof 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 Resale Proof import batch; larger exports split naturally.
Step 2 — Import into Resale Proof
- In Shopify admin, open Apps → Resale Proof → Import.
- Step 1 of the wizard: drop in the EXEMPTAX CSV. Parse completes in under 5 seconds.
- Step 2: Resale Proof 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. Resale Proof 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 → Resale Proof → 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. Resale Proof 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. Once you cancel EXEMPTAX, retrieving the original PDFs can become impossible. Migrate before you cancel and keep the export file until you’ve confirmed every PDF landed in Resale Proof.
Why merchants switch
| EXEMPTAX | Resale Proof | |
|---|---|---|
| Monthly price | $250 | From $29 |
| Shopify-native | No (external tool) | Yes (embedded + extension) |
| Audit-ready PDF bundle | Not included by default | Included in every plan |
| AI OCR cert parsing | No | Pro tier |
| QuickBooks sync | No | Pro tier |