Cfdis Mexico Facturacion electronica
$ dotnet add package Cfdis.LibCon este paquete podrás generar Cfdis y sus complementos cumpliendo con el estandar del SAT para Cfdi 4.0.
De tipo comprobante
De tipo concepto
Generador de cadena origina Generador de cadena para QR de Cfdi Generador de cadena para QR de Complemento de Carta Porte Generador de sello digital Lector de Cfdi y complementos Lector de certificados de sello digital Validador de certificados de sello digital
Prueba nuestro servicio de timbrado de alta disponibilidad. Tenemos soporte con múltiples PACs Respaldos y reportes personalizados Contamos con panel de administración para ti y para tus clientes.
static async Task GenerarCfdiBasico()
{
var cerFile = System.IO.File.ReadAllBytes(@"C:\CSDTest\CSD Pruebas\XIA190128J61_20230518060511\CSD_XIA190128J61_20230518063226\CSD_Sucursal_1_XIA190128J61_20230518_063218.cer");
var keyFile = System.IO.File.ReadAllBytes(@"C:\CSDTest\CSD Pruebas\XIA190128J61_20230518060511\CSD_XIA190128J61_20230518063226\CSD_Sucursal_1_XIA190128J61_20230518_063218.key");
var keyPwd = "12345678a";
var fachadaCfdiV4 = new USLibStd.FachadaCfdiV4();
fachadaCfdiV4.P00Setup(
cerFile: cerFile, //Acepta Ruta o Array de bytes
keyFile: keyFile, //Acepta Ruta o Array de bytes
keyPassword: keyPwd);
fachadaCfdiV4.P01DatosGenerales(
serie: "A",
folio: "101",
fecha: DateTime.Now,
formaPago: "99",
condicionesDePago: "Contado",
subTotal: 100m,
descuento: 0m,
moneda: "MXN",
tipoCambio: null,
total: 116m,
tipoDeComprobante: "I", //E = Egreso de nota de crédito
exportacion: "01",
metodoPago: "PPD",
lugarExpedicion: "85040",
confirmacion: "");
fachadaCfdiV4.P04Emisor(
rfc: "XIA190128J61",
nombre: "XENON INDUSTRIAL ARTICLES",
regimenFiscal: "601",
facAtrAdquirente: "");
fachadaCfdiV4.P05Receptor(
rfc: "EKU9003173C9",
nombre: "ESCUELA KEMPER URGATE",
domicilioFiscalReceptor: "26015",
residenciaFiscal: "",
numRegIdTrib: "",
regimenFiscalReceptor: "601",
usoCFDI: "S01");
var idConcepto = fachadaCfdiV4.P06Concepto(
claveProdServ: "01010101",
noIdentificacion: "",
cantidad: 1m,
claveUnidad: "ZZ",
unidad: "",
descripcion: "Producto",
valorUnitario: 100m,
importe: 100m,
descuento: 0,
objetoImp: "02");
fachadaCfdiV4.P06ConceptoImpuestosTraslados(
baseCalculoImpuesto: 100m,
impuesto: "002",
tipoFactor: "Tasa",
tasaOCuota: 0.160000m,
importe: 16m,
idConcepto: idConcepto);
//Crea el nodo Cfdi:Impuestos tomando la información de cada concepto
fachadaCfdiV4.P07ImpuestosCrearResumenPorConceptos();
var cadena = fachadaCfdiV4.P08GenerarCadenaOriginal();
fachadaCfdiV4.P09GenerarSelloDigital();
var cfdiResponse = fachadaCfdiV4.P10TimbrarCfdi(testMode: true, idServicio: "", referenceId: "");
if (cfdiResponse.Success)
{
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.UUID);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.FechaTimbrado);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.NoCertificadoSAT);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.RfcProvCertif);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.SelloCFD);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.SelloSAT);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital40.Version);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.QrCadenaCfdi);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.Comprobante40.NoCertificado);
Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TfdCadena);
//Convertir XmlBase64 en un array de bytes
var xmlBytes = Convert.FromBase64String(cfdiResponse.Base64XmlFile);
System.IO.File.WriteAllBytes(@"C:\Wsdl\Cfdi.xml", xmlBytes);
}
else
{
Console.WriteLine(cfdiResponse.ErrorMessages);
}
}
Para obtener soporte y otros ejemplos enviar email a soporte@emcor.mx Agendar una llamada