Francia

Módulos

Los siguientes módulos relacionados con la localización francesa están disponibles:

Nombre

Nombre técnico

Descripción

Francia - Contabilidad

l10n_fr

El paquete de localización fiscal francesa que aplica solo a las empresas con sede en Francia metropolitana y no incluye los territorios de ultramar.

Francia - Reportes contables

l10n_fr_reports

Export of the French VAT report, which can be sent to the DGFiP, an OGA, or a professional accountant.

Francia - Nómina y contabilidad

l10n_fr_hr_payroll_account

Includes the necessary accounting data for the French payroll rules.

France - Factur-X integration with Chorus Pro

l10n_fr_facturx_chorus_pro

Adds fields needed for submitting invoices to Chorus Pro.

France - FEC Export

l10n_fr_fec

Generates the FEC file as defined by the Decree of July 29, 2013.

France - FEC Import

l10n_fr_fec_import

Import of standard FEC files, useful for importing accounting history.

France - Adding Mandatory Invoice Mentions (Decree no. 2022-1299)

l10n_fr_invoice_addr

Adds address fields required to comply with Decree 2022-1299.

France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis)

10n_fr_pos_cert

Point of Sale VAT anti-fraud certification

Nota

The localization’s core modules are installed automatically with the localization. The rest can be manually installed.

Resumen de la localización

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:

Reportes

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)

Contabilidad

Facturación electrónica

El portal Chorus Pro, gestionado por la AIFE (Agence pour l’Informatique financière de l’État, por sus siglas en francés), es la plataforma oficial para enviar facturas electrónicas a las entidades públicas francesas. Esta permite que las empresas envíen y gestionen facturas, lleven seguimiento del estado de procesamiento y accedan a las actualizaciones de los pagos. En Francia, la facturación electrónica es obligatoria para todas las transacciones empresa a gobierno (B2G, por sus siglas en inglés) desde enero de 2020. Odoo cuenta con una integración con Chorus Pro para enviar las facturas generadas en este software.

Configuración

To send invoices to Chorus Pro, the following configuration is required:

  1. Install the France - Factur-X integration with Chorus Pro (l10n_fr_facturx_chorus_pro) module.

  2. Register with Peppol, as invoices are sent from Odoo to Chorus Pro via the Peppol network.

  3. If you don’t already have a Chorus Pro account, go to the Chorus Pro page, click Créer un compte, and create one.

  4. Configure the relevant customers” contact form.

Clientes

To submit invoices to Chorus Pro, configure the relevant customers” contact form as follows:

  1. Verify the Country and Tax ID fields are filled out.

  2. In the Sales & Purchase tab, ensure the SIRET field is completed.

  3. In the Accounting tab, fill in the following fields in the Electronic Invoicing section:

    • Formato: Seleccione Facturación BIS 3.0.

    • Dirección electrónica de Peppol (EAS): Seleccione 0009 - SIRET-CODE.

    • Peppol Endpoint: Type 11000201100044, the reference used by Chorus Pro.

Enviar facturas a Chorus Pro

Siga estos pasos para enviar facturas a Chorus Pro:

  1. Vaya a Contabilidad ‣ Clientes ‣ Facturas y abra o cree una factura.

  2. 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

  3. Confirm the invoice.

  4. Click Send & Print and, in the Send window, enable Peppol Bis Billing 3.0.

  5. Haga clic en Enviar e imprimir.

Once the invoice is sent, the Peppol status of the invoice is updated to Done.

Ver también

Peppol

FEC - Fichier des Écritures Comptables

Un archivo de auditoría FEC Fichier des Écritures Comptables, por sus siglas en francés, contiene todos los datos contables y asientos registrados en todos los diarios durante un ejercicio fiscal. Los asientos en el archivo deben estar ordenados de forma cronológica. Desde enero de 2014, toda empresa francesa está obligada a generar y enviar este archivo cuando las autoridades fiscales lo soliciten para fines de auditoría.

Importar 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 ‣ Configuration ‣ Settings. In the Accounting Import section, click Import and Import FEC. Then, in the FEC Import window, upload the FEC file and click Import.

Nota

No necesita realizar acciones o cálculos especiales al importar archivos FEC de diferentes años. Sin embargo, si varios archivos contienen RAN Reports à Nouveaux con el balance inicial del año, Odoo marca esos asientos como innecesarios de forma automática y usted debe eliminarlas en caso de que sea necesario.

Formatos de archivo

