Skip to main content

Documentation Index

Fetch the complete documentation index at: https://invopop-mintlify-gobl-payment-methods-1778254135.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Executive summary

Mexico mandates electronic invoicing through the CFDI (Comprobante Fiscal Digital por Internet) system, managed by the SAT (Servicio de Administración Tributaria). All taxpayers must issue electronic invoices in XML format. The system uses a clearance model: invoices must be validated and certified by an authorized certification provider (PAC) before they acquire fiscal effect, and SAT receives the certified document in real time. This continuous feed gives SAT visibility into every transaction in the economy, and is the basis for automated VAT reconciliation, pre-filled returns, and audit-by-data. CFDI 4.0 is the current schema version and applies to B2B, B2C, and B2G transactions equally.
ScopeB2B, B2C, B2G
FormatCFDI 4.0 (XML)
InfrastructurePAC → SAT
Clearance modelReal-time stamping (timbrado) before fiscal effect
AgencySAT
Invopop addonSAT Mexico App
PACSW Sapien
https://assets.invopop.com/apps/sat-mexico/icon.svg

SAT Mexico

Issue CFDI documents in Mexico →

The SAT CFDI system

SAT is the tax agency in Mexico, CFDI is the invoice format required by SAT. It is an XML document that must be sealed with the issuer’s Certificado de Sello Digital (CSD), submitted to a PAC for validation, and stamped by SAT through that PAC. The result is a CFDI with a fiscal folio (UUID) and a SAT digital seal. Without those, the document has no fiscal effect. There are six CFDI document types:
TypeCodeDescriptionInvopop coverage
IngresoIStandard sales invoice.Yes
EgresoECredit note (returns, discounts, post-sale adjustments).Yes
PagoPPayment receipt (REP) issued when collecting against a previously-issued PPD invoice.Q2 2026
NóminaNPayroll receipt, one per employee per pay period.No
TrasladoTMovement of goods without a sale (carries the Carta Porte complement for transport).No
Retenciones e Información de PagosRWithholding declaration, uses a separate XSD schema.No
On top of this base structure, SAT publishes complementos — sector-specific XML extension nodes that attach to the CFDI and are sealed under the same digital signature. Each complemento has its own XSD and lifecycle. The most relevant ones include Pago (mandatory for any deferred or installment invoice), Carta Porte (mandatory for most freight movements), Comercio Exterior 2.0 (exports), Nómina (payroll detail), Hidrocarburos y Petrolíferos (energy sector, mandatory since 2026), Donatarias (authorized non-profits), INE (electoral expenses), IEDU (private education), and Divisas (currency exchange operations).

Invopop CFDI support

Coverage of the Mexican CFDI ecosystem evolves continuously, and this scope reflects what the SAT Mexico app supports today. We work closely with our customers and partners to expand it:Document types
TypeDescription
IngresoStandard B2B and B2C sales invoices.
EgresoCredit notes for returns, discounts, and corrections.
Method of payment
CodeDescription
PUEPago en Una sola Exhibición (payment in a single exhibition)
PPDPago en Parcialidades o Diferido (payment in installments or deferred)
FormaPago is validated against the c_FormaPago catalog.Relationships
CodeDescription
01Nota de crédito (credit note)
02Nota de débito (debit note)
03Devolución de mercancía (return)
04Sustitución (substitution)
05Traslados de mercancías (transport of goods)
06Factura por traslados previos (previously-moved goods)
07Anticipo (advance)
Accounts payableConvert received CFDI XML documents into GOBL format for accounts payable processing. Pairs with the SW Sapien app for bulk download from SAT.
https://assets.invopop.com/apps/sw-sapien/icon.svg

SW Sapien

