Skip to content

Tipos de CFE

CódigoNombreEnum TipoCfeMétodo de creaciónRequiere receptor
101e-TicketETicketCrearETicket()No
102Nota de Crédito e-TicketNotaCreditoETicketCrearNotaCreditoETicket()No
103Nota de Débito e-TicketNotaDebitoETicketCrearNotaDebitoETicket()No
111e-FacturaEFacturaCrearEFactura()✅ Sí
112Nota de Crédito e-FacturaNotaCreditoEFacturaCrearNotaCreditoEFactura()✅ Sí
113Nota de Débito e-FacturaNotaDebitoEFacturaCrearNotaDebitoEFactura()✅ Sí
121e-Factura de ExportaciónEFacturaExportacionCrearEFacturaExportacion()✅ Sí
122NC e-Factura de ExportaciónNotaCreditoEFacturaExportacionCrearNotaCreditoEFacturaExportacion()✅ Sí
123ND e-Factura de ExportaciónNotaDebitoEFacturaExportacionCrearNotaDebitoEFacturaExportacion()✅ Sí
131e-Remito DespachanteERemitoDespachanteCrearERemitoDespachante()Condicional
151e-ResguardoEResguardoCrearEResguardo()✅ Sí
181e-RemitoERemitoCrearERemito()Condicional
182Nota de Crédito e-RemitoNotaCreditoERemitoCrearNotaCreditoERemito()Condicional

Para ventas al consumidor final cuando no se necesita identificar al comprador. Es el equivalente electrónico del ticket de caja.

var ticket = client.CrearETicket();

e-Factura (111) — con identificación del receptor

Section titled “e-Factura (111) — con identificación del receptor”

Cuando el comprador es una empresa o contribuyente y necesita el documento para deducir IVA o gastos.

var factura = client.CrearEFactura();
factura.Receptor = new Receptor { Documento = "...", TipoDocumento = TipoDocumentoReceptor.Rut, ... };

Para ventas al exterior. Requiere información adicional del receptor extranjero.

var exportacion = client.CrearEFacturaExportacion();

Para anular o ajustar a la baja un CFE emitido previamente. Deben referenciar el comprobante original.

var nc = client.CrearNotaCreditoETicket();
nc.Referencias.Add(new RefCfe
{
TipoCfe = TipoCfe.ETicket,
NroCfe = 42,
FechaCfe = new DateTime(2025, 6, 1),
Razon = "Devolución total",
});

Para ajustar al alza o cobrar diferencias sobre un CFE emitido.

Para documentar el traslado de mercadería sin implicar una transacción de venta. El campo IndTraslado es obligatorio para estos tipos e indica el motivo del traslado:

ValorDescripción
IndTraslado.TrasladoPropioTraslado entre depósitos propios
IndTraslado.TrasladoEnComisionTraslado en comisión
IndTraslado.DevolucionDevolución al proveedor
IndTraslado.TrasladoPorVentaTraslado por venta
IndTraslado.TrasladoEnConsignacionTraslado en consignación
IndTraslado.TrasladoPorExposicionTraslado por exposición / feria
var remito = client.CrearERemito();
remito.IndTraslado = IndTraslado.TrasladoPropio;

Para documentar retenciones de IVA realizadas a proveedores.


Cada tipo de CFE tiene su propio rango de CAE independiente. Un CAE de e-Ticket no puede usarse para e-Facturas.

// ✅ Correcto: CAE específico por tipo
client.Cae.RegistrarCae(new Cae { TipoCfe = TipoCfe.ETicket, ... });
client.Cae.RegistrarCae(new Cae { TipoCfe = TipoCfe.EFactura, ... });
// ❌ No se puede usar el mismo CAE para distintos tipos