Nota

  • FEC files must be in CSV format, as XML format is not supported.

  • El archivo CSV del FEC es un archivo de texto plano estructurado como una tabla de datos. La primera línea es el encabezado y define la lista de campos para cada registro, mientras que las líneas siguientes representan cada uno de los asientos contables sin ningún orden en específico.

FEC files must comply with the following technical specifications:

  • Codificación: UTF-8, UTF-8-SIG e iso8859_15.

  • Separador: puede ser ;, |, , o TAB.

  • Para terminar una línea: tanto CR+LF (\r\n) como LF (\n) son compatibles.

  • Formato de fecha: %Y%m%d

Descripción y uso de los campos

#

Nombre del campo

Descripción

Uso

Formatear

01

JournalCode

Código del diario

journal.code y journal.name si no cuenta con JournalLib.

Alfanumérico

02

JournalLib

Etiqueta del diario

journal.name

Alfanumérico

03

EcritureNum

Numeración específica para cada secuencia de asientos del diario

move.name

Alfanumérico

04

EcritureDate

Fecha del asiento contable

move.date

Fecha (aaaaMMdd)

05

CompteNum

Número de cuenta

account.code

Alfanumérico

06

CompteLib

Etiqueta de la cuenta

account.name

Alfanumérico

07

CompAuxNum

Número de cuenta secundario (acepta nulo)

partner.ref

Alfanumérico

08

CompAuxLib

Etiqueta de cuenta secundaria (acepta nulo)

partner.name

Alfanumérico

09

PieceRef

Referencia del documento

move.ref y move.name si no cuenta con EcritureNum.

Alfanumérico

10

PieceDate

Fecha de documento

move.date

Fecha (aaaaMMdd)

11

EcritureLib

Etiqueta de asiento de la cuenta

move_line.name

Alfanumérico

12

Débito

Importe de débito

move_line.debit

Número flotante

13

Crédito

Cantidad de crédito (no puede nombrar este campo como «crédito»)

move_line.credit

Número flotante

14

EcritureLet

Referencia cruzada del asiento contable (acepta nulo)

move_line.fec_matching_number

Alfanumérico

15

DateLet

Fecha del asiento contable (acepta nulo)

No se utiliza

Fecha (aaaaMMdd)

16

ValidDate

Fecha de validación del asiento contable

No se utiliza

Fecha (aaaaMMdd)

17

Montantdevise

Importe de la divisa (acepta nulo)

move_line.amount_currency

Número flotante

18

Idevise

Identificador de la divisa (acepta nulo)

currency.name

Alfanumérico

These two fields appear in the same order as the others, replacing them.

12

Montant

Importe

move_line.debit o move_line.credit

Número flotante

13

Sens

Puede ser «C» de crédito o «D» de débito

Determina move_line.debit o move_line.credit

Carácter

Detalles de implementación

Las siguientes entidades contables se importan desde los archivos FEC: cuentas, diarios, contactos y movimientos. El módulo determina de forma automática la codificación, el salto de línea y el separador usados en el archivo. Después, comprueba que cada línea tenga el número correcto de campos y que coincidan con el encabezado. Si todo está en orden, se lee todo el archivo, se almacena en memoria y se escanea. Después, las entidades contables se importan una por una en el siguiente orden.

Cuentas

Each accounting entry is associated with an account identified by the CompteNum field.

Coincidencia de códigos

Si ya existe una cuenta con el mismo código, se utiliza la cuenta existente en lugar de crear una nueva. En Odoo, los números de cuenta siguen la longitud de dígitos predeterminada de la localización fiscal. El módulo FEC está vinculado a la localización francesa, así que la longitud predeterminada de la cuenta es de 6 dígitos y se eliminan los ceros a la derecha en los códigos de cuenta. La comparación entre los códigos de cuenta en el archivo FEC y los que ya están en Odoo se realiza solo con los primeros seis dígitos de los códigos.

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.

Marcado como conciliado

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.

Nota

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.

Conciliación del tipo de cuenta y plantillas

Como el tipo de cuenta no se especifica en el formato FEC, Odoo crea las cuentas nuevas con el tipo Activos circulantes de forma predeterminada. Después del proceso de importación, las cuentas se comparan con las plantillas instaladas del plan de cuentas. La marca de conciliación también se determina de esta manera.

The matching is performed by comparing the left-most digits, starting with all digits, followed by 3 digits, and then 2 digits.

Example

Nombre

Código

Comparación completa

Comparación de 3 dígitos

Comparación de 2 dígitos

Plantilla

400000

400000

400

40

CompteNum

40100000

40100000

401

40

Resultado

Coincidencia encontrada

The account type is then flagged as payable and reconcilable based on the account template.

Diarios

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.

