VAT Number Validation

base_vat
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/base_vat
VERSION
VERSION 2.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSOdoo Translation Bot, Josse Colpaert, Xavier ALT, Xavier Morel, Joren Van Onder, Jairo Llopis, Julien Castiaux, Andrea Grazioso (agr-odoo), Tiffany Chang (tic), Gorash, William Braeckman, Stanislas Sobieski, william-andre, Louis Baudoux, nni-odoo, Mylyna Hy, Maximilien (malb), Yosua Nicolaus, Antoine Dupuis (andu), Antoine Boonen, Dylan Kiss (dyki), Paolo Gatti, Nicolas Viseur (vin), guva-odoo, dijo-odoo, Mathieu Coutant, Khumam Alzagim, Claire (clbr), Ricardo Gomes Rodrigues, Corentin Heinix (cohe), ppat-odoo, Carmine, Krzysztof Magusiak (krma), krip-odoo, hatr-odoo, utma-odoo, nsirjacobs, Ashish Nirmal
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:40
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings setting Inherits account.res_config_settings_view_form
view_partner_base_vat_form view.partner.base.vat.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • has_foreign_fiscal_position Boolean
    compute='_compute_has_foreign_fiscal_position'
Public methods (0)

No public methods.

New fields (4)
  • country_id Many2one
    inverse='_inverse_vat' store=True
  • perform_vies_validation Boolean
    compute='_compute_perform_vies_validation'
  • vat Char
    inverse='_inverse_vat' store=True
  • vies_valid Boolean
    compute='_compute_vies_valid' help='European VAT numbers are automatically checked on the VIES database.' readonly=False store=True string='Intra-Community Valid' tracking=True
