México

Módulos

Los siguientes módulos se instalan automáticamente con la localización mexicana:

Nombre

Nombre técnico

Descripción

México - Contabilidad

l10n_mx

El paquete de localización fiscal predeterminado añade características contables para la localización mexicana, como: los impuestos más comunes y el plan de cuentas, basado en el código agrupador de cuentas del SAT.

EDI para México

l10n_mx_edi

Includes all the technical and functional requirements to generate and validate electronic documents — based on the technical documentation published by the SAT. This allows invoices to be sent (with or without addendums) and payment complements to the government.

Informes de la localización mexicana de Odoo

l10n_mx_reports

Adapts reports for Mexico’s electronic accounting: chart of accounts, trial balance, and DIOT, audit reports, etc.

Los siguientes módulos son opcionales. Se recomienda instalarlos solo si se cumple un requisito específico para el negocio.

Nombre

Nombre técnico

Descripción

EDI para México (funciones avanzadas)

l10n_mx_edi_extended

Añade el complemento de comercio exterior a las facturas (un requisito legal para vender productos a países extranjeros).

México - Guía electrónica de entrega

l10n_mx_edi_stock

Enables creating a Carta Porte: A bill of lading that proves to the government that goods are sent between A & B with a signed electronic document. It also installs the Fleet app.

Localización mexicana de Odoo para las existencias y el embarque

l10n_mx_edi_landing

Permite gestionar los números de identificación comercial (NICO) relacionados con los costes de embarque en documentos electrónicos.

Campos CFDI 4.0 para órdenes de venta

l10n_mx_edi_sale

Agrega campos adicionales al módulo de Ventas para cumplir con la Facturación Electrónica Mexicana

Localización Mexicana para el Punto de Venta

l10n_mx_edi_pos

Agrega campos adicionales al módulo de Punto de venta para cumplir con la Facturación Electrónica Mexicana

Localización Mexicana para Comercio Electrónico

l10n_mx_edi_website_sale

Agrega campos adicionales al módulo de Comercio electrónico para cumplir con los requisitos de facturación electrónica mexicana

Tutoriales en video

También hay videos disponibles sobre la localización mexicana. Los flujos de trabajo básicos y la mayoría de los temas cubiertos en esta página también están disponibles en formato de video, consulta lo siguiente:

Descripción general de la localización

Los módulos de localización mexicana de Odoo permiten la firma de facturas electrónicas, de acuerdo con las especificaciones del SAT para la versión 4.0 del CFDI, un requisito legal desde el 1 de enero de 2022. Estos módulos también agregan informes contables relevantes, incluyendo la DIOT, habilitan el comercio exterior y permiten la creación de guías de entrega.

Nota

Para firmar electrónicamente cualquier documento en Odoo, debe estar instalada la aplicación Firma electrónica.

Requerimientos

Es necesario que cumpla los siguientes requisitos antes de configurar los módulos de localización mexicana en Odoo:

  1. Estar registrado en el SAT con un RFC válido.

  2. Have a Certificado de Sello Digital / Digital Seal Certificate (CSD).

  3. Elegir un PAC. Actualmente, Odoo trabaja con los siguientes PACs: Solución Factible, Quadrum y SW Sapien - Smarter Web.

Empresa

Después de instalar los módulos correctos, el siguiente paso es verificar que la empresa esté configurada con los datos correctos. Para hacerlo, ve a Ajustes ‣ Usuarios y compañías ‣ Compañías y selecciona la compañía a configurar.

Ingresa la Dirección completa en el formulario resultante, incluyendo: código Postal, Estado, País y RFC (número de Identificación fiscal).

Según los requisitos del CFDI 4.0, el nombre del contacto principal de la empresa debe coincidir con la razón social registrada en el SAT, sin la abreviatura de la entidad legal. Lo mismo aplica para el código Postal.

Importante

Desde un punto de vista legal, las empresas mexicanas deben usar la moneda local (MXN). Para usar otra moneda, deja MXN como la moneda predeterminada y usa una lista de precios en su lugar.

A continuación, ve a Contabilidad ‣ Ajustes y desplázate a la sección Facturación electrónica MX. Bajo Servicio de Administración Tributaria (SAT), selecciona el Régimen fiscal que aplique a la empresa desde la lista desplegable y haz clic en Guardar.

Truco

To test the Mexican localization, make sure the following fields are filled in:

  • Company form:

    • Company Name: enter INNOVACION VALOR Y DESARROLLO SA SA

    • Address: fill in all fields with a real address in Mexico, and 58000 as Zip

    • RFC: enter IVD920810GU2

  • Go to Accounting ‣ Configuration ‣ Settings and scroll down to the MX Electronic invoicing section. In the Fiscal Regime field, select General de Ley Personas Morales.

Ramas

When using branches, invoicing information is taken from the main company except for the zip code. Unless the RFC is set on the branch, then Odoo uses the branch information instead.

Branches enable users to establish multiple brands within the same parent company. Additionally, when different fiscal regimes are required for invoicing purposes, it is necessary to create a branch for each regime. By default, the regime is inherited from the parent company. However, if the regime is explicitly set on the branch, Odoo adopts the regime applicable to that branch.

Contactos

Nota

Instala la aplicación Contactos para acceder a los registros de contacto.

Para crear un contacto que pueda ser facturado, ve a la aplicación Contactos y haz clic en Nuevo. Luego, ingresa el nombre del contacto, la Address completa incluyendo el código ZIP, State, Country y RFC (Tax ID).

Importante

Al igual que con la empresa misma, todos los contactos deben tener su razón social correcta registrada en el SAT. El Fiscal Regime también debe añadirse en la pestaña Sales & Purchase.

Advertencia

Tener un RFC (Tax ID) configurado pero sin un Country establecido puede resultar en facturas incorrectas.

Impuestos

Para firmar facturas correctamente, configura los campos Factor Type y Tax Object en los impuestos de ventas.

Truco

Las retenciones ISR de RESICO y algunos impuestos IEPS se crean automáticamente, pero la función no está activa por defecto. Para habilitarla, ve a Contabilidad ‣ Configuración ‣ Impuestos.

Tipo factor

Tanto el campo Factor Type como SAT Tax Type están precargados en los impuestos predeterminados.

Para nuevos impuestos, configura estos campos en Contabilidad ‣ Configuración ‣ Impuestos y haz clic en Nuevo. Configura el Tax Type como Ventas. En la pestaña Advanced Options, completa los campos SAT Tax Type y Factor Type.

Odoo soporta cuatro grupos de SAT Tax Types: IVA, ISR, IEPS y Local Taxes.

Si el tipo de factor es Quota, no se pueden usar métodos de cálculo estándar. En su lugar, configura el cálculo del impuesto como Custom Formula.

Example

\[result = quantity * 6.455\]
  • quantity = el número de artículos en la transacción

  • 6.455 = el valor de la cuota (un monto fijo por unidad)

  • Solo se soportan cuotas por unidad, no cuotas basadas en otros factores

Truco

México trabaja con dos tipos diferentes de IVA 0% para amoldarse a dos escenarios:

  • For 0% VAT, set the Factor Type to Tasa.

  • For VAT Exempt, set the Factor Type to Exento.

Nota

Los impuestos locales se generan en un nodo separado en el archivo XML, estos no son validados por el PAC.

Advertencia

Las cuotas y fórmulas personalizadas requieren el módulo Definir impuestos como código Python. Consulta Impuestos.

Objeto de impuestos

Un requisito del CFDI 4.0 es que el archivo XML resultante maneje el desglose de impuestos de la operación de acuerdo con la regulación. Hay ocho valores posibles diferentes que se agregan en el archivo XML:

  • 01: Sin objeto de impuesto: Este valor se agrega automáticamente si la línea de factura no contiene ningún impuesto.

  • 02: Objeto de impuesto: Esta es la configuración predeterminada de cualquier línea de factura que contenga impuestos.

  • 03: Objeto de impuesto y no requiere desglose: Esto solo puede agregarse manualmente.

  • 04: Objeto de impuesto y no tiene impuesto: Esto solo puede agregarse manualmente.

  • 05: Objeto de impuesto, IVA para PODEBI: Esto solo puede agregarse manualmente.

  • 06: VAT Object, No VAT forwarded: This object is selected when there is an ISR withholding and no VAT tax.

  • 07: No VAT forwarded, IEPS breakdown: This object is selected when there is an ISR withholding, IEPS tax and no VAT tax.

  • 08: IVA no trasladado, desglose de IEPS: Este objeto solo puede agregarse manualmente.

