Francia

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.

A partir del primero de enero de 2014 todas las empresas francesas deben producir y transmitir este archivo cuando las autoridades fiduciarias se lo pidan para fines de auditoría.

Importar FEC

Para que la integración de nuevos usuarios sea más fácil, el paquete de localización fiscal para Francia de Odoo Enterprise incluye la función Importar FEC (nombre técnico: l10n_fr_fec_import), la cual permite importar archivos FEC existentes desde un software antiguo.

Para habilitar esta función vaya a Contabilidad ‣ Configuración ‣ Ajustes ‣ Importar contabilidad, active Importar FEC y haga clic en guardar.

Después, vaya a Contabilidad ‣ Configuración ‣ Importe FEC, suba el archivo FEC y haga clic en Importar.

Nota

No hay una acción o cálculo particular para importar archivos FEC de un año diferente.
Si varios archivos contienen «Reports à Nouveaux» (RAN) con el balance inicial del año, puede que tenga que cancelar los asientos en la interfaz del usuario. Los asientos (RAN) no son útiles en Odoo.

Formatos de archivo

Los archivos FEC solo pueden estar en formato CSV, ya que no son compatibles con el formato XML.

Nota

El archivo FEC CSV tiene un formato de texto plano que representa una tabla de datos, en la cual la primera línea es un encabezado y define la lista de campos de cada entrada. Cada una de las líneas siguientes representa un asiento de contabilidad en ningún orden predeterminado.

Se espera que los archivos que se suban al módulo cumplan con las siguientes especificaciones técnicas:

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

  • Separador: puede ser ; o | o , 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

Usar

Formato

01

JournalCode

Código del diario

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

Alfanumérico

02

JournalLib

Etiqueta de diario

journal.name

Alfanumérico

03

EcritureNum

Numeración específica a cada secuencia numérica del asiento en el diario.

move.name

Alfanumérico

04

EcritureDate

Fecha del asiento contable

move.date

Fecha (yyyyMMdd)

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 de documento

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

Alfanumérico

10

PieceDate

Fecha de documento

move.date

Fecha (yyyyMMdd)

11

EcritureLib

Etiqueta de asiento de la cuenta

move_line.name

Alfanumérico

12

Debe

Importe de débito

move_line.debit

Flotante

13

Haber

Cantidad de crédito (Nombrar el campo «crédito» no está permitido)

move_line.credit

Flotante

14

EcritureLet

Referencia cruzada de asiento contable (puede ser nulo)

move_line.fec_matching_number

Alfanumérico

15

DateLet

Fecha de asiento contable (puede ser nulo)

Sin utilizar

Fecha (yyyyMMdd)

16

ValidDate

Fecha de validación del asiento contable

Sin utilizar

Fecha (yyyyMMdd)

17

Montantdevise

Cantidad de la divisa (puede ser nulo)

move_line.amount_currency

Flotante

18

Idevise

Identificación de divisa (puede ser nulo)

currency.name

Alfanumérico

Estos dos campos diferentes se pueden encontrar en un lugar de los demás en el sentido antes descrito.

12

Montant

Importe

move_line.debit o move_line.credit

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

Estas entidades contables se importan desde los archivos FEC: cuentas, diarios, partners y movimientos.

Nuestro módulo determina la codificación, el carácter terminador de línea y el separador que se usa en el archivo.

Después se realiza una revisión para ver si cada línea tiene el número correcto de campos que corresponden a la cabecera.

Si pasa la revisión entonces el archivo se lee completamente, se guarda en la memoria y se escanea. Las entidades de contabilidad se importan un tipo a la vez en l orden siguiente.

Cuentas

Cada asiento se relaciona a una cuenta, que se debería de determinar por campo CompteNum.

Emparejamiento de código

Si hay un código de cuenta similar en el sistema, se usa el existente en lugar de crear uno nuevo.

Las cuentas en Odoo generalmente tienen un número de dígitos predeterminados para la localización fiscal. Ya que el módulo FEC está relacionado a la localización francesa, el número predeterminado de números relevantes es 6.

