Esempio n. 1
0
        private static void TestListCreateAndRemoveCsd(FacturamaApiMultiemisor facturama)
        {
            // Archivo a Base64 convertido en http://jpillora.com/base64-encoder/
            var csds = facturama.Csds.List();

            Console.WriteLine($"Se encontraron {csds.Count} csd.");
            var csd = csds.FirstOrDefault(c => c.Rfc == "AAA010101AAA");

            if (csd != null)
            {
                facturama.Csds.Remove(csd.Rfc);
                Console.WriteLine($"Se eliminó el CSD relacionado con el RFC: {csd.Rfc}");
            }
            var csdRequest = new Csd
            {
                Rfc                = "aaa010101aaa",
                Certificate        = "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",
                PrivateKey         = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS+AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbuck7ujDnmKxSaOGzJzn1hAlfBWJNtr1rgiCXRHB5/2qJ/CnTOkCcgutvs1xl3vxHgY1+N9I60iZUG+yjfEd+ungL4alXXMtKgZ8CkQXaeYIeQXFdyZ5jUU07Cy+LjMrIOAh1m/VnL6U/qW3dY+oJmII6gCG0SKcfCojeCpBVL2ispK2CBTpMDO4hd7vnbFhafl9/wUkAncmz5SHLjXPMKgmK7HvBiUSMRYFCjcNEBvMshI7E1//nG8pi0Xrmbq4MfT1B+SF8vbA39hCqKP32m+QFlOduHlaFSnW96UkMBT5hF1qImwU3HTbtKfAumo3BLzYJ9XP7Y6eVOFFSSsXudrAt94mH7CojUjazGHBsqagsUY85Q7Cz0TTvnnvWFNFAj/xbQm6nT1VL8FkdJm8hEb5YLaOqQZ8y1AEv8sCq/M51aHglexuzGFIIUTF+/XQGeYDBITlS6z2TryoHp8n1+6LpClL51WrIfaSxyMEtG2fmAHN82iNujOP6MBR7aMZ6dfxJctFRAaWlmi89wa5VhyeaoDzkx1roJznF3MLxVKROmYLDYk142IwRtTgWrex4Wnidpo4unrfL+uj6VwTUDk0cizaYvamRhlZ/LXdwyB1syb/GQGu94gSzB1zAzb5/IIbtyofK+/tVTv08OMpCqHfBye1QJQg+vxQHMkbhZH6sEgORSEjuidW13DTKi8xyryQsD5WccMh8WDxMuAVFUldrwWdGilFKg0G99S/XJWLwKB74Nv0v/Ygdp6/d9T0fFD3FXpb9RznErCgfVSMtrPv1svGg3QFwh+qmkzjh+NBwUrmmqEjNshji+9SB4fnJNYlKVvu4WAzMKliixUkRcCID1QYwLtiyWuwZDYxKTnk7Y1LXmRGqqhNbh4kdnTNUdkxEjqp+UVtBdaxswa6s4qrLbNeD7VN+1KJEMN6/zZ6+2Uj2KBMzaDA0zwAHMB1gyPkgX0v47e61iffaVAUQzDGYGbDERG2vT8234NSDdgqzOpsf7il2Pv+uF0oab+db62JiRvOEjNefXG5p8KRudYyaVO8N7iTdRRj/A/yDwjmSq9dDCZEZE0cD6BEaAgmjvqwF5IvGgJGnWYKhrOGBPv+VL6zGOXo/L9zenxYwKNTHzNYlvug/t4gXQmArroqA2YKBGpYb8/FY/q3t3k+u1bXWvNLOzWi81InvxFSCTu6l9GBCthyWwekWdoL6ssSzOmzPr/d2klSRST3ByJmAJzLGJFsj6AL01BaUVWERH0s+GmnSWOU8ZIQVGF7aOEWWbtD0vyjJRxQnxPxn+Tt3oT9Nob10QGwG/2tNZtZuhAMf1yt+cF8jl0hC/LI0FtMqmLAkxaEOiXHmFuKXbAjFxIjdIwgWsAZe1cTLzR44jIKwlB64jvh1LXmJ5jCszLd/fuCEB0XZUWLDRCZVb82MqcZl7U/gaFazSqm71NNafCDzWjWO4ukWN1lcTDJE05KgeRqoYIEcpU8jXy/CAEaoseA1bWDnfnLJk2axVXzmrtYnojyKjTjDz3In41Kjsx3nNOegqtH7O2gl9YBzJfgwZmF0ldk+udcotc0JwIXYWk7b5HmRgXWa+WvDHSwyLzMrbw=",
                PrivateKeyPassword = "******"
            };

            try
            {
                facturama.Csds.Create(csdRequest);
                Console.WriteLine($"Se guardo el CSD relacionado con el RFC: {csdRequest.Rfc}");

                csdRequest.Rfc = "AAA010101AAA";
                facturama.Csds.Update(csdRequest);
                Console.WriteLine($"Se actualizó el CSD relacionado con el RFC: {csdRequest.Rfc}");
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Esempio n. 2
0
        public static void RunExamples()
        {
            var facturamaMultiEmisor = new FacturamaApiMultiemisor("pruebas", "pruebas2011");

            //TestListCreateAndRemoveCsd(facturamaMultiEmisor);
            //TestCreateCfdiMultiemisor(facturamaMultiEmisor);
            TestCreatePaymentCfdi(facturamaMultiEmisor);
            Console.ReadKey();
        }
        public static void RunExamples()
        {
            var facturamaMultiEmisor = new FacturamaApiMultiemisor("sdkpruebas", "pruebas2022");

            //TestListCreateAndRemoveCsd(facturamaMultiEmisor);
            //TestCreateCfdiMultiemisor(facturamaMultiEmisor);// CFDI 3.3
            TestCreateCfdiMultiemisor40(facturamaMultiEmisor);// CFDI 4.0
            //TestCreatePaymentCfdi(facturamaMultiEmisor);

            //new EducationalInstitutionComplementExampleMultiemisor(facturamaMultiEmisor).Run();   // Complemento IEDU - Instituciones educativas
            //new WaybillComplementExampleMulti(facturamaMultiEmisor).Run();   // Complemento IEDU - Instituciones educativas

            Console.ReadKey();
        }
Esempio n. 4
0
        public PaymentComplement()
        {
            /*
             * //Api
             * var facturama = new FacturamaApi("pruebas", "pruebas2011");
             * // Ejemplo de la creación de un complemento de pago
             * SamplePaymentComplement(facturama);
             */

            //Api Multiemisor
            var facturamaMultiEmisor = new FacturamaApiMultiemisor("pruebas", "pruebas2011");

            // Ejemplo de la creación de un complemento de pago Multiemeisor
            SampleCreatePaymentCfdiMultiemisor(facturamaMultiEmisor);
        }
        public CDPaymentComplement()
        {
            //Api
            _facturamaWeb = new FacturamaApi("pruebas", "pruebas2011");

            /*// Ejemplo de la creación de un complemento de pago
             * SamplePaymentComplement(facturama);
             */

            //Api Multiemisor
            _facturamaMultiEmisor = new FacturamaApiMultiemisor("pruebas", "pruebas2011");


            // Ejemplo de la creación de un complemento de pago Multiemeisor
            //SampleCreatePaymentCfdiMultiemisor(facturamaMultiEmisor);
        }
        private static void TestListCreateAndRemoveCsd(FacturamaApiMultiemisor facturama)
        {
            // Archivo a Base64 convertido en http://jpillora.com/base64-encoder/
            var csds = facturama.Csds.List();

            Console.WriteLine($"Se encontraron {csds.Count} csd.");
            var csd = csds.FirstOrDefault(c => c.Rfc == "EKU9003173C9");

            if (csd != null)
            {
                facturama.Csds.Remove(csd.Rfc);
                Console.WriteLine($"Se eliminó el CSD relacionado con el RFC: {csd.Rfc}");
            }
            var csdRequest = new Csd
            {
                Rfc                = "EKU9003173C9",
                Certificate        = "MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzQwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MTk0NDE0WhcNMjMwNjE3MTk0NDE0WjCB4jEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gWElRQjg5MTExNlFFNDEeMBwGA1UEBRMVIC8gWElRQjg5MTExNk1HUk1aUjA1MR4wHAYDVQQLExVFc2N1ZWxhIEtlbXBlciBVcmdhdGUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCN0peKpgfOL75iYRv1fqq+oVYsLPVUR/GibYmGKc9InHFy5lYF6OTYjnIIvmkOdRobbGlCUxORX/tLsl8Ya9gm6Yo7hHnODRBIDup3GISFzB/96R9K/MzYQOcscMIoBDARaycnLvy7FlMvO7/rlVnsSARxZRO8Kz8Zkksj2zpeYpjZIya/369+oGqQk1cTRkHo59JvJ4Tfbk/3iIyf4H/Ini9nBe9cYWo0MnKob7DDt/vsdi5tA8mMtA953LapNyCZIDCRQQlUGNgDqY9/8F5mUvVgkcczsIgGdvf9vMQPSf3jjCiKj7j6ucxl1+FwJWmbvgNmiaUR/0q4m2rm78lFAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQBcpj1TjT4jiinIujIdAlFzE6kRwYJCnDG08zSp4kSnShjxADGEXH2chehKMV0FY7c4njA5eDGdA/G2OCTPvF5rpeCZP5Dw504RZkYDl2suRz+wa1sNBVpbnBJEK0fQcN3IftBwsgNFdFhUtCyw3lus1SSJbPxjLHS6FcZZ51YSeIfcNXOAuTqdimusaXq15GrSrCOkM6n2jfj2sMJYM2HXaXJ6rGTEgYmhYdwxWtil6RfZB+fGQ/H9I9WLnl4KTZUS6C9+NLHh4FPDhSk19fpS2S/56aqgFoGAkXAYt9Fy5ECaPcULIfJ1DEbsXKyRdCv3JY89+0MNkOdaDnsemS2o5Gl08zI4iYtt3L40gAZ60NPh31kVLnYNsmvfNxYyKp+AeJtDHyW9w7ftM0Hoi+BuRmcAQSKFV3pk8j51la+jrRBrAUv8blbRcQ5BiZUwJzHFEKIwTsRGoRyEx96sNnB03n6GTwjIGz92SmLdNl95r9rkvp+2m4S6q1lPuXaFg7DGBrXWC8iyqeWE2iobdwIIuXPTMVqQb12m1dAkJVRO5NdHnP/MpqOvOgLqoZBNHGyBg4Gqm4sCJHCxA1c8Elfa2RQTCk0tAzllL4vOnI1GHkGJn65xokGsaU4B4D36xh7eWrfj4/pgWHmtoDAYa8wzSwo2GVCZOs+mtEgOQB91/g==",
                PrivateKey         = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS8AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucRFLOMmsAaFNkyWR0dXIAh0CMjE6NpQIMZhQ0HH/4tHgmwh4kCawGjIwERoG6/IH3mCt7u19J5+m6gUEGOJdEMXj976E5lKCd/EG6t6lCq66GE3rgux/nFmeQZvsjLlzPyhe2j+X81LrGudITTjDdgLI0EdbdV9CUJwWbibzrVxjuAVShRh07XPL/DiEw3Wk2+kdy4cfWmMvh0U55p0RKZopNkWuVVSvr3ai7ZNCwHZWDVqkUDpwDDGdyt0kYQ7qoKanIxv/A9wv6ekq0LQ/yLlOcelkxQeb8Glu4RXe+krRvrASw1eBAQ3mvNKpngwF8vtlyoil41PjHUOKALMJtNpywckRRYOk4703ylWIzTfdBlrZ6VmDBjdC5723G1HAx3R/x+o+08++RNiFaN06Ly5QbZZvjnealDfSKz1VKRHWeXggaW87rl4n0SOOWnvabKs4ZWRXTS0dhWK+KD/yYYQypTslDSXQrmyMkpc1Zcb4p9RTjodXxGCWdsR5i5+Ro/RiJvxWwwaO3YW6eaSavV0ROqANQ+A+GizMlxsVjl6G5Ooh6ORdA7jTNWmK44Icgyz6QFNh+J3NibxVK2GZxsQRi+N3HXeKYtq5SDXARA0BsaJQzYfDotA9LFgmFKg9jVhtcc1V3rtpaJ5sab8tdBTPPyN/XT8fA0GxlIX+hjLd3E9wB7qzNR6PZ84UKDxhCGWrLuIoSzuCbr+TD9UCJprsfTu8kr8Pur4rrxm7Zu1MsJRR9U5Ut+O9FZfw4SqGykyTGGh0v1gDG8esKpTW5MKNk9dRwDNHEmIF6tE6NeXDlzovf8VW6z9JA6AVUkgiFjDvLUY5MgyTqPB9RJNMSAZBzrkZgXyHlmFz2rvPqQGFbAtukjeRNS+nkVayLqfQnqpgthBvsgDUgFn03z0U2Svb094Q5XHMeQ4KM/nMWTEUC+8cybYhwVklJU7FBl9nzs66wkMZpViIrVWwSB2k9R1r/ZQcmeL+LR+WwgCtRs4It1rNVkxXwYHjsFM2Ce46TWhbVMF/h7Ap4lOTS15EHC8RvIBBcR2w1iJ+3pXiMeihArTELVnQsS31X3kxbBp3dGvLvW7PxDlwwdUQOXnMoimUCI/h0uPdSRULPAQHgSp9+TwqI0Uswb7cEiXnN8PySN5Tk109CYJjKqCxtuXu+oOeQV2I/0knQLd2zol+yIzNLj5a/HvyN+kOhIGi6TrFThuiVbbtnTtRM1CzKtFGuw5lYrwskkkvenoSLNY0N85QCU8ugjc3Bw4JZ9jNrDUaJ1Vb5/+1GQx/q/Dbxnl+FK6wMLjXy5JdFDeQyjBEBqndQxrs9cM5xBnl6AYs2Xymydafm2qK0cEDzwOPMpVcKU8sXS/AHvtgsn+rjMzW0wrQblWE0Ht/74GgfCj4diCDtzxQ0ggi6yJD+yhLZtVVqmKS3Gwnj9RxPLNfpgzPP01eYyBBi/W0RWTzcTb8iMxWX52MTU0oX9//4I7CAPXn0ZhpWAAIvUmkfjwfEModH7iwwaNtZFlT2rlzeshbP++UCEtqbwvveDRhmr5sMYkl+duEOca5156fcRy4tQ8Y3moNcKFKzHGMenShEIHz+W5KE=",
                PrivateKeyPassword = "******"
            };

            try
            {
                facturama.Csds.Create(csdRequest);
                Console.WriteLine($"Se guardo el CSD relacionado con el RFC: {csdRequest.Rfc}");

                csdRequest.Rfc = "EKU9003173C9";
                facturama.Csds.Update(csdRequest);
                Console.WriteLine($"Se actualizó el CSD relacionado con el RFC: {csdRequest.Rfc}");
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Esempio n. 7
0
        private static void TestCreatePaymentCfdi(FacturamaApiMultiemisor facturama)
        {
            var nameId      = facturama.Catalogs.NameIds[14]; //Nombre en el pdf: "Factura"
            var paymentForm = facturama.Catalogs.PaymentForms.First(p => p.Name == "Efectivo");
            var regimen     = facturama.Catalogs.FiscalRegimens.First();


            var cfdi = new CfdiMulti
            {
                NameId          = nameId.Value,
                CfdiType        = CfdiType.Pago,
                Folio           = "100",
                ExpeditionPlace = "78220",
                Issuer          = new Issuer
                {
                    Rfc          = "AAA010101AAA",
                    Name         = "Expresion en Software SAPI de CV",
                    FiscalRegime = regimen.Value
                },
                Receiver = new Receiver
                {
                    Rfc     = "JAR1106038RA",
                    Name    = "SinDelantal Mexico",
                    CfdiUse = "P01"
                },
                Complement = new Complement
                {
                    Payments = new List <Payment>
                    {
                        new Payment
                        {
                            Date             = "2018-04-04T00:00:00.000Z",
                            PaymentForm      = paymentForm.Value,
                            Currency         = "MXN",
                            Amount           = 1200.00m,
                            RelatedDocuments = new List <RelatedDocument> {
                                new RelatedDocument {
                                    Uuid                  = "F884C787-EEA6-4720-874D-B5048DB8F960",
                                    Folio                 = "100032007",
                                    Currency              = "MXN",
                                    PaymentMethod         = "PUE",
                                    PartialityNumber      = 1,
                                    PreviousBalanceAmount = 1200.00m,
                                    AmountPaid            = 1200.00m
                                }
                            }
                        }
                    }
                }
            };

            try
            {
                var cfdiCreated = facturama.Cfdis.Create(cfdi);
                Console.WriteLine(
                    $"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                facturama.Cfdis.SaveXml($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.xml", cfdiCreated.Id);
                Console.WriteLine($"Se guardo existosamente la factura con el UUID: {cfdiCreated.Complement.TaxStamp.Uuid}.");
                facturama.Cfdis.Remove(cfdiCreated.Id);
                Console.WriteLine(
                    $"Se eliminó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error inesperado: ", ex.Message);
            }
        }
Esempio n. 8
0
        private static void TestCreateCfdiMultiemisor(FacturamaApiMultiemisor facturama)
        {
            var nameId        = facturama.Catalogs.NameIds.ElementAt(1); //Nombre en el pdf: "Factura"
            var currency      = facturama.Catalogs.Currencies.First(m => m.Value == "MXN");
            var paymentMethod = facturama.Catalogs.PaymentMethods.First(p => p.Name == "Pago en una sola exhibición");
            var paymentForm   = facturama.Catalogs.PaymentForms.First(p => p.Name == "Efectivo");
            var cfdiUse       = facturama.Catalogs.CfdiUses("AAA010101AAA").First();
            var codeProdServ  = facturama.Catalogs.ProductsOrServices("desarrollo").First();
            var unitCode      = facturama.Catalogs.Units("pieza").First();
            var decimals      = (int)currency.Decimals;
            var regimen       = facturama.Catalogs.FiscalRegimens.First();

            var cfdi = new CfdiMulti
            {
                Folio           = "10",
                NameId          = nameId.Value,
                CfdiType        = CfdiType.Ingreso,
                PaymentForm     = paymentForm.Value,
                PaymentMethod   = paymentMethod.Value,
                Currency        = currency.Value,
                Date            = DateTime.Now,
                ExpeditionPlace = "78180",
                Items           = new List <Item>(),
                Issuer          = new Issuer
                {
                    FiscalRegime = regimen.Value,
                    Name         = "Emisor de Ejemplo",
                    Rfc          = "AAA010101AAA"
                },
                Receiver = new Receiver
                {
                    CfdiUse = cfdiUse.Value,
                    Name    = "Receptor de Ejemplo",
                    Rfc     = "ESO1202108R2"
                },
            };

            var price    = 100.00m;
            var quantity = 2m;
            var discount = 10m;
            var subtotal = Math.Round(price * quantity, decimals);

            var item = new Item
            {
                ProductCode          = codeProdServ.Value,
                UnitCode             = unitCode.Value,
                Unit                 = "Libra",
                Description          = "Descripción del Producto",
                IdentificationNumber = "010101-56",
                Quantity             = quantity,
                Discount             = Math.Round(discount, decimals),
                UnitPrice            = Math.Round(price, decimals),
                Subtotal             = subtotal,
                Taxes                = new List <Tax>
                {
                    new Tax
                    {
                        Name        = "IVA",
                        IsQuota     = false,
                        IsRetention = false,

                        Rate  = 0.160000m,
                        Base  = Math.Round(subtotal - discount, decimals),
                        Total = Math.Round((subtotal - discount) * 0.160000m, decimals)
                    }
                }
            };
            var retenciones = item.Taxes?.Where(t => t.IsRetention).Sum(t => t.Total) ?? 0;
            var traslados   = item.Taxes?.Where(t => !t.IsRetention).Sum(t => t.Total) ?? 0;

            item.Total = item.Subtotal - item.Discount + traslados - retenciones;
            cfdi.Items.Add(item);

            try
            {
                var cfdiCreated = facturama.Cfdis.Create(cfdi);
                Console.WriteLine(
                    $"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                facturama.Cfdis.SaveXml($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.xml", cfdiCreated.Id);

                var list = facturama.Cfdis.List("Emisor de Ejemplo");
                Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");
                list = facturama.Cfdis.List(rfc: "ESO1202108R2"); //Atributo en especifico
                Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");

                facturama.Cfdis.Remove(cfdiCreated.Id);
                Console.WriteLine(
                    $"Se eliminó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error inesperado: ", ex.Message);
            }
        }
 public WaybillComplementExampleMulti(FacturamaApiMultiemisor facturama)
 {
     this.facturama = facturama;
 }
        private static void TestCreatePaymentCfdi(FacturamaApiMultiemisor facturama)
        {
            var nameId      = facturama.Catalogs.NameIds[14]; //Nombre en el pdf: "Factura"
            var paymentForm = facturama.Catalogs.PaymentForms.First(p => p.Name == "Efectivo");
            var regimen     = facturama.Catalogs.FiscalRegimens.First();


            var cfdi = new CfdiMulti
            {
                NameId          = nameId.Value,
                CfdiType        = CfdiType.Pago,
                Folio           = "100",
                ExpeditionPlace = "78220",
                LogoUrl         = "https://www.ejemplos.co/wp-content/uploads/2015/11/Logo-Chanel.jpg",

                Issuer = new Issuer
                {
                    Rfc          = "EKU9003173C9",
                    Name         = "Kemper Software SAPI de CV",
                    FiscalRegime = regimen.Value
                },
                Receiver = new Receiver
                {
                    Rfc     = "EWE1709045U0",
                    Name    = "Escuela Wilson Esquivel",
                    CfdiUse = "P01"
                },
                Complement = new Complement
                {
                    Payments = new List <Payment>
                    {
                        new Payment
                        {
                            Date             = "2018-04-04T00:00:00.000Z",
                            PaymentForm      = paymentForm.Value,
                            Currency         = "MXN",
                            Amount           = 1200.00m,
                            RelatedDocuments = new List <RelatedDocument> {
                                new RelatedDocument {
                                    Uuid                  = "F884C787-EEA6-4720-874D-B5048DB8F960",
                                    Folio                 = "100032007",
                                    Currency              = "MXN",
                                    PaymentMethod         = "PUE",
                                    PartialityNumber      = 1,
                                    PreviousBalanceAmount = 1200.00m,
                                    AmountPaid            = 1200.00m
                                }
                            }
                        }
                    }
                }
            };

            try
            {
                var cfdiCreated = facturama.Cfdis.Create(cfdi);
                Console.WriteLine(
                    $"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                facturama.Cfdis.SaveXml($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.xml", cfdiCreated.Id);
                Console.WriteLine($"Se guardo existosamente la factura con el UUID: {cfdiCreated.Complement.TaxStamp.Uuid}.");

                Console.WriteLine($"Se intenta cancelar la factura con el UUID: {cfdiCreated.Complement.TaxStamp.Uuid}.");
                var cancelationStatus = facturama.Cfdis.Cancel(cfdiCreated.Id);
                if (cancelationStatus.Status == "canceled")
                {
                    Console.WriteLine($"Se canceló exitosamente el CFDI con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                }
                else if (cancelationStatus.Status == "pending")
                {
                    Console.WriteLine($"El CFDI está en proceso de cancelacion, require aprobacion por parte del receptor UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                }
                else if (cancelationStatus.Status == "active")
                {
                    Console.WriteLine($"El CFDI no pudo ser cancelado, se deben revisar docuementos relacionados on cancelar directo en el SAT UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                }
                else
                {
                    Console.WriteLine($"Estado de cancelacin del CFDI desconocido UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                }
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error inesperado: ", ex.Message);
            }
        }
        private static void TestCreateCfdiMultiemisor40(FacturamaApiMultiemisor facturama)
        {
            var cfdi = new CfdiMulti
            {
                Folio           = "10",
                NameId          = "1",
                CfdiType        = CfdiType.Ingreso,
                PaymentForm     = "01",
                PaymentMethod   = "PUE",
                Currency        = "MXN",
                Date            = null,
                ExpeditionPlace = "78140",
                LogoUrl         = "https://www.ejemplos.co/wp-content/uploads/2015/11/Logo-Chanel.jpg",

                Exportation = "01",

                GlobalInformation = new GlobalInformation
                {
                    Periodicity = "04",
                    Months      = "04",
                    Year        = "2022"
                },

                Items  = new List <Item>(),
                Issuer = new Issuer
                {
                    FiscalRegime = "601",
                    Name         = "ESCUELA KEMPER URGATE",
                    Rfc          = "EKU9003173C9"
                },
                Receiver = new Receiver
                {
                    Rfc          = "XAXX010101000",
                    Name         = "PUBLICO GENERAL",
                    CfdiUse      = "S01",
                    FiscalRegime = "616",
                    TaxZipCode   = "78140"
                },
            };

            var price    = 100.00m;
            var quantity = 2m;
            var discount = 10m;
            var subtotal = Math.Round(price * quantity, 2);

            var item = new Item
            {
                ProductCode = "25173108",
                UnitCode    = "E48",
                Description = "GPS estandar pruebas",
                Quantity    = 1.0M,
                UnitPrice   = 100.0M,
                Subtotal    = 100.00M,
                TaxObject   = "02",
                Taxes       = new List <Tax>
                {
                    new Tax
                    {
                        Name        = "IVA",
                        IsQuota     = false,
                        IsRetention = false,

                        Rate  = 0.160000m,
                        Base  = Math.Round(subtotal - discount, 2),
                        Total = Math.Round((subtotal - discount) * 0.160000m, 2)
                    }
                }
            };
            var retenciones = item.Taxes?.Where(t => t.IsRetention).Sum(t => t.Total) ?? 0;
            var traslados   = item.Taxes?.Where(t => !t.IsRetention).Sum(t => t.Total) ?? 0;

            item.Total = item.Subtotal - (item.Discount ?? 0) + traslados - retenciones;
            cfdi.Items.Add(item);

            try
            {
                //var cfdiCreated = facturama.Cfdis.Create(cfdi);
                //Console.WriteLine($"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");

                var cfdiCreated = facturama.Cfdis.Create3(cfdi);// Prueba CFDI 4.0
                Console.WriteLine($"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");

                //facturama.Cfdis.SaveXml($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.xml", cfdiCreated.Id);
                //facturama.Cfdis.SavePdf($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.pdf", cfdiCreated.Id);

                //var list = facturama.Cfdis.List("Emisor de Ejemplo");
                //Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");
                //list = facturama.Cfdis.List(rfc: "EWE1709045U0"); //RFC receptor en especifico
                //Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");

                //var cancelationStatus = facturama.Cfdis.Cancel(cfdiCreated.Id);

                /*
                 *              if(cancelationStatus.Status == "canceled")
                 *              {
                 *                      Console.WriteLine($"Se canceló exitosamente el CFDI con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else if (cancelationStatus.Status == "pending")
                 *              {
                 *                      Console.WriteLine($"El CFDI está en proceso de cancelacion, require aprobacion por parte del receptor UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else if (cancelationStatus.Status == "active")
                 *              {
                 *                      Console.WriteLine($"El CFDI no pudo ser cancelado, se deben revisar docuementos relacionados on cancelar directo en el SAT UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else
                 *              {
                 *                      Console.WriteLine($"Estado de cancelacin del CFDI desconocido UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 */
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error inesperado: ", ex.Message);
            }
        }
        private static void TestCreateCfdiMultiemisor(FacturamaApiMultiemisor facturama)
        {
            var nameId        = facturama.Catalogs.NameIds.ElementAt(1); //Nombre en el pdf: "Factura"
            var currency      = facturama.Catalogs.Currencies.First(m => m.Value == "MXN");
            var paymentMethod = facturama.Catalogs.PaymentMethods.First(p => p.Name == "Pago en una sola exhibición");
            var paymentForm   = facturama.Catalogs.PaymentForms.First(p => p.Name == "Efectivo");
            var cfdiUse       = facturama.Catalogs.CfdiUses("EKU9003173C9").First();
            var codeProdServ  = facturama.Catalogs.ProductsOrServices("desarrollo").First();
            var unitCode      = facturama.Catalogs.Units("pieza").First();
            var decimals      = (int)currency.Decimals;
            var regimen       = facturama.Catalogs.FiscalRegimens.First();

            var cfdi = new CfdiMulti
            {
                Folio           = "10",
                NameId          = nameId.Value,
                CfdiType        = CfdiType.Ingreso,
                PaymentForm     = paymentForm.Value,
                PaymentMethod   = paymentMethod.Value,
                Currency        = currency.Value,
                Date            = null,
                ExpeditionPlace = "78180",
                LogoUrl         = "https://www.ejemplos.co/wp-content/uploads/2015/11/Logo-Chanel.jpg",
                Items           = new List <Item>(),
                Issuer          = new Issuer
                {
                    FiscalRegime = regimen.Value,
                    Name         = "ESCUELA KEMPER URGATE",
                    Rfc          = "EKU9003173C9"
                },
                Receiver = new Receiver
                {
                    CfdiUse      = "G03",
                    Name         = "UNIVERSIDAD ROBOTICA ESPAÑOLA",
                    Rfc          = "URE180429TM6",
                    FiscalRegime = "601",
                    TaxZipCode   = "65000"
                },
            };

            var price    = 100.00m;
            var quantity = 2m;
            var discount = 10m;
            var subtotal = Math.Round(price * quantity, decimals);

            var item = new Item
            {
                ProductCode = "25173108",
                UnitCode    = "E48",
                Description = "GPS estandar pruebas",
                Quantity    = 1.0M,
                UnitPrice   = 100.0M,
                Subtotal    = 100.00M,
                TaxObject   = "02",
                Taxes       = new List <Tax>
                {
                    new Tax
                    {
                        Name        = "IVA",
                        IsQuota     = false,
                        IsRetention = false,

                        Rate  = 0.160000m,
                        Base  = Math.Round(subtotal - discount, decimals),
                        Total = Math.Round((subtotal - discount) * 0.160000m, decimals)
                    }
                }
            };
            var retenciones = item.Taxes?.Where(t => t.IsRetention).Sum(t => t.Total) ?? 0;
            var traslados   = item.Taxes?.Where(t => !t.IsRetention).Sum(t => t.Total) ?? 0;

            item.Total = item.Subtotal - (item.Discount ?? 0) + traslados - retenciones;
            cfdi.Items.Add(item);

            try
            {
                //var cfdiCreated = facturama.Cfdis.Create(cfdi);
                //Console.WriteLine($"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");

                var cfdiCreated = facturama.Cfdis.Create3(cfdi);// Prueba CFDI 4.0
                Console.WriteLine($"Se creó exitosamente el cfdi con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");

                //facturama.Cfdis.SaveXml($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.xml", cfdiCreated.Id);
                //facturama.Cfdis.SavePdf($"factura{cfdiCreated.Complement.TaxStamp.Uuid}.pdf", cfdiCreated.Id);

                //var list = facturama.Cfdis.List("Emisor de Ejemplo");
                //Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");
                //list = facturama.Cfdis.List(rfc: "EWE1709045U0"); //RFC receptor en especifico
                //Console.WriteLine($"Se encontraron: {list.Length} elementos en la busqueda");

                //var cancelationStatus = facturama.Cfdis.Cancel(cfdiCreated.Id);

                /*
                 *              if(cancelationStatus.Status == "canceled")
                 *              {
                 *                      Console.WriteLine($"Se canceló exitosamente el CFDI con el folio fiscal: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else if (cancelationStatus.Status == "pending")
                 *              {
                 *                      Console.WriteLine($"El CFDI está en proceso de cancelacion, require aprobacion por parte del receptor UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else if (cancelationStatus.Status == "active")
                 *              {
                 *                      Console.WriteLine($"El CFDI no pudo ser cancelado, se deben revisar docuementos relacionados on cancelar directo en el SAT UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 *              else
                 *              {
                 *                      Console.WriteLine($"Estado de cancelacin del CFDI desconocido UUID: {cfdiCreated.Complement.TaxStamp.Uuid}");
                 *              }
                 */
            }
            catch (FacturamaException ex)
            {
                Console.WriteLine(ex.Message);
                foreach (var messageDetail in ex.Model.Details)
                {
                    Console.WriteLine($"{messageDetail.Key}: {string.Join(",", messageDetail.Value)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error inesperado: ", ex.Message);
            }
        }
Esempio n. 13
0
 public EducationalInstitutionComplementExampleMultiemisor(FacturamaApiMultiemisor facturama)
 {
     this.facturama = facturama;
 }