Advertencia

Using either 01, 03, 04, or 05 removes the tax node from the XML file.

Importante

El estado de Desglose de IEPS afecta el comportamiento de los objetos de impuesto debido a la ausencia de IEPS cuando no ocurre el desglose.

Impuestos locales

Los impuestos locales (por ejemplo, ISH, Cedullar) requieren un nodo XML separado y pueden no seguir la lógica fiscal estándar.

Al configurar un impuesto local, su nombre aparece en el complemento de impuesto local. La tasa se trata como retención si es negativa, o se traslada si es positiva.

Desglose de IEPS

Por defecto, Odoo oculta el IEPS en las facturas para que el subtotal sobre el cual se calcula el IVA incluya el importe del IEPS. Esto es para asegurar que los regímenes fiscales que no lo requieren no lo reciban.

Es posible hacer visible el IEPS en el XML seleccionando la casilla Desglose de IEPS dentro de cada contacto en la pestaña Ventas y compra.

Importante

When using either eCommerce invoicing or the Self invoicing portal, the customer has the option to decide whether or not to have the IEPS breakdown.

Otras configuraciones fiscales

La localización mexicana utiliza impuestos en base a efectivo. Al registrar un pago, Odoo realiza el movimiento de impuestos desde la Cuenta de transición de base de efectivo a la cuenta establecida en la pestaña Definición del registro de impuesto configurado en la línea de factura o recibo. Para dicho movimiento, se utiliza una cuenta base de impuesto: (899.01.99 Base Imponible de Impuestos en Base a Flujo de Efectivo) en el asiento contable al reclasificar impuestos. No elimines esta cuenta.

Retenciones

De forma predeterminada, Odoo incluye retenciones con distribuciones especiales para asignar el IVA.

Al registrar una factura, añade la retención y su IVA correspondiente. Ambos deben incluirse en la factura del proveedor para garantizar una contabilidad correcta. Se recomienda usar posiciones fiscales para que el asiento de base de efectivo divida correctamente la distribución.

Example

Para una factura de proveedor de arrendamiento de 10000 MXN, la retención de arrendamiento del 10.67% corresponde a un IVA 16% 2/3 H. Ambos impuestos deben aplicarse juntos para reflejar la contabilidad correcta.

Asiento de base de efectivo con IVA dividido entre pagado y pendiente.

Nota

Withholdings CFDI is not currently supported. Consult with an accountant about the proper distribution.

Productos

To configure products, go to Accounting ‣ Customers ‣ Products. Open an existing product or click New. In the Accounting tab, set the UNSPSC Product Category. Products and categories can be set manually, or through a bulk import.

Nota

Todos los productos necesitan tener un código SAT asociado para evitar errores de validación.

Facturación electrónica

Credenciales del proveedor autorizado de certificación

After processing the Private Key (CSD) with the SAT, register directly with a PAC before creating any invoices in Odoo.

Once an account has been created with any of these providers, go to Accounting ‣ Configuration ‣ Settings and navigate to the MX Electronic invoicing section. Under the Authorized Certification Provider (PAC) section, enter the name of your PAC with the corresponding credentials (PAC username and PAC password).

Configuración de las credenciales del PAC desde los ajustes de Contabilidad.

Truco

Para probar la facturación electrónica sin credenciales, activa la casilla Entorno de prueba PAC MX, y selecciona Solucion Factible como el PAC. No se requiere añadir un nombre de usuario o contraseña para un entorno de prueba.

Certificados .cer y .key

Los certificados digitales de la empresa deben cargarse en la sección Certificados. Para ello, navega a Ajustes ‣ Ajustes generales ‣ Certificados y claves.

En Gestiona tus certificados, haz clic en el enlace Claves para acceder a la vista de lista de Claves. Haz clic en Crear, carga el archivo digital de Clave (archivo .key), añade un Nombre a la clave e introduce la Contraseña de clave privada.

Desde Ajustes ‣ Ajustes generales ‣ Certificados y claves, selecciona Certificados para acceder a la vista de lista de Certificado. Haz clic en Crear, carga el Certificado digital (archivo .cer), añade un Nombre al certificado y selecciona la Clave privada creada en el paso anterior del menú desplegable.

Nota

Los campos Contraseña del certificado y Clave pública en los registros de Certificado son opcionales.

Truco

To test the electronic invoicing, the following SAT test certificates are provided and can be tested with either Quadrum or Solución Factible as PAC:

Contabilidad

Facturación electrónica

El proceso de facturación en Odoo está basado en la versión 4.0 del Anexo 20 de la facturación electrónica del SAT.

Facturas de cliente

Es necesario que cree una factura de cliente con el flujo de facturación estándar para comenzar a facturar desde Odoo.

Mientras el documento está en modo borrador, se pueden hacer cambios, algunos campos toman valores previamente establecidos en el pedido de venta o en el contacto.

Los campos que deben revisarse son:

  • CFDI to public

  • Usage

  • Payment Policy

  • Payment Method, if Payment Policy is not set as PPD

Truco

Uso, Política de pago y Método de pago pueden establecerse previamente en un pedido de venta y/o pueden configurarse en el contacto para cada factura.

La política de pago es un campo seleccionable en la factura y puede configurarse manualmente a la política requerida; sin embargo, si no se selecciona ninguna política, Odoo calculará una política automática basada en las siguientes reglas generales:

El valor se establecerá en PUE si la fecha de vencimiento en la que se espera el pago está dentro del mes actual; en caso de que la fecha esté fuera del mes actual, la política se establecerá en PPD.

Advertencia

Si la política de pago no está seleccionada y se espera la política PPD, selecciona una Fecha de vencimiento de factura en un mes diferente al actual, o elige Plazos de pago que impliquen cambiar el mes de vencimiento (por ejemplo, 30 días o 15 días, siempre que caigan en el mes siguiente).

Después de hacer clic en Confirmar en la factura de cliente, haz clic en el botón Enviar para procesar la factura con el gobierno. Asegúrate de que la casilla CFDI esté marcada.

Casilla CFDI

Después de recibir el documento firmado del gobierno, el campo Folio fiscal aparece en el documento y el archivo XML aparece tanto en la pestaña CFDI como adjunto en el chatter.

Si se configura una dirección de correo electrónico en el registro de contacto del cliente, al marcar las casillas por correo electrónico y CFDI se envían juntos los archivos XML y PDF.

Para descargar el archivo PDF localmente, haz clic en el botón Imprimir.

Truco

When clicking Update SAT, the SAT status field on the invoice confirms if the XML file is Validated in the SAT.

On a testing environment, the message Not Found commonly appears.

Advertencia

Invoices with a Country different from Mexico or missing the Zip field in the customer form are classified as CFDI to public and addressed to a generic customer. The CFDI to public checkbox stays active on the invoice form until valid partner information is provided. Once the contact information for a national customer is complete, the checkbox is automatically deactivated.

Redondeo de efectivo

In the Mexican localization, cash rounding is supported using the Add a rounding line method. This adds a rounding line that changes the paid amount, but does not change the amount in the CFDI.

Notas de crédito

El tipo de documento de una factura es «I» (Ingreso), el de una nota de crédito es «E» (Egreso).

Una adición al flujo estándar para notas de crédito es que, como requisito del SAT, debe haber una relación entre una nota de crédito y una factura a través del folio fiscal.

Debido a este requisito, el campo Origen CFDI añade esta relación con un 01|, seguido del folio fiscal del UUID original.

When creating credit notes, make sure the line description clearly indicates its purpose and specifies which entry applies to a bonus, discount, or refund.

Truco

Utilice el botón Agregar nota de crédito que se encuentra en la factura en lugar de crearla de forma manual, así el campo Origen del CFDI se agregará en automático.

Generalmente, las notas de crédito revierten la cuenta de ventas principal definida en el diario, pero también es posible asignar globalmente una cuenta a todas las notas de crédito. Para hacerlo, ve a Contabilidad ‣ Configuración ‣ Ajustes y configura la cuenta Notas de crédito en la sección Cuentas predeterminadas.

Nota

En la configuración predeterminada, la cuenta de notas de crédito está configurada como 402.01.01 Devoluciones, descuentos o bonificaciones sobre ventas y/o servicios a la tasa general.

Truco

The Payment Policy can be manually forced before stamping.

Facturas de proveedor

Vendor bills must have a fiscal folio for reports and payments to work correctly. If the vendor bill was created by the Purchase app or added manually, add the XML file of the invoice to the chatter as a log note. This updates the fiscal folio accordingly. The bill must be in draft state for the update to happen.

