Skip to main content

Los cinco tipos de CFDI

El campo CfdiType determina la naturaleza del comprobante. Cada tipo tiene reglas propias sobre cuándo emitirlo y qué campos son obligatorios.

Ingreso (I)

El tipo más común. Se emite cuando vendes un bien o prestas un servicio.
Cuándo usarlo:
  • Factura a un cliente por servicios profesionales
  • Venta de productos físicos
  • Venta al público en general (factura global)

Egreso (E)

Funciona como nota de crédito. Reduce o cancela parcialmente el valor de un CFDI de ingreso previo y va relacionado a una factura.
Cuándo usarlo:
  • Devolución total o parcial de una venta
  • Descuento aplicado después de emitir la factura original
  • Bonificación acordada con el cliente
El CFDI de Egreso debe relacionarse con el CFDI de Ingreso original usando el tipo de relación 01 (Nota de Crédito).

Traslado (T)

No representa un ingreso, solo acredita el movimiento legal de mercancías en territorio nacional. Siempre acompaña a la Carta Porte.
Cuándo usarlo:
  • Propietario que mueve sus propias mercancías entre almacenes
  • Transporte sin cobro de flete

Nómina (N)

Comprobante que el empleador entrega al empleado por cada período de pago. Incluye el complemento de nómina con datos de percepciones, deducciones y retenciones de ISR. Requiere: Complemento de nómina 1.2 con:
  • Tipo de nómina (ordinaria/extraordinaria)
  • Período de pago
  • Percepciones y deducciones detalladas
  • RFC del empleado y CURP

Pago (P)

Se emite cuando el cliente paga una factura que se emitió con método de pago PPD (Pago en Parcialidades o Diferido). Complementa la factura original sin cancelarla. Flujo típico:
Factura de Ingreso en PPD
Complemento de Pago
Si emites una factura con PaymentMethod: "PPD" y el cliente paga de inmediato, debes emitir un CFDI de Pago. No hacerlo genera inconsistencias fiscales que pueden derivar en multas.

Métodos y formas de pago

El PaymentMethod y el PaymentForm son campos distintos: Cuando PaymentMethod = "PPD" y no se conoce aún la forma de pago, usa PaymentForm = "99" (Por definir).