Approximately 16 U.S. states offer no online resale tax ID verification at all, so if you need to validate a buyer exemption today, you're often stuck with phone calls, spreadsheets, or a third-party tool. In a real checkout flow, that means the cleanest-looking resale certificate can still leave you guessing unless you verify it against the right state system.
That's the part some teams only discover after a deal closes and finance asks why tax was waived without proof. The pain isn't just the lookup itself, it's keeping the validation process reliable when the registry is down, the buyer's fields don't match, or the certificate goes stale after you've already onboarded the account.
Table of Contents
- What Is a Resale Tax ID and Why Verification Matters
- Navigating US Versus EU Tax ID Systems
- Finding and Using Official Lookup Portals
- Performing Manual Validation Checks
- Building a Resilient Tax ID Validation Integration
- Compliance Best Practices and Record-Keeping
What Is a Resale Tax ID and Why Verification Matters
A SaaS founder can close a European B2B deal, apply reverse charge, and then realize the buyer's VAT number was never checked against an authoritative registry. That's the moment the problem stops being theoretical. A resale tax ID is the number a business uses to show it's registered for sales tax or VAT purposes, which lets it buy goods without paying tax upfront when the goods are intended for resale.
In the U.S., that usually means a state-issued sales tax permit tied to a resale certificate. In the EU, it means a VAT number that can be checked through VIES, the European Commission's validation system. The labels differ, but the operational mistake is the same, treating a number on a form as proof that the buyer is entitled to exemption.
Practical rule: a number that looks valid is not the same thing as a number that is valid for your transaction.
The compliance risk starts when teams treat lookup as a checkbox instead of evidence gathering. Industry guidance says a complete resale certificate should include the buyer's name and address, permit or exemption number, date, signature, and a statement that the goods are for resale, and sellers should also verify the registration number and expiration date while keeping a copy for records, as described in the tax identification number overview. That matters because auditors care about the chain of evidence, not just the existence of a field in your checkout form.
A clean implementation checks whether the buyer's details match the issuing authority's record, whether the certificate is current, and whether the business purpose fits the transaction. If you bill SaaS, run a marketplace, or invoice B2B buyers across borders, verification is part of revenue operations, not an afterthought. Skipping it can leave finance defending an exemption they can't prove.
Navigating US Versus EU Tax ID Systems
The biggest mistake in resale tax ID lookup is assuming the U.S. and EU systems behave the same way. They don't. In the United States, the system is not unified, and a 2026 state-by-state guide notes that approximately 12 states require businesses to register for a sales tax permit to get a resale certificate, while 16 states don't offer any online verification process at all, which is why sellers can't lean on one national database and instead have to check state tax authority records. That lack of a unified system is exactly why official tools exist in major markets such as North Carolina, Texas, and Georgia through state-run lookup pages. Avalara's state-by-state guide
Why U.S. workflows need jurisdiction-aware forms
A U.S. validation flow has to know which state the buyer is dealing with before it even decides what inputs to ask for. Georgia accepts single or batch Sales Tax ID entries, while other states require combinations such as an account number plus certificate number, or a permit number plus business name. That means a generic front end breaks fast, because the same buyer data won't satisfy every state portal. The operational fix is a state-aware field map, not a single universal form.
Don't build one form and hope the registry accepts it. Build one input model per jurisdiction, then normalize everything behind the scenes.
The EU is more centralized, but that doesn't make it simple. VIES gives you a unified place to check VAT numbers, yet official-style validation still depends on certificate type, location ID, or active-vendor lists in some cases, which means a result can be valid for one transaction and wrong for another. That's why periodic re-verification matters, especially for recurring buyers whose status can change over time. For a practical example of state and permit variation, see the Washington-specific lookup guidance.
What a unified EU registry still doesn't solve
VIES reduces the number of places you need to query, but it doesn't erase the underlying compliance problem. A number can validate today and still fail later if the certificate expires or the buyer's registration changes. Government guidance also shows that verification interfaces can return more than a simple yes or no, which means your logic needs to handle status, identity, and audit evidence separately.