Truco

Al hacer clic en Actualizar SAT, el campo Estado SAT en la factura confirmará si el archivo XML está Validado por el SAT. Esto también aplica para facturas de proveedor.

Ver también

Facturas de proveedor

Diarios

The module EDI for Mexico (Advanced Features) (l10n_mx_edi_extended) must be installed on the database to complete the Address Issued field on the sales journal. This ensures that all invoices from that sales journal, as well as global invoices, use the correct ZIP code when generating the CFDI.

To invoice within a company under different time zones with the same user, create a system parameter to ensure the correct time zone is applied when invoicing, as the user’s time zone is used by default.

Para hacerlo, activa el modo de desarrollador y ve a Ajustes ‣ Técnico ‣ Parámetros del sistema. Haz clic en Nuevo para crear un nuevo parámetro con la clave l10n_mx_edi_tz_XX donde XX es el ID del diario, y establece la zona horaria deseada como valor, por ejemplo, “America/Tijuana”.

Pagos

Política de pago

Una adición de la localización mexicana es el campo Política de pago. Según la documentación del SAT, existen dos tipos de pagos:

  • PUE (Pago en una Sola Exhibición)

  • PPD (Pago en Parcialidades o Diferido/Payment in Installments or Deferred)

Advertencia

Payment complements are only generated if the policy of the invoice is set to PPD.

Ejemplo de una factura con los requisitos de PUE.

Si la factura tiene una fecha de vencimiento fuera del mes actual, se establecerá por defecto en PPD.

Ejemplo de una factura con los requisitos de PPD.
Flujo de pago

En ambos casos, el proceso de pago en Odoo es el mismo. La principal diferencia es que los pagos relacionados con facturas PPD, por ley, deben enviarse al gobierno como un tipo de documento «P» (Pago).

Si un pago está relacionado con una factura PUE, puede registrarse a través de la ventana emergente de pago y asociarse con la factura correspondiente. Para hacerlo, navega a Contabilidad ‣ Clientes ‣ Facturas y selecciona una factura. Luego, haz clic en el botón Pagar para abrir la ventana emergente de pago, establece la Forma de pago y cualquier otro campo, y haz clic en Crear pago.

Si bien este proceso es el mismo para las facturas PPD, la adición de crear un documento electrónico significa que se necesitan algunos requisitos adicionales para enviar correctamente el documento al SAT.

Desde una perspectiva legal, las facturas PPD deben incluir la Forma de pago específica con la que se recibió el pago. Debido a esto, el campo Forma de pago no puede establecerse como Por definir, por lo que el campo se volverá invisible al seleccionarlo.

Nota

  • Si se requiere un número de cuenta bancaria, añádelo en la pestaña Contabilidad del registro de contacto del cliente.

  • Las forma de configuración exacta se encuentra en el Anexo 20 del SAT. Por lo general, la cuenta bancaria debe tener 10 o 18 dígitos para las transferencias y 16 para las tarjetas de crédito o débito.

Si un pago totalmente conciliado está relacionado con una factura que tiene un Folio fiscal, aparece Actualizar pagos. Haz clic en el botón Actualizar pagos para enviar automáticamente el archivo XML del complemento de pago al gobierno y mostrarlo en la pestaña CFDI tanto en la factura como en el pago.

De manera similar a una factura o nota de crédito, el PDF y el XML pueden enviarse al cliente final. Para hacerlo, haz clic en el icono (engranaje) para abrir el menú desplegable de acciones y selecciona Enviar recibo por correo electrónico desde la vista de pago.

To download the payment PDF from the CFDI tab on the invoice, regardless of whether the payment was created with or without reconciliation, click Print.

Ejemplo del botón de impresión en la pestaña CFDI.
Cancelaciones de pago

Para cancelar complementos de pago, ve a la pestaña CFDI de la factura relacionada y haz clic en Cancelar en la línea del complemento de pago.

Like with invoices, go to the payment and click Update SAT to change the SAT Status and Status to Cancelled.

Nota

When substituting a payment complement, unreconcile the current payment. Then, to link the new payment to the original document, add 04| followed by the fiscal folio in the CFDI Origin field. If the new payment is signed after the substituted document is linked, the older payment is cancelled.

Factoraje

Factoring is a financial transaction in which a business sells its accounts receivable (outstanding invoices) to a specialized financial institution, known as a factor, to gain immediate liquidity.

To record a payment for financial factoring, follow these steps:

  1. Go to Accounting ‣ Configuration ‣ Settings, scroll down to the Default Accounts section and ensure a Factoring account is selected in the Factoring account field.

  2. From the Accounting Dashboard, click Bank on its corresponding Kanban card to manually add a transaction line and record the factoring payment. Complete the following fields:

    • Label: Enter a brief description of the transaction.

    • Partner: Select the financial institution (factor) that will purchase the debt.

    • Amount: Enter the actual amount to be received by the factor.

    Importante

    The currency of the factoring payment must match the bank journal’s currency.

  3. In the newly created transaction line, click the (vertical ellipsis) icon and select Reconcile.

  4. In the Search: Journal Items to Match window, remove the Partner filter, select the related invoices to be paid by the factor, and click Select.

    Nota

    Do not select the tax lines related to the invoices.

  5. In the Distribute Payment window, fill in the following fields to distribute the payment on the selected invoices:

    • Amount: Enter the amount that will actually be received from the factor.

    • Compensation: Enter the compensation that was paid to the factor.

    Truco

    • The Amount and Compensation amounts are provided by the factor and are stated on the factoring receipt.

    • Make sure the Amount and Compensation amounts equal the Due amount. If it exceeds the Due amount, the line is highlighted in red.

    • The To distribute field should balance the Amount to the transaction amount entered, ensuring it equals zero.

  6. Haga clic en Guardar.

In the Bank Matching view, the factoring payment is then reconciled with the relevant invoices, and the factoring commission is allocated to the Factoring account set up.

To generate the XML file, go to Accounting ‣ Customers ‣ Invoices, access one of the paid invoices, and click Update Payments.

Nota

  • The factoring company can retain a portion of the invoice amount, referred to as aforo, until the end customer completes payment. The retained balance is then released to the vendor.

  • For multi-currency factoring, use the (adjust settings) button in the Distribute Payment window and add the Due (Company) column to display the due amount in the company’s currency.

Cancelar facturas

Es posible cancelar los documentos EDI que envió al SAT. Según la Reforma Fiscal 2022, desde el 1 de enero de 2022 existen dos requisitos para ello:

  • Todas las solicitudes de cancelación requieren un motivo de cancelación.

  • Después de 24 horas desde la creación de la factura, se debe solicitar al cliente que apruebe la cancelación. Si no hay respuesta en 72 horas, la cancelación se procesa automáticamente.

Invoice cancellations are updated automatically in Odoo, but the update can take some time. To check the cancellation status, click Update SAT.

Las cancelaciones de facturas se pueden realizar por uno de los siguientes motivos:

  • 01 - Factura emitida con errores (con documento relacionado)

  • 02 - Factura emitida con errores (sin reemplazo)

  • 03 - La operación no se llevó a cabo

  • 04 - Operación nominativa relacionada con la factura global

Para iniciar una cancelación, ve a Contabilidad ‣ Clientes ‣ Facturas, selecciona la factura publicada a cancelar y haz clic en Solicitar cancelación. Luego, consulta las secciones Motivo de cancelación 01 o Motivos de cancelación 02, 03 y 04, según el motivo de cancelación.

Truco

Alternativamente, solicita una cancelación desde la pestaña CFDI haciendo clic en Cancelar en la línea del elemento.

Nota

  • Si se solicita una cancelación en un período bloqueado, el CFDI se cancelará pero no el asiento contable.

  • Si el cliente rechaza la cancelación, la línea de cancelación de la factura se elimina de la pestaña CFDI.

Motivo de cancelación 01
  1. En la ventana emergente Solicitar cancelación de CFDI, selecciona 01 - Factura emitida con errores (con documento relacionado) del campo Motivo y haz clic en Crear factura de reemplazo para crear un nuevo borrador de factura. Este nuevo borrador de factura reemplaza la factura anterior, junto con el CFDI relacionado.

  2. Confirma el borrador y envía la factura.

  3. The substituted invoice automatically cancels the original invoice once the new one is signed.

La cancelación de la factura se genera entonces con una línea de motivo en la pestaña CFDI.

Línea de factura cancelada en la pestaña CFDI.

Nota