Public methods (44)
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_br(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cr(self, vat)
  • check_vat_de(self, vat)
  • check_vat_do(self, vat)
  • check_vat_ec(self, vat)
  • check_vat_gr(self, vat)
    Allows some custom test VAT number to be valid to allow testing Greece EDI.
  • check_vat_gt(self, vat)
    Allow some custom Guatemala NIT numbers to pass the test to be used for testing the Guatemalan EDI.
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit - In case of EU format it will be the first 8 digits of the full VAT
  • check_vat_id(self, vat)
    Temporary Indonesian VAT validation to support the new format introduced in January 2024.
  • check_vat_ie(self, vat)
  • check_vat_il(self, vat)
  • check_vat_in(self, vat)
  • check_vat_jp(self, vat)
  • check_vat_ma(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ro(self, vat)
    Check Romanian VAT number that can be for example 'RO1234567897 or 'xyyzzaabbxxxx' or '9000xxxxxxxx'. - For xyyzzaabbxxxx, 'x' can be any number, 'y' is the two last digit of a year (in the range 00…99), 'a' is a month, b is a day of the month, the number 8 and 9 are Country or district code (For those twos digits, we decided to let some flexibility to avoid complexifying the regex and also for maintainability) - 9000xxxxxxxx, start with 9000 and then is filled by number In the range 0...9 Also stdum also checks the CUI or CIF (Romanian company identifier). So a number like '123456897' will pass.
  • check_vat_rs(self, vat)
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_sa(self, vat)
    Check company VAT TIN according to ZATCA specifications: The VAT number should start and begin with a '3' and be 15 digits long
  • check_vat_th(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_tw(self, vat)
    Since Feb. 2025, due to the imminent exhaustion of the UBN numbers, the validation logic was changed from using a division by 10 for the final check to using a division by 5, making numbers that were previously invalid now valid. The stdnum implementation of the VAT validation is not up to date with this latest update, so we implement our own validation to support these new valid UBNs.
  • check_vat_ua(self, vat)
  • check_vat_uy(self, vat)
    Taken from python-stdnum's master branch, as the release doesn't handle RUT numbers starting with 22. origin https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/uy/rut.py FIXME Can be removed when python-stdnum does a new release.
  • check_vat_uz(self, vat)
  • check_vat_ve(self, vat)
  • check_vat_vn(self, vat)
    VAT format validator for Vietnam. Supported formats: - 10-digit format (Enterprise tax ID): e.g., 0101243150 - 13-digit format with branch suffix: e.g., 0101243150-001 - 12-digit format (Personal ID / Citizen ID - CCCD): e.g., 079123456789 (used as tax ID for individuals from July 1st, 2025) Note: - stdnum.vn.mst.validate() currently only supports 10- and 13-digit VAT numbers - and does not accept the 12-digit personal tax ID (CCCD) format introduced from 01/07/2025. - This helper provides a lightweight format-level validator for use in the meantime. - Can be removed once stdnum.vn.mst adds CCCD support.
  • create(self, vals_list)
    @api.model_create_multi
  • format_vat_al(self, vat)
  • format_vat_ch(self, vat)
  • format_vat_cl(self, vat)
    It is better to always have the -
  • format_vat_co(self, vat)
    It is better to always have the -
  • format_vat_eu(self, vat)
  • format_vat_hu(self, vat)
    We put the - back as we require it for the EDI and the different parts will make it clear to the user
  • format_vat_is(self, vat)
  • format_vat_sm(self, vat)
  • format_vat_vn(self, vat)
    It is better to always have the -
  • is_valid_ruc_ec(self, vat)
  • write(self, vals)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Denis Ledoux, Xavier Morel, Joren Van Onder, qdp-odoo, Wolfgang Taferner, Odoo Online, Jairo Llopis, Xavier-Do, Luis Torres, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Tiffany Chang (tic), Stanislas Sobieski, aliya, Louis Baudoux, nni-odoo, Louis Wicket (wil), Mylyna Hy, Maximilien (malb), Thomas Becquevort (thbe), Gauthier Wala (gawa), Yosua Nicolaus, Antoine Dupuis (andu), Antoine Boonen, Dylan Kiss (dyki), Paolo Gatti, Joris Makauskis, Nicolas Viseur (vin), Walid (wasa), sesn-odoo, guva-odoo, kdeb@odoo.com, Mathieu (mcou), AMZIL Ayoub, Louis (wil), dijo-odoo, Mathieu Coutant, Khumam Alzagim, Claire (clbr), Ricardo Gomes Rodrigues, ppat-odoo, Carmine, Krzysztof Magusiak (krma), utma-odoo, agrabsi
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings setting Inherits account.res_config_settings_view_form
view_partner_base_vat_form view.partner.base.vat.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (0)

No new fields.

Public methods (4)
  • adjust_vals_country_id(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • raise_vat_error_message(self, country=False)
  • write(self, vals)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (3)
  • perform_vies_validation Boolean
    compute='_compute_perform_vies_validation'
  • vies_valid Boolean
    compute='_compute_vies_valid' help='European VAT numbers are automatically checked on the VIES database.' readonly=False store=True string='Intra-Community Valid' tracking=True
  • vies_vat_to_check Char
    compute='_compute_vies_vat_to_check'
Public methods (39)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_br(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cr(self, vat)
  • check_vat_de(self, vat)
  • check_vat_do(self, vat)
  • check_vat_ec(self, vat)
  • check_vat_gr(self, vat)
    Allows some custom test VAT number to be valid to allow testing Greece EDI.
  • check_vat_gt(self, vat)
    Allow some custom Guatemala NIT numbers to pass the test to be used for testing the Guatemalan EDI.
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit - In case of EU format it will be the first 8 digits of the full VAT
  • check_vat_id(self, vat)
    Temporary Indonesian VAT validation to support the new format introduced in January 2024.
  • check_vat_ie(self, vat)
  • check_vat_il(self, vat)
  • check_vat_in(self, vat)
  • check_vat_ma(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ro(self, vat)
    Check Romanian VAT number that can be for example 'RO1234567897 or 'xyyzzaabbxxxx' or '9000xxxxxxxx'. - For xyyzzaabbxxxx, 'x' can be any number, 'y' is the two last digit of a year (in the range 00…99), 'a' is a month, b is a day of the month, the number 8 and 9 are Country or district code (For those twos digits, we decided to let some flexibility to avoid complexifying the regex and also for maintainability) - 9000xxxxxxxx, start with 9000 and then is filled by number In the range 0...9 Also stdum also checks the CUI or CIF (Romanian company identifier). So a number like '123456897' will pass.
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_sa(self, vat)
    Check company VAT TIN according to ZATCA specifications: The VAT number should start and begin with a '3' and be 15 digits long
  • check_vat_t(self, vat)
  • check_vat_th(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_tw(self, vat)
    Since Feb. 2025, due to the imminent exhaustion of the UBN numbers, the validation logic was changed from using a division by 10 for the final check to using a division by 5, making numbers that were previously invalid now valid. The stdnum implementation of the VAT validation is not up to date with this latest update, so we implement our own validation to support these new valid UBNs.
  • check_vat_ua(self, vat)
  • check_vat_uy(self, vat)
    Taken from python-stdnum's master branch, as the release doesn't handle RUT numbers starting with 22. origin https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/uy/rut.py FIXME Can be removed when python-stdnum does a new release.
  • check_vat_ve(self, vat)
  • check_vat_vn(self, vat)
    VAT format validator for Vietnam. Supported formats: - 10-digit format (Enterprise tax ID): e.g., 0101243150 - 13-digit format with branch suffix: e.g., 0101243150-001 - 12-digit format (Personal ID / Citizen ID - CCCD): e.g., 079123456789 (used as tax ID for individuals from July 1st, 2025) Note: - stdnum.vn.mst.validate() currently only supports 10- and 13-digit VAT numbers - and does not accept the 12-digit personal tax ID (CCCD) format introduced from 01/07/2025. - This helper provides a lightweight format-level validator for use in the meantime. - Can be removed once stdnum.vn.mst adds CCCD support.
  • create(self, vals_list)
    @api.model_create_multi
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • format_vat_ch(self, vat)
  • format_vat_eu(self, vat)
  • format_vat_sm(self, vat)
  • is_valid_ruc_ec(self, vat)
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Josse Colpaert, Denis Ledoux, Joren Van Onder, qdp-odoo, Wolfgang Taferner, Odoo Online, Jorge Pinna Puissant, Luis Torres, Andrea Grazioso (agr-odoo), Anh Thao Pham (pta), Katherine Zaoral, Tiffany Chang (tic), Gorash, Stanislas Sobieski, Nicolas (vin), aliya, bat-odoo, JordiMForgeFlow, Nshimiyimana Séna, Louis Baudoux, nni-odoo, Habib (ayh), Louis Wicket (wil), Mylyna Hy, Maximilien (malb), Shawcker, Tommy (tong), Julien (jula), Mahamadasif Ansari, Thomas Becquevort (thbe), Saurabh Mishra, Daniel Kosky (dako), Antoine Dupuis (andu), Antoine Boonen, Dylan Kiss (dyki), Paolo Gatti, Mehdi Bendali Hacine, Joris Makauskis, Nicolas Viseur (vin), Walid (wasa), sesn-odoo, guva-odoo, kdeb@odoo.com, Mathieu (mcou), AMZIL Ayoub, Louis (wil), Mathieu Coutant, Robert Coleman, Khumam Alzagim, Claire (clbr), Jonathan Castillo (jcs), Ricardo Gomes Rodrigues, Carmine, utma-odoo, agrabsi
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:04
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings setting Inherits account.res_config_settings_view_form
view_partner_base_vat_form view.partner.base.vat.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (0)

No new fields.

Public methods (4)
  • adjust_vals_country_id(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • raise_vat_error_message(self, country=False)
  • write(self, vals)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (3)
  • perform_vies_validation Boolean
    compute='_compute_perform_vies_validation'
  • vies_valid Boolean
    compute='_compute_vies_valid' help='European VAT numbers are automatically checked on the VIES database.' readonly=False store=True string='Intra-Community Valid' tracking=True
  • vies_vat_to_check Char
    compute='_compute_vies_vat_to_check'
Public methods (41)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_au(self, vat)
    The Australian equivalent of a VAT number is an ABN number. TFN (Australia Tax file numbers) are private and not to be entered into systems or publicly displayed, so ABN numbers are the public facing number that legally must be displayed on all invoices
  • check_vat_br(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cr(self, vat)
  • check_vat_de(self, vat)
  • check_vat_do(self, vat)
  • check_vat_ec(self, vat)
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit - In case of EU format it will be the first 8 digits of the full VAT
  • check_vat_id(self, vat)
    Temporary Indonesian VAT validation to support the new format introduced in January 2024.
  • check_vat_ie(self, vat)
  • check_vat_il(self, vat)
  • check_vat_in(self, vat)
  • check_vat_ma(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_nz(self, vat)
    The New Zealand equivalent of a VAT number is an IRD number (GST number is another name for this). IRD/GST numbers must legally must be displayed on all tax invoices. https://arthurdejong.org/python-stdnum/doc/1.13/stdnum.nz.ird#module-stdnum.nz.ird
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ro(self, vat)
    Check Romanian VAT number that can be for example 'RO1234567897 or 'xyyzzaabbxxxx' or '9000xxxxxxxx'. - For xyyzzaabbxxxx, 'x' can be any number, 'y' is the two last digit of a year (in the range 00…99), 'a' is a month, b is a day of the month, the number 8 and 9 are Country or district code (For those twos digits, we decided to let some flexibility to avoid complexifying the regex and also for maintainability) - 9000xxxxxxxx, start with 9000 and then is filled by number In the range 0...9 Also stdum also checks the CUI or CIF (Romanian company identifier). So a number like '123456897' will pass.
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_sa(self, vat)
    Check company VAT TIN according to ZATCA specifications: The VAT number should start and begin with a '3' and be 15 digits long
  • check_vat_t(self, vat)
  • check_vat_th(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_tw(self, vat)
    Since Feb. 2025, due to the imminent exhaustion of the UBN numbers, the validation logic was changed from using a division by 10 for the final check to using a division by 5, making numbers that were previously invalid now valid. The stdnum implementation of the VAT validation is not up to date with this latest update, so we implement our own validation to support these new valid UBNs.
  • check_vat_ua(self, vat)
  • check_vat_uy(self, vat)
    Taken from python-stdnum's master branch, as the release doesn't handle RUT numbers starting with 22. origin https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/uy/rut.py FIXME Can be removed when python-stdnum does a new release.
  • check_vat_ve(self, vat)
  • check_vat_vn(self, vat)
    VAT format validator for Vietnam. Supported formats: - 10-digit format (Enterprise tax ID): e.g., 0101243150 - 13-digit format with branch suffix: e.g., 0101243150-001 - 12-digit format (Personal ID / Citizen ID - CCCD): e.g., 079123456789 (used as tax ID for individuals from July 1st, 2025) Note: - stdnum.vn.mst.validate() currently only supports 10- and 13-digit VAT numbers - and does not accept the 12-digit personal tax ID (CCCD) format introduced from 01/07/2025. - This helper provides a lightweight format-level validator for use in the meantime. - Can be removed once stdnum.vn.mst adds CCCD support.
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • create(self, vals_list)
    @api.model_create_multi
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • format_vat_ch(self, vat)
  • format_vat_eu(self, vat)
  • format_vat_sm(self, vat)
  • is_valid_ruc_ec(self, vat)
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Josse Colpaert, Laurent Smet, Andrea Grazioso (agr-odoo), oco-odoo, Anh Thao Pham (pta), Katherine Zaoral, Tiffany Chang (tic), Stanislas Sobieski, Ricardo Gomes Rodrigues (rigr), Nicolas (vin), Julien Van Roy, Merlin (megu), bat-odoo, JordiMForgeFlow, Nshimiyimana Séna, Pouya Malekinejad, nni-odoo, Maximilien (malb), Shawcker, Tommy (tong), Julien (jula), Mahamadasif Ansari, Thomas Becquevort (thbe), Dylan Kiss (dyki), Mehdi Bendali Hacine, Nguyễn Đại Dương, Joris Makauskis, Nicolas Viseur (vin), Walid (wasa), sesn-odoo, guva-odoo, kdeb@odoo.com, Christopher Ormaza, Mathieu (mcou), Raúl, Robert Coleman, Khumam Alzagim
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_base_vat_form view.partner.base.vat.form res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (0)

No new fields.

Public methods (4)
  • adjust_vals_country_id(self, vals)
  • create(self, vals_list)
    @api.model_create_multi
  • raise_vat_error_message(self, country=False)
  • write(self, vals)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vies_failed_message Char
    store=False args: 'Technical field display a message to the user if the VIES check fails.'
Public methods (38)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_au(self, vat)
    The Australian equivalent of a VAT number is an ABN number. TFN (Australia Tax file numbers) are private and not to be entered into systems or publicly displayed, so ABN numbers are the public facing number that legally must be displayed on all invoices
  • check_vat_br(self, vat)
    Example of a Brazilian CNPJ number: 76.634.583/0001-74. The 13th digit is the check digit of the previous 12 digits. The check digit is calculated by multiplying the first 12 digits by weights and calculate modulo 11 of the result. The 14th digit is the check digit of the previous 13 digits. Calculated the same way. Both remainders are appended to the first 12 digits.
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cr(self, vat)
  • check_vat_de(self, vat)
  • check_vat_ec(self, vat)
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit - In case of EU format it will be the first 8 digits of the full VAT
  • check_vat_id(self, vat)
    Temporary Indonesian VAT validation to support the new format introduced in January 2024.
  • check_vat_ie(self, vat)
  • check_vat_il(self, vat)
  • check_vat_in(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_nz(self, vat)
    The New Zealand equivalent of a VAT number is an IRD number (GST number is another name for this). IRD/GST numbers must legally must be displayed on all tax invoices. https://arthurdejong.org/python-stdnum/doc/1.13/stdnum.nz.ird#module-stdnum.nz.ird
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_sa(self, vat)
    Check company VAT TIN according to ZATCA specifications: The VAT number should start and begin with a '3' and be 15 digits long
  • check_vat_t(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_tw(self, vat)
    Since Feb. 2025, due to the imminent exhaustion of the UBN numbers, the validation logic was changed from using a division by 10 for the final check to using a division by 5, making numbers that were previously invalid now valid. The stdnum implementation of the VAT validation is not up to date with this latest update, so we implement our own validation to support these new valid UBNs.
  • check_vat_ua(self, vat)
  • check_vat_uy(self, vat)
    Taken from python-stdnum's master branch, as the release doesn't handle RUT numbers starting with 22. origin https://github.com/arthurdejong/python-stdnum/blob/master/stdnum/uy/rut.py FIXME Can be removed when python-stdnum does a new release.
  • check_vat_ve(self, vat)
  • check_vat_vn(self, vat)
    VAT format validator for Vietnam. Supported formats: - 10-digit format (Enterprise tax ID): e.g., 0101243150 - 13-digit format with branch suffix: e.g., 0101243150-001 - 12-digit format (Personal ID / Citizen ID - CCCD): e.g., 079123456789 (used as tax ID for individuals from July 1st, 2025) Note: - stdnum.vn.mst.validate() currently only supports 10- and 13-digit VAT numbers - and does not accept the 12-digit personal tax ID (CCCD) format introduced from 01/07/2025. - This helper provides a lightweight format-level validator for use in the meantime. - Can be removed once stdnum.vn.mst adds CCCD support.
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • create(self, vals_list)
    @api.model_create_multi
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • format_vat_ch(self, vat)
  • format_vat_eu(self, vat)
  • format_vat_sm(self, vat)
  • is_valid_ruc_ec(self, vat)
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Nicolas Martinelli, Laurent Smet, wan, Xavier-Do, Andrea Grazioso (agr-odoo), oco-odoo, Baptiste Vergote, Philémon van Helden, Stanislas Sobieski, Ricardo Gomes Rodrigues (rigr), Julien Van Roy, Merlin (megu), bat-odoo, JordiMForgeFlow, Nshimiyimana Séna, Maximilien (malb), Shawcker, Tommy (tong), Julien (jula), Mahamadasif Ansari, Thomas Becquevort (thbe), Dylan Kiss (dyki), Mehdi Bendali Hacine, Joris Makauskis, Nicolas Viseur (vin), Walid (wasa), sesn-odoo, guva-odoo, kdeb@odoo.com, Christopher Ormaza
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:26
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company xpath Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_form res.partner.vat.inherit res.partner xpath Inherits base.view_partner_form
Models touched (4)

New fields (0)

No new fields.

Public methods (4)
  • adjust_vals_country_id(self, vals)
  • create(self, vals)
    @api.model
  • raise_vat_error_message(self, country=False)
  • write(self, vals)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat Char
    string='VAT/Tax ID'
Public methods (31)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_au(self, vat)
    The Australian equivalent of a VAT number is an ABN number. TFN (Australia Tax file numbers) are private and not to be entered into systems or publicly displayed, so ABN numbers are the public facing number that legally must be displayed on all invoices
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_de(self, vat)
  • check_vat_ec(self, vat)
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit - In case of EU format it will be the first 8 digits of the full VAT
  • check_vat_id(self, vat)
    Temporary Indonesian VAT validation to support the new format introduced in January 2024.
  • check_vat_ie(self, vat)
  • check_vat_in(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_sa(self, vat)
    Check company VAT TIN according to ZATCA specifications: The VAT number should start and begin with a '3' and be 15 digits long
  • check_vat_t(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_ua(self, vat)
  • check_vat_ve(self, vat)
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • create(self, vals_list)
    @api.model_create_multi
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • format_vat_ch(self, vat)
  • format_vat_eu(self, vat)
  • format_vat_sm(self, vat)
  • is_valid_ruc_ec(self, vat)
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Josse Colpaert, Christophe Simonis, Nicolas Martinelli, Yannick Tivisse, Laurent Smet, Adrian Torres, wan, Xavier-Do, Victor Feyens, Andrea Grazioso (agr-odoo), Moisés López, alt-odoo, oco-odoo, Anh Thao Pham (pta), Baptiste Vergote, Philémon van Helden, jbw, root, Kevin Baptiste, Jigar Vaghela, Ricardo Gomes Rodrigues (rigr), william, JordiMForgeFlow, Nshimiyimana Séna, Maximilien (malb), Shawcker, Tommy (tong), Julien (jula), Mahamadasif Ansari, Thomas Becquevort (thbe)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company xpath Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_form res.partner.vat.inherit res.partner xpath Inherits base.view_partner_form
Models touched (3)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (26)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
    Check Albania VAT number
  • check_vat_au(self, vat)
    The Australian equivalent of a VAT number is an ABN number. TFN (Australia Tax file numbers) are private and not to be entered into systems or publicly displayed, so ABN numbers are the public facing number that legally must be displayed on all invoices
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_hu(self, vat)
    Check Hungary VAT number that can be for example 'HU12345676 or 'xxxxxxxx-y-zz' or '8xxxxxxxxy' - For xxxxxxxx-y-zz, 'x' can be any number, 'y' is a number between 1 and 5 depending on the person and the 'zz' is used for region code. - 8xxxxxxxxy, Tin number for individual, it has to start with an 8 and finish with the check digit
  • check_vat_ie(self, vat)
    Temporary Ireland VAT validation to support the new format introduced in January 2013 in Ireland, until upstream is fixed. TODO: remove when fixed upstream
  • check_vat_in(self, vat)
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_ph(self, vat)
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_t(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_ua(self, vat)
  • check_vat_ve(self, vat)
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • create(self, vals_list)
    @api.model_create_multi
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • format_vat_ch(self, vat)
  • format_vat_eu(self, vat)
  • format_vat_sm(self, vat)
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting/Accounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Christophe Simonis, Cedric Snauwaert, Nicolas Martinelli, Damien Bouvy, Yannick Tivisse, Odoo Online, RomainLibert, Adrian Torres, wan, Xavier-Do, Andrea Grazioso (agr-odoo), alt-odoo, oco-odoo, Anh Thao Pham (pta), Katherine Zaoral, Baptiste Vergote, Philémon van Helden, root, Ricardo Gomes Rodrigues (rigr), Nhomar Hernández
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:41
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company xpath Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_form res.partner.vat.inherit res.partner xpath Inherits base.view_partner_form
view_partner_short_form res.partner.short.vat.inherit res.partner xpath Inherits base.view_partner_short_form
Models touched (3)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (20)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_al(self, vat)
  • check_vat_ar(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cl(self, vat)
  • check_vat_co(self, vat)
  • check_vat_ie(self, vat)
    Temporary Ireland VAT validation to support the new format introduced in January 2013 in Ireland, until upstream is fixed. TODO: remove when fixed upstream
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_ua(self, vat)
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • create(self, values)
    @api.model
  • default_compact(self, vat)
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
  • write(self, values)
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Christophe Simonis, Goffin Simon, Nicolas Martinelli, qdp-odoo, GitHub, Yannick Tivisse, qsm-odoo, Christophe Monniez, Jorge Pinna Puissant, Adrian Torres, Xavier-Do, jerome hanke (jhk), Andrea Grazioso (agr-odoo), oco-odoo, Baptiste Vergote, Philémon van Helden
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:00
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - http_routing
    - digest
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company xpath Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_form res.partner.vat.inherit res.partner xpath Inherits base.view_partner_form
view_partner_short_form res.partner.short.vat.inherit res.partner xpath Inherits base.view_partner_short_form
Models touched (3)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    readonly=False related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (16)
  • check_vat(self)
    @api.constrains('vat', 'country_id')
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_cl(self, vat)
  • check_vat_co(self, rut)
    Check Colombian RUT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_ie(self, vat)
    Temporary Ireland VAT validation to support the new format introduced in January 2013 in Ireland, until upstream is fixed. TODO: remove when fixed upstream
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_ru(self, vat)
    Check Russia VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_tr(self, vat)
  • check_vat_ua(self, vat)
    Check Ukraine VAT number. Method copied from vatnumber 1.2 lib https://code.google.com/archive/p/vatnumber/
  • check_vat_xi(self, vat)
    Temporary Nothern Ireland VAT validation following Brexit As of January 1st 2021, companies in Northern Ireland have a new VAT number starting with XI TODO: remove when stdnum is updated to 1.16 in supported distro
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/11.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Christophe Simonis, Nicolas Martinelli, Jérome Maes, xmo-odoo, Richard Mathot, qdp-odoo, GitHub, Yannick Tivisse, Odoo Online, Christophe Monniez, Jorge Pinna Puissant, Andrea Grazioso (agr-odoo)
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:53:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - analytic
    - web_planner
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (4)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
res_config_settings_view_form res.config.settings.view.form.inherit.base.vat res.config.settings div Inherits account.res_config_settings_view_form
view_partner_form res.partner.vat.inherit res.partner xpath Inherits base.view_partner_form
view_partner_short_form res.partner.short.vat.inherit res.partner xpath Inherits base.view_partner_short_form
Models touched (3)

New fields (1)
  • vat_check_vies Boolean
    string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (1)
  • vat_check_vies Boolean
    related='company_id.vat_check_vies' string='Verify VAT Numbers'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (13)
  • check_vat(self)
    @api.constrains('vat', 'commercial_partner_country_id')
  • check_vat_al(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_ie(self, vat)
    Temporary Ireland VAT validation to support the new format introduced in January 2013 in Ireland, until upstream is fixed. TODO: remove when fixed upstream
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_nl(self, vat)
    Temporary Netherlands VAT validation to support the new format introduced in January 2020, until upstream is fixed. Algorithm detail: http://kleineondernemer.nl/index.php/nieuw-btw-identificatienummer-vanaf-1-januari-2020-voor-eenmanszaken TODO: remove when fixed upstream
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_tr(self, vat)
  • check_vat_ua(self, vat)
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/10.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Denis Ledoux, Christophe Simonis, Nicolas Martinelli, qdp-odoo, Yannick Tivisse
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:50:47
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - web_tour
    - report
    - analytic
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.

    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
view_partner_form res.partner.vat.inherit res.partner field Inherits account.view_partner_property_form
Models touched (2)

New fields (1)
  • vat_check_vies Boolean
    help="If checked, Partners VAT numbers will be fully validated against EU's VIES service rather than via a simple format validation (checksum)." string='VIES VAT Check'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (11)
  • check_vat(self)
    @api.constrains('vat')
  • check_vat_al(self, vat)
  • check_vat_ch(self, vat)
    Check Switzerland VAT number.
  • check_vat_ie(self, vat)
    Temporary Ireland VAT validation to support the new format introduced in January 2013 in Ireland, until upstream is fixed. TODO: remove when fixed upstream
  • check_vat_mx(self, vat)
    Mexican VAT verification Verificar RFC México
  • check_vat_no(self, vat)
    Check Norway VAT number.See http://www.brreg.no/english/coordination/number.html
  • check_vat_pe(self, vat)
  • check_vat_tr(self, vat)
  • fix_eu_vat_number(self, country_id, vat)
    @api.model
  • simple_vat_check(self, country_code, vat_number)
    @api.model
    Check the VAT number depending of the country. http://sima-pc.com/nif.php
  • vies_vat_check(self, country_code, vat_number)
    @api.model
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/9.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYAccounting
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Josse Colpaert, Christophe Simonis, Goffin Simon, Richard Mathot, qdp-odoo, Yannick Tivisse, qsm-odoo
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:48:29
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - bus
    - report
    - analytic
    - web_tip
    - web_planner
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.
      
    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
view_partner_form res.partner.vat.inherit res.partner field Inherits account.view_partner_property_form
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/8.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Thibault Delavallée, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), Denis Ledoux, Fabien Meghazi, Christophe Simonis, Kersten Jeremy, Aaron Bohy
WEBSITE
WEBSITEhttps://www.odoo.com/page/accounting
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:45:38
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - decimal_precision
    - mail
    - report
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.
      
    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
view_partner_form res.partner.vat.inherit res.partner field Inherits account.view_partner_property_form
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/7.0/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Twinkle Christian (OpenERP), Cecile Tonglet, Stephane Wirtel, Odoo Translation Bot, Turkesh Patel (Open ERP), Numerigraphe - Lionel Sausin, Antonin Bourguignon, Martin Trigaux, Ajay Chauhan (OpenERP), Purnendu Singh (OpenERP), Fabien Pinckaers, Olivier Dony, Vo Minh Thu, Hardik, pso (OpenERP), Launchpad Translations on behalf of openerp, Quentin (OpenERP), Kuldeep Joshi (OpenERP), Denis Ledoux, Mayur Maheshwari (OpenERP), Jigar Amin - OpenERP, help, Fabien Meghazi, Jiten (OpenERP), dle@openerp.com, Bhumi Thakkar (Open ERP)
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:43:09
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - web_kanban
    - web
    - product
    - process
    - decimal_precision
    - mail
    - analytic
    - board
    - edi
    - email_template
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partner's VAT numbers.
=========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:
--------------------------------------------------------
    * By default, a simple off-line check is performed using the known validation
      rules for the country, usually a simple check digit. This is quick and 
      always available, but allows numbers that are perhaps not truly allocated,
      or not valid anymore.
      
    * When the "VAT VIES Check" option is enabled (in the configuration of the user's
      Company), VAT numbers will be instead submitted to the online EU VIES
      database, which will truly verify that the number is valid and currently
      allocated to a EU company. This is a little bit slower than the simple
      off-line check, requires an Internet connection, and may not be available
      all the time. If the service is not available or does not support the
      requested country (e.g. for non-EU countries), a simple check will be performed
      instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.
    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
view_partner_form res.partner.vat.inherit res.partner field Inherits account.view_partner_property_form
Models touched (0)

No models found for this module.

REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/6.1/base_vat
VERSION
VERSION 1.0
CATEGORY
CATEGORYHidden/Dependency
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOpenERP SA
MAINTAINERS
MAINTAINERSOpenERP SA
COMMITTERS
COMMITTERSRaphael Collet, Stephane Wirtel, Fabien Pinckaers, Antony Lesuisse, Olivier Dony, Vo Minh Thu, Launchpad Translations on behalf of openerp, Quentin (OpenERP), vro, niv-openerp, Christophe Simonis, Yannick Vaucher, Carlos Vásquez, Els Van Vossel, Israel Fermin Montilla, Hardik Ansodariy (OpenERP), ARA (OpenERP), mtr, Mustufa Rangwala, psi (Open ERP), Amit Parmar (OpenERP), Kirti Savalia (OpenERP), openerp user, Rolv Råen rora@adego.no, P. Christeas, skh
WEBSITE
WEBSITEhttp://www.openerp.com
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:41:35
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - account
    - base_setup
    - base
    - product
    - process
    - decimal_precision
    - analytic
    - board
    - edi
    - email_template
    - mail
    - base_tools
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
VAT validation for Partners' VAT numbers
========================================

After installing this module, values entered in the VAT field of Partners will
be validated for all supported countries. The country is inferred from the
2-letter country code that prefixes the VAT number, e.g. ``BE0477472701``
will be validated using the Belgian rules.

There are two different levels of VAT number validation:

 * By default, a simple off-line check is performed using the known validation
   rules for the country, usually a simple check digit. This is quick and 
   always available, but allows numbers that are perhaps not truly allocated,
   or not valid anymore.
 * When the "VAT VIES Check" option is enabled (in the configuration of the user's
   Company), VAT numbers will be instead submitted to the online EU VIES
   database, which will truly verify that the number is valid and currently
   allocated to a EU company. This is a little bit slower than the simple
   off-line check, requires an Internet connection, and may not be available
   all the time. If the service is not available or does not support the
   requested country (e.g. for non-EU countries), a simple check will be performed
   instead.

Supported countries currently include EU countries, and a few non-EU countries
such as Chile, Colombia, Mexico, Norway or Russia. For unsupported countries,
only the country code will be validated.

    

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
company_form_vat res.company.form.vat.inherit res.company field Inherits base.view_company_form
view_partner_form res.partner.vat.inherit res.partner field Inherits account.view_partner_property_form
Models touched (0)

No models found for this module.