The practical takeaway is simple. In the U.S., jurisdiction drives the input shape. In the EU, ongoing validity drives the risk. If your validation layer doesn't account for both, you'll either reject legitimate buyers or approve exemptions you can't defend later.
Finding and Using Official Lookup Portals
A resale tax ID check starts at the source of record. For EU VAT numbers, that means VIES. For U.S. states, the lookup path changes by jurisdiction, and that is where teams get burned if they assume one portal behaves like another. Georgia's official process tells users to enter sales tax numbers and print search results, while Texas and North Carolina both provide dedicated verification pages for sales and use tax numbers. Those portals matter because they give you state-backed evidence, not a private database match that may be stale by the time you need it. For the EU side, the VIES reference is the right place to anchor your process.
What official portals return
The data these portals return is not uniform across states, but the useful pattern stays the same. A successful lookup can surface the buyer's legal name, address, and status, which gives you something concrete to compare against the certificate and your customer record. Georgia's official tool is especially practical because it supports single or batch sales tax ID entries and gives you printable results, which makes it easier to save evidence with the order.
Other states are less cooperative. Some require a permit number plus a business name, some want an account number and certificate number, and some rely on downloadable lists instead of a live query form. Ohio is a clear example of the clunkier side of the stack, because the verification path centers on an active vendor spreadsheet rather than a simple search box. It is awkward to use, but it still counts as official evidence when the state maintains the list.
How to prepare before you hit submit
Normalize the buyer's data first. If you send the wrong field to the wrong state form, the result looks like an invalid certificate when the problem is a formatting mismatch. The safer pattern is to keep a jurisdiction map with the required input fields, route each lookup to the right portal, and store the returned result alongside the normalized ID.
Operational note: if the state portal can print or export the result, save that artifact with the order record. It is much easier to defend an exemption when you can show exactly what the registry returned.
Official tools are useful, but they are uneven. Some are clean enough for daily use, and others feel like they were built for someone who has time to spare. That is why many teams still keep a fallback process for states that do not expose a neat search UI or only offer downloadable vendor lists.
Performing Manual Validation Checks
A manual workflow works best when it's boring and repeatable. Start by capturing the buyer's tax ID, then run a jurisdiction-specific format check, then query the state or EU portal, and finally store the returned legal entity data with the normalized ID. That sequence matters because format validation is cheap, while registry calls can fail, time out, or return incomplete data.
The checks that catch most bad certificates
The most common failure mode isn't a dramatic “invalid ID” message. It's incomplete certificate data or a mismatch between the buyer's entered details and the issuing authority's record. In practice, that means the certificate might contain a number, but the name, address, date, or signature doesn't line up with what the state expects.
Before granting exemption, verify the buyer's:
- Name and address, because a mismatch here often means the certificate was copied from somewhere else or typed incorrectly.
- Registration number, because the number has to belong to the right authority and the right jurisdiction.
- Date and signature, because an undated or unsigned certificate is not the same thing as a completed record.
- Business-purpose fit, because the exemption has to match the goods or services being sold.
Georgia's tool is a useful example because it accepts single or batch Sales Tax ID entries, but other states need combinations like account number plus certificate number, or permit number plus business name. A form that doesn't respect those differences will fail in production, even if the back end is perfectly healthy.
What to do when the result looks wrong
If the registry comes back with a mismatch, don't jump straight to fraud. It could be a stale certificate, a revoked permit, or a buyer who sent the wrong entity name. Ask for a corrected certificate or supporting registration document before you decide whether to apply exemption.
When the details don't align, the safe move is to pause, not to auto-deny and not to auto-approve.
The core value of manual validation is that it creates an auditable chain of evidence. That's what tax authorities care about, and it's what your finance team needs when a sale gets reviewed later. If you can prove that you checked the number, compared the details, and recorded the outcome, you've already done more than many organizations.

