法国¶
模块¶
The following modules related to the French localization are available:
名称 |
技术名称 |
描述 |
---|---|---|
France - Accounting |
|
French fiscal localization package that applies only to companies based in mainland France and doesn’t include DOM-TOMs. |
France - Accounting Reports |
|
Export of the French VAT report, which can be sent to the DGFiP, an OGA, or a professional accountant. |
France - Payroll with Accounting |
|
Includes the necessary accounting data for the French payroll rules. |
France - Factur-X integration with Chorus Pro |
|
Adds fields needed for submitting invoices to Chorus Pro. |
France - FEC Export |
|
Generates the FEC file as defined by the Decree of July 29, 2013. |
France - FEC Import |
|
Import of standard FEC files, useful for importing accounting history. |
France - Adding Mandatory Invoice Mentions (Decree no. 2022-1299) |
|
Adds address fields required to comply with Decree 2022-1299. |
France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) |
|
注解
The localization’s core modules are installed automatically with the localization. The rest can be manually installed.
Localization overview¶
The French localization package ensures compliance with French fiscal and accounting regulations. It includes tools for managing taxes, fiscal positions, reporting, and a predefined chart of accounts tailored to France’s standards.
The French localization package provides the following key features to ensure compliance with local fiscal and accounting regulations:
科目表: a predefined structure tailored to French accounting standards
财政状况(税项和科目映射): automated tax adjustments based on customer or supplier registration status
Taxes: pre-configured tax rates, including standard VAT, zero-rated, and exempt options
报表¶
Installing the France - Accounting
(l10n_fr
) module gives access to some accounting reports specific to France, such as:
Bilan comptable (FR) (Balance Sheet)
Compte de résultats (FR) (Profit and Loss)
Rapport de taxes (FR) (Tax Report)
会计¶
E-Invoicing¶
The Chorus Pro portal, managed by the AIFE (Agence pour l’Informatique financière de l’État), is the official platform for submitting electronic invoices to French public entities. It allows businesses to send and manage invoices, track their processing status, and access payment updates. Since January 2020, electronic invoicing has been mandatory for all business-to-government (B2G) transactions in France. Odoo supports integration with Chorus Pro to submit invoices generated in Odoo.
配置¶
To send invoices to Chorus Pro, the following configuration is required:
Install the France - Factur-X integration with Chorus Pro (
l10n_fr_facturx_chorus_pro
) module.Register with Peppol, as invoices are sent from Odoo to Chorus Pro via the Peppol network.
If you don’t already have a Chorus Pro account, go to the Chorus Pro page, click Créer un compte, and create one.
客户¶
To submit invoices to Chorus Pro, configure the relevant customers’ contact form as follows:
Verify the Country and Tax ID fields are filled out.
In the Sales & Purchase tab, ensure the SIRET field is completed.
In the Accounting tab, fill in the following fields in the Electronic Invoicing section:
Format: Select BIS Billing 3.0.
Peppol e-address (EAS): Select 0009 - SIRET-CODE.
Peppol Endpoint: Type
11000201100044
, the reference used by Chorus Pro.
Sending invoices to Chorus Pro¶
To send invoices to Chorus Pro, follow these steps:
Go to
and open or create the invoice.Make sure the following fields are filled in the Other Info tab:
Buyer Reference: Service Exécutant in Chorus Pro
Contract Reference: Numéro de Marché in Chorus Pro
Purchase Order Reference: Engagement Juridique in Chorus Pro
Confirm the invoice.
Click Send & Print and, in the Send window, enable Peppol Bis Billing 3.0.
Click Send & Print.
Once the invoice is sent, the Peppol status of the invoice is updated to Done.
参见
FEC - Fichier des Écritures Comptables¶
An FEC Fichier des Écritures Comptables audit file contains all the accounting data and entries recorded in all the accounting journals for a financial year. The entries in the file must be arranged in chronological order. Since January 2014, every French company is required to produce and transmit this file upon request by the tax authorities for audit purposes.
FEC 导入¶
Install the France - FEC Import
(l10n_fr_fec_import
) module to import FEC files from other software.
To enable this feature, go to Accounting Import section, click Import and Import FEC. Then, in the FEC Import window, upload the FEC file and click Import.
. In the注解
Importing FEC files from different years requires no particular actions or computations. However, if multiple files contain RAN Reports à Nouveaux with the starting balance for the year, these entries are automatically marked as unnecessary in Odoo and may need to be deleted.
文件格式¶
注解
FEC files must be in CSV format, as XML format is not supported.
The FEC CSV file is a plain text file structured as a data table. The first line serves as the header, defining the list of fields for each entry, and each following line represents a single accounting entry without any specific order.
FEC files must comply with the following technical specifications:
**** :UTF-8、UTF-8-SIG 和 iso8859_15.
隔 :以下任一项:“;”或“|”或“,”或“TAB”.
行终止** :同时支持 CR+LF (
\r\n
) 和 LF (\n
) 字符组。期格 :“%Y%m%d`
字段描述和使用¶
# |
字段名称 |
描述 |
使用 |
格式 |
---|---|---|---|---|
01 |
日记代码 |
日志代码 |
“journal.code”和“journal.name”(如果未提供“JournalLib` |
字母数字 |
02 |
期刊图书馆 |
日记账标签 |
“journal.name` |
字母数字 |
03 |
EcritureNum |
特定于条目的每个日志序列号的编号 |
“move.name` |
字母数字 |
04 |
EcritureDate |
会计分录日期 |
|
Date (yyyyMMdd) |
05 |
CompteNum |
账户编号 |
“帐户.代码` |
字母数字 |
06 |
CompteLib |
账户标签 |
“account.name` |
字母数字 |
07 |
CompAuxNum |
辅助帐号(接受空) |
|
字母数字 |
08 |
CompAuxLib |
辅助帐户标签(接受空) |
“partner.name` |
字母数字 |
09 |
片材参考 |
参考文件 |
“move.ref”和“move.name”,如果未提供“EcritureNum` |
字母数字 |
10 |
片状日期 |
文件日期 |
|
Date (yyyyMMdd) |
11 |
EcritureLib |
帐户条目标签 |
“move_line.姓名` |
字母数字 |
12 |
借项 |
借方总额 |
“move_line.借记` |
浮动 |
13 |
贷项 |
信用额度(不允许使用字段名称“Crédit”) |
“move_line.credit` |
浮动 |
14 |
EcritureLet |
会计分录交叉引用(接受空) |
|
字母数字 |
15 |
日期让我们 |
会计分录日期(接受空) |
在日历年度结束时,未使用的应计费用将被 |
Date (yyyyMMdd) |
16 |
有效日期 |
会计分录验证日期 |
在日历年度结束时,未使用的应计费用将被 |
Date (yyyyMMdd) |
17 |
蒙坦特维斯 |
货币金额(接受空值) |
|
浮动 |
18 |
伊德维塞 |
货币标识符(接受空值) |
“currency.name` |
字母数字 |
These two fields appear in the same order as the others, replacing them.
12 |
蒙坦特 |
金额 |
“move_line.debit”或“move_line.credit” |
浮动 |
13 |
森斯 |
可以是“C”表示贷方,“D”表示借方 |
确定“move_line.debit”或“move_line.credit” |
字符 |
实现细节¶
The following accounting entities are imported from the FEC files: Accounts, Journals, Partners, and Moves. The module automatically determines the encoding, line terminator, and separator used in the file. Next, a check is performed to ensure that each line has the correct number of fields matching the header. If the check is successful, the entire file is read, stored in memory, and scanned. Accounting entities are then imported one type at a time in the following order.
科目¶
Each accounting entry is associated with an account identified by the CompteNum field.
代码匹配¶
If an account with the same code already exists, the existing one is used rather than creating a new one. In Odoo, account numbers follow the default digit length of the fiscal localization. Since the FEC module is tied to the French localization, the default account length is 6 digits. This means that trailing zeros in account codes are removed, and the comparison between the account codes in the FEC file and those already in Odoo is made based only on the first six digits of the codes.
Example
The account code 65800000
in the file is matched with an existing 658000
account in Odoo,
and the existing account is used instead of creating a new one.
可调和标志¶
An account is technically flagged as reconcilable if the first line in which it appears has the EcritureLet field filled out, indicating that the accounting entry will be reconciled with another one.
注解
The field can be left empty on the line, but the entry must still be reconciled with an unrecorded payment. The account is flagged as reconcilable once the import of the move lines requires it.
账户类型和模板匹配¶
Since the account type is not specified in the FEC format, new accounts are created with the default type Current Assets. After the import process, they are matched against the installed Chart of Account templates. The reconcile flag is also determined this way.
The matching is performed by comparing the left-most digits, starting with all digits, followed by 3 digits, and then 2 digits.
Example
名称 |
代码 |
全面比较 |
3 位数字比较 |
2 位数字比较 |
---|---|---|---|---|
模板 |
|
|
|
|
CompteNum |
|
|
|
|
(无结果) |
没有找到匹配 |
The account type is then flagged as payable and reconcilable based on the account template.
日记账¶
Journals are checked against the existing ones in Odoo to avoid duplicates, even when importing multiple FEC files.
If a journal with the same code already exists, the existing journal is used instead of creating a new one.
New journals have the prefix FEC- added to their name. For example, ACHATS becomes FEC-ACHATS.
注解
Journals are not archived, allowing the user to manage them as desired.
日志类型确定¶
The journal type is not specified in the format (similar to the accounts) and is initially created with the default type general.
At the end of the import process, the journal type is determined based on the following rules regarding related moves and accounts:
- bank: Moves in these journals always include a line (debit or credit) impacting a liquidity account.cash / bank can be interchanged, so bank is assigned when this condition is met.
- sale: Moves in these journals mostly have debit lines on receivable accounts and credit lines on tax income accounts.销售退款日记帐项目是倒排的借方/贷方。
- purchase: Moves in these journals mostly have credit lines on payable accounts and debit lines on expense accounts.购买退款日记帐项目是倒排的借方/贷方。
- general: Used for everything else.
注解
A minimum of three moves is required to identify the journal type.
A threshold of 70% of the moves must meet the criteria for a journal type to be determined.
Example
Suppose we are analyzing the moves that share a certain journal_id.
凭证 |
数量 |
百分比 |
---|---|---|
具有销售科目行且没有采购科目行 |
0 |
0 |
具有采购科目行和无销售科目行 |
1 |
25% |
具有流动性账户行 |
3 |
75% |
合计 |
4 |
100% |
The journal type would be bank, because the bank’s move percentage (75%) exceeds the threshold (70%).
联系人¶
Each contact keeps its Reference from the CompAuxNum field.
注解
These fields are searchable based on previous FEC imports for fiscal/audit purposes.
小技巧
Similar and potential duplicate contacts can be merged using the Data Cleaning App.
凭证¶
Entries are posted and reconciled immediately upon submission, with the EcritureLet field used to match the entries.
The EcritureNum field represents the name of the moves, but it may sometimes be left empty. In such cases, the PieceRef field is used instead.
舍入问题¶
A rounding tolerance is applied based on currency precision for debit and credit amounts (i.e., 0.01 for EUR). If the difference falls under this tolerance, a new line is added to the move, called Import rounding difference, targeting the following accounts:
658000
对增加的借项收取不同的费用758000
Produits divers de gestion courante, for add credits
缺少移动名称¶
If the the EcritureNum field is not filled out and PieceRef field is not suited to determine the move name (it may be used as an accounting move line reference), it becomes impossible to identify which lines should be grouped into a single move, and effectively preventing the creation of balanced moves.
In such cases, a final attempt is made to group all lines by the same journal and date (JournalLib, EcritureDate). If this grouping generates balanced moves (sum(credit) - sum(debit) = 0), then each different combination of journal and date creates a new move.
Example
“ACH” + “2021/05/01” –>名为“20210501”的期刊“ACH”的新举措。
If this attempt fails, an error message is displayed, listing all the move lines that are considered unbalanced.
Contact information¶
If a line includes contact information, it is copied to the accounting move itself, provided the targeted journal is of type payable or receivable.
FEC Export¶
To download the FEC, install the France - FEC Export`(`l10n_fr_fec) module, then go to . In the FEC window, fill in the following fields:
Start Date
End Date
Test File: Enable this option to test the FEC file generation.
Excluded Journals
Then, click Generate.
财务申报表¶
*liasse fiscale*(税务申报表)是企业必须每年向税务机关提交的一系列标准化财务文件。它全面总结了公司的财务活动并确定企业税收。
Teledec 是一个用于使用会计记录数据准备和提交税务申报表的平台。要将您存储在 Odoo 中的会计数据与 Teledec 同步,并以电子方式将您公司的 liasse fiscale 发送给 DGFiP(公共财政总局),请按照以下步骤操作:
创建 Teledec 账户¶
要创建 Teledec 账户,请访问 `Teledec 账户创建页面<https://www.teledec.fr/s-enregistrer>`_,并在 Adresse e-mail 字段中填写电子邮件地址。选择安全密码,勾选接受一般条款和条件,然后点击 注册 保存。然后,输入公司的 :abbr:`SIREN(Système d’identification du répertoire des entreprises,企业目录识别系统)`编号。
注解
如果账户已经创建,点击 :guilabel:`Déjà enregistré?`(已注册)。
公司注册和财政年度信息¶
要在 Teledec 上注册公司,请前往 :guilabel:`Vos entreprises(您的公司)并点击 :guilabel:`Enregistrer votre entreprise`(注册您的公司)。确保在 :guilabel:`Coordonnées de l’entreprise`(公司详情) 和 :guilabel:`Représentant légal`(法定代表人)部分填写以下公司信息:
Nom de l’entreprise:公司名称。
Forme juridique:选择公司的法律形式。
Les comptes sont clôturés le:结算日期。
Régime d’imposition, choix de la liasse:选择税收制度和税务申报表选项。
Adresse du siège social:总部地址。
Nom du représentant légal:法定代表人的姓名。
Agissant en qualité de:法定代表人的职能。
Numéro de téléphone:电话号码。
点击 :guilabel:`Sauvegarder`(保存)显示下一步 :guilabel:`Informations générales sur l’exercice déclaré`(申报财年的一般信息)。然后,填写有关财政年度的信息,如财政年度的开始和结束日期,或上一财政期间的结算日期和持续时间。保存后,将显示包含在*liasse fiscale(财务申报表)*中的文件列表,包括标准税表和为公司税务申报定制的表格。
Odoo 同步¶
要使 Odoo 能够自动填写 :guilabel:`Liasse fiscale`的数据,点击右上角的 :guilabel:`Autres actions`(其他操作)并选择 :guilabel:`Synchroniser avec un logiciel tiers`(与第三方软件同步), 然后 :guilabel:`Synchroniser cette liasse avec Odoo`(将此*申报表*与 Odoo 同步)。
在 将此申报表与 Odoo 同步 窗口中,填写以下信息以完成同步:
Nom / URL complète de la base de données Odoo: Odoo database name or URL. To provide the full URL of the database, enable Je voudrais donner une url complète hors .odoo.com option.
Nom de l’utilisateur:与 Odoo 账户关联的用户名。
Clé API:由 Odoo 实例生成的 API 密钥。
注解
In a multi-company setup, the following configurations are required in Odoo:
接下来,点击 Importer(导入) 从 Odoo 同步数据。在 :guilabel:`Confirmation de la synchronisation de liasse avec Odoo`(确认与 Odoo 同步申报表)窗口中,检查金额并进行任何必要的更改。然后点击 :guilabel:`Importer la balance`(导入余额),确认 liasse fiscale 与 Odoo 同步,并导入余额。
重要
Clicking Importer la balance may overwrite or alter any manual updates made previously.
To make payment and send the declaration to the tax authorities, click Paiement & envoi de la déclaration.
Point of sale¶
VAT anti-fraud certification¶
Since January 2018, new anti-fraud legislation has been in effect in France and its overseas territories (DOM-TOM). This legislation establishes specific requirements for the integrity, security, storage, and archiving of sales data. Odoo complies with these legal requirements by providing a module and a downloadable certificate of conformity.
Anti-fraud cash register software, such as Odoo (CGI art. 286, I. 3° bis), is required for companies taxable in France or DOM-TOM, where some customers are private individuals (B2C). This rule applies to all company sizes, but auto-entrepreneurs exempt from VAT are unaffected.
Odoo certification¶
The tax administration requires all companies to provide a certificate of conformity confirming that their software complies with anti-fraud legislation. In case of non-compliance, a €7,500 fine may be imposed.
注解
This certificate is granted by Odoo SA to Odoo Enterprise users.
To get the certification, follow these steps:
Install the France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) (
l10n_fr_pos_cert
) module.Set the Country field on the company record to encrypt entries for the inalterability check.
Download the mandatory certificate of conformity delivered by Odoo SA.
反欺诈功能¶
反欺诈模块引入了以下功能:
Inalterability¶
对于位于法国或任何法国海外省/领土 (DOM-TOM) 的公司,所有取消或修改 POS 订单、发票和日记账分录中关键数据的方法都将被禁用。
注解
在多公司环境中,只有这些公司的单据会受到影响。
安全¶
为确保不可篡改性,每笔订单或日记账分录在验证时都会被加密。这个数字(或哈希值)是根据单据的关键数据和先前单据的哈希值计算得出的。该模块提供了一个界面来测试数据的不可篡改性。如果任何信息在单据验证后被修改,测试将失败。算法会重新计算所有的哈希值,并与初始值进行比较。如果失败,系统会指出系统中记录的第一个被损坏的单据。
只有拥有 管理员 访问权限的用户才能启动不可篡改性检查:
对于 POS 订单,请转到
;For invoices or journal entries, go to
.
存储¶
系统还会每日、每月、每年自动处理销售结算。此类结算会计算该期间的销售总额以及从系统中记录的第一个销售分录开始的累计总额。
要访问结算,请转到
或 。注解
Closings compute the totals for journal entries of sales journals (Journal Type = Sales).
For multi-companies environments, such closings are performed by company.
POS 订单在 POS 会话关闭时过账为日记账分录。POS 会话可以随时关闭。为提示用户每日执行此操作,该模块会阻止他们恢复已打开超过24小时的会话。必须先关闭此类会话才能再次进行销售。
一个期间的总额是根据同类型上次结算后过账的所有日记账分录计算的,无论其过账日期如何。为已结算期间记录的新销售交易将被计入下一次结算中。
小技巧
出于测试和审计目的,可以在 开发者模式<developer-mode>`下手动生成结算。为此,请转到 :menuselection:`设置 –> 技术 –> 计划操作。在计划操作列表视图中,打开所需的 销售结算 操作,然后点击 手动运行。
责任¶
卸载此模块将重置安全哈希值。这意味着系统将不再保证过去数据的完整性。
用户对其 Odoo 系统负责,必须谨慎操作。不允许修改负责确保数据完整性的源代码。
如果由未经认证的第三方应用程序引起此模块功能问题,Odoo 不承担任何责任。