Nota

Journals are not archived, allowing the user to manage them as desired.

Determinación del tipo de diario

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.
    Los apuntes contables de los reembolsos de ventas se invierten según el débito o crédito.
  • purchase: Moves in these journals mostly have credit lines on payable accounts and debit lines on expense accounts.
    Los apuntes contables de las compras reembolsadas se invierten según el débito o crédito.
  • general: Used for everything else.

Nota

  • 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.

Movimientos

Cuenta

Porcentaje

que tienen una línea de cuenta de venta y no tienen una línea de cuenta de compra

0

0

que tienen una línea de cuenta de compra y no tienen una línea de cuenta de venta

1

25%

que tienen una línea de cuenta de liquidez

3

75%

Total

4

100%

The journal type would be bank, because the bank’s move percentage (75%) exceeds the threshold (70%).

Contactos

Each contact keeps its Reference from the CompAuxNum field.

Nota

These fields are searchable based on previous FEC imports for fiscal/audit purposes.

Truco

Similar and potential duplicate contacts can be merged using the Data Cleaning App.

Movimientos

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.

Problemas de redondeo

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 «Charges diverses de gestion courante», para débitos agregados

  • 758000 «Produits divers de gestion courante», para créditos agregados

Nombre de movimiento faltante

Si el campo EcritureNum está vacío y el campo PieceRef no puede determinar el nombre del asiento contable (puede usarse como la referencia de la línea del asiento), no será posible identificar qué líneas se deben agrupar en un solo movimiento, lo que impide la correcta creación de movimientos balanceados.

En esos casos ocurre el último intento de agrupar todas las líneas por el mismo diario y fecha (JournalLib, EcritureDate). Si este agrupamiento genera movimientos balanceados (sum(credit) - sum(debit) = 0), entonces cada combinación distinta de diario y fecha genera un nuevo movimiento.

Example

ACH + 2021/05/01 –> nuevo movimiento en el diario ACH con el nombre 20210501.

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 Accounting ‣ Reporting ‣ FEC. In the FEC window, fill in the following fields:

  • Start Date

  • End Date

  • Test File: Enable this option to test the FEC file generation.

  • Diarios excluidos

Después, haga clic en Generar.

Liasse fiscale

The liasse fiscale (tax returns) is a collection of standardized financial documents that businesses must submit annually to the tax authorities. It comprehensively summarizes the company’s financial activities and determines corporate taxes.

Teledec is a platform used to prepare and submit tax returns using data from accounting records. To synchronize your accounting data stored in Odoo with Teledec and electronically send your company’s liasse fiscale to the DGFiP (Direction Générale des Finances Publiques), follow these steps:

  1. Teledec account creation

  2. Company registration and fiscal year information

  3. Odoo synchronization

Teledec account creation

To create a Teledec account, access the Teledec account creation page and fill in the Adresse e-mail field with an email address. Choose a secure password, accept the general terms and conditions by checking the box, and click S’enregistrer to save. Then, enter the SIREN number of the company.

Nota

If the account has already been created, click Déjà enregistré? (Already registered).

Company registration and fiscal year information

To register the company on Teledec, go to Vos entreprises (Your companies) and click Enregistrer votre entreprise (Register your company). Make sure to fill in the following company information in the Coordonnées de l’entreprise (Company’s details) and Représentant légal (Legal representative) sections:

  • Nom de l’entreprise: Company’s name.

  • Forme juridique: Select the company’s legal form.

  • Les comptes sont clôturés le: Closing date.

  • Régime d’imposition, choix de la liasse: Select the Tax scheme and tax return option.

  • Adresse du siège social: Head office address.

  • Nom du représentant légal: Legal representative’s name.

  • Agissant en qualité de: Legal representative’s function.

  • Numéro de téléphone: Phone number.

Click Sauvegarder (Save) to display the next step Informations générales sur l’exercice déclaré (General information about the declared fiscal year). Then, fill in information on the financial year, such as the fiscal year start and end dates or the closing date and duration of the previous fiscal period. After saving, the list of documents included in the liasse fiscale is displayed, including both standard tax forms and those customized for the company’s tax return.

Truco

  • The Etat (Status) column shows the progress of the document filing.

  • Click Compléter to fill out a document, then Sauvegarder to save.

  • To print a blank version of the declaration, click Imprimer la déclaration and select the Imprimer la déclaration avec les notices option.

Odoo synchronization

To enable Odoo to automatically fill in the data for the Liasse fiscale, click Autres actions (Other actions) in the top-right corner and select Synchroniser avec un logiciel tiers (Synchronize with third-party software), then Synchroniser cette liasse avec Odoo (Synchronize this liasse with Odoo).