Bulk download CFDI documents from the SAT →
Special invoice modes
ModeDescription
CFDI GlobalesPúblico-en-general aggregation, with periodicity (daily, weekly, biweekly, monthly, bimonthly), month, and year extensions.
Third-party salesVendido a terceros via the seller object on individual lines.
White-label / B2B2BInvopop can issue invoices on behalf of multiple suppliers under a single platform, each with their own CSD.
Operational
CapabilityDescription
PAC integrationThrough SW Sapien, including supplier onboarding (CSD upload, e.firma authorization for the PAC).
StampingTimbrado and retrieval of the certified XML.
PDF generationIncludes QR and CFDI stamps. Configurable layout, locale, and currency/date format.
Sandbox environmentPre-registered test CSDs for testing.
If your operation requires a document type, complemento, or workflow that isn’t currently covered, get in touch. Many of these requests already align with our roadmap, and we prioritize new development based on customer volume and demand.Document types
TypeDescription
PagoPayment receipt (REP / complemento de pago). Invopop can issue an invoice marked as PPD, but the subsequent payment receipts that must be emitted as money is collected are not generated by the addon. Customers issuing PPD invoices must handle REPs through other means.
NóminaPayroll receipts.
TrasladoStandalone transfer documents.
RetencionesUses a different XSD; not part of the CFDI 4.0 base schema.
Complementos
ComplementoDescription
Carta PorteRequired for in-country freight movement.
Comercio Exterior 2.0Required for definitive exports.
Hidrocarburos y PetrolíferosMandatory for the energy sector since 2026.
Sector-specific complementosDonatarias, INE, IEDU, Divisas, Detallista, Servicios Parciales de Construcción, Aerolíneas, Notarios, etc.
Other unsupported features
ItemDescription
AddendasProprietary B2B XML extensions defined by individual buyers (Walmart, Liverpool, Pemex, automotive OEMs, etc.). Each is buyer-specific and not standardized by SAT.
Cancellation flowSubmission of cancellation requests with MotivoCancelacion codes is not currently exposed through the app. Cancellations must be handled directly with SAT or through the PAC’s portal.
Real-time data accessFor digital platforms under the May 2026 Article 30-B obligation. Separate reporting channel, not a CFDI flow.
Buzón TributarioMonitoring or interaction.
Lista 69-BScreening of counterparties.
Contabilidad electrónica and DIOTPeriodic informational filings.

CFDI document types

Each document type has its own schema and business rules for how it relates to other documents in accounting.
The standard invoice for any taxable sale of goods, provision of services, leasing, or activity that generates income. Must comply with Article 29-A of the CFF: issuer and receiver RFC, name, régimen fiscal, postal code, line-level description, unit value, totals, transferred and withheld taxes, payment method and form, and UsoCFDI declared by the receiver.The Ingreso CFDI is the document that triggers the obligation. Whether the cash event is recognized at the same time depends on the MetodoPago attribute (PUE vs PPD).
Used to reduce previously-invoiced income: returns, post-sale discounts, rebates, corrections, partial cancellations, and the application of advance payments. Always relates back to one or more Ingreso CFDIs through the CfdiRelacionados node.Common TipoRelacion codes for Egresos:
  • 01 — Nota de crédito de los documentos relacionados.
  • 02 — Nota de débito de los documentos relacionados.
  • 03 — Devolución de mercancía sobre facturas o traslados previos.
  • 07 — CFDI por aplicación de anticipo.
