VAT Number Validation in ERP Systems: VIES Checks
Business Central and Odoo can check a VAT number against VIES, and Dynamics NAV 2016 against an EU web service. Sage 50 Accounts checks the format. They differ in when the check runs, what happens when VIES does not answer and what proof they keep. This guide covers those points from vendor documentation, and where a validation API fits.
The four systems compared
| System | Built-in check | When it runs | When VIES does not answer | Proof stored | UK, CH, NO numbers |
|---|---|---|---|---|---|
| Dynamics 365 Business Central | Yes, VIES through the EU VAT Reg. No. Validation Service | When you enter a VAT registration number on a customer, vendor or contact | Not documented; for a failed validation Microsoft says to check the number on the VIES website and link the saved result to the record | VAT Registration Log with a Request Identifier column | Not documented |
| Dynamics NAV 2016 | Yes, an EU web service (the page does not name VIES) | When you choose Verify Registration No. in the VAT Registration Log | Not documented | VAT Registration Log: one line per check, Valid or Invalid | Not documented |
| Odoo 17 to 20 | Yes, VIES, with Verify VAT Numbers turned on | When the Tax ID is entered or changed, already while the form is being edited | Checkbox stays unticked; on a saved contact a chatter note says the check is pending or failed | Intra-Community Valid checkbox, and a chatter note on a saved contact | Not documented |
| Sage 50 Accounts (UK and Ireland) | Not documented; the documented option (Validate VAT Number) checks the format | When you save a customer or supplier record | Not applicable: no VIES call is described | None documented | GB and XI formats listed; CH and NO not listed |
Microsoft Dynamics 365 Business Central
Business Central includes the EU VAT Reg. No. Validation Service, which uses VIES to validate the VAT numbers of customers, vendors and contacts. It is free, needs no extra sign-up and is turned on from the Service Connections page by a user with administrator permissions. Once it is on, the service validates a VAT registration number when you enter it. Validation templates can also have it check other company details per country, such as the name, street, city and post code. Differences show on a Validation Details page, where you accept or reset the values.
Each check is recorded in the VAT Registration Log of that customer, vendor or contact, which Microsoft's documentation describes as useful for proving that you verified the current number. The log has a Request Identifier column and opens from the VAT Registration No. field on the Invoicing FastTab.
Where it stops. Microsoft warns of downtime of the VIES service that it is not responsible for, and describes no retry or other source for that case. It also says VIES sometimes returns data with errors, and for a failed validation it tells you to check the number on the VIES website, print or save the result, and link it to the record. It describes no checks of UK, Swiss or Norwegian numbers.
Microsoft Dynamics NAV 2016
In Microsoft's archived NAV 2016 documentation, changing the VAT Registration No. on a customer, vendor or contact card whose country is in the EU logs the new number and your user ID in the VAT Registration Log, with the status Not Verified. The check is a manual step: you open the log from the card and choose Verify Registration No., which uses an EU web service whose URL is set in General Ledger Setup. Each run adds a line with the status Valid or Invalid. For Invalid, you correct the number on the card and run the check again.
Where it stops. A changed number stays Not Verified until someone runs the check. Microsoft notes possible downtime of the service that it is not responsible for, and describes no automatic re-check, no route for a failed call and no checks outside the EU.
Odoo 17 to 20
With Verify VAT Numbers turned on (Accounting, Configuration, Settings, in the Taxes section), Odoo checks a contact's Tax ID through VIES when the contact's country differs from your company's, and shows the result as an Intra-Community Valid checkbox, as the Odoo documentation describes. Odoo checks the format of every Tax ID against its country whether or not the feature is on. In the current code of Odoo 17, 18, 19 and 20, the VIES check is a call to Odoo's own service, vies.api.odoo.com, made as soon as the Tax ID is entered or changed, even on a contact form that has not been saved yet.
Odoo's code handles four answers from that service. Valid ticks the box. Unassigned, pending and fault leave it unticked. For a contact that is already saved, each answer also adds a note to its chatter; on a new contact the check runs before the record exists, and no note is written. Odoo also records fault when its own call fails. A pending check is settled later, by a webhook from Odoo's service or by a scheduled action. You can override the checkbox by hand, and Odoo logs that change in the chatter.
Where it stops. Odoo stores the checkbox and, for a saved contact, the chatter note. It stores no consultation number and has no field for the time of the check. Fiscal positions marked VAT required apply automatically only to contacts with the box ticked, so while a check is pending or failed, such a fiscal position does not apply. Odoo Online cannot install custom modules, so a check added as a module needs Odoo.sh or a self-hosted Odoo.
Sage 50 Accounts (UK and Ireland)
Sage 50 Accounts has a Validate VAT Number option on the VAT tab of Company Preferences. Sage's knowledge base describes what it checks: when you save a customer or supplier record, the error "The format of the VAT Number entered is invalid for the selected country" appears if the feature does not recognise the number's format. The article lists the expected format per country, including GB and XI numbers. Switzerland and Norway are not on the list. The articles name the product, Sage 50 Accounts, but no version.
Where it stops. The articles describe no lookup in VIES or with HMRC and nothing stored about a check. For valid 9-digit Irish numbers that the check can reject, Sage's workaround is to clear the option, save the record and turn it back on. A format check does not confirm that a number is registered, so that check has to happen outside Sage 50, with the result kept next to the customer record.
Systems this guide leaves out
A system is in this guide only when its vendor's documentation says whether it checks VAT numbers, when the check runs and what it stores. SAP's What's New for SAP Business One 10.0 lists a VAT number verification function for all EU member states, Norway and Switzerland from feature package 2105, with its link updated to the VIES web page. The public SAP documentation we read does not say when that function runs or what it keeps.
Where an API call fits
The pattern is the same for any ERP, with or without a built-in check:
- Validate when a customer or supplier record is created and whenever its VAT number changes.
- Check again before the first zero-rated invoice to that customer, and on a schedule after that.
- Store the result, the date of the check and, when one is returned, the consultation number on the record.
- Treat "VIES unavailable" as unknown, never as invalid, and check the number again later.
The ERP workflow in the VIES API guide walks through these steps. For outages, see the VIES downtime guide and the VIES error reference. The coverage page lists the countries and registers Avatcado checks. To make a first call, follow the quickstart.
What Avatcado adds
Avatcado checks VAT numbers from the EU, the UK, Switzerland, Liechtenstein, Norway and Australia with one REST call. Send your own VAT number as requester_vat_number and the answer carries a consultation number you can store on the ERP record: from VIES for an EU number with an EU requester, from HMRC for a UK number with a UK requester. A requester from the other system gets no consultation number. On Pro and Business plans, a request without a requester number is answered from the national tax register in 10 EU countries when VIES cannot answer. Those answers carry no consultation number.
Frequently asked questions
Is a VIES check a legal condition for zero-rating an intra-EU supply of goods?
Article 138(1) of the VAT Directive itself does not mention VIES. Since 1 January 2020, as amended by Council Directive (EU) 2018/1910, it exempts an intra-EU supply of goods when the customer is identified for VAT in another member state and has given you that VAT number, and Article 138(1a) adds a correct recapitulative statement. The directive's recitals describe the condition as the inclusion of the customer's VAT number in VIES. For cross-border services, Article 18 of Implementing Regulation 282/2011 lets you regard an EU customer as a taxable person, unless you have information to the contrary, when it has given you its VAT number and you have confirmed the validity of that number and the associated name and address under Article 31 of Regulation (EC) No 904/2010.
Does Business Central keep a record of each VIES check?
Yes. With the EU VAT Reg. No. Validation Service turned on, Business Central records the VAT numbers and verifications of each customer, vendor and contact in a VAT Registration Log, which Microsoft describes as useful for proving that you verified the current number. The log has a Request Identifier column and opens from the VAT Registration No. field on the Invoicing FastTab. When validation fails, Microsoft's page tells you to check the number on the VIES website, print or save the result and link it to the record.
Does Sage 50 Accounts check VAT numbers against VIES?
Sage's knowledge base describes the Validate VAT Number option in Company Preferences in terms of format. When you save a customer or supplier record, Sage 50 shows an error if the feature does not recognise the VAT number format, and the article lists the expected format per country. The articles describe no lookup in VIES or with HMRC. A format check does not confirm that a number is registered, so check the number in VIES or with HMRC and keep the result with the customer record.
Does Odoo keep a consultation number for its VIES checks?
No. Odoo stores the Intra-Community Valid checkbox and, for a contact that is already saved, a note in its chatter. In the code of Odoo 17 to 20 there is no field for a consultation number or for the time of the check.
Sources
- Validate VAT Registration Numbers (Business Central) Microsoft Learn, accessed November 12, 2026
- How to: Verify VAT Registration Numbers (Dynamics NAV 2016) Microsoft Learn, accessed November 12, 2026
- VAT numbers verification (VIES), Odoo 19.0 Odoo, accessed November 12, 2026
- base_vat res_partner.py, Odoo 19.0 (_update_vies_status) Odoo, accessed November 12, 2026
- UK VAT settings (Sage 50 Accounts) Sage, accessed November 12, 2026
- ERROR: The format of the VAT Number entered is invalid (Sage 50 Accounts) Sage, accessed November 12, 2026
- Validate VAT Number does not recognise 9 digit Irish VAT numbers (Sage 50 Accounts) Sage, accessed November 12, 2026
- Trading details, customer account (Sage 200 Professional) Sage, accessed November 12, 2026
- What's New in Previous Versions of SAP Business One 10.0 SAP, accessed November 12, 2026
- Council Directive (EU) 2018/1910 EUR-Lex, accessed November 12, 2026
- Council Implementing Regulation (EU) No 282/2011 EUR-Lex, accessed November 12, 2026
Related guides
VIES API Guide: REST Endpoint, SOAP & Integration
Use the official VIES REST API from Node.js, handle HTTP 200 faults, preserve consultation evidence, compare SOAP, and plan for member-state downtime.
VIES Down or Not Working? What to Do Right Now
VIES down, unavailable or not working? How to tell an outage from an invalid VAT number, what to do right now, and VIES failure figures from production traffic.
VAT Number Validation for Xero and QuickBooks
Neither Xero nor QuickBooks validates VAT numbers on contacts against a government registry. Learn the gap and how to add validation with Avatcado.
Validate VAT Numbers in Your CRM
How to add real-time VAT number validation to CRM account creation and lead qualification workflows. Covers Salesforce, HubSpot, and no-code automation tools.