In the Synchroniser cette liasse avec Odoo window, fill in the following information to complete the synchronization:

  • 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: User name associated with the Odoo account.

  • Clé API: API key generated by the Odoo instance.

Next, click Importer to synch data from Odoo. In the Confirmation de la synchronisation de liasse avec Odoo window, review the amounts and make any necessary changes. Then click Importer la balance to confirm the synchronization of the liasse fiscale with Odoo and import the balance.

Importante

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.

Punto de venta

VAT anti-fraud certification

A partir de enero de 2018 entró en vigor una nueva legislación antifraude en Francia y los territorios de ultramar (DOM-TOM). Esta legislación establece requisitos específicos para la integridad, seguridad, almacenamiento y archivado de los datos de ventas. Odoo cumple con estos requisitos legales, ya que cuenta con un módulo y permite descargar un certificado de conformidad.

El software antifraude para cajas registradoras, como Odoo (CGI art. 286, I. 3° bis), es obligatorio para las empresas que están sujetas a impuestos en Francia o en los territorios de ultramar (DOM-TOM) cuando algunos de sus clientes personas físicas (B2C). Esta norma aplica a empresas de todos los tamaños, pero no afecta a los empresarios autónomos que están exentos del pago del IVA.

Certificación de Odoo

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.

Nota

This certificate is granted by Odoo SA to Odoo Enterprise users.

To get the certification, follow these steps:

  1. Install the France - VAT Anti-Fraud Certification for Point of Sale (CGI 286 I-3 bis) (l10n_fr_pos_cert) module.

  2. Set the Country field on the company record to encrypt entries for the inalterability check.

  3. Download the mandatory certificate of conformity delivered by Odoo SA.

Funciones antifraude

El módulo antifraude ofrece las siguientes funciones:

Inalterabilidad

All methods to cancel or modify key data in POS orders, invoices, and journal entries are deactivated for companies located in France or any DOM-TOM.

Nota

In a multi-company environment, only the documents of such companies are impacted.

Seguridad

Para garantizar la inalterabilidad, cada orden o asiento contable se cifra al validar. Este número (o hash) se calcula a partir de los datos clave del documento y del hash de los documentos precedentes. El módulo introduce una interfaz para verificar la inalterabilidad de los datos. La prueba fallará al modificar la información de un documento después de validarlo. El algoritmo vuelve a calcular todos los hashes y los compara con los iniciales. En caso de que ocurra un error, el sistema indica el primer documento corrupto en el sistema.

Solo los usuarios con permisos de acceso de administrador pueden iniciar la verificación de inalterabilidad:

  • For POS orders, go to Point of Sales ‣ Reporting ‣ POS Inalterability Check;

  • For invoices or journal entries, go to Invoicing/Accounting ‣ Reporting ‣ POS Inalterability Check.

Almacenamiento

The system also processes automatic sales closings daily, monthly, and annually. Such closings compute the sales total for the period and the cumulative grand totals from the very first sales entry recorded in the system.

To access closings, either go to Point of Sales ‣ Reporting ‣ Sales Closings or Invoicing/Accounting ‣ Reporting ‣ Sales Closings.

Nota

  • Los cierres calculan los totales para los asientos contables de los diarios de venta (tipo de diario = ventas).

  • Para entornos multiempresas, estos cierres se realizan para cada empresa por separado.

  • Las órdenes de PdV se registran como asientos contables al cerrar la sesión de PdV y esta se puede cerrar en cualquier momento. Para incentivar a que los usuarios realicen esta acción a diario, el módulo impide que reanuden una sesión que se abrió hace más de 24 horas. Es necesario cerrar esa sesión antes de volver a vender.

  • El total de un periodo se calcula a partir de todos los asientos contables registrados después del cierre anterior del mismo tipo, sin importar su fecha de registro. Si registra una nueva transacción de ventas correspondiente a un periodo que ya está cerrado, esta se incluirá en el siguiente cierre.

Truco

For test & audit purposes, closings can be manually generated in developer mode. To do so, go to Settings ‣ Technical ‣ Scheduled Actions. In the scheduled actions list view, open the desired Sale Closing action and click Run manually.

Responsabilidades

Uninstalling this module will reset the security hashes. This means the system will no longer guarantee the integrity of the past data.

Users are responsible for their Odoo system and must operate it carefully. Modifying source code responsible for ensuring data integrity is not allowed.

Odoo is not responsible for any issues with this module’s functionality if caused by uncertified third-party applications.