Overview
EU VAT Number Validation checks your business customers' VAT numbers in the EU VIES database and applies the reverse charge for you: a valid buyer in another EU country pays no VAT, everybody else pays VAT as usual.
- A VAT number field where it belongs. An OpenCart custom field on registration, the account page and the checkout (created for you, or use your own text field).
- Checked while they type. Format and check digits for the 27 EU countries and Northern Ireland (XI) first, then a live VIES check that shows the registered company name under the field.
- Wrong numbers refused. Unknown numbers and wrong formats are refused under the field when the form is saved (or kept with VAT charged, your choice).
- Reverse charge through OpenCart's own tax. For a valid number from another EU country than your store, the VAT rates are left out: in the cart, at checkout, on product prices for signed-in business customers and in the order totals. Fixed taxes such as eco tax stay.
- Proof with every order. VAT number, VIES result, registered name and address and the VIES consultation number are stored with the order, shown on the admin order page and printed on the invoice with your reverse charge note and your own VAT number.
- When VIES is down. Charge VAT, or apply the reverse charge and mark the order for review; re-check any order with one click.
- Overview, check log and order list in the admin.
No OCMOD, no core file edits. One licence covers OpenCart 4 and 3. Tested on OpenCart 4.1.0.4 and 3.0.5.1 with the default themes and checkout; other 4.0.2.x to 4.1.x and 3.0.3.8 to 3.0.5.x versions are expected to work but are not tested. Tested against a local copy of the VIES REST interface; the extension calls the European Commission's VIES service directly, no account needed.
This extension helps you apply the VAT rules; it is not tax advice. Check the rules for your business with your tax adviser.
Installation
Requirements
- OpenCart 4.0.2.0 to 4.1.x, or 3.0.3.8 to 3.0.5.x
- PHP 7.4 or newer with cURL
- Your store address in an EU country (System > Settings > Store > Country)
- VAT set up as tax rates and tax classes (System > Localisation > Taxes) for the EU countries you sell to
Install on OpenCart 4
- Go to Extensions > Installer and upload
kv_eu_vat.ocmod.zip. - Press the install button next to EU VAT Number Validation.
- Go to Extensions > Extensions, choose Modules and install EU VAT Number Validation.
Install on OpenCart 3
- Go to Extensions > Installer and upload
kv_eu_vat-oc3.ocmod.zip. - Go to Extensions > Modifications and press Refresh.
- Go to Extensions > Extensions, choose Modules and install EU VAT Number Validation.
First steps
- Open Customers > EU VAT numbers > Settings. Enter your own VAT number (it is printed on invoices and gives you a VIES consultation number for every check).
- The install created a custom field VAT number (Customers > Custom fields). It shows on registration, the account page and the checkout. Use your own text field instead if you already have one.
- Try a number in Check a VAT number on the overview.
- Place a test order with an address in another EU country and a valid VAT number: the VAT line is gone and the checkout shows the reverse charge note.
Updating
Upload the new package the same way. Settings, the log and order records stay.
Removing
Uninstalling removes the check log, the order records and the settings. The VAT number custom field and the numbers your customers entered stay in OpenCart (they are customer data); delete the field in Customers > Custom fields if you no longer need it.
Configuration
Customers > EU VAT numbers > Settings
| Setting | What it does |
|---|
| Status | Off: VAT is always charged and numbers are not checked at the storefront. |
| Field | The custom field that holds the VAT number: ours ("VAT number") or one of your own text fields of the account. |
| Invalid numbers | Refuse numbers VIES does not know or with the wrong format (shown under the field). Off: the number is kept and VAT is charged. |
| Live check | Check while the customer types and show the registered company name. |
| Your VAT number | Printed on invoices and sent to VIES as the requester, which returns a consultation number as proof of the check. |
| Buyer country | Payment address (the shipping address when the checkout has none) or shipping address. |
| When VIES is down | Charge VAT, or apply the reverse charge and mark the order "to review". |
| VAT rates removed | The tax rates left out under the reverse charge. None ticked: every percentage rate; fixed rates stay. |
| Invoice note | Printed on invoices of reverse charge orders. |
| Keep valid results | Days before a valid number is checked again. Invalid answers are kept one hour, VIES outages ten minutes. |
| VIES timeout | Seconds to wait for VIES. |
| Licence key | The key from your Kavio Labs account. |
When the reverse charge applies
All of these must be true:
- your store country is in the EU;
- the buyer country is in the EU and is not your store country;
- the VAT number belongs to the buyer country (a German number with a German address);
- VIES confirmed the number (or VIES was down and "apply the reverse charge" is chosen).
Buyers in your own country always pay VAT. Buyers outside the EU are handled by your tax rates as before.
Licence
The store checks numbers and applies the reverse charge for 14 days without a key. After that a valid key is needed for the storefront part (VAT is then charged as usual); the admin always works.
Using EU VAT Number Validation
For your customers
- The VAT number field sits on the registration form, the account page and the checkout account form. It is optional.
- While they type, a line under the field says "Valid EU VAT number: Company name", "Not found in the EU VIES database" or that VIES does not answer.
- At checkout, a green note says "Reverse charge: VAT is not charged" with the number and company, and the VAT line is gone from the totals. When VAT still applies, a short note says why (same country as the store, number from another country, not found).
- Signed-in business customers with a valid number see product prices without VAT.
Overview
Customers > EU VAT numbers shows valid and refused checks of the last 30 days, VIES outages, orders with a VAT number and orders to review, the quick check and the latest orders.
Check log
Every VIES answer with the number, result, company, consultation number, where it came from (typing, registration, account, checkout, admin) and how long VIES took. Filter by result.
Orders
Orders with a VAT number: customer, number, company, VIES result, reverse charge or charged, total. Filters for reverse charge and "to review" (accepted while VIES was down).
Order page and invoice
The order page shows the VAT number panel with the VIES result, registered name and address, consultation number and the decision. Check again in VIES checks the number again and updates the order record. The invoice prints the buyer's VAT number, your VAT number under the store address and, for reverse charge orders, your invoice note.
FAQ
Do I need an account for VIES?
No. The extension calls the public VIES service of the European Commission.
What if VIES is down?
Forms are never blocked by an outage. You choose: charge VAT, or apply the reverse charge and mark the order for review. Re-check it later from the order page.
Does it change my tax rates?
No. It leaves the VAT rates out for the reverse charge buyer only, in OpenCart's own tax calculation. Fixed rates such as eco tax stay unless you tick them.
Can I use my existing VAT field?
Yes, if it is a text custom field of the account: choose it in Settings.
What about UK numbers?
GB numbers are not in VIES and are not checked; Northern Ireland (XI) numbers are.
Orders created in the admin?
The reverse charge applies to orders placed in the store. Orders you create or edit in the admin follow OpenCart's tax; the VAT panel and invoice lines are shown for every order with a record.
Does it use OCMOD?
No. Events only, no core file is changed.
Is this tax advice?
No. It applies the usual intra-Community B2B rule. Check your own case with your tax adviser.