| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/18.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Florian da Costa, Weblate, OCA-git-bot, oca-ci, Olivier Bitsch |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/l10n-france: - l10n_fr_siret_account - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - base - l10n_fr_account - base_iban - account - base_setup - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib python-stdnum |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This is the base module for the support of [Chorus Pro](https://chorus-pro.gouv.fr/), the electronic invoicing plateform of the French administration. Chorus Pro specifications are available on [Chorus Pro Community website](https://communaute-chorus-pro.finances.gouv.fr/). All the suppliers of the French administration must send their invoices through Chorus Pro. To know more about Chorus and the obligation to send electronic invoices to the French administration, read [the dedicated page](https://www.economie.gouv.fr/entreprises/marches-publics-facture-electronique) on the website of the Ministry of Economic Affairs. To be able to generate an electronic invoice for Chorus, you need the module *l10n_fr_chorus_factur-x* or *l10n_fr_chorus_ubl*. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.list | chorus.flow | list | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | list | New |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | block | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.move | filter | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.move | field | Inherits account.view_invoice_tree | |
view_move_form |
Chorus support on Customer Invoice form view | account.move | field | Inherits account.view_move_form |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits account.view_partner_property_form |
chorus_invoice_format
Selection
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.move
check_company=True
readonly=True
string='Invoices to Send'
args: 'account.move'
default_get(self, fields_list)
run(self)
chorus_attachment_ids
Many2many → ir.attachment
check_company=True
copy=False
string='Chorus Attachments'
args: 'ir.attachment', 'account_move_chorus_ir_attachment_rel'
chorus_flow_id
Many2one → chorus.flow
check_company=True
copy=False
readonly=True
string='Chorus Flow'
tracking=True
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Identifier'
tracking=True
chorus_service_code
Char
related='partner_id.fr_chorus_service_id.code'
store=True
string='Chorus Service Code'
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
tracking=True
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Update'
invoice_sending_method
Selection
related='commercial_partner_id.invoice_sending_method'
store=True
chorus_update_invoice_status(self)
attachment_id
Many2one → ir.attachment
check_company=True
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
initial_invoice_ids
Many2many → account.move
check_company=True
help='Invoices in the flow before potential rejections'
readonly=True
string='Initial Invoices'
args: 'account.move', 'chorus_flow_initial_account_move_rel', 'chorus_flow_id', 'move_id'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.move
help='Invoices in the flow after potential rejections'
readonly=True
string='Invoices'
args: 'account.move', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
status
Char
copy=False
readonly=True
string='Flow Status (raw value)'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
status_display
Char
compute='_compute_status_display'
store=True
string='Flow Status'
syntax
Selection
copy=False
readonly=True
string='Flow Syntax'
args: []
chorus_cron(self)
get_invoice_identifiers(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
name
Char
required=True
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
service_update(self)
fr_chorus_api_login
Char
groups='base.group_system'
string='Chorus Technical User Login'
fr_chorus_api_password
Char
groups='base.group_system'
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number upon invoice validation. This commitment number must be set in the field 'Customer Reference' of the invoice. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
default=<expr>
readonly=True
string='Use Chorus Qualification Platform'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
fr_chorus_test_api(self)
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
compute='_compute_fr_chorus_required'
readonly=False
store=True
string='Info Required for Chorus'
tracking=True
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
tracking=True
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
invoice_sending_method
Selection
ondelete={'fr_chorus': 'set null'}
selection_add=[('fr_chorus', 'Chorus Pro')]
chorus_cron(self)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/17.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Daniel Reis, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/bank-payment: - account_payment_partner - account_payment_mode OCA/l10n-france: - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - base_iban - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib python-stdnum>=1.18 |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This is the base module for the support of [Chorus Pro](https://chorus-pro.gouv.fr/), the electronic invoicing plateform of the French administration. Chorus Pro specifications are available on [Chorus Pro Community website](https://communaute-chorus-pro.finances.gouv.fr/). All the suppliers of the French administration must send their invoices through Chorus Pro. To know more about Chorus and the obligation to send electronic invoices to the French administration, read [the dedicated page](https://www.economie.gouv.fr/entreprises/marches-publics-facture-electronique) on the website of the Ministry of Economic Affairs. To be able to generate an electronic invoice for Chorus, you need the module *l10n_fr_chorus_factur-x* or *l10n_fr_chorus_ubl*. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | block | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.move | filter | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.move | field | Inherits account.view_invoice_tree | |
view_move_form |
Chorus support on Customer Invoice form view | account.move | field | Inherits account_invoice_transmit_method.view_move_form |
view_partner_form |
chorus.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
chorus_invoice_format
Selection
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.move
check_company=True
readonly=True
string='Invoices to Send'
args: 'account.move'
default_get(self, fields_list)
run(self)
chorus_attachment_ids
Many2many → ir.attachment
copy=False
string='Chorus Attachments'
args: 'ir.attachment', 'account_move_chorus_ir_attachment_rel'
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
tracking=True
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Identifier'
tracking=True
chorus_service_code
Char
related='partner_id.fr_chorus_service_id.code'
store=True
string='Chorus Service Code'
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
tracking=True
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Update'
action_post(self)
chorus_get_invoice(self, chorus_invoice_format)
chorus_update_invoice_status(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
initial_invoice_ids
Many2many → account.move
help='Invoices in the flow before potential rejections'
readonly=True
string='Initial Invoices'
args: 'account.move', 'chorus_flow_initial_account_move_rel', 'chorus_flow_id', 'move_id'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.move
help='Invoices in the flow after potential rejections'
readonly=True
string='Invoices'
args: 'account.move', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
status
Char
copy=False
readonly=True
string='Flow Status (raw value)'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
status_display
Char
compute='_compute_status_display'
store=True
string='Flow Status'
syntax
Selection
copy=False
readonly=True
string='Flow Syntax'
args: []
chorus_cron(self)
get_invoice_identifiers(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
name
Char
required=True
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
service_update(self)
fr_chorus_api_login
Char
groups='base.group_system'
string='Chorus Technical User Login'
fr_chorus_api_password
Char
groups='base.group_system'
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number upon invoice validation. This commitment number must be set in the field 'Customer Reference' of the invoice. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
No public methods.
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
tracking=True
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
tracking=True
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
chorus_cron(self)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/16.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 2.0.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/bank-payment: - account_payment_partner - account_payment_mode OCA/l10n-france: - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib python-stdnum astor |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | div | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.move | filter | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.move | field | Inherits account.view_invoice_tree | |
view_move_form |
Chorus support on Customer Invoice form view | account.move | field | Inherits account_invoice_transmit_method.view_move_form |
view_partner_form |
chorus.res.partner.form | res.partner | xpath | Inherits base.view_partner_form |
chorus_invoice_format
Selection
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.move
readonly=True
string='Invoices to Send'
args: 'account.move'
default_get(self, fields_list)
run(self)
chorus_attachment_ids
Many2many → ir.attachment
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Chorus Attachments'
args: 'ir.attachment', 'account_move_chorus_ir_attachment_rel'
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
tracking=True
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Identifier'
tracking=True
chorus_service_code
Char
related='partner_id.fr_chorus_service_id.code'
store=True
string='Chorus Service Code'
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
tracking=True
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Update'
transmit_method_id
Many2one
readonly=True
states={'draft': [('readonly', False)]}
action_post(self)
chorus_api_consulter_historique(self, api_params, session=None)
chorus_get_invoice(self, chorus_invoice_format)
chorus_update_invoice_status(self)
prepare_chorus_deposer_flux_payload(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
initial_invoice_ids
Many2many → account.move
help='Invoices in the flow before potential rejections'
readonly=True
string='Initial Invoices'
args: 'account.move', 'chorus_flow_initial_account_move_rel', 'chorus_flow_id', 'move_id'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.move
help='Invoices in the flow after potential rejections'
readonly=True
string='Invoices'
args: 'account.move', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
status
Char
copy=False
readonly=True
string='Flow Status (raw value)'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
status_display
Char
compute='_compute_status_display'
store=True
string='Flow Status'
syntax
Selection
copy=False
readonly=True
string='Flow Syntax'
args: []
chorus_api_consulter_cr(self, api_params, session=None)
chorus_api_rechercher_fournisseur(self, api_params, session=None)
chorus_cron(self)
get_invoice_identifiers(self)
name_get(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
name
Char
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
api_consulter_service(self, api_params, session)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=80)
service_factures_publiques_dont_use(self)
service_update(self)
fr_chorus_api_login
Char
string='Chorus Technical User Login'
fr_chorus_api_password
Char
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number upon invoice validation. This commitment number must be set in the field 'Customer Reference' of the invoice. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
chorus_get_api_params(self, raise_if_ko=False)
chorus_get_piste_api_oauth_identifiers(self, raise_if_ko=False)
chorus_post(self, api_params, url_path, payload, session=None)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
No public methods.
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
tracking=True
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
tracking=True
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
check_fr_chorus_service(self)
chorus_cron(self)
chorus_service_ok(self)
fr_chorus_api_rechercher_services(self, api_params, session)
fr_chorus_api_structures_consulter(self, api_params, session)
fr_chorus_api_structures_rechercher(self, api_params, session=None)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/15.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:43 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/l10n-france: - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib python-stdnum>=1.18 astor |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | div | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.move | filter | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.move | field | Inherits account.view_invoice_tree | |
view_move_form |
Chorus support on Customer Invoice form view | account.move | button | Inherits account_invoice_transmit_method.view_move_form |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits base.view_partner_form |
chorus_invoice_format
Selection
readonly=True
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.move
readonly=True
string='Invoices to Send'
args: 'account.move'
default_get(self, fields_list)
run(self)
chorus_attachment_ids
Many2many → ir.attachment
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Chorus Attachments'
args: 'ir.attachment', 'account_move_chorus_ir_attachment_rel'
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
tracking=True
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Indentifier'
tracking=True
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
tracking=True
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Date'
action_post(self)
chorus_api_check_commitment_number(self, api_params, company_identifier, order_ref, session=None, raise_if_not_found=True)
chorus_api_consulter_historique(self, api_params, session=None)
chorus_check_commitment_number(self, company, order_ref, raise_if_not_found=True)
chorus_get_invoice(self, chorus_invoice_format)
chorus_invoice_check_commitment_number(self, raise_if_not_found=True)
chorus_update_invoice_status(self)
prepare_chorus_deposer_flux_payload(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
initial_invoice_ids
Many2many → account.move
help='Invoices in the flow before potential rejections'
string='Initial Invoices'
args: 'account.move', 'chorus_flow_initial_account_move_rel', 'chorus_flow_id', 'move_id'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.move
help='Invoices in the flow after potential rejections'
readonly=True
string='Invoices'
args: 'account.move', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
status
Char
copy=False
readonly=True
string='Flow Status (raw value)'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
status_display
Char
compute='_compute_status_display'
store=True
string='Flow Status'
syntax
Selection
copy=False
readonly=True
string='Flow Syntax'
args: []
chorus_api_consulter_cr(self, api_params, session=None)
chorus_api_rechercher_fournisseur(self, api_params, session=None)
chorus_cron(self)
get_invoice_identifiers(self)
name_get(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
name
Char
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
api_consulter_service(self, api_params, session)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=80)
service_factures_publiques_dont_use(self)
service_update(self)
fr_chorus_api_login
Char
string='Chorus Technical User Login'
fr_chorus_api_password
Char
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number ('engagement juridique' in French) upon invoice validation. It corresponds to the 'customer order reference' in the administrative tongue. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
chorus_get_api_params(self, raise_if_ko=False)
chorus_get_piste_api_oauth_identifiers(self, raise_if_ko=False)
chorus_post(self, api_params, url_path, payload, session=None)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
No public methods.
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
tracking=True
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
tracking=True
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
check_fr_chorus_service(self)
chorus_cron(self)
chorus_service_ok(self)
fr_chorus_api_rechercher_services(self, api_params, session)
fr_chorus_api_structures_consulter(self, api_params, session)
fr_chorus_api_structures_rechercher(self, api_params, session=None)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/14.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 2.1.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, GitHub, OCA Transbot, Sébastien BEAU, oca-travis, Weblate, OCA-git-bot, hparfr, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:11 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/l10n-france: - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - account - base_setup - base - web - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - base_iban - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib python-stdnum astor |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | div | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.move | filter | Inherits account.view_account_invoice_filter |
view_invoice_tree |
account.move | field | Inherits account.view_invoice_tree | |
view_move_form |
Chorus support on Customer Invoice form view | account.move | button | Inherits account_invoice_transmit_method.view_move_form |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits base.view_partner_form |
chorus_invoice_format
Selection
readonly=True
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.move
readonly=True
string='Invoices to Send'
args: 'account.move'
default_get(self, fields_list)
run(self)
chorus_attachment_ids
Many2many → ir.attachment
copy=False
readonly=True
states={'draft': [('readonly', False)]}
string='Chorus Attachments'
args: 'ir.attachment', 'account_move_chorus_ir_attachment_rel'
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
tracking=True
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Identifier'
tracking=True
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
tracking=True
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Date'
action_post(self)
chorus_api_check_commitment_number(self, api_params, company_identifier, order_ref, session=None, raise_if_not_found=True)
chorus_api_consulter_historique(self, api_params, session=None)
chorus_check_commitment_number(self, company, order_ref, raise_if_not_found=True)
chorus_get_invoice(self, chorus_invoice_format)
chorus_invoice_check_commitment_number(self, commitment_number, raise_if_not_found=True)
chorus_update_invoice_status(self)
prepare_chorus_deposer_flux_payload(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
initial_invoice_ids
Many2many → account.move
help='Invoices in the flow before potential rejections'
string='Initial Invoices'
args: 'account.move', 'chorus_flow_initial_account_move_rel', 'chorus_flow_id', 'move_id'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.move
help='Invoices in the flow after potential rejections'
readonly=True
string='Invoices'
args: 'account.move', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
string='Notes'
status
Char
copy=False
readonly=True
string='Flow Status (raw value)'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
status_display
Char
compute='_compute_status_display'
store=True
string='Flow Status'
syntax
Selection
copy=False
readonly=True
string='Flow Syntax'
args: []
chorus_api_consulter_cr(self, api_params, session=None)
chorus_api_rechercher_fournisseur(self, api_params, session=None)
chorus_cron(self)
get_invoice_identifiers(self)
name_get(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
string='Engagement Required'
name
Char
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
api_consulter_service(self, api_params, session)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=80)
service_factures_publiques_dont_use(self)
service_update(self)
fr_chorus_api_login
Char
string='Chorus Technical User Login'
fr_chorus_api_password
Char
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number ('engagement juridique' in French) upon invoice validation. It corresponds to the 'customer order reference' in the administrative tongue. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
chorus_get_api_params(self, raise_if_ko=False)
chorus_get_piste_api_oauth_identifiers(self, raise_if_ko=False)
chorus_post(self, api_params, url_path, payload, session=None)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
No public methods.
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
tracking=True
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
tracking=True
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
check_fr_chorus_service(self)
chorus_cron(self)
chorus_service_ok(self)
fr_chorus_api_rechercher_services(self, api_params, session)
fr_chorus_api_structures_consulter(self, api_params, session)
fr_chorus_api_structures_rechercher(self, api_params, session=None)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/12.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, Sylvain LE GAL, OCA Transbot, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/l10n-france |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:25 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/contract: - agreement_account - agreement OCA/l10n-france: - l10n_fr_siret OCA/server-env: - server_environment OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - account - base_setup - base - web - product - decimal_precision - bus - web_tour - uom - analytic - portal - http_routing - digest - base_iban - base_vat - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
invoice_form |
Chorus support on Customer Invoice form view | account.invoice | button | Inherits account_invoice_transmit_method.invoice_form |
res_config_settings_view_form |
chorus.account.res.settings.form | res.config.settings | div | Inherits account.res_config_settings_view_form |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.invoice | filter | Inherits account.view_account_invoice_filter |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits base.view_partner_form |
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
track_visibility='onchange'
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Identifier'
track_visibility='onchange'
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
track_visibility='onchange'
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Date'
action_move_create(self)
chorus_api_check_commitment_number(self, api_params, company_identifier, order_ref, session=None, raise_if_not_found=True)
chorus_api_consulter_historique(self, api_params, session=None)
chorus_check_commitment_number(self, company, order_ref, raise_if_not_found=True)
chorus_get_invoice(self, chorus_invoice_format)
chorus_invoice_check_commitment_number(self, raise_if_not_found=True)
chorus_update_invoice_status(self)
prepare_chorus_deposer_flux_payload(self)
chorus_invoice_format
Selection
readonly=True
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.invoice
readonly=True
string='Invoices to Send'
args: 'account.invoice'
default_get(self, fields_list)
run(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.invoice
readonly=True
string='Invoices'
args: 'account.invoice', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
string='Notes'
status
Char
copy=False
readonly=True
string='Flow Status'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
syntax
Selection
copy=False
readonly=True
required=True
string='Flow Syntax'
args: []
chorus_api_consulter_cr(self, api_params, session=None)
chorus_api_rechercher_fournisseur(self, api_params, session=None)
chorus_cron(self)
get_invoice_identifiers(self)
name_get(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
string='Chorus Identifier'
code
Char
required=True
string='Service Code'
engagement_required
Boolean
string='Engagement Required'
name
Char
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
api_consulter_service(self, api_params, session)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=80)
service_factures_publiques_dont_use(self)
service_update(self)
fr_chorus_api_login
Char
string='Chorus Technical User Login'
fr_chorus_api_password
Char
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number ('engagement juridique' in French) upon invoice validation. It corresponds to the 'customer order reference' in the administrative tongue. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
chorus_get_api_params(self, raise_if_ko=False)
chorus_get_piste_api_oauth_identifiers(self, raise_if_ko=False)
chorus_post(self, api_params, url_path, payload, session=None)
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Boolean
help="If you select 'Use Chorus Pro API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus Pro API'
No public methods.
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
track_visibility='onchange'
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
track_visibility='onchange'
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
check_fr_chorus_service(self)
chorus_cron(self)
chorus_service_ok(self)
fr_chorus_api_rechercher_services(self, api_params, session)
fr_chorus_api_structures_consulter(self, api_params, session)
fr_chorus_api_structures_rechercher(self, api_params, session=None)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/10.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 3.0.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, GitHub, OCA Transbot, oca-travis, Weblate, OCA-git-bot |
| WEBSITE | |
| WEBSITE | http://www.akretion.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:20:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/contract: - agreement_account OCA/l10n-france: - l10n_fr_siret OCA/server-tools: - base_view_inheritance_extension odoo/odoo: - l10n_fr - base_iban - account - base_setup - base - web_kanban - web - product - decimal_precision - bus - web_tour - report - analytic - web_planner - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests_oauthlib |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
account_invoice_chorus_send_form |
account.invoice.chorus.send | form | New | |
chorus_flow_form |
chorus.flow.form | chorus.flow | form | New |
chorus_flow_search |
chorus.flow.search | chorus.flow | search | New |
chorus_flow_tree |
chorus.flow.tree | chorus.flow | tree | New |
chorus_partner_service_form |
chorus.partner.service.form | chorus.partner.service | form | New |
chorus_partner_service_search |
chorus.partner.service.search | chorus.partner.service | search | New |
chorus_partner_service_tree |
chorus.partner.service.tree | chorus.partner.service | tree | New |
invoice_form |
Chorus support on Customer Invoice form view | account.invoice | button | Inherits account_invoice_transmit_method.invoice_form |
view_account_config_settings |
chorus.account.config.settings.form | account.config.settings | xpath | Inherits account.view_account_config_settings |
view_account_invoice_filter |
Chorus groupby on Invoice search view | account.invoice | filter | Inherits account.view_account_invoice_filter |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits base.view_partner_form |
view_partner_property_form |
chorus.account_tab.res.partner.form | res.partner | group | Inherits account_invoice_transmit_method.view_partner_property_form |
fr_chorus_api_login
Char
readonly=False
related='company_id.fr_chorus_api_login'
fr_chorus_api_password
Char
readonly=False
related='company_id.fr_chorus_api_password'
fr_chorus_check_commitment_number
Boolean
readonly=False
related='company_id.fr_chorus_check_commitment_number'
fr_chorus_expiry_remind_user_ids
Many2many
readonly=False
related='company_id.fr_chorus_expiry_remind_user_ids'
fr_chorus_invoice_format
Selection
readonly=False
related='company_id.fr_chorus_invoice_format'
fr_chorus_pwd_expiry_date
Date
readonly=False
related='company_id.fr_chorus_pwd_expiry_date'
fr_chorus_qualif
Boolean
readonly=False
related='company_id.fr_chorus_qualif'
group_chorus_api
Selection
help="If you select 'Use Chorus API', it will add all users to the Chorus API group."
implied_group='l10n_fr_chorus_account.group_chorus_api'
string='Use Chorus API'
args: [(0, 'Do not use Chorus API'), (1, 'Use Chorus API via PISTE')]
No public methods.
chorus_flow_id
Many2one → chorus.flow
copy=False
readonly=True
string='Chorus Flow'
track_visibility='onchange'
args: 'chorus.flow'
chorus_identifier
Integer
copy=False
readonly=True
string='Chorus Invoice Indentifier'
track_visibility='onchange'
chorus_status
Char
copy=False
readonly=True
string='Chorus Invoice Status'
track_visibility='onchange'
chorus_status_date
Datetime
copy=False
readonly=True
string='Last Chorus Invoice Status Date'
action_move_create(self)
chorus_api_check_commitment_number(self, api_params, company_identifier, order_ref, session=None, raise_if_not_found=True)
chorus_api_consulter_historique(self, api_params, session=None)
chorus_check_commitment_number(self, company, order_ref, raise_if_not_found=True)
chorus_get_invoice(self, chorus_invoice_format)
chorus_invoice_check_commitment_number(self, raise_if_not_found=True)
chorus_update_invoice_status(self)
prepare_chorus_deposer_flux_payload(self)
chorus_invoice_format
Selection
readonly=True
related='company_id.fr_chorus_invoice_format'
company_id
Many2one → res.company
readonly=True
string='Company'
args: 'res.company'
invoice_count
Integer
readonly=True
string='Number of Invoices'
invoice_ids
Many2many → account.invoice
readonly=True
string='Invoices to Send'
args: 'account.invoice'
default_get(self, fields_list)
run(self)
attachment_id
Many2one → ir.attachment
copy=False
readonly=True
string='File Sent to Chorus'
args: 'ir.attachment'
company_id
Many2one → res.company
default=<expr>
readonly=True
required=True
string='Company'
args: 'res.company'
date
Date
copy=False
readonly=True
required=True
args: 'Flow Date'
invoice_identifiers
Boolean
compute='_compute_invoice_identifiers'
readonly=True
store=True
invoice_ids
One2many → account.invoice
readonly=True
string='Invoices'
args: 'account.invoice', 'chorus_flow_id'
name
Char
copy=False
readonly=True
required=True
args: 'Flow Ref'
notes
Text
copy=False
readonly=True
string='Notes'
status
Char
copy=False
readonly=True
string='Flow Status'
status_date
Datetime
copy=False
readonly=True
string='Last Status Update'
syntax
Selection
copy=False
readonly=True
required=True
string='Flow Syntax'
args: []
chorus_api_consulter_cr(self, api_params, session=None)
chorus_api_rechercher_fournisseur(self, api_params, session=None)
chorus_cron(self)
get_invoice_identifiers(self)
name_get(self)
syntax_odoo2chorus(self)
update_flow_status(self)
active
Boolean
default=True
chorus_identifier
Integer
readonly=True
code
Char
required=True
string='Service Code'
engagement_required
Boolean
string='Engagement Required'
name
Char
string='Service Name'
partner_id
Many2one → res.partner
domain=[('parent_id', '=', False)]
ondelete='cascade'
string='Customer'
args: 'res.partner'
api_consulter_service(self, api_params, session)
name_get(self)
name_search(self, name='', args=None, operator='ilike', limit=80)
service_factures_publiques_dont_use(self)
service_update(self)
fr_chorus_api_login
Char
string='Chorus Technical User Login'
fr_chorus_api_password
Char
string='Chorus Technical User Password'
fr_chorus_check_commitment_number
Boolean
help="If enabled, Odoo will check the commitment number ('engagement juridique' in French) upon invoice validation. It corresponds to the 'customer order reference' in the administrative tongue. It will also check it upon sale order validation if the module l10n_fr_chorus_sale is installed."
string='Check Commitment Numbers'
fr_chorus_expiry_remind_user_ids
Many2many → res.users
string='Users Receiving the Expiry Reminder'
args: 'res.users', 'fr_chorus_api_expiry_remind_user_rel', 'company_id', 'user_id'
fr_chorus_invoice_format
Selection
string='Chorus Invoice Format'
args: []
fr_chorus_pwd_expiry_date
Date
string='Chorus Technical User Password Expiry Date'
fr_chorus_qualif
Boolean
help='Use the Chorus Pro qualification website'
args: 'Chorus Test Mode'
chorus_api_expiry_reminder_cron(self)
chorus_expiry_remind_user_list(self)
chorus_get_api_params(self, raise_if_ko=False)
chorus_get_piste_api_oauth_identifiers(self, raise_if_ko=False)
chorus_post(self, api_params, url_path, payload, session=None)
fr_chorus_identifier
Integer
readonly=True
args: 'Chorus Identifier'
fr_chorus_required
Selection
string='Info Required for Chorus'
track_visibility='onchange'
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_count
Integer
compute='_compute_fr_chorus_service_count'
readonly=True
string='Number of Chorus Services'
fr_chorus_service_id
Many2one → chorus.partner.service
ondelete='restrict'
string='Chorus Service'
track_visibility='onchange'
args: 'chorus.partner.service'
fr_chorus_service_ids
One2many → chorus.partner.service
string='Chorus Services'
args: 'chorus.partner.service', 'partner_id'
check_fr_chorus_service(self)
chorus_cron(self)
chorus_service_ok(self)
fr_chorus_api_rechercher_services(self, api_params, session)
fr_chorus_api_structures_consulter(self, api_params, session)
fr_chorus_api_structures_rechercher(self, api_params, session=None)
fr_chorus_identifier_and_required_button(self)
fr_chorus_identifier_get(self)
fr_chorus_required_get(self)
fr_chorus_services_get(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/l10n-france |
| GIT | |
| GIT | https://github.com/OCA/l10n-france.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/l10n-france/tree/8.0/l10n_fr_chorus_account |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | French Localization |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Akretion |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Akretion |
| COMMITTERS | |
| COMMITTERS | Alexis de Lattre, oca-travis, OCA-git-bot |
| WEBSITE | |
| WEBSITE | http://www.akretion.com |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:11:27 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/account-invoicing: - account_invoice_transmit_method OCA/l10n-france: - l10n_fr_siret odoo/odoo: - l10n_fr - base_iban - base - account - base_setup - web_kanban - web - product - decimal_precision - report - analytic - board - edi - email_template - account_chart - base_vat |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
invoice_form |
chorus.account.invoice.form | account.invoice | xpath | Inherits account_invoice_transmit_method.invoice_form |
public_market_form |
public.market.form | public.market | form | New |
public_market_search |
public.market.search | public.market | search | New |
public_market_tree |
public.market.tree | public.market | tree | New |
view_account_config_settings |
chorus.account.config.settings.form | account.config.settings | xpath | Inherits account.view_account_config_settings |
view_account_invoice_filter |
chorus.account.invoice.search | account.invoice | group | Inherits account.view_account_invoice_filter |
view_partner_form |
chorus.res.partner.form | res.partner | field | Inherits base.view_partner_form |
view_partner_property_form |
chorus.account_tab.res.partner.form | res.partner | xpath | Inherits account_invoice_transmit_method.view_partner_property_form |
fr_vat_scheme
Selection
related='company_id.partner_id.fr_vat_scheme'
No public methods.
public_market_id
Many2one → public.market
ondelete='restrict'
readonly=True
states={'draft': [('readonly', False)]}
string='Public Market'
track_visibility='onchange'
args: 'public.market'
action_move_create(self)
active
Boolean
default=True
string='Active'
code
Char
copy=False
required=True
size=50
string='Market Number'
company_id
Many2one → res.company
default=<expr>
string='Company'
args: 'res.company'
display_name
Char
compute='compute_display_name_field'
readonly=True
store=True
invoice_ids
One2many → account.invoice
readonly=True
string='Invoices'
args: 'account.invoice', 'public_market_id'
name
Char
required=True
string='Market Name'
partner_id
Many2one → res.partner
domain=[('customer', '=', True), ('parent_id', '=', False)]
ondelete='restrict'
required=True
string='Customer'
args: 'res.partner'
compute_display_name_field(self)
fr_vat_scheme
Selection
related='partner_id.fr_vat_scheme'
No public methods.
fr_chorus_required
Selection
string='Info Required for Chorus'
track_visibility='onchange'
args: [('none', 'None'), ('service', 'Service'), ('engagement', 'Engagement'), ('service_or_engagement', 'Service or Engagement'), ('service_and_engagement', 'Service and Engagement')]
fr_chorus_service_code
Char
help='Service Code may be required for Chorus invoices'
size=100
string='Chorus Service Code'
track_visibility='onchange'
fr_vat_scheme
Selection
default='debit'
string='French VAT Scheme'
args: [('debit', 'Debit'), ('cashin', 'Cash in')]
No public methods.