vat-validator¶
Pythonic VAT validation library 🌍💳✅
Features¶
Offline VAT code validation using country specific regular expressions and checksum algorithms;
Online validation for European Union VAT codes using VIES web service;
VAT code sanitization;
Fully annotated with type hints, for a better IDE and
mypy
development experience;Tested and validated against 1697 different VAT codes.
Getting started¶
Installation¶
vat-validator
is distributed as standard pip library, and can be installed
by running:
pip install vat-validator
To install the latest development version directly from git:
pip install git+git://github.com/ajcerejeira/vat-validator.git
Usage¶
>>> from vat_validator import inspect_vat, sanitize_vat, vat_is_valid
>>> vat_is_valid('PT', 'PT 502 011 378')
True
>>> sanitize_vat('PT', 'PT 502 011 378')
'502011378'
To validate a VAT number with VIES
web service:
>>> from vat_validator.vies import check_vat
>>> check_vat('PT', '502 011 378')
CheckVATResult(country_code='PT', vat='502011378', request_date=datetime.date(2019, 6, 8), valid=True, name='UNIVERSIDADE DO MINHO', address='LG DO PACO\nBRAGA\n4700-320 BRAGA')
Roadmap¶
These are the goals before the 1.0.0 release:
❌ Have a comprehensive test suite with valid and invalid VAT codes for each country.
❌ Compare the validity of each VAT code used in tests with
TIN
web service.✅ Remove
zeep
dependency, by using standard libraryurllib
to make SOAP requests to VIES web service, making this a module without any dependencies.❌ Add support for
async
requests to VIES web service.
Contributing¶
Pull requests are welcome! Please check the CONTRIBUTING file for contribution guidelines.