An Egreso does not by itself cancel the original CFDI. Cancellation is a separate action governed by the cancellation rules below.
A CFDI of type P is required whenever a payment is collected against an invoice that was issued with MetodoPago = PPD. The Pago complement carries the actual payment date, currency, exchange rate, form of payment, and a list of DoctoRelacionado nodes referencing each invoice the payment applies to, with the partial amount, the running balance before and after, and the partiality number.A single REP can settle payments against multiple invoices. A single invoice paid in installments produces multiple REPs over time.Deadline: the REP must be issued no later than the fifth calendar day of the month following the one in which the payment was received (rule 2.7.1.35 of the RMF).Invopop coverage: Invopop allows issuing invoices marked as PPD, but does not currently generate the subsequent payment receipts. Customers issuing PPD invoices through Invopop must produce REPs through another mechanism. We are aiming to support complementos de pago in Q2 2026.
A CFDI carrying the Nómina complement, issued for every payment of salaries, wages, and assimilated remuneration. One per employee per pay period.
Used when goods are moved without a sale (between warehouses, returns to suppliers, gratuitous transfers). For a Traslado document, SubTotal and Total must be zero. In nearly all real-world cases, a Traslado must carry the Carta Porte complement describing the route, transport mode, vehicle, operator, and goods.
A separate document family with its own XSD, used to declare withholdings on payments to foreign residents, dividends, interest, leasing payments, share dispositions, and certain financial instruments.

CFDI complement types

Extra blocks of information that attach to a CFDI when the operation falls under a specific sector or activity. When a complement is required, the invoice cannot be stamped without it.
Mandatory complement for the transport of goods within Mexico by road, rail, sea, or air. Carries the route (origin and destination), transport mode, vehicle and trailer plates, the operator’s identification, and a detailed manifest of the goods being moved including weight and hazardous-material classification where applicable.Attaches to a Traslado (type T) when a company moves its own goods, or to an Ingreso (type I) when invoicing a transport service to a third party. Currently at version 3.x with separate sub-schemas per transport mode (Autotransporte, FerroviarioTransporte, TransporteMaritimo, TransporteAereo).
Required for definitive exports involving the sale of goods (typically clave de pedimento A1). Captures the issuer’s and receiver’s full addresses, the foreign tax ID of the receiver, INCOTERMS, currency and exchange rate to USD, and per-line detail including harmonized tariff codes (fracciones arancelarias), customs unit of measure, and the USD value of the goods.Version 2.0 has been integrated with CFDI 4.0 since January 2024. Free-of-charge exports use the same complement on a Traslado document.
Mandatory complement for the energy sector since 2026. Applies to taxpayers commercializing hydrocarbons or refined petroleum products and is intended to give SAT real-time traceability over fuel flows.Carries the SAT-issued permit type and number, validated against the c_TipoPermiso catalog. Revision A (April 2026) added new permit types for commercialization activities along with their specific format structures and validation regular expressions.
For non-profits authorized by SAT to issue tax-deductible donation receipts (donatarias autorizadas). Carries the SAT authorization office number and the date of the official authorization or its most recent ratification published in the DOF.Without this complement on the CFDI, the donation cannot be deducted by the donor.
Used by political parties, candidates, and associations subject to the Instituto Nacional Electoral’s reporting obligations. Identifies the type of process (ordinary, pre-campaign, campaign), the scope (federal, local), and the entity for which the spending was made.Allows INE to reconcile electoral expense declarations against actual invoiced spending.
Required for invoices issued by private educational institutions for tuition payments (colegiaturas) eligible for personal income tax deduction. Captures the student’s CURP, the educational level (preescolar, primaria, secundaria, profesional técnico, bachillerato), the official authorization number (RVOE), and the school’s RFC.Annual deduction caps apply per educational level.
Used by exchange houses (casas de cambio) and authorized financial institutions reporting foreign currency exchange operations. Identifies the operation type (purchase or sale of foreign currency) for fiscal reporting.
The payment receipt complement attached to type-P documents (REPs). Carries the payment date, currency, exchange rate to MXN, and form of payment, plus a list of DoctoRelacionado nodes — one per invoice the payment applies to — with the original invoice’s UUID, the partial amount being settled, the partiality number, and the running balance before and after.A single Pago complement can settle multiple invoices, and a single PPD invoice can accumulate multiple Pago complements over time as installments are paid.
The payroll detail complement attached to type-N documents. Issued one per employee per pay period.Captures the employee’s identification (RFC, CURP, NSS), employment data (start date, contract type, working day type, salary base), the period covered, and a full breakdown of perceptions (regular salary, overtime, bonuses, vacation premium, profit sharing) and deductions (ISR withholding, IMSS contributions, loan repayments, alimony). Also includes settlement payments for terminations and other special payment scenarios.