Al usar el motivo de cancelación 01 - Factura emitida con errores (con documento relacionado), aparece el prefijo 04| en el campo Folio fiscal. Este es un prefijo interno utilizado por Odoo para completar la cancelación y no significa que el motivo de cancelación fue 04 - Operación nominativa relacionada con la factura global.

Motivos de cancelación 02, 03 y 04

En la ventana emergente Solicitar cancelación de CFDI, selecciona el Motivo de cancelación deseado y Confirma la cancelación.

Al hacerlo, la cancelación de la factura se genera con una línea de motivo en la pestaña CFDI.

Nota

Si el Estado SAT vuelve a Validado, podría deberse a una de estas tres razones:

  • The invoice is labeled as No Cancelable in the SAT Website. due to the fact that it has a valid related document: Either another invoice linked with the CFDI Origin field or a Payment Complement. If so, cancel any other related document first.

  • La solicitud de cancelación aún está siendo procesada por el SAT. Si es así, espera unos minutos e inténtalo de nuevo.

  • The final customer needs to reject or accept the cancellation request in their Buzón Tributario. This can take up to 72 hours. If the cancellation request is rejected, repeat the process.

Para los motivos de cancelación 02, 03 y 04, el botón Crear factura de reemplazo se reemplaza por un botón Confirmar que solicita la cancelación inmediatamente.

Tanto el Estado actual como el Motivo de cancelación se pueden encontrar en la pestaña CFDI.

Factura antigua con origen CFDI.
Cancellation acknowledgement

To print a cancellation PAC response after cancelling a CFDI, click Print on the corresponding cancellation line in the CFDI tab of the invoice form.

To include the current SAT status in the PDF, click Update SAT in the invoice form. Note that when a payment is reviewed, the invoice status is updated accordingly.

Cancellation acknowledgement example.

Importante

A cancellation acknowledgement confirms that the cancellation was requested successfully, but it is not definitive proof that the CFDI has been fully cancelled.

Facturación de casos de uso especial

Relaciones CFDI

To relate the current document to previously signed CFDIs, fill in the CFDI Origin field on the invoice and specify the relation using one of the seven available values:

  • 01: Nota de crédito

  • 02: Nota de débito de los documentos relacionados

  • 03: Devolución de mercancía sobre facturas o traslados previos

  • 04: Sustitución de los CFDI previos

  • 05: Traslados de mercancias facturados previamente

  • 06: Factura generada por los traslados previos

  • 07: CFDI por aplicación de anticipo

Truco

El formato es: Tipo de Origen|UUID1, UUID2, …., UUIDn donde se puede agregar más de un Tipo de Origen.

Example

Aquí hay un ejemplo con dos relaciones:

04|042FE739-7B45-4D64-B26D-360000876D83,
07|A164BAF8-8016-428C-A422-D9BD2F68F6A0,CEAD9433-3B77-4270-85BF-AC2519587514
  • La primera sección tiene tipo de relación 04 con 1 UUID

  • La segunda sección tiene tipo de relación 07 con 2 UUIDs

Adicionalmente, cualquier combinación también es visible en el PDF firmado.

Ejemplo del PDF con 3 relaciones.
Multidivisa

The main Currency in Mexico is MXN. While this is mandatory for all Mexican companies, it is possible to send and receive invoices (and payments) in different currencies. To enable the use of multicurrency, navigate to the Accounting ‣ Configuration ‣ Currencies, and set [MX] Bank of Mexico as the Service in the Automatic Currency Rates section. Then, set the Interval field to the desired frequency to update the exchange rates.

De esta manera, en el archivo XML del documento aparecerá el tipo de cambio correcto y el importe total tanto en la divisa extranjera como en MXN.

Se recomienda encarecidamente usar cuentas bancarias separadas para cada moneda.

Nota

Las únicas monedas que actualizan automáticamente su tipo de cambio diariamente son: USD, EUR, GBP, JPY y CNY.

Descuentos

Por ley, los documentos electrónicos enviados al gobierno no pueden tener líneas negativas, ya que esto puede generar errores. Por lo tanto, al usar tarjetas de regalo o programas de fidelización, las líneas negativas subsecuentes se traducirán en el XML como si fueran descuentos regulares.

Para configurar esto, navega a Ventas ‣ Productos ‣ Productos y crea un producto Descuentos, asegúrate de que tenga un Impuesto válido (generalmente IVA al 16%).

Después de esto, crea y firma la factura mediante CFDI, y añade el producto Descuentos al final. En el XML, Odoo distribuirá el descuento entre las líneas de manera uniforme, mientras que cualquier diferencia matemática se añadirá en un producto de redondeo.

Truco

Se debe crear un Descuento y una Categoría de producto UNSPSC para cada variante de producto relacionada con Tarjetas de regalo o Programas de fidelización.

Anticipos

A common practice in Mexico is the usage of down payments. They are primarily used when a payment is received for a good or service whose product, price, or both have not been fully determined.

El SAT permite dos formas diferentes de manejar este proceso: ambas implican vincular todas las facturas entre sí con el campo Origen CFDI.

Nota

Para este proceso, debe estar instalada la aplicación Ventas.

Configuración

Primero, navega a Ventas ‣ Productos ‣ Productos para crear un producto Anticipo y configurarlo. El Tipo de producto debe ser Servicio, y usa la Categoría UNSPSC 84111506 Servicios de facturación.

Después, vaya a Ventas ‣ Ajustes ‣ Facturación ‣ Anticipos y agregue Anticipo como producto predeterminado.

Método A

This method consists of creating a down payment invoice, creating an invoice for the total amount, and finally, creating a credit note for the total of the down payment.

Primero, crea un pedido de venta con el importe total y crea un anticipo a partir de él (usando un porcentaje o un importe fijo). Luego, firma el documento mediante CFDI y registra el pago.

Cuando llegue el momento de que el cliente reciba la factura final, créala nuevamente desde el mismo pedido de venta. En la ventana emergente Crear factura, selecciona Factura regular. Asegúrate de eliminar la línea que contiene el producto Anticipo.

Truco

Al usar anticipos con la localización mexicana, asegúrate de que la Política de facturación de los productos sea Cantidades pedidas. De lo contrario, se creará una nota de crédito de cliente.

Then, copy the Fiscal Folio from the down payment invoice, and paste it into the CFDI Origin field of the final invoice. Add the prefix 07| before the value and sign the document via CFDI.

Finalmente, crea una nota de crédito para la primera factura. Copia el Folio fiscal de la factura final y pégalo en el Origen CFDI de la nota de crédito, añadiendo el prefijo 07|. Luego, firma el documento mediante CFDI.

With this, all electronic documents are linked to each other. The final step is to fully pay the new invoice. At the bottom of the new invoice, the credit note appears in the Outstanding credits; add it as payment. Finally, register the remaining amount with the Pay popup.

En el pedido de venta, los tres documentos deberían aparecer como «En pago».

Método B

Otra forma más sencilla de cumplir con los requisitos del SAT implica crear solo la factura de anticipo y una segunda factura por el remanente. Este método implica el hecho de que las líneas negativas se tratan como descuentos.

For this, follow the same process as Method A, up until the creation of the final invoice. Do not delete the line that contains the Anticipo and instead rename the other products Description to include the text CFDI por remanente de un anticipo. Add the Fiscal Folio of the down payment invoice in the CFDI Origin field of the final invoice, adding the prefix 07|.

Finalmente, firma la factura final mediante CFDI.

Addendas y complementos

An addenda is a code addition to an invoice XML file that provides extra information beyond legal requirements. It is added after the invoice has been signed. A complement is a fiscal addition that reports specific fiscal operations and is added before the invoice is signed. Only a limited number of complements are available, and some are already included in Odoo. See the SAT complement documentation for more information.

Addendas and complements can be included in the XML. To add one, go to Accounting ‣ Configuration ‣ Addendas & Complementos (MX) and click New to enter the code to be injected. Additional fields beyond standard Odoo may be required.

Advertencia

Esta sección puede requerir conocimientos técnicos y puede agregar deuda técnica; se recomienda consultar con tu gerente de cuenta para obtener el mejor asesoramiento técnico.

Una vez creados los nodos deseados, pueden seleccionarse en cada contacto para que aparezcan en cada factura dirigida a ese contacto. Por defecto, todos los nodos seleccionados se agregarán automáticamente en cada factura.

También es posible seleccionar los nodos según sea necesario en cada factura seleccionando la pestaña Otra información y luego seleccionando los nodos deseados de Addendas & Complementos

Truco

Es posible agregar más de uno por contacto o por factura.

Lector XML

