Skip to content

eliog/CfdiSharp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CfdiSharp

Libreria para generar el xml del CFDI v3.2 de forma fácil y rápida.

Ejemplo de uso

var comp = new Comprobante();

comp.Fecha = DateTime.Now;
comp.FormaDePago = "PAGO EN UNA SOLA EXHIBICION";
comp.MetodoDePago = "NO IDENTIFICADO";
comp.LugarExpedicion = "San Luis Potosí";
comp.TipoDeComprobante = TipoDeComprobante.ingreso;
comp.SubTotal = 1.00m;
comp.Total = 1.16m;

//Emisor
comp.Emisor = new Emisor ();
comp.Emisor.DomicilioFiscal = new DomicilioFiscal();
comp.Emisor.Rfc = "AAA010101AAA";
comp.Emisor.DomicilioFiscal.Calle = "Himalaya";
comp.Emisor.DomicilioFiscal.Municipio = "San Luis Potosí";
comp.Emisor.DomicilioFiscal.Estado = "San Luis Potosí";
comp.Emisor.DomicilioFiscal.Pais = "México";
comp.Emisor.DomicilioFiscal.CodigoPostal = "78000";
var regimenFiscal = new RegimenFiscal { Regimen = "Régimen de las Personas Físicas con Actividades Empresariales y Profesionales" };
comp.Emisor.RegimenFiscal = new[] { regimenFiscal };

//Receptor
comp.Receptor = new Receptor ();
comp.Receptor.Domicilio = new Domicilio();
comp.Receptor.Rfc = "AAA010101AAA";
comp.Receptor.Domicilio.Pais = "México";

//Conceptos
var concepto = new Concepto();
concepto.Cantidad = 1;
concepto.Unidad = "NO APLICA";
concepto.Descripcion = "SERVICIO X";
concepto.Importe = 1.00m;
concepto.ValorUnitario = 1.00m;
comp.Conceptos = new[] { concepto };

//Impuestos
var traslado = new Traslado();
traslado.Impuesto = TrasladoImpuesto.IEPS;
traslado.Importe = 0.16m;
traslado.Tasa = 16m;
comp.Impuestos = new Impuestos();
comp.Impuestos.Traslados = new[]{ traslado };

// sellado
var cer = new X509Certificate2(@"CERAAA010101A23KEY.pfx", "12345678a", X509KeyStorageFlags.MachineKeySet);
var cadena = Util.Sello.GenerarCadenaOriginal(comp);

comp.NoCertificado = Util.Sello.NoCertificado(cer);
comp.Certificado = Convert.ToBase64String(cer.RawData);
comp.Sello = Util.Sello.GenerarSello(cer, cadena);

//xml del cfdi listo para timbrarse con cualquier PAC
var xmlString = comp.ToString()

Convertir archivo.cer y archivo.key a archivo.pfx con OpenSSL

pkcs8 -in <ruta del archivo key>.key -inform DER -out <ruta del archive de salida>.pem
x509 -in <ruta archivo certificado>.cer –inform DER -out <ruta archivo destino>.pem
pkcs12 -export -inkey <ruta archivo keypem>.pem -in <ruta archivo cerpem>.pem -out <ruta archivo final>.pfx

About

Libreria para generar CFDI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C# 91.6%
  • XSLT 8.4%