CFDI payment types

Mexican invoices declare upfront whether the customer is paying at issuance or paying later. The choice determines whether a follow-up payment receipt (REP) must be issued, and it changes when income tax and VAT are recognized.
The operation is settled in full at or before invoice issuance, or when payment will be received with certainty by the last calendar day of the month in which the invoice is issued. PUE invoices declare the payment method (transfer, credit card, cash, etc.) and require no follow-up document. For tax effects, income is recognized at issuance.If a CFDI was issued as PUE but the customer fails to pay by the last day of the issuance month, the issuer must:
  1. Cancel the original PUE invoice (motivo 01, with substitution).
  2. Issue a new CFDI as PPD with FormaPago = 99, related to the original via TipoRelacion = 04 (Sustitución de los CFDI previos).
  3. Issue REPs as payments are subsequently received.
A difference to observe in relation to other regimes is that the trigger is calendar-based, not payment-event-based. The conservative approach is to issue PPD whenever there is any uncertainty about same-month payment.
Use when payment will occur after the issuance month, or in two or more installments. PPD invoices must use FormaPago = 99 (Por definir) on the original document, since the actual form of payment isn’t yet known. For each payment received afterward, the issuer must produce a CFDI of type P (REP) referencing the original UUID, with the actual FormaPago of that specific payment, the partial amount, and the running balance.For tax effects, income is recognized as REPs are issued, on a cash basis. This is the mechanism that makes ISR and IVA recognition follow the actual cash event rather than the invoice issuance date — particularly relevant for RESICO contributors, whose entire tax base is computed from emitted CFDIs and REPs.Each REP must be issued by the fifth calendar day of the month following the one in which payment was received (rule 2.7.1.35 RMF). Missing the deadline doesn’t invalidate the invoice but prevents the customer from deducting in the correct period.Invopop supports issuing the PPD invoice itself, but does not generate the subsequent REPs.

Party identification and reporting

PACs validate the receiver’s RFC, name, fiscal régimen, and postal code against the live SAT registry at stamping time. All four must agree. The source document is the receiver’s Constancia de Situación Fiscal (CIF). Note that requiring the CIF document itself as a precondition for invoicing is unlawful (Article 83 § IX CFF) — the issuer needs the four data points, not the document.Persona Física (13 characters)Issued to individuals. Structure: 4 letters from the person’s first surname, second surname, and first name + 6 digits for date of birth (YYMMDD) + 3-character homoclave assigned by SAT.Example: PEJL850315ABC for Juan Pérez López born 15 March 1985.Persona Moral (12 characters)Issued to companies, associations, and other legal entities. Structure: 3 letters from the entity name + 6 digits for date of constitution (YYMMDD) + 3-character homoclave.The shorter length is the immediate visual cue distinguishing morales from físicas.Generic RFCsPredefined codes used when the receiver does not have a real RFC.
  • XAXX010101000 — generic national. Used for público en general (Mexican consumers who don’t request invoices) and for nationals not yet registered with SAT.
  • XEXX010101000 — generic foreign. Used for receivers without Mexican fiscal residence.
For both generic RFCs:
  • RegimenFiscalReceptor must be 616 (Sin obligaciones fiscales).
  • UsoCFDI must be S01 (Sin efectos fiscales). The CFDI is not deductible.
  • DomicilioFiscalReceptor must equal LugarExpedicion.
  • For XEXX010101000, the receiver’s country code (per c_Pais) and foreign tax ID should be supplied where available.