On certain occasions, such as when creating invoices in another software or in the SAT directly, it is possible to upload invoices to Odoo. The XML Reader can retrieve the data from an XML file. To do this, navigate to Accounting ‣ Customers ‣ Invoices and, in the list view, click Upload to select any number of XML files. Draft invoices are automatically created. This can also work by dragging files from a local storage and dropping them in the view.

Las facturas en borrador recuperarán la Información del cliente (si no existe, se crearán nuevos), las Líneas de producto (solo si ya existen productos con el mismo nombre) y calcularán todos los impuestos y campos adicionales exclusivos de la localización mexicana. La información de importación aparecerá en el chatter.

Advertencia

Dependiendo de dónde se creó la factura, los archivos XML podrían tener valores diferentes del total calculado en Odoo. Siempre verifica dos veces cualquier documento subido de esta manera.

Customer Invoices created this way can create payment complements and can be canceled at any time. If the Print option is used, the PDF document includes all the corresponding information.

Esto también se puede hacer para las Facturas de proveedor.

Truco

Para recuperar el Folio fiscal, arrastra y suelta archivos XML como una nota de registro en el chatter para facturas en borrador creadas previamente.

CFDI al público

El gobierno mexicano requiere que cualquier bien o servicio que se venda debe estar respaldado por una factura. Si el cliente no requiere una factura o no tiene RFC, se debe crear un CFDI al Público también conocido como factura «nominativa».

Se debe crear un contacto y debe tener un nombre particular.

If the CFDI to Public checkbox in either a sales order or an invoice is checked, the final XML will override the data in the invoice contact and will add the following characteristics:

  • RFC: XAXX010101000 si es un cliente nacional o XEXX010101000 si es un cliente extranjero

  • Código postal: El mismo código de la empresa

  • Uso: S01 - Sin Efectos Fiscales

Casilla CFDI al Público

Si el cliente final no comparte ningún detalle, crea un Cliente genérico. El nombre no puede ser PUBLICO EN GENERAL o se activará un error (puede ser, por ejemplo, CLIENTE FINAL).

Advertencia

By default, sending the invoice is not allowed if the partner does not have either the Country or ZIP code set. However, this is not required if the CFDI to public checkbox is active.

Factura global

If by the end of a certain period of time (that can vary from daily to bimonthly, depending on the company’s legal needs and preferences) and the customer still has sales that weren’t marked as regular invoices or individual CFDI to Public invoices, the SAT allows for the creation of a single invoice that can contain all operations, known as a global invoice.

Nota

Para este proceso, debe estar instalada la aplicación Ventas.

Configuración

La Serie de factura global es específica para cada sucursal o empresa y se utiliza para definir la secuencia de facturas globales. Para configurarla, ve a Contabilidad ‣ Configuración ‣ Ajustes, y navega a la sección Facturación electrónica MX. El campo Serie de factura global se encuentra dentro de la sección Servicio de Administración Tributaria (SAT).

Ajuste de contabilidad con una empresa MX.

Truco

La secuencia predeterminada para cada empresa/sucursal es GINV/

Flujo de ventas

Primero, crea un diario dedicado en Contabilidad ‣ Configuración ‣ Diarios para mantener una secuencia separada que se utiliza para las facturas globales, que funcionan como pedidos cuando se crean.

Luego, asegúrate de que todos los pedidos de venta que necesiten ser firmados tengan las siguientes configuraciones:

  • casilla CFDI al público activada

  • Estado de facturación marcado como A facturar

Después de esto, ve a Ventas ‣ A facturar ‣ Pedidos a facturar, selecciona todos los pedidos de venta relevantes y pulsa Crear facturas. Asegúrate de desactivar la casilla Facturación consolidada y haz clic en Crear factura borrador.

In the list of draft invoices displayed, select all, click Actions, and select Confirm entries. Then, select all posted invoices again and return to the Actions drop-down menu to select Create Global Invoice.

In the Create Global Invoice window, select the Periodicity recommended by an accountant and use the Date field to specify the period to be invoiced. Then, click Create. Verify all invoices are signed under the same XML file and share the same Fiscal Folio.

Nota

  • The selected Date is used only to extract the month and year for the XML. For bimonthly periodicity, the month determines the period declared as follows:

    • Months 1-12: Standard month number (January = 1, February = 2, etc.)

    • January - February -> 13

    • March - April -> 14

    • May - June -> 15

    • July - August -> 16

    • September - October -> 17

    • November - December -> 18

  • Global invoices created this way won’t include a PDF attachment, as their information is already in Odoo and isn’t meant to be seen by customers.

Example

  • Selecting the date 01/12/2026 with monthly periodicity declares month 12 and year 2026.

  • Selecting the date 01/12/2026 with bimonthly periodicity declares month 18 and year 2026.

  • Selecting the date 01/12/2026 with daily periodicity declares month 12 and year 2026.

Truco

  • Haz clic en Mostrar en la pestaña CFDI para mostrar una lista con todas las facturas relacionadas.

  • Haz clic en Cancelar en la pestaña CFDI para cancelar la factura global tanto en el SAT como en Odoo.

Electronic accounting reports

En Mexico, la contabilidad electrónica se refiere a la obligación de llevar los registros y asientos contables a través de medios electrónicos y de ingresar mensualmente la información contable en el sitio web del SAT.

Consta de tres archivos XML principales:

  1. La lista actualizada del plan de cuentas que está actualmente en uso

  2. Una balanza de comprobación mensual, más un reporte de asiento de cierre, también conocido como: Balanza de comprobación Mes 13

  3. Una exportación de los asientos contables en el libro mayor (opcional excepto en caso de una auditoría obligatoria)

El archivo XML que se genera cumple con los requisitos del Anexo Técnico de Contabilidad Electrónica 1.3.

Además de esto, es posible generar el DIOT: un reporte de los asientos contables de proveedores que involucran impuestos IVA que puede ser exportado en un archivo TXT.

Nota

To use these reports, the following modules must be installed:

  • Odoo Mexican Localization Reports (l10n_mx_reports)

  • Mexico - Month 13 Trial Balance (l10n_mx_reports_closing)

  • Odoo Mexican XML Polizas Export (l10n_mx_xml_polizas)

Los informes de plan de cuentas y balance de comprobación mes 13 se encuentran en Contabilidad ‣ Informes ‣ Balance de comprobación. El informe DIOT se encuentra en Contabilidad ‣ Informes ‣ Informe de impuestos.

Importante

The specific characteristics and obligations of the reports required to be sent might change depending on the fiscal regime. Always contact an accountant before sending any documents to the government.

Plan contable

The chart of accounts in Mexico follows a specific pattern based on the SAT documentation Código agrupador de cuentas.

It is possible to create any account, as long as it respects SAT’s encoding group: the pattern is NNN.XX.YY, NNN.XX.YYY or NNN.XX.YYY.ZZ.

Example

Some examples are 102.01.99, 401.01.001 or 401.01.001.16.

When a new account is created in Accounting ‣ Configuration ‣ Chart of Accounts, the structure is validated.

Una vez creadas todas las cuentas, asegúrate de añadir las Etiquetas correctas, ya que marcan la naturaleza de la cuenta.

Due to the account hierarchy on parent accounts, set the appropriate Parent Account on each account to create a hierarchy for reports. Accounts without a parent are level 1 accounts; accounts below them are level 2, and so on.

Nota

  • Active accounts must be longer than five digits, or they trigger errors in the report. By default, Odoo marks accounts in yellow if the numbering could cause issues later on.

  • If an account is shorter than five characters, mark it as inactive so validations do not apply to it.

  • Accounts shorter than three characters are not reported in XML reports. This is useful to classify accounts.

  • As a good practice, only keep last-level accounts active and keep all parent accounts inactive. This prevents accounting errors, while parent accounts still appear in reports.

Una vez configurado todo, ve a Contabilidad ‣ Informes ‣ Balance de comprobación, y haz clic en el botón COA SAT (XML) para generar un archivo XML que contenga todas las cuentas. Este archivo XML está listo para subirse al sitio web del SAT.

Balance de comprobación

The trial balance reports the initial balance, credits, and total balances of the accounts, provided that their numbering is correct.

To generate an XML file of the trial balance, go to Accounting ‣ Reporting ‣ Trial Balance and select the date. Click the (gear) icon and select SAT (XML). Then, select the appropriate Submit Type from the Export SAT window, depending on whether the trial balance is Normal or Supplementary.

Informe de la comprobación del balance.
Mes 13

Un informe adicional es el Mes 13: un balance de cierre que muestra cualquier ajuste o movimiento realizado en la contabilidad para cerrar el año.

