Country & TaxFree referencePDF, Excel, Word exportAny ERPManufacturingMexico

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.

Download:
CatalogCodeSAT 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.