Mexico uses standard postal codes, but CFDI 4.0 enforces three different fields with different rules. There is no separate “fiscal postal code” — it is the same postal code, validated against SAT’s c_CodigoPostal catalog (Anexo 20) and against the receiver’s CIF.LugarExpedicion (issuer)Postal code of the physical location where the document is issued (mx-cfdi-issue-place in GOBL). If invoiced from a branch, use the branch’s postal code regardless of where the billing system is hosted. Drives the document’s time zone (Mexico has eight) and the fiscal stimulus zone flag (border-zone IVA reduction).DomicilioFiscalReceptor (receiver)Postal code of the receiver’s tax domicile. For real RFCs, this must match what SAT has on file. A mismatch causes the PAC to reject stamping.For generic RFCs (XAXX010101000, XEXX010101000), this field must equal LugarExpedicion.Catalog gapsSAT’s c_CodigoPostal catalog is updated periodically (multiple times in 2026 alone) and does not always contain every postal code in active use. When the receiver’s postal code is not in the catalog, SAT’s filling guide instructs the issuer to register the closest catalog code from the place of issuance. This is one of the most common causes of stamping failures during new customer onboarding.
Each issuer and receiver must declare a RegimenFiscal from the c_RegimenFiscal catalog. The catalog distinguishes regimes available to parties. The receiver’s régimen also constrains which UsoCFDI codes are valid for that invoice — not all combinations are allowed.The full catalog (all supported by Invopop):
CodeDescription
601General de Ley Personas Morales
603Personas Morales con Fines no Lucrativos
605Sueldos y Salarios e Ingresos Asimilados a Salarios
606Arrendamiento
607Régimen de Enajenación o Adquisición de Bienes
608Demás ingresos
610Residentes en el Extranjero sin Establecimiento Permanente en México
611Ingresos por Dividendos (socios y accionistas)
612Personas Físicas con Actividades Empresariales y Profesionales
614Ingresos por intereses
615Régimen de los ingresos por obtención de premios
616Sin obligaciones fiscales (generic RFCs only)
620Sociedades Cooperativas de Producción que optan por diferir sus ingresos
621Incorporación Fiscal (legacy, being phased out)
622Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras
623Opcional para Grupos de Sociedades
624Coordinados
625Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas
626Régimen Simplificado de Confianza (RESICO)
The UsoCFDI field declares the receiver’s intended fiscal treatment of the document. The most common codes:
CodeDescription
G01Adquisición de mercancías
G02Devoluciones, descuentos o bonificaciones
G03Gastos en general
I01I08Construcciones, mobiliario, transporte, cómputo, telecomunicaciones, otra maquinaria
D01D10Personal deductions (medical, funeral, donations, mortgage interest, voluntary retirement, schooling). Available only to personas físicas
CP01Pagos. Used on REPs
CN01Nómina. Used on payroll CFDIs
S01Sin efectos fiscales. Used for non-deductible documents and globales
Validation: the chosen UsoCFDI must be allowed for the receiver’s RegimenFiscal. Picking the wrong combination is one of the most frequent stamping errors.

B2C aggregation reporting

Retail-style operations that don’t issue per-transaction invoices to consumers must issue a periodic factura global aggregating all operations with público en general.
The mx-cfdi-v4 addon supports this via the global invoice tag, with extensions for:
FieldExtensionValues
Periodmx-cfdi-global-perioddaily (01), weekly (02), biweekly (03), monthly (04), bimonthly (05)
Monthmx-cfdi-global-monthindividual months 01–12 or paired months 13–18
Yearmx-cfdi-global-year4-digit year
The global is issued to XAXX010101000 with régimen 616 and UsoCFDI S01. Purchases under MXN 100 are not required to be invoiced individually but must still be included in the global. In practice, many operations issue globals as the simpler path.

Cancellations