Para generar este documento XML, navega a Contabilidad ‣ Contabilidad ‣ Asientos contables, y crea un nuevo documento. Aquí, añade todos los importes a modificar y balancea el débito y/o crédito de cada uno.

After this is done, go to the Other Info tab and check the Month 13 Closing field. If needed, go to Accounting ‣ Reporting ‣ Trial Balance and select the date Month 13, where it is possible to see the total amount of the year, plus all the additions of the journal entry. To generate the XML file, click the (action menu), then select SAT (XML).

Libro mayor

Por ley, todas las transacciones en México deben registrarse digitalmente. Como Odoo crea automáticamente todos los asientos contables subyacentes de todas las facturas y pagos, simplemente exportar el libro mayor cumple con las auditorías del SAT y/o devoluciones de impuestos.

Truco

El informe se puede filtrar por período o por diario, dependiendo de la necesidad.

Para crear el XML, ve a Contabilidad ‣ Informes ‣ Libro mayor, haz clic en (menú de acción), luego haz clic en XML (Pólizas). Luego, selecciona entre cuatro tipos de Exportación:

  • Auditoría de impuestos

  • Certificación de auditoría

  • Devolución de bienes

  • Compensación

Para Auditoría fiscal o Certificación de auditoría, añade el Número de orden proporcionado por el SAT. Para Devolución de bienes o Compensación, añade el Número de proceso, también proporcionado por el SAT.

Nota

Para ver este informe sin enviarlo, usa ABC6987654/99 para el Número de orden o AB123451234512 para el Número de proceso.

Informe DIOT

The DIOT (Declaración Informativa de Operaciones con Terceros / Informative Declaration of Operations with Third Parties) is an additional obligation with the SAT, where the current status of creditable and non-creditable payments, withholdings, import taxes, and refunds of VAT from the vendor bills are provided to the SAT.

Unlike other reports, the DIOT is uploaded to a website provided by the SAT that contains the A-29 form. In Odoo, it is possible to download the records of all transactions as a TXT file with 54 columns. This file can be uploaded to the form, reducing the data that is manually added.

El archivo de transacciones contiene el importe total de los pagos registrados en facturas de proveedor, desglosados en los tipos de IVA correspondientes. Los campos IVA, País y Tipo de operación son obligatorios para todos los proveedores.

Para descargar el informe DIOT como un archivo TXT, ve a Contabilidad ‣ Informes ‣ Declaración de impuestos. Selecciona el mes deseado, haz clic en (menú de acción) y selecciona DIOT (TXT).

In case new taxes are created in the database, there are two types of tags. Tags containing tax must go into the tax distribution, and the ones with the base name go on the base of the tax. All lines of a VAT tax must contain at least one tax grid.

Botón de descarga DIOT (TXT).

Importante

Es necesario rellenar el campo Tipo de operación en la pestaña Contabilidad de cada proveedor para evitar errores de validación. Asegúrate de que los clientes extranjeros tengan configurado su País.

Información de la DIOT en el contacto del proveedor.

Seleccionar 87 - Operaciones globales hará que el archivo TXT final combine todos los proveedores que forman parte de las operaciones globales bajo un RFC genérico: XAXX010101000.

Accounting reports

Two Mexican-specific reports are the Balance Sheet and the Profit and Loss.

Balance general

The report is based on NIF B-6 and is divided into assets, liabilities, and equity, which reflect the current financial state of the company.

Pérdidas y ganancias

The report is based on NIF B-3 and is divided into income, operating expenses, comprehensive financial results (RIF), and taxes, which help identify the net profit or financial position of a company.

Comercio exterior

La factura de comercio exterior es un complemento para una factura regular que agrega algunos valores al XML y el PDF para las facturas de un cliente extranjero de acuerdo con los reglamentos del SAT. Entre estos valores se encuentran:

  • La dirección específica del destinatario y el remitente.

  • La adición de una fracción arancelaria que identifica el tipo de producto.

  • El Incoterms correcto (Términos de Comercio Internacional)

  • Y más, como el certificado de origen y las unidades de medida especiales

Esto permite identificar de forma correcta a los exportadores e importadores, además de ampliar la descripción de la mercancía vendida.

Desde el 1 de enero de 2018, el comercio exterior es un requisito para los contribuyentes que realizan operaciones de exportación de tipo A1. Aunque el CFDI actual es 4.0, el comercio exterior está actualmente en la versión 2.0.

Nota

Para usar esta función, debe estar instalado el módulo EDI para México (funciones avanzadas) l10n_mx_edi_extended.

Importante

Before installing, make sure your business needs to use this feature. Consult an accountant first, if needed, before installing any modules.

Debe marcarse la casilla CFDI al público al crear facturas extranjeras.

Configuración

Contactos

Para configurar el contacto de tu empresa para comercio exterior, ve a Contabilidad ‣ Clientes ‣ Clientes, elimina el filtro predeterminado Facturas de cliente y selecciona el nombre de tu Empresa. Mientras que los requisitos del CFDI 4.0 requieren agregar un Código postal válido en el registro de contacto de la empresa, el complemento de comercio exterior añade el requisito de que la Ciudad y el Estado también deben ser válidos. Los tres campos deben coincidir con el Catálogo Oficial del SAT para Carta Porte, o producirá un error.

Advertencia

Agrega la Ciudad y el Estado en el registro de contacto de la empresa, no en el registro de la empresa en sí.

En el registro de contacto, los campos opcionales Localidad y Código de colonia también se pueden rellenar. Estos dos campos también deben coincidir con los datos del SAT.

Para configurar los datos de contacto de un cliente receptor extranjero, vaya a Contabilidad ‣ Clientes‣ Clientes y seleccione el contacto del cliente extranjero. Este contacto debe tener los siguientes campos completos para evitar errores:

  1. La dirección completa de la empresa, con un código postal válido y el país extranjero.

  2. El RFC extranjero (número de identificación fiscal), en el formato correcto (por ejemplo: Colombia 123456789-1)

  3. En la pestaña Ventas y compra, activar la casilla ¿Necesita comercio exterior?.

Nota

En los archivos XML y PDF resultantes, el NIF se sustituye de manera automática por un NIF genérico para transacciones al extranjero: XEXX010101000.

Productos

Todos los productos involucrados en comercio exterior tienen cuatro campos adicionales que son obligatorios, dos de los cuales son exclusivos del comercio exterior.

  1. La Referencia del producto debe configurarse en la pestaña Información general.

  2. El Peso del producto en la pestaña Inventario debe ser mayor que 0.

  3. The Tariff Fraction of the product must be set in the Accounting tab for external trade. Use the VUCEM tariff fraction classifier to find the correct value.

  4. La UMT Aduana en la pestaña Contabilidad debe estar configurada y corresponder a la Fracción Arancelaria para el comercio exterior.

Campos necesarios para los productos de comercio exterior.

Truco

  • Si el código de UdM de la fracción arancelaria es 01, la UMT Aduana correcta es kg.

  • Si el código de UdM de la fracción arancelaria es 06, la UMT Aduana correcta es Unidades.

Flujo de facturación

Antes de crear una factura, es importante tener en cuenta que las facturas de comercio exterior requieren convertir los precios de los productos a una moneda extranjera como USD. Por lo tanto, la multimoneda debe estar habilitada con la moneda extranjera activada en la sección Monedas. El Servicio correcto a ejecutar es [MX] Banco de México. Para convertir los precios de los productos, crea una tarifa de precios en la moneda extranjera.

Luego, con el tipo de cambio correcto configurado en Contabilidad ‣ Ajustes ‣ Moneda, establece el Incoterm y el campo opcional Certificado de Origen en la pestaña Otra Información de la factura.

Truco

Aunque no es obligatorio, la información será más completa si CFDI al público también está activo.

Finalmente, confirma la factura con el mismo proceso que una factura normal y haz clic en el botón Enviar para firmarla vía CFDI.

Invoicing services

Services and merchandise can be invoiced together on the same invoice if the service is set up correctly. To do so, follow these steps:

  1. Go to Accounting ‣ Customers ‣ Products and access the relevant service form.

  2. In the Accounting tab, under the UNSPSC section, find the UMT Aduana field and click the (right arrow).

  3. Verify that either the UNSPSC Category is selected to E48 service unit or the Customs code is set as 99.

Invoicing with either of these codes sets the service price to 0 for customs declarations.

Punto de venta

La adaptación de Punto de venta de la localización mexicana permite la creación de facturas que cumplen con los requisitos de SAT directamente desde el registro TPV, con el beneficio adicional de crear tickets de recibo que permiten la autofacturación en un portal especial y la creación de facturas globales.

