Mexico CFDI 4.0 SAT Catalog Codes Reference
Almost every rejected CFDI 4.0 invoice traces back to a wrong catalog code. This reference lists the SAT codes plant finance teams and ERP consultants reach for most often, with a note on how each one behaves in an invoicing flow.
| Catalog | Code | SAT description (Spanish) | ERP mapping note |
|---|---|---|---|
c_FormaPago | 01 | Efectivo | Cash |
c_FormaPago | 02 | Cheque nominativo | Named cheque |
c_FormaPago | 03 | Transferencia electronica de fondos | Bank transfer (SPEI is the usual domestic rail) |
c_FormaPago | 04 | Tarjeta de credito | Credit card |
c_FormaPago | 05 | Monedero electronico | Electronic wallet |
c_FormaPago | 06 | Dinero electronico | Electronic money |
c_FormaPago | 08 | Vales de despensa | Food vouchers |
c_FormaPago | 12 | Dacion en pago | Settlement in kind |
c_FormaPago | 13 | Pago por subrogacion | Payment by subrogation |
c_FormaPago | 14 | Pago por consignacion | Payment by consignment |
c_FormaPago | 15 | Condonacion | Debt forgiveness |
c_FormaPago | 17 | Compensacion | Offset or netting of payables and receivables |
c_FormaPago | 23 | Novacion | Novation |
c_FormaPago | 24 | Confusion | Merger of creditor and debtor |
c_FormaPago | 25 | Remision de deuda | Debt release |
c_FormaPago | 26 | Prescripcion o caducidad | Debt expired |
c_FormaPago | 27 | A satisfaccion del acreedor | To the creditor's satisfaction |
c_FormaPago | 28 | Tarjeta de debito | Debit card |
c_FormaPago | 29 | Tarjeta de servicios | Service card |
c_FormaPago | 30 | Aplicacion de anticipos | Application of advances; used when an advance is netted |
c_FormaPago | 99 | Por definir | To be defined; use with PPD (payment in installments or deferred) |
c_MetodoPago | PUE | Pago en una sola exhibicion | Paid in one payment at invoice time; no payment complement needed |
c_MetodoPago | PPD | Pago en parcialidades o diferido | Deferred or installments; a payment complement (type P) is required when paid |
c_TipoDeComprobante | I | Ingreso | Sales invoice |
c_TipoDeComprobante | E | Egreso | Credit note |
c_TipoDeComprobante | T | Traslado | Transfer document, used with Carta Porte for own-goods movement |
c_TipoDeComprobante | P | Pago | Payment receipt (complemento de pago) |
c_TipoDeComprobante | N | Nomina | Payroll receipt |
c_UsoCFDI | G01 | Adquisicion de mercancias | Purchase of goods for resale or production |
c_UsoCFDI | G02 | Devoluciones, descuentos o bonificaciones | Returns, discounts, rebates |
c_UsoCFDI | G03 | Gastos en general | General expenses; common default for services |
c_UsoCFDI | I01 | Construcciones | Buildings capitalised |
c_UsoCFDI | I02 | Mobiliario y equipo de oficina por inversiones | Office furniture capex |
c_UsoCFDI | I03 | Equipo de transporte | Vehicles capex |
c_UsoCFDI | I04 | Equipo de computo y accesorios | IT hardware capex |
c_UsoCFDI | I05 | Dados, troqueles, moldes, matrices y herramental | Dies, molds, tooling capex |
c_UsoCFDI | I08 | Otra maquinaria y equipo | Other machinery and equipment capex |
c_UsoCFDI | S01 | Sin efectos fiscales | No tax effect; required for general public sales |
c_UsoCFDI | CP01 | Pagos | Fixed value used on payment complements |
c_UsoCFDI | CN01 | Nomina | Fixed value used on payroll receipts |
c_RegimenFiscal | 601 | General de Ley Personas Morales | Typical regime for a corporate manufacturer |
c_RegimenFiscal | 603 | Personas Morales con Fines no Lucrativos | Non-profit entities |
c_RegimenFiscal | 605 | Sueldos y Salarios e Ingresos Asimilados a Salarios | Employees; receiver of payroll CFDI |
c_RegimenFiscal | 606 | Arrendamiento | Individuals earning rent |
c_RegimenFiscal | 612 | Personas Fisicas con Actividades Empresariales y Profesionales | Self-employed individuals |
c_RegimenFiscal | 616 | Sin obligaciones fiscales | Used for foreign or general public receivers |
c_RegimenFiscal | 626 | Regimen Simplificado de Confianza | RESICO, simplified regime |
c_ObjetoImp | 01 | No objeto de impuesto | Line is outside the scope of tax |
c_ObjetoImp | 02 | Si objeto de impuesto | Taxable; tax breakdown required |
c_ObjetoImp | 03 | Si objeto de impuesto y no obligado al desglose | Taxable, breakdown not required |
c_ObjetoImp | 04 | Si objeto de impuesto y no causa impuesto | Taxable object that causes no tax |
c_Impuesto | 001 | ISR | Income tax; used for withholdings |
c_Impuesto | 002 | IVA | Value added tax, 16 percent general rate |
c_Impuesto | 003 | IEPS | Special production and services tax |
c_Exportacion | 01 | No aplica | Domestic sale |
c_Exportacion | 02 | Definitiva con clave A1 | Definitive export, pedimento key A1 |
c_Exportacion | 03 | Temporal | Temporary export |
c_Exportacion | 04 | Definitiva con clave distinta a A1 o cuando no existe enajenacion en el extranjero | Other definitive export cases |
c_TipoRelacion | 01 | Nota de credito de los documentos relacionados | Credit note relation |
c_TipoRelacion | 04 | Sustitucion de los CFDI previos | Replacement of earlier CFDI; common after cancellation 01 |
Motivo de cancelacion | 01 | Comprobante emitido con errores con relacion | Requires the UUID of the replacement CFDI |
Motivo de cancelacion | 02 | Comprobante emitido con errores sin relacion | Error with no replacement |
Motivo de cancelacion | 03 | No se llevo a cabo la operacion | Operation did not take place |
Motivo de cancelacion | 04 | Operacion nominativa relacionada en una factura global | Operation moved into a global invoice |
SAT publishes the full catalogs (including c_ClaveProdServ and c_ClaveUnidad, which have thousands of rows) and updates them. Treat this list as the common subset and confirm against the current SAT catalog file before go-live.
Want CFDI code validation inside your ERP?
We can review your CFDI mapping tables and show how a read-only check could catch invalid combinations before stamping.
Optional. The tool and every export work without this. No spam.
How to use this reference
Type a catalog name such as c_UsoCFDI or a word such as 'credito' into the search box to filter the table. Use the rows to build the mapping tables in your ERP: payment term to forma de pago and metodo de pago, customer tax regime to c_RegimenFiscal, and item tax class to c_ObjetoImp. Export to Excel and hand the sheet to the person configuring the e-invoicing add-on or PAC connector, so the mapping is explicit rather than buried in a developer's head.
- Map forma de pago per payment term, not per invoice
- Store regimen fiscal and postal code on every Mexican customer master
- Keep c_ObjetoImp on the item or tax class so it defaults per line
- Version the mapping table so audits can see what applied on a given date
What changed in CFDI 4.0
Version 4.0 made the receiver's data strict: the name must match the SAT record exactly, the receiver's fiscal postal code and tax regime are mandatory, and each line must declare its tax object through c_ObjetoImp. Exportacion became a required attribute, and cancellations now carry a reason code, with reason 01 requiring the UUID of the replacement document. Pay attention to PUE versus PPD: PPD invoices create an obligation to issue a payment complement when the customer pays.
Common mistakes
The most frequent errors are using G01 where the buyer is a general public customer (which needs S01 with the generic RFC), putting forma de pago 99 on a PUE invoice, and leaving ObjetoImp blank on lines that carry IVA. Another recurring problem is customer names with a corporate suffix such as 'SA de CV' in the ERP but not in the SAT record. The SAT validates the name against its register, so match what the constancia de situacion fiscal says.
- PUE with forma de pago 99 is invalid
- PPD must use forma de pago 99
- Receiver name must match SAT without the corporate regime suffix rules being guessed
- Always keep the customer's current constancia fiscal on file
Frequently Asked Questions
Where do I download the official SAT catalogs?
The SAT publishes the CFDI catalogs as a spreadsheet and the XSD schemas on its Factura Electronica pages. Download the current catalog workbook, because codes are added over time. This page lists only the most common subset to speed up mapping work.
What is the difference between PUE and PPD?
PUE means the invoice is paid in a single payment at the time of issue. PPD means payment is deferred or in installments, and every actual payment must then be reported with a payment complement CFDI of type P. PPD invoices always use forma de pago 99.
Do I need this list if my ERP vendor has a Mexico localization?
You still need the mapping decisions. A localization ships the catalogs, but someone must decide which code each payment term, customer and item maps to. This table helps you document those decisions and test them with your PAC.
Are these codes the same for CFDI 3.3?
Many are, but 4.0 added c_ObjetoImp, c_Exportacion and the cancellation reason, and made regimen fiscal on the receiver mandatory. Do not reuse a 3.3 mapping table without checking each of those attributes.
If your ERP cannot validate these codes at order entry, we can add a read-only check that flags bad combinations before the invoice reaches the PAC. Ask for a short review of your current mapping.
Related Tools
Mexico CFDI 4.0 Invoice XML Skeleton Generator
Fill in a few fields and get a CFDI 4.0 ingreso XML skeleton to test your ERP mapping or a PAC sandbox request.
Country & TaxMexico Contabilidad Electronica ERP Readiness Checklist
Check that your ERP can produce the chart of accounts, monthly trial balance and journal entry files Mexican companies submit to the SAT.
Country & TaxLatin America E-Invoicing and Tax ID Reference
One table of tax ID names, formats, e-invoice document names, authorities and VAT names for the main Latin American manufacturing markets.
Country & TaxBrazil CFOP Codes Reference for Manufacturers
Look up the CFOP operation codes manufacturers use on NF-e entries and exits, including industrialization on order, repair and import.
More Country & Tax tools
See all- Tally Prime Manufacturing Journal Checklist
- Tally Stock Item Import Template (Excel)
- Busy Accounting GST Setup Checklist
- GST Tax Invoice Format Template for Indian Manufacturers
- Delivery Challan Format Template for Goods Movement in India
- Purchase Order Format Template for Indian Manufacturers
- Job Work Challan Register and ITC-04 Worksheet
- TDS Deduction Tracker Worksheet for Vendor Payments
- MSME Vendor Payment Due Date Tracker (45 Day Rule)