Sales Tax Exemption Certificate Expiry SQL Generator
A sales tax audit usually asks one thing about exempt sales: show me a valid certificate for each one. This generator writes the SQL that lists certificates about to expire so your team can chase renewals before an auditor does.
Fill in
Replace with your ERP table or view.
SQL Server
SELECT c.customer_id, c.customer_name, e.state_code, e.certificate_no, e.expiry_date,
DATEDIFF(day, GETDATE(), e.expiry_date) AS days_left
FROM customer_tax_exemption e
JOIN customer c ON c.customer_id = e.customer_id
WHERE e.expiry_date <= DATEADD(day, 60, GETDATE())
ORDER BY e.expiry_date;PostgreSQL
SELECT c.customer_id, c.customer_name, e.state_code, e.certificate_no, e.expiry_date,
(e.expiry_date::date - CURRENT_DATE) AS days_left
FROM customer_tax_exemption e
JOIN customer c ON c.customer_id = e.customer_id
WHERE e.expiry_date <= CURRENT_DATE + INTERVAL '60 days'
ORDER BY e.expiry_date;Oracle
SELECT c.customer_id, c.customer_name, e.state_code, e.certificate_no, e.expiry_date,
TRUNC(e.expiry_date) - TRUNC(SYSDATE) AS days_left
FROM customer_tax_exemption e
JOIN customer c ON c.customer_id = e.customer_id
WHERE e.expiry_date <= SYSDATE + 60
ORDER BY e.expiry_date;Variant: exempt customers with no certificate on file
SELECT c.customer_id, c.customer_name FROM customer c LEFT JOIN customer_tax_exemption e ON e.customer_id = c.customer_id WHERE e.certificate_no IS NULL; -- Add your own filter on the column that marks a customer as tax exempt.
Table and column names are generic placeholders, not the schema of any specific ERP. Map them to your own tables or a reporting view, test on a non-production copy, and run read-only. Some states do not expire certificates, so also filter on your own certificate type or state rules.
Certificate control built on your ERP
Optional: we can review your exemption certificate data model and propose a read-only report.
Optional. The tool and every export work without this. No spam.
How to use the generator
Enter the names of your certificate table, customer table and key columns, set the warning window, then copy the SQL for your database. Run it against a read-only reporting copy first. The output lists the customer, issuing state, certificate number, expiry date and days left, sorted by earliest expiry. Schedule the saved query weekly and send results to whoever manages customer master data.
Why certificate expiry matters
An exemption claimed on a sale is only supported if the seller holds a valid, properly completed certificate at the time of sale or obtains one within the state's allowed period. States differ on whether certificates expire. Some issue them for a fixed number of years, others accept them until revoked, but many sellers refresh them periodically as a control.
- Texas: sellers keep certificates and accept them in good faith when properly completed
- Multistate: several states accept the MTC uniform certificate
- Missing or invalid certificates mean the seller owes the tax if audited
- Keep certificates for the statute of limitations period
Common mistakes
Do not assume your ERP's exempt flag proves a certificate exists. The flag and the document are often maintained by different people. Run the 'no certificate on file' variant alongside the expiry report, and reconcile exempt invoices to certificates by ship-to state, not bill-to state.
Frequently Asked Questions
Will this work on my ERP table names?
Only after you map them. The defaults are generic placeholders, not the schema of any specific ERP. Replace them with your own certificate and customer tables, or point the query at a reporting view that exposes those fields.
Do all exemption certificates expire?
No. Rules vary by state and by certificate type. Some states require periodic renewal, others do not. Even where not required, many companies set an internal refresh cycle as an audit control.
Is this safe to run on production?
The queries only read data, but heavy joins can still slow a busy system. Run on a replica or reporting copy and off peak hours when possible, and review with your DBA first.
Can I generate the same query for NetSuite SuiteQL?
SuiteQL uses Oracle-like syntax, so the Oracle block is a starting point, but record and field names differ. Confirm the available tables in your account's records browser before using it.
If you want this check built against your actual ERP schema with reporting to AR and tax, Netray can scope it as a read-only report.
Related Tools
State Sales Nexus CSV Checker Python Script Generator
Configure your CSV column names and threshold to get a small Python script that flags states close to or over your nexus level.
Compliance & ContractsUS State Economic Nexus Sales Thresholds Reference
Look up the sales threshold that triggers economic nexus and sales tax registration in major US states, with notes on transaction-count tests.
Compliance & ContractsSales Tax Exemption Certificate Request Letter Template
A fill-in letter that asks a customer for a valid exemption or resale certificate, or tells a vendor you are claiming an exemption.
Compliance & ContractsTexas Manufacturing Exempt Purchase Log Worksheet
Log purchases you treat as exempt from Texas sales and use tax, with the certificate given, support on file and the tax avoided.
More Developer Tools tools
See all- SAP Sales Order ABAP SELECT Generator (VBAK, VBAP, VBFA)
- SAP Sales Order Create BAPI ABAP Generator (BAPI_SALESORDER_CREATEFROMDAT2)
- SAP ABAP Open Items SELECT Generator
- SAP ACDOCA SQL Query Generator
- SAP QM Inspection Lot ABAP SELECT Generator
- SAP Quality Notification Pareto SQL Query Generator
- SAP QM Usage Decision BAPI Skeleton
- ABAP Custom Exception Class Generator
- ABAP Unit Test Class Generator