The issuer submits a cancellation request through SAT or a PAC, and the receiver has three business days to accept or reject the cancellation. If the receiver takes no action, the cancellation is accepted.
The customer can reject a cancellationA CFDI is not cancelled by issuer action alone. If the three day deadline passes without response, the cancellation takes effect by positive ficta. If the receiver rejects, the CFDI remains valid.This means a wrongly-issued invoice can remain on the issuer’s books if the customer rejects the cancellation. The practical workaround is to coordinate with the customer before submitting.
The cancellation flow is not currently automated through the SAT Mexico app. Cancellations must be initiated through SAT directly.
Exceptions where acceptance is not required Cancellation is immediate without receiver acceptance for:
  • CFDIs of type Egreso (E), Traslado (T), Retenciones (R), and Nómina (N).
  • CFDIs cancelled within one business day of issuance.
  • Operations with público en general (RFC XAXX010101000).
  • CFDIs received by foreign residents.
  • CFDIs with total value up to MXN 1,000 (with carve-outs for Pago, Hidrocarburos, and Carta Porte for fuels).
  • CFDIs issued by financial system members.
Cancellation reasonsEvery cancellation must declare a reason:
CodeDescription
01Comprobante emitido con errores con relación. The original is being replaced by a substitute CFDI; the substitute’s UUID must be supplied.
02Comprobante emitido con errores sin relación. No replacement.
03No se llevó a cabo la operación. The transaction did not occur.
04Operación nominativa relacionada en una factura global. The operation was included in a previous global invoice; the global’s UUID must be supplied.
Invopop doesn’t currently support the substitution flow. We recommend issuing 02(no replacement) and issuing a new invoice
The correct sequence for replacing an erroneous CFDI:
  1. Issue the new CFDI with TipoRelacion = 04 (Sustitución de los CFDI previos), referencing the UUID of the document being replaced.
  2. Submit the cancellation request for the original, motivo 01, referencing the new UUID.
  3. The PAC validates whether receiver acceptance is required and routes accordingly.
Note: while the original is referenced as substituted-by, it temporarily shows as “No cancelable.” The cancellation request itself breaks the relation and moves it back to a cancellable state.
Per Article 29-A § 4 of the CFF and rule 2.7.1.47 RMF, CFDIs must be cancelled by the last day of the month in which the annual ISR declaration for the issuance fiscal year is due:
  • Personas morales: 31 March of the following year.
  • Personas físicas: 30 April of the following year.
The First Chamber of the Supreme Court ruled this time limit unconstitutional in April 2024 (press release 098/2024), but the rule remains in operation pending legislative change.

Compliance

From Article 29-A of the CFF and the Anexo 20 filling guide:
  • RFC, name, and régimen fiscal of the issuer.
  • RFC, name, régimen fiscal, and postal code of the receiver.
  • Folio fiscal (UUID) and SAT digital seal.
  • Issuer’s CSD digital seal and the serial number of the certificate used.
  • Place and date of issuance (LugarExpedicion, Fecha).
  • UsoCFDI declared by the receiver.
  • Per-line: quantity, unit of measure (from c_ClaveUnidad), description, product/service code (from c_ClaveProdServ), unit value, taxes itemised by rate, withholdings where applicable.
  • MetodoPago (PUE/PPD) and FormaPago from c_FormaPago.
  • Moneda and TipoCambio for non-MXN invoices.
  • Pedimento number and date for first-hand sales of imported goods.
  • Certification date, time, and SAT certificate serial.
The printed representation (PDF) must additionally include:
  1. QR code as defined in section I.D of Anexo 20.
  2. Serial numbers of the issuer’s and SAT’s CSDs.
  3. The legend: “Este documento es una representación impresa de un CFDI.”
  4. Issuance and certification timestamps.
  5. Original string (cadena original) of the SAT certification complement.
Source: SAT
Article 30 of the Federal Tax Code requires accounting records, including CFDIs, to be retained for five years.
  • The period starts from the date the relevant tax return was filed, or should have been.
  • For records covering a longer period, the five years run from the last fiscal year covered.
  • If records are part of an active legal case, the period starts when the final decision is issued.
