SIRET Lookup

l10n_fr_siret_lookup
REPOSITORY
REPOSITORYOCA/l10n-france
GIT
GIThttps://github.com/OCA/l10n-france.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-france/tree/18.0/l10n_fr_siret_lookup
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPartner
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Le Filament
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Le Filament
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Rémi - Le Filament, Benoît
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-france
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:19
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-france:
    - l10n_fr_siret
OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - base_vat
    - account
    - base_setup
    - base
    - web
    - onboarding
    - product
    - mail
    - bus
    - web_tour
    - html_editor
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - l10n_fr
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-stdnum
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This modules updates partner fields via the SIRENE database
\<https://data.opendatasoft.com\>. It uses the dataset
*economicref-france-sirene-v3* of opendatasoft
\<https://public.opendatasoft.com/explore/dataset/economicref-france-sirene-v3/information/\>.

It computes a theorical VAT number from the SIREN and then checks the
validity of the VAT number (depending on configuration) on
[VIES](https://ec.europa.eu/taxation_customs/vies/) (if invalid, the VAT
number is discarded).

The module supports 2 scenarios:

- update of an existing partner via the menu *Action \> SIREN Lookup*,
- creation of a new partner: start by setting the VAT number field, the
  SIREN field or SIRET field and Odoo will set the other fields. For
  usability purposes, it also work when you write the VAT number, SIREN
  or SIRET in the company name field.

In the 2 scenarios, it will update the following fields:

- Company Name
- Street
- Postal Code
- City
- Country
- SIREN and NIC (i.e. SIRET)
- VAT Number
- Language (creation scenario only)

Code Analysis

Views touched (3)
XML IDNameModelTypeStatus
fr_siret_lookup_form fr.siret.lookup form New
fr_siret_lookup_line_form fr.siret.lookup.line form New
res_config_settings_view_form res.config.settings.view.form.inherit.fr.siret.lookup res.config.settings setting Inherits base_vat.res_config_settings_view_form
Models touched (5)

New fields (3)
  • line_ids One2many → fr.siret.lookup.line
    readonly=True string='Results' args: 'fr.siret.lookup.line', 'wizard_id'
  • name Char
    required=True string='Name to Search'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • get_lines(self)

New fields (15)
  • active Boolean
  • ape Char
    args: 'APE Code'
  • ape_label Char
    args: 'APE Label'
  • category Char
  • city Char
  • country_id Many2one → res.country
    string='Country' args: 'res.country'
  • creation_date Date
  • legal_type Char
  • name Char
  • siren Char
    args: 'SIREN'
  • siret Char
    args: 'SIRET'
  • staff Char
    args: '# Staff'
  • street Char
  • wizard_id Many2one → fr.siret.lookup
    ondelete='cascade' string='Wizard' args: 'fr.siret.lookup'
  • zip Char
Public methods (1)
  • update_partner(self)

New fields (1)
  • force_vat_siret_lookup Boolean
    default=False string='Force VAT Numbers during SIRET Lookups if VIES check times out or is disabled'
Public methods (0)

No public methods.

New fields (1)
  • force_vat_siret_lookup Boolean
    readonly=False related='company_id.force_vat_siret_lookup' string='Force VAT Numbers during SIRET Lookups if VIES check times out or is disabled'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (4)
  • siren_onchange(self)
    @api.onchange('siren')
  • siren_siret_vat_in_name_onchange(self)
    @api.onchange('name')
  • siret_onchange(self)
    @api.onchange('siret')
  • vat_onchange(self)
    @api.onchange('vat')
REPOSITORY
REPOSITORYOCA/l10n-france
GIT
GIThttps://github.com/OCA/l10n-france.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-france/tree/16.0/l10n_fr_siret_lookup
VERSION
VERSION 1.2.0
CATEGORY
CATEGORYPartner
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Le Filament
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Le Filament
COMMITTERS
COMMITTERSAlexis de Lattre, Jairo Llopis, Weblate, OCA-git-bot, oca-ci, Rémi - Le Filament
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-france
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:59
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-france:
    - l10n_fr_siret
OCA/server-tools:
    - base_view_inheritance_extension
odoo/odoo:
    - l10n_fr
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-stdnum
requests
astor
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
fr_siret_lookup_form fr.siret.lookup form New
fr_siret_lookup_line_form fr.siret.lookup.line form New
Models touched (3)