Esto significa que en los códigos de cuenta los ceros finales se recortan desde la derecha, y que la comparación entre los códigos de cuenta en el archivo FEC y los ya existentes en Odoo se realiza sólo en los primeros seis dígitos de los códigos.

Example

El código de la cuenta es 65800000 en el archivo que se compara con una cuenta 658000 existente en Odoo y esta es la cuenta que se usa en lugar de crear una nueva.

Marcado como conciliado

Una cuenta se marca como conciliada si la primera línea en la que aparece tiene el campo EcritureLet lleno. Esta marca significa que el asiento contable se conciliará con otra.

Nota

En caso de que, por algún motivo, la línea no tenga este campo lleno pero el asiento se tiene que conciliar con un pago que todavía no se ha registrado no es un problema. La cuenta se marca como conciliable tan pronto como el importe de las líneas lo requiera.

Tipo de cuenta y emparejamiento de plantillas

Ya que el tipo de la cuenta no se especifica en el formato FEC, las cuentas nuevas se crean con el tipo Activos circulantes predeterminado y después, al final del proceso de importación, se emparejan con las plantillas del plan de cuenta que ya están instalados. La marca de conciliado también se calcula de esta manera.

El emparejamiento se realiza con los dígitos que están hasta la izquierda, primero se usan todos los dígitos, después 3 y al final 2.

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

El tipo de cuenta se marca como por pagar y conciliado según la plantilla de la cuenta.

Diarios contables

Los diarios también se revisan con los ya existentes en Odoo para evitar duplicados, también en caso de importación de archivos FEC.

Si hay un código de diario similar en el sistema, se usa el existente en lugar de crear uno nuevo.

Los nombres de los diarios nuevos empiezan con el prefijo de FEC-.

Example

ACHATS -> FEC-ACHATS

Los diarios no están archivados, el usuario tiene el derecho de manejarlos como prefiera.

Determinación del tipo de diario

El tipo de diario tampoco está especificado en el formato (según las cuentas), por lo tanto, primero se crea con el tipo general predeterminado.

Al final del proceso de importación el tipo se determina según estas reglas de acuerdo a los movimientos y cuentas relacionadas:

  • banco: los movimientos en estos diarios siempre tienen una línea (de crédito o débito) que impactarán la cuenta de liquidez.
    efectivo / banco se pueden intercambiar, banco se configura en todos lados cuando se cumple esta condición.
  • venta: estos diarios tienen, en su mayoría, líneas de debito en cuentas por cobrar y líneas de crédito en las cuentas de ingresos de impuestos.
    Los apuntes de diario de reembolsos de ventas se invierten según el débito/crédito.
  • compra: los movimientos en estos diarios tienen, en su mayoría, líneas de crédito en cuentas por pagar y líneas de débito en las cuentas de gastos.
    El crédito y débito de los apuntes de diario de las compras reembolsadas están invertidos.
  • general: para todo lo demás.

Nota

  • Para identificar el tipo de diario se necesitan, por lo menos, tres movimientos.

  • Al menos el 70% de los movimientos deben corresponder al criterio para que se determine el tipo de diario.

Example

Supongamos que estamos analizando los movimientos que tienen un journal_id específico.

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 una línea de cuenta de venta

1

25%

que tienen una línea de cuenta de liquidez

3

75%

Total

4

100%

El tipo de diario sería banco, ya que el porcentaje de movimientos bancarios (75%) excede el umbral (70%).

Partners

Cada partner se queda con su Referencia del campo CompAuxNum.

Nota

Estos campos se pueden buscar en la línea con importes FEC antiguos en el lado del experto en contabilidad para propósitos fiscales/de auditoría.

Truco

Los usuarios pueden fusionar a los partners con la aplicación de limpieza de datos. En esta aplicación los proveedores, clientes o partners similares pueden fusionarse con ayuda del sistema que los agrupa con asientos similares.

Movimientos

Los asientos se publican de inmediato y se concilian después de que se entreguen. Se usa el campo EcritureLet para emparejar los asientos entre ellos.

El campo EcritureNum representa el nombre de los movimientos. Sabemos que a veces puede que no esté lleno, en este caso se usa el campo PieceRef.

Problemas de redondeo

Hay una tolerancia de redondeo con precisión en la divisa en el débito y el crédito (por ejemplo, 0.01 para EUR). Tomando en cuenta esta tolerancia, se agrega una nueva línea al movimiento, esta línea se llamará Diferencia de redondeo del importe y se focaliza en las cuentas:

  • 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 EcritureNum no está lleno, también puede ser que el campo PieceRef no sea adecuado para determinar el nombre del movimiento (se puede usar como una línea contable de referencia). En este caso, no hay manera de encontrar qué líneas se tienen que agrupar en un mismo movimiento, por lo que se impide la creación de movimientos balanceados.

Se realiza un último intento en el que se agrupan todas las líneas del mismo diario y la misma fecha (JournalLib, EcritureDate). Si este agrupamiento genera movimientos balanceados (sum(credit) - sum(debit) = 0), entonces cada combinación diferente de diario y fecha crea un nuevo movimiento.

Example

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

Si este intento falla, el usuario verá un mensaje de error con todas las líneas de movimiento que no están balanceadas.

Información del partner

Si una línea tiene la información del partner especificada, la información se copia al movimiento contable si el tipo de diario al que se importará es por pagar o conciliable.

Exportar

Si instaló el paquete de localización fiscal para Francia, debería poder descargar el FEC. Para hacerlo, vaya a Contabilidad ‣ Reportes ‣ Francia ‣ FEC.

Truco

Si no puede ver el submenú FEC, vaya a aplicaciones, quite el filtro de aplicaciones y busque el módulo llamado Francia-FEC y verifique sí está bien instalado.

Reportes contables franceses

Si instaló la contabilidad francesa, podrá acceder a algunos reportes de contabilidad específicos de Francia:

  • Bilan comptable (balance general)

  • Compte de résultats (estado de resultados)

  • Plan de impuestos de Francia

Obtenga la certificación antifraude del IVA con Odoo

A partir del primero de enero de 2018 una nueva legislación antifraude entró en vigencia en Francia y territorios de ultramar. Esta nueva legislación estipula ciertos sobre inalterabilidad, seguridad, alojamiento y el archivo de los datos de ventas. Estos requisitos legales se implementan en Odoo, a partir de la versión 9, con un módulo y un certificado de conformidad que se debe descargar.

¿Mi empresa necesita usar software antifraude?

Su empresa necesita usar un software antifraude de caja registradora como Odoo (CGI art. 286, I. 3° bis) si:

  • Está sujeto a impuestos (no exento de IVA) en Francia o en cualquier territorio de ultramar,

  • Algunos de sus clientes son particulares privados (B2C).

Esta regla aplica para cualquier empresa de cualquier tamaño. Los empresarios independientes están exentos del IVA y, por tanto, no se ven afectados.

Obtener la certificación con Odoo

Cumplir las reglas con Odoo es muy fácil.

La autoridad financiera le pide a su empresa que proporcione un certificado de conformidad en el que aparezca que su software cumple con la legislación antifraude. Odoo SA otorga este certificado a los usuarios de Odoo Enterprise aquí. Si usa la versión Community de Odoo, debería actualizar a la versión Enterprise o contactar a su proveedor.

En caso de que no cumpla con la legislación, su empresa corre el riesgo de obtener una multa de €7,500.

Para obtener el certificado solo siga los siguientes pasos:

  • Si usa el Punto de venta de Odoo instale el módulo Francia - Certificación antifraude del IVA para Punto de venta (CGI 286 I-3 bis). Vaya a Aplicaciones, elimine el filtro de aplicaciones, busque l10n_fr_pos_cert e instale el módulo.

  • Asegúrese de que su país está configurado en su empresa, de lo contrario sus asientos no se encriptarán para la comprobación de inalterabilidad. Para editar la información de su empresa, vaya a Ajustes ‣ Usuarios y empresas ‣ Empresas.

  • Descargue el certificado de conformidad obligatorio de Odoo SA aquí.

Nota

  • Para instalar el módulo en cualquier sistema creado antes del 18 de diciembre de 2017 , debe actualizar la lista de módulos. Para hacerlo, active el modo de desarrollador. Para hacer esto vaya al menú de las Aplicaciones y de clic en Actualizar lista de módulos en la parte de arriba del menú.

  • En caso de que use Odoo local, debe actualizar su instalación y reiniciar su servidor antes.

  • Si instaló la versión inicial del módulo antifraude (anterior al 18 de diciembre de 2017), necesita actualizarlo. El nombre del módulo es Francia - Contabilidad - CGI 286 I-3 bis certificado. Después de la actualización de la lista de módulos, busque la actualización del módulo en Aplicaciones, selecciónela y haga clic en actualizar. Finalmente, asegúrese de que el módulo l10n_fr_sale_closing esté instalado.

Funciones antifraude

El módulo antifraude introduce las siguientes funciones:

  • Inalterabilidad: desactivación de todas las formas de cancelar o modificar datos clave de órdenes del PdV, facturas y asientos de diario;

  • Seguridad: algoritmo de encadenamiento para verificar la inalterabilidad;

  • Almacenamiento: cierres de ventas automáticos con cálculos tanto del periodo como de los totales acumulados (diario, mensual, anual).

Inalterabilidad

Todas las formas posibles de cancelar y modificar los datos clave de los pedidos del PdV pagados, las facturas confirmadas y los asientos de diario se desactivan si la empresa está ubicada en Francia o en cualquier territorio de ultramar.

Nota

Si ejecuta un entorno multiempresas, solo se verán afectados los documentos de dichas empresas.

Seguridad

Para garantizar la inalterabilidad, todas las órdenes o asientos bancarios se encriptan al validarlas. Este número (o hash) se calcula a partir de los datos clave del documento, así como a partir del hash de documentos precedentes.

El módulo introduce una interfaz para probar la inalterabilidad de los datos. Si se edita cualquier información dentro de un documento después de su validación, la prueba fallará. El algoritmo recalcula todos los hashes y los compara con los iniciales. En caso de que falle, el sistema indica el primer documento corrupto en el sistema.

Los usuarios con derechos de acceso de gerente pueden iniciar la comprobación de inalterabilidad. Para órdenes del PdV, vaya a Punto de Venta ‣ Reportes ‣ Estados de cuenta franceses.

Almacenamiento

El sistema también procesa cierres de venta automáticos cada día, cada mes y cada año. Estos cierres calculan el total de ventas específicamente del periodo indicado así como los totales generales acumulativos desde el primer asiento de ventas registrado en el sistema.

Puede encontrar los cierres en el menú de «Asientos franceses» de Punto de venta, Facturación y Contabilidad.

Nota

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

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

  • Las órdenes del PdV se publican como asientos de diario al cerrar la sesión de PdV. Se puede cerrar la sesión del PdV en cualquier momento. Para invitar a que los usuarios hagan esto todos los días, el módulo no permite volver a iniciar una sesión que se abrió hace más de 24 horas. Esta sesión se debe cerrar entes de volver a vender.

  • El total de un periodo se calcula a partir de todos los asientos de diario que se publicaron después del cierre previo del mismo tipo, sin importar su fecha de publicación. Si registra una nueva transacción de venta para un periodo que ya se cerró, se contará en el cierre más cercano.

Truco

  • Para pruebas y auditorías, estos cierres se pueden generar manualmente en el modo de desarrollador.

  • Después vaya a Ajustes ‣ Técnico ‣ Automatización ‣ Acciones planeadas.

Responsabilidades

¡No desinstale el módulo! Si lo hace, los hashes se resetearán y no se podrá garantizar que su información previa sea inalterable.

Los usuarios son responsables de su instancia de Odoo y deben usarla con su debida diligencia. No se permite modificar el código fuente ya que este código garantiza la inalterabilidad inicial de los datos.

Odoo no se hace responsable de cualquier cambio que aplicaciones externas que Odoo no haya certificado puedan realizar en las funciones de los módulos.

Más información

Encontrará más información sobre esta legislación en los documentos oficiales.