Comprobante fiscal 4.0

Ejemplo en C#

		static void TestCfdi4()
        {
            var cerPath = @"D:\Wsdl\RFC-PAC-SC\Personas Morales\FIEL_XIA190128J61_20190614164226\CSD_XIA190128J61_20190617140806\CSD_Xenon_Industrial_Articles_XIA190128J61_20190617_140751s.cer";
            var keyPath = @"D:\Wsdl\RFC-PAC-SC\Personas Morales\FIEL_XIA190128J61_20190614164226\CSD_XIA190128J61_20190617140806\CSD_Xenon_Industrial_Articles_XIA190128J61_20190617_140751.key";
            var keyPass = "12345678a";

            var fachadaCfdiV4 = new USLibV4.FachadaCfdiV4();

            fachadaCfdiV4.P00Setup(
                cerPath: cerPath,
                keyPath: keyPath,
                keyPassword: keyPass);

            fachadaCfdiV4.P01DatosGenerales(
                serie: "A",
                folio: "101",
                fecha: DateTime.Now.AddHours(-3),
                formaPago: "99",
                condicionesDePago: "Contado",
                subTotal: 100m,
                descuento: 0m,
                moneda: "MXN",
                tipoCambio: null,
                total: 116.00m,
                tipoDeComprobante: "I",
                exportacion: "01",
                metodoPago: "PPD",
                lugarExpedicion: "85040",
                confirmacion: "");

            //fachadaCfdiV4.P02InformacionGlobal(
            //    periodicidad: "01",
            //    meses: "01",
            //    2021);

            //fachadaCfdiV4.P03CfdiRelacionadoAgregar(
            //    tipoRelacion: "01",
            //    uuid: "83E119E7-3BE4-4EE0-80CB-F610C1803BBF");

            fachadaCfdiV4.P04Emisor(
                rfc: "XIA190128J61",
                nombre: "XENON INDUSTRIAL ARTICLES S DE CV",
                regimenFiscal: "601",
                facAtrAdquirente: "");

            fachadaCfdiV4.P05Receptor(
                rfc: "EMC160315TX7",
                nombre: "EMCORSOFT, S.A.P.I. DE C.V.",
                domicilioFiscalReceptor: "85040",
                residenciaFiscal: "",
                numRegIdTrib: "",
                regimenFiscalReceptor: "601",
                usoCFDI: "P01");

            var idConcepto = fachadaCfdiV4.P06Concepto(
                  claveProdServ: "01010101",
                  noIdentificacion: "",
                  cantidad: 1,
                  claveUnidad: "ZZ",
                  unidad: "",
                  descripcion: "Producto 1",
                  valorUnitario: 100,
                  importe: 100,
                  descuento: 0,
                  objetoImp: "02");

            fachadaCfdiV4.P06ConceptoImpuestosTraslados(
                baseCalculoImpuesto: 100,
                impuesto: "002",
                tipoFactor: "Tasa",
                tasaOCuota: 0.16m,
                importe: 16m,
                idConcepto: idConcepto);

            fachadaCfdiV4.P07ImpuestosCrearResumenPorConceptos();

            var cadena = fachadaCfdiV4.P08GenerarCadenaOriginal();
            fachadaCfdiV4.P09GenearSelloDigital();

            var cfdiResponse = fachadaCfdiV4.P10TimbrarCfdi(esPrueba: true, idServicio: "", referenceId: "");
            if (cfdiResponse.Success)
            {
                var xmlBytes = Convert.FromBase64String(cfdiResponse.Base64XmlFile);

                Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.UUID);
                Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.FechaTimbrado);
                Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.NoCertificadoSAT);
                Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.RfcProvCertif);
                //Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.SelloCFD);
                //Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.SelloSAT);
                //Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigital.Version);
                Console.WriteLine(fachadaCfdiV4.ResumenCfdi.TimbreFiscalDigitalCadenaOriginal);

                //System.IO.File.WriteAllBytes(@"D:\Escritorio\Cfdi4\Qr.png", fachadaCfdiV4.ResumenCfdi.QrImage);

                //Console.WriteLine(xmlString);
            }
            else
            {
                Console.WriteLine(cfdiResponse.ErrorMessages);
            }
        }

Desarrollado porBetterDocs