New fields (3)
  • line_ids One2many → fr.siret.lookup.line
    readonly=True string='Results' args: 'fr.siret.lookup.line', 'wizard_id'
  • name Char
    required=True string='Name to Search'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • get_lines(self)

New fields (15)
  • active Boolean
  • ape Char
    args: 'APE Code'
  • ape_label Char
    args: 'APE Label'
  • category Char
  • city Char
  • country_id Many2one → res.country
    string='Country' args: 'res.country'
  • creation_date Date
  • legal_type Char
  • name Char
  • siren Char
    args: 'SIREN'
  • siret Char
    args: 'SIRET'
  • staff Char
    args: '# Staff'
  • street Char
  • wizard_id Many2one → fr.siret.lookup
    ondelete='cascade' string='Wizard' args: 'fr.siret.lookup'
  • zip Char
Public methods (1)
  • update_partner(self)

New fields (0)

No new fields.

Public methods (4)
  • siren_onchange(self)
    @api.onchange('siren')
  • siren_siret_vat_in_name_onchange(self)
    @api.onchange('name')
  • siret_onchange(self)
    @api.onchange('siret')
  • vat_onchange(self)
    @api.onchange('vat')
REPOSITORY
REPOSITORYOCA/l10n-france
GIT
GIThttps://github.com/OCA/l10n-france.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/l10n-france/tree/14.0/l10n_fr_siret_lookup
VERSION
VERSION 1.1.0
CATEGORY
CATEGORYPartner
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Le Filament
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Le Filament
COMMITTERS
COMMITTERSAlexis de Lattre, OCA Transbot, oca-travis, OCA-git-bot
WEBSITE
WEBSITEhttps://github.com/OCA/l10n-france
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:11
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/l10n-france:
    - l10n_fr_siret
odoo/odoo:
    - l10n_fr
    - account
    - base_setup
    - base
    - web
    - product
    - mail
    - bus
    - web_tour
    - uom
    - analytic
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - digest
    - resource
    - base_iban
    - base_vat
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES python-stdnum
requests
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (2)
XML IDNameModelTypeStatus
fr_siret_lookup_form fr.siret.lookup form New
fr_siret_lookup_line_form fr.siret.lookup.line form New
Models touched (3)

New fields (3)
  • line_ids One2many → fr.siret.lookup.line
    readonly=True string='Results' args: 'fr.siret.lookup.line', 'wizard_id'
  • name Char
    required=True string='Name to Search'
  • partner_id Many2one → res.partner
    readonly=True required=True args: 'res.partner', 'Partner'
Public methods (2)
  • default_get(self, fields_list)
    @api.model
  • get_lines(self)

New fields (14)
  • ape Char
    args: 'APE Code'
  • ape_label Char
    args: 'APE Label'
  • category Char
    args: 'Category'
  • city Char
    string='City'
  • country_id Many2one → res.country
    string='Country' args: 'res.country'
  • creation_date Date
    args: 'Creation date'
  • legal_type Char
    args: 'Legal Type'
  • name Char
    string='Name'
  • siren Char
    args: 'SIREN'
  • siret Char
    args: 'SIRET'
  • staff Char
    args: '# Staff'
  • street Char
    string='Street'
  • wizard_id Many2one → fr.siret.lookup
    ondelete='cascade' string='Wizard' args: 'fr.siret.lookup'
  • zip Char
    string='Zip'
Public methods (1)
  • update_partner(self)

New fields (0)

No new fields.

Public methods (4)
  • siren_onchange(self)
    @api.onchange('siren')
  • siren_siret_vat_in_name_onchange(self)
    @api.onchange('name')
  • siret_onchange(self)
    @api.onchange('siret')
  • vat_onchange(self)
    @api.onchange('vat')
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/l10n-france
PULL REQUEST
PULL REQUEST[17.0][MIG] l10n_fr_siret_lookup : Migration to 17.0 (#680)
STATUS
STATUSOpen migration PR - not merged yet for this version
REPOSITORY
REPOSITORYOCA/l10n-france
PULL REQUEST
PULL REQUEST[19.0] [MIG] l10n_fr_siret_lookup: Migration to 19.0 (#761)