Flujo del punto de venta

Además de la configuración estándar del Punto de venta, la localización mexicana requiere que cada método de pago se configure con una Forma de pago correcta, así como una Cuenta de refacturación para gestionar la contabilidad de las facturas con el portal de facturación.

Truco

Por defecto, Odoo crea métodos de pago preconfigurados para efectivo, tarjeta de crédito y tarjeta de débito y asigna la cuenta 402.04.01 Refacturación como predeterminada para refacturación.

Al vender en el Punto de Venta, haz clic en el botón Cliente para crear o seleccionar un cliente. Aquí es posible revisar la información de facturación del cliente (como el RFC o el Régimen Fiscal) e incluso modificarla directamente dentro de la sesión.

Después de seleccionar un cliente, marca la casilla Factura. Esto abre un menú para seleccionar el Uso y definir si es una factura al público. Haz clic en confirmar, selecciona el método de pago y luego haz clic en validar para completar el pedido. El PDF se descarga entonces y es posible enviar la factura por correo al cliente final junto con el recibo.

Truco

Para crear facturas desde pedidos, ve al menú Pedidos, selecciona el pedido, haz clic en Cargar Pedido y marca la casilla Factura. Esto abre el mismo menú para el Uso y CFDI al Público.

Configuración de factura para punto de venta.

Para firmar una nota de crédito automáticamente, marca la casilla Factura al procesar un reembolso.

Nota

Las notas de crédito para productos devueltos contendrán el tipo de relación 03 - Devolución de mercancía sobre facturas o traslados previos.

Importante

  • En la localización mexicana, no se pueden mezclar líneas positivas y negativas en una sesión de TPV.

  • If a SAT validation error occurs, the customer receives a Pro-Forma invoice instead.

Portal de autofacturación

Si el cliente final no está seguro de querer que su factura se genere en el momento exacto de la venta, es posible darle la opción de crear un recibo con un código QR o una URL. Para hacerlo, sigue estos pasos:

  1. Ve a Punto de Venta ‣ Configuración.

  2. Selecciona el Punto de Venta.

  3. Desplázate a la sección Facturas y Recibos.

  4. Habilita Autofacturación.

  5. Configura el campo Imprimir como Código QR, URL o Código QR + URL.

