Tax Exemption for WooCommerce

How can we help?

Search the documentation or ask the AI agent anything about the plugin.

Registration numbers are failing verification

Updated September 14, 2026

Registration number verification has two quite different failure modes, and telling them apart is the key to fixing anything. A number that is actively rejected by a register is invalid. A register that cannot be reached is unavailable — and an unavailable register never blocks a customer, whatever your “If a Number Fails” setting says.

Genuine numbers are being rejected

Check the number type the customer selected matches the number they entered. An EU VAT number submitted as a UK VAT number will fail its format check every time. If you accept several types, consider narrowing the list — with one type ticked, the dropdown disappears and customers cannot pick the wrong one.

For the Other Registration Number type, review your Pattern for “Other”. Numbers are uppercased with spaces and punctuation stripped before matching, so a pattern expecting hyphens or spaces will never match. Leave the pattern blank to accept anything.

HMRC rejects your credentials

Use the Test Credentials button on the register’s row — it diagnoses the specific problem rather than just failing. The three common answers:

  • Sandbox credentials pasted into Production. The HMRC Developer Hub issues separate pairs and they are not interchangeable. Sandbox credentials only answer for HMRC’s test data, and real VAT numbers do not exist there. Copy the Production Client ID and Secret.
  • Credentials rejected outright. Check for typos and trailing spaces, and that the secret has not been regenerated since you copied it.
  • Valid credentials, but the application cannot call the API. In the Developer Hub, subscribe the application to Check a UK VAT number for Production.

HMRC only issue Production credentials after you have applied for production access and accepted their Terms of Use, so this can take a few days to sort out.

EU VAT numbers come back unverified

VIES is a gateway to each member state’s own service, and individual member states go offline routinely. When that happens the number is recorded as unverified rather than invalid and the customer is not blocked. This is normal and usually resolves itself — use the Re-check button later rather than treating the customer as suspect.

Nothing is being checked at all

Confirm Verify Registration Numbers is on, and that Verification Level includes live lookups if you expect a register to be consulted. On format-and-checksum only, no external request is ever made and the Official Registers section is hidden.

Also check the number type actually has a register. Only EU VAT, UK VAT, Australian ABN and England & Wales charity numbers can be looked up. New Zealand IRD, India GSTIN, Canadian Business Numbers, US EINs and resale certificate numbers are checked offline because no public lookup service exists.

Results look stale

Verification results are cached to stop the same number being looked up repeatedly as the cart recalculates — by default for 24 hours. The Re-check button on the customer profile and the Exempt Customers page forces a fresh lookup.

There is also a per-customer rate limit on checks, so an unusual burst of attempts may be throttled briefly.

A country mismatch warning

With Check Against Billing Country on, a valid number belonging to a different country than the billing address is flagged. It is a warning, not a rejection — a business genuinely can order from an address in another country.

Related

Was this article helpful?