Building a Resilient Tax ID Validation Integration
The ugly part of production validation is that government registries don't behave like normal SaaS APIs. They go down, they throttle, they return different payload shapes, and sometimes they expect SOAP where your stack wants REST. If you're wiring resale tax ID lookup into checkout, billing, or supplier onboarding, the right pattern is to wrap the registry behind your own API so the rest of your system never has to care whether the upstream service is elegant or not.
Design the integration around failure, not success
Start with country-specific format validation before you make any remote call. That saves traffic and avoids pointless registry requests for obviously malformed IDs. Then cache confirmed results so repeat lookups for the same buyer don't keep hammering the same government endpoint. The point isn't raw speed, it's making the flow survive registry outages without blocking legitimate transactions.
Practical rule: a lookup failure is not the same thing as an invalid ID. Treat those as separate states in your code.
That distinction matters because service outages happen without warning. If your integration conflates “registry unavailable” with “buyer invalid,” you'll end up denying exemptions during the exact moments when your support team can least explain the behavior. A better pattern is to return machine-readable errors, cache what was confirmed, and route failures to manual review instead of hard rejection.
Where SOAP still hurts
SOAP-based registries are the source of most developer pain here. They're harder to compose with modern app stacks, they're more brittle to parse, and they often require wrappers just to feel usable from Node.js or Python. REST is simpler for product teams because it gives you predictable JSON, cleaner error handling, and less time spent reverse-engineering response shapes.
An abstraction layer earns its keep. One option is a service that wraps the upstream registry and standardizes the output into something your application can consume. TaxID does that for VAT and company ID validation, returns company name, address, and status in JSON, and adds format checks plus caching so the registry isn't your app's bottleneck.
The goal isn't to build a tax microservice for the fun of it. The goal is to keep checkout and accounts payable alive when the external registry behaves badly. If your error model can distinguish invalid, service unavailable, and pending manual review, your support queue gets much easier to manage.
How to keep the codebase maintainable
Keep the validation service narrow. It should accept a tax ID, a country or state context, and a customer identity payload, then return a normalized result that your billing system can store. Don't bake registry-specific quirks into your checkout UI, and don't force your order system to understand every state's permit field shape.
After the first registry call succeeds, persist the validated response and the timestamp. That way, future transactions can reuse the same evidence unless policy says a refresh is required. The less your front end knows about tax bureaucracy, the easier it is to ship changes without breaking compliance logic.
Compliance Best Practices and Record-Keeping
The benchmark for resale tax ID lookup is not how fast the first check runs. It's whether your team can still defend the exemption when the registry is down, the certificate ages out, or an auditor asks why the sale went out tax-free. A practical standard is periodic re-verification for recurring customers because permits can be revoked, expired, or inactive, and the validation result needs to stay attached to the transaction history. Zamp's state-by-state guidance and the Numeral guide both reflect that same operational reality.
Keep the certificate and the evidence trail
Save more than the certificate itself. Keep the lookup result, the date you verified it, and the exact identifier you used, because that's what shows your team checked the record rather than just trusting a form upload. Many compliance workflows retain validated certificates for at least seven years to defend an audit position, and that retention mindset matters even more when the buyer is a repeat customer with a blanket certificate. Revenue Support Tennessee
Audit rule: if you can't show the lookup outcome, you don't really have the lookup outcome.
Your logs should also distinguish successful validation, registry outage, and invalid result. Those are different operational states, and they need different follow-up paths. Finance can chase a missing certificate, but it can't resolve a government outage, so the system should make that obvious.
Re-verify when the relationship stays active
Recurring buyers are where stale assumptions hurt the most. A certificate can look fine at onboarding and still become unusable later if the permit changes or expires, so periodic re-verification is a practical control, not paperwork for its own sake. The same logic applies when the buyer changes entity details, ships from a new location, or starts buying a different class of goods.
The cleanest internal policy is simple. Validate once at onboarding, store the result, re-check on schedule or on change, and preserve the artifact that proves the decision. That gives AP, billing, and tax teams one shared record instead of three separate opinions.
If you need a developer-first way to validate VAT and company IDs in production, visit TaxID and compare its REST-based lookup, format checks, and cached validation flow against your current registry wrapper. It's built for teams that need reliable exemption checks in checkout, billing, and KYC flows without turning every government lookup into a support ticket.