A PAC (Proveedor Autorizado de Certificación) is a private company licensed by SAT to validate, seal, and forward CFDIs on behalf of issuers. The PAC is the operational gateway: an unstamped CFDI has no fiscal effect.Invopop uses SW Sapien as its PAC. Suppliers authorize the PAC once via e.firma (FIEL) sign-off, after which Invopop can issue CFDIs on their behalf using their CSD. CSD certificate generation remains the supplier’s responsibility — Invopop does not generate CSDs but accepts the certificate and key during onboarding.
The Buzón Tributario is the official electronic mailbox SAT uses to communicate with each contributor. Cancellation requests, audit notifications, formal requirements, and (since May 2026) real-time data demands flow through it. Every contributor must keep it active and monitored. Invopop does not interact with the Buzón.
SAT publishes ongoing lists of taxpayers presumed to issue fake invoices (EFOS) and those who used them (EDOS). Invoices issued by an EFOS-listed supplier may be deemed non-deductible for the receiver. Companies routinely screen vendor masters against the list.
Article 30-B of the CFF, introduced in the 2026 RMF, requires technology platforms (domestic and foreign) to provide SAT with continuous online access to tax and operational data, available no later than the day after each transaction. This applies to marketplaces, ride-hailing, lodging, food delivery, and digital service providers operating in Mexico. It is a separate reporting obligation from the CFDI flow and is not covered by Invopop’s CFDI app.

FAQ

Compliance questions
A clearance model (sometimes called real-time validation or pre-clearance) is a regulatory architecture in which each invoice must be electronically submitted to the tax authority and formally approved before it becomes legally valid. The government acts as an intermediary between the supplier and the buyer and the invoice will only be valid with state authorization. Only after authorization you can dispatch goods, book revenue or send an invoice to the customer.
No. Conditioning invoicing on the receiver providing their CIF document is unlawful under Article 83 § IX of the CFF and carries fines. The data on the CIF (RFC, name, régimen, postal code) is required, but the issuer must be willing to accept those four pieces of information by other means. In practice, most B2B workflows still ask for the CIF, but it cannot be made a hard precondition.
Cancellation in Mexico is bilateral by default. The issuer submits a request, the receiver has three business days to accept or reject, and rejection keeps the CFDI valid. Issuers cannot unilaterally void an invoice that requires acceptance. The exceptions are listed above (small amounts, certain document types, same-day cancellation, público en general). The practical recommendation is to coordinate with the customer before submitting any cancellation request, especially for high-value B2B invoices.
Beyond the procedural difference, the two methods determine when income is recognized for ISR and IVA purposes. PUE income is recognized at issuance; PPD income is recognized as REPs are issued. Choosing the wrong method shifts tax liability into the wrong period and creates discrepancies during SAT’s automated reconciliation. RESICO contributors are particularly exposed because their entire monthly tax base is computed from CFDIs and REPs.
A complemento is a SAT-defined XML extension with a published XSD, sealed inside the digital signature, and validated at stamping. An addenda is a non-fiscal XML block defined unilaterally by a private buyer (Walmart, Liverpool, Pemex, automotive OEMs, etc.) and inserted into the <cfdi:Addenda> node of the CFDI. SAT does not validate addenda content, but the buyer’s ERP rejects payment without it. Each large enterprise customer typically defines its own addenda spec; there is no central catalog. Addendas are not currently supported by Invopop.
Yes. RESICO contributors (régimen 626) cannot deduct expenses (Article 113-E LISR), so invoices issued to a RESICO customer typically use UsoCFDI = S01. The invoice is still valid — it just has no deductible effect for them. RESICO contributors issuing invoices follow normal rules and their tax base is computed automatically from their issued CFDIs and REPs.
More available in our Mexico FAQ section

Participate in our community

Ask and answer questions about Mexico’s regulation →