Automating EU VAT Registration Number Validation (VIES)

Normally when trading business to business you do not charge VAT on supplies made to your customers. If you trade with companies within the EU then similarly you do not normally charge VAT. But if the company you trade with is not registered for VAT then you must charge VAT.

Fortunately the EU provide an online service to allow you to check that you are making a valid supply. You can access this service here http://ec.europa.eu/taxation_customs/vies/vieshome.do?selectedLanguage=en

There are rules for what to do on this web site

“Q18: What do I have to do if I cannot check the validity of the VAT number of my customer?

If you believe that your customer is not a taxable person, you should not exempt the supply but should charge VAT.”

Source: http://ec.europa.eu/taxation_customs/vies/faqvies.do

Checking this manually for each trading partner is an administrative overhead which is error prone, may well be missed and for good compliance ought to have a record made of the check.

TaskCentre can automate the checking and provide an audit trail of the checks made. Where discrepancies are identified it can provide a workflow to resolve the issue.

How do I connect TaskCentre to the VIES service?

The TaskCentre web service connector can send VAT codes to the VIES service and return either a true or false that the number is a valid registered number, and if the member state allows name and address details of the company. To set up a connection follow these instructions:

    1. Navigate to: System -> Tools -> Execute -> double click the Web Service Connector tool to open the global configuration.
      CreateNewConfig
    2. Click Add to begin creating a new web service configuration.
      NewConfig
    3. Enter a name for the web service and select the second option down. Enter the following URL then click OK; http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl

The service is now set up and ready to use in TaskCentre.

Task Design Considerations

The task design to use this service will depend on the system that your suppliers are connecting into. It is likely that you would base it on registering a new customer in your system. This could either be detected by a MS SQL trigger or Oracle trigger tool step, or alternatively a system specific event tool.

If none of these options can be used then a schedule event (perhaps daily) could be run and make use of memory to ensure that the same data is not processed twice. Here you might consider using external memory because this could also provide your audit trail of records processed.

Alternatively, the audit trail could be created by writing back through a connector into your business system (if an appropriate place is available to create this record and a facility to update it is available (through a specific connector or through the web service connector)).

If the task is processing just one row of data (event driven, not schedule) then a Convert XML to recordset step will follow the web service step and then decision steps will follow to check the valid flag and check that the name matches. If they do not match a workflow step could follow to involve humans and/or a standard e-mail could be sent to the customer to query the discrepancy.

Sample task flow:

TaskFlow