Customers who scan this QR code or follow the URL access a menu where they can add their fiscal information, including :guilabel: Usage` and Fiscal Regime.

En los asientos contables de la sesión, la Cuenta de refacturación previamente seleccionada se utilizará para manejar las reversiones de los asientos de ventas cuando se soliciten facturas, así como para usarse como cuenta de ventas para las nuevas facturas.

Ver también

refund

Factura global

Al igual que con los pedidos de venta regulares, las facturas globales también se pueden crear desde el registro TPV.

Para ello, asegúrate de no seleccionar un cliente ni la opción de factura en el menú de pago y ve a Punto de venta ‣ Pedidos ‣ Pedidos. Allí, selecciona todos los pedidos a facturar, haz clic en Acciones y selecciona Crear factura global.

Al igual que con los pedidos de venta, elige la Periodicidad correcta y presiona Crear.

Esto adjunta un archivo XML a cada uno de los pedidos seleccionados. Los archivos XML se pueden descargar yendo a la pestaña CFDI. Si es necesario, es posible cancelar la factura desde la misma pestaña.

Si finalmente alguno de los pedidos que forman parte de la factura global necesita dirigirse a un cliente, aún es posible enviar una factura abriendo el registro TPV, haciendo clic en (menú desplegable), luego haz clic en Pedidos. Cambia el filtro Todos los pedidos activos a Pagado, selecciona el pedido y haz clic en el botón Factura.

Nota

Las facturas globales, al igual que las facturas regulares, solo se pueden agrupar por dirección física. Esto está determinado por la dirección configurada en el diario de facturas del TPV, por lo que al intentar facturar dos direcciones aparecerá una advertencia para informar al usuario del error.

Ver también

For cash rounding, consider the configuration in the Cash rounding section.

Comercio electrónico

The eCommerce adaptation of the Mexican Localization provides an extra step to create invoices that comply with the SAT requirements on eCommerce by retrieving the customer data after the Checkout and even allowing for the signature of automatic invoices after the payment is processed, as well as sending customers the files via email and granting them access to retrieve their PDF file from their own customer portal.

Flujo de comercio electrónico

During the regular checkout process, a new Invoicing Info step appears, where it is possible to request an invoice or not. If No is selected, a CFDI to Public is created. If Yes is selected, the RFC, Fiscal Regime, and Usage are required in order to get all information in the sales order, where its status will change to To Invoice.

Además, el cliente puede decidir si solicita o no el desglose de IEPS.

Importante

Asegúrate de agregar un código UNSPSC al producto de envío.

Si la facturación automática está habilitada en Ajustes ‣ Sitio web ‣ Facturación, el documento electrónico se firmará automáticamente.

Ventas

La aplicación Ventas contiene campos que facilitan la facturación; aunque los campos en sí no cambian el comportamiento de las ventas, se copian directamente al crear una factura.

Los campos copiados son:

  • Payment Way

  • Payment Policy

  • CFDI to public

  • Usage

Además, es posible obtener una vista previa de la factura para fines de validación con el cliente instalando el módulo de proforma. Este módulo agrega los campos mencionados al pedido de venta, así como:

  • Product code

  • Unit code

  • Fiscal regime

Suscripciones

Al manejar suscripciones, todos los campos de ventas se utilizan para crear las facturas recurrentes. Estas se firman automáticamente y se envían por correo electrónico con el PDF y el XML adjuntos sin acciones manuales adicionales requeridas.

Importante

Todas las facturas generadas por la aplicación de suscripciones siempre se firmarán automáticamente sin excepciones.

Inventario

Números de pedimento

Una declaración aduanera (Pedimento Aduanero) es un documento fiscal que certifica que todas las contribuciones a la entidad fiscal (el SAT) han sido pagadas, incluyendo la importación/exportación de mercancías.

Según el Anexo 20 del CFDI 4.0, en documentos donde los bienes facturados provienen de una operación de importación de primera mano, el campo Número de aduana debe agregarse a todas las líneas de productos involucrados en la operación, así como la fecha del documento.

Nota

Para ello, debe instalarse el módulo Odoo Mexico Localization for Stock/Landing l10n_mx_edi_landing, además de las aplicaciones Inventario, Compra y Ventas.

Importante

Do not confuse this feature with external trade. The customs numbers are directly related to importing goods, while the external trade complement is related to exporting. Consult an accountant first if this feature is needed before doing any modifications.

Configuración

Para rastrear el número de aduana correcto para una factura específica, Odoo utiliza costes en destino. Ve a Inventario ‣ Configuración ‣ Ajustes, y en la sección Valoración, asegúrate de que Costes en destino esté activado.

Truco

Se recomienda agregar un Diario predeterminado para llenar automáticamente el campo obligatorio Diario en los costos en destino, aunque los costos en destino que solo agregan números de aduana sin agregar Costos adicionales no crean asientos contables.

Configura los productos tipo mercancía que contendrán los números de aduana. Para ello, crea los productos y completa estos tres requisitos:

  • El Seguimiento debe establecerse en Por lotes o Por número de serie único, pero no en Por cantidad.

  • La Política de facturación debe establecerse en Cantidades entregadas.

  • La valoración por lotes/números de serie debe estar habilitada.

This makes the Customs invoicing field available on the Accounting tab. Enable the field to use customs numbers with this product.

Es importante asegurarse de que el producto tenga una Categoría de producto y tenga la siguiente configuración:

  • Método de coste: debe ser FIFO o AVCO

  • Valoración de inventario: Periódica o Perpetua

Nota

La funcionalidad funciona independientemente de si la valoración de inventario está establecida en Periódica (al cierre) o Perpetua (al facturar).

Configuración general de los productos almacenables. Configuración de la categoría de los productos almacenables.

Flujo de compra y ventas

Después de configurar el producto, sigue el flujo de compra estándar.

Crea un pedido de compra desde Compra ‣ Órdenes ‣ Pedido de compra. Luego, confirma el pedido para mostrar un botón inteligente Recepción. Haz clic en el botón inteligente Recepción y valida la recepción.

Ve a Inventario ‣ Operaciones ‣ Costos en destino y crea un nuevo registro. En Transferencia, agrega la recepción que acaba de validarse y agrega el Número de aduana.

Truco

While it is possible to add costs related to the customs number at this stage of the process, it is highly recommended to create a landed cost from a vendor bill from a customs agent. Learn more about Landed Costs here.

Advertencia

El campo Número de aduana no es editable una vez establecido y no puede repetirse, sin embargo es posible corregir el número en el lote o número de serie más tarde seleccionando un costo en destino diferente.

Número de pedimento en costes de destino en el registro de inventario.

The customs number assigned to a specific lot or serial number can be found on its record in Inventory ‣ Products ‣ Lots/Serial Numbers. The L10N Mx Edi Landed Cost field can be edited at any time to fix any mistakes that could have occurred when registering the landed cost. Editing the L10N Mx Edi Landed Cost field automatically updates the Customs number and the name of the lot or serial number.

Next, create a sales order and confirm it. Click the Delivery smart button that appears, and carefully review the assigned lots/serial numbers to make sure they are the desired values. After that, click Validate on the delivery order.

Finally, create an invoice from the sales order and confirm it. The invoice lines are created according to the distribution of the delivery order. If more than one customs number is selected, Odoo splits the invoice lines by quantity and customs number.

Número de pedimento en un producto de una orden de venta confirmada.

Guía de entrega

Una Carta Porte es una carta de porte: un documento que indica el tipo, cantidad y destino de las mercancías que se transportan.

El 17 de julio de 2024, se implementó la versión 3.1 de este CFDI para todos los proveedores de transporte, intermediarios y propietarios de mercancías. Odoo puede generar un documento tipo «T» (Traslado), que, a diferencia de otros documentos, se crea en una orden de entrega en lugar de una factura o pago.

Odoo puede crear archivos XML y PDF con (o sin) transporte terrestre y puede procesar materiales etiquetados como Peligrosos.

To print the PDF, the delivery order must be signed by the government. Then, it can be printed using the Print Carta Porte button on the delivery order.

Truco

El archivo PDF contiene un código QR para verificar el código CCP ante las autoridades.

To transport goods between warehouses, the logistic route must contain a Delivery type of operation.

Nota

Para utilizar esta función, debe instalarse el módulo Mexico - Electronic Delivery Guide l10n_mx_edi_stock.

Además, es necesario tener instaladas las aplicaciones Inventario y Ventas.

Importante

Odoo no soporta documentos Carta Porte tipo «I» (Ingreso), ni transporte aéreo, ferroviario o marítimo.

Consult an accountant first if this feature is needed before doing any modifications.

Configuración

Odoo gestiona dos tipos diferentes de CFDI tipo «T». Ambos pueden crearse desde recepciones de envío u órdenes de entrega.

  • Sin carreteras federales se utiliza cuando la Distancia al destino es menor a 30 km.

  • Transporte federal se utiliza cuando la Distancia al destino supera los 30 km.

Para Sin Carreteras Federales, no se requiere ninguna otra configuración más allá de los requisitos estándar de la facturación regular (el RFC del cliente, el código UNSPSC, etc.).

Para Transporte Federal, se deben agregar varias configuraciones a contactos, configuraciones de vehículos y productos. Estas configuraciones se incluyen luego en los archivos XML y PDF.

Contactos y vehículos

Al igual que la función de comercio exterior, la Dirección tanto de la empresa como del cliente final debe estar completa. El código Postal, la Ciudad y el Estado deben coincidir con el Catálogo Oficial del SAT para Carta Porte.

Truco

El campo Localidad es opcional para ambas direcciones.

Importante

The origin address used for the delivery guide is set in Inventory ‣ Configuration ‣ Warehouses. While this is set as the company address by default, it is possible to change it to a proper warehouse address.

Esta función requiere el uso de Flota para gestionar vehículos. La configuración del vehículo se gestiona directamente en el vehículo, y todos los campos requeridos solo son visibles después de marcar el campo L10N Mx Is Freight Vehicle.

Marcar el campo L10N Mx Is Freight Vehicle muestra la pestaña MX Parameters donde los campos obligatorios son necesarios para crear una guía de entrega correcta. Además, el vehículo debe contener una License Plate, un Model Year y un Driver.

Truco

Los campos Vehicle Plate Number y Number Plate deben contener entre 5 y 7 caracteres.

El conductor principal del vehículo se establece directamente en el campo Driver, y es posible agregar más operadores de vehículos en la sección Intermediaries. Los únicos campos obligatorios para los contactos de conductores son el VAT y la Operator License.

Configuración de la guía de entrega del producto.

Truco

Si el vehículo está alquilado o se requieren más intermediarios, es posible agregarlos en el campo Intermediaries.

Productos

Como con cualquier otra factura normal, todos los productos deben tener una categoría UNSPSC. Además, hay dos ajustes adicionales para los productos que se incluyen en las guías de entrega:

  • El Tipo de producto debe estar establecido como Producto almacenable para los movimientos de existencias que se creen.

  • En la pestaña Inventario, el campo Weight debe ser mayor que 0.

Advertencia

Crear una guía de entrega de un producto con el Weight establecido en 0 generará un error. Como el Weight se almacena inmediatamente en el pedido de entrega, es necesario devolver los productos y recrear el pedido de entrega (y la guía de entrega) con los valores correctos.

Flujo de ventas e inventario

Para crear una guía de entrega, primero crea y confirma un pedido de venta desde Ventas ‣ Pedido de venta. Haz clic en el botón inteligente Delivery que se genera y Validate la transferencia.

After the status is set to Done, it is possible to edit the transfer and select the Transport Type in the Additional Info tab.

Si utilizas el Tipo de transporte Sin carreteras federales, guarda la transferencia y luego haz clic en Generar guía de entrega. El XML resultante se puede encontrar en el chatter.

Nota

Además del UNSPSC en todos los productos, las guías de entrega que usan No Federal Highways no requieren ninguna configuración especial para ser enviadas al gobierno, ya que son un CFDI tipo «T» sin complemento de guía de entrega.

If using the Federal Transport Transport Type, the Vehicle Setup is displayed to be selected. The Operator is taken from the vehicle’s driver. It can be changed for each delivery. If changed, the Set As Main Driver button appears. Click it to replace the driver on the fleet vehicle for traceability purposes. The Gross vehicle weight is taken from the Vehicle setup configuration where it is possible to add additional Extra weight to account for the drivers and luggage.

Nota

Odoo calculates the Gross vehicle weight with the following formula:

\[Gross vehicle weight = Vehicle weight + (Weight + Extra Weight) / 1000\]

Cada entrega requiere un valor en Distance to Destination (KM) mayor que 0. Finalmente, ingresa la Delivery Date y haz clic en Generate Delivery Guide.

Nota

By default, the Scheduled Date is filled and represents the time at which the shipment leaves the warehouse. The Delivery Date is the time when the shipment is expected to arrive at its destination. These values are declared in both the XML and PDF.

Materiales peligrosos

Algunos valores dentro de las categorías UNSPSC se consideran peligrosos de acuerdo al catálogo oficial del SAT. Estas categorías necesitan consideraciones adicionales al momento de crear una guía de envío tipo Transporte por carretera federal.

Primero, selecciona el producto desde Inventario ‣ Productos ‣ Productos. Luego, en la pestaña Contabilidad, completa los campos Código de designación de material peligroso y Embalaje peligroso con el código correcto del catálogo SAT.

Campos necesarios para la guía de entrega para materiales peligrosos.

Importante

A UNSPSC Category may or may not be classified as a dangerous hazard, for example 01010101. If it is not dangerous, enter 0 in the Hazardous Material Designation Code field.

En MX Parameters, completa también el Environment Insurer y la Environment Insurance Policy. Después de esto, continúa con el proceso regular para crear una guía de entrega.

Importaciones y exportaciones

If a Carta Porte is for international operations (for exports), some additional fields need to be taken into account.

Primero, asegúrate de que todos los Productos relevantes tengan la siguiente configuración:

  • Categoría UNSPSC no puede ser 01010101 No existe en el catálogo.

  • Fracción arancelaria y UMT Aduana deben estar configurados, similar al flujo de comercio exterior.

  • Tipo de material debe estar configurado.

Luego, al crear una Guía de entrega desde una entrega o recepción, completa los siguientes campos:

  • Regímenes aduaneros

  • Tipo de documento aduanero

  • Identificación de documento aduanero

Luego, al crear una Delivery Guide para una recepción donde el Customs Document Type es Customs number, aparecen dos nuevos campos: Customs Number e Importer.

Truco

The Customs Number field should follow the pattern xx xx xxxx xxxxxxx. For example, use 15 48 3009 0001235 with two spaces between text.