From 3ff2ed7a80663c9b95a6081c34436a83980242b1 Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Fri, 20 Mar 2026 16:32:54 -0600 Subject: [PATCH 1/8] Added lading support --- .../EjemplosCartaPorteReferencias.java | 3739 ++++++++++++++++ .../examples/EjemplosCartaPorteValores.java | 3826 +++++++++++++++++ .../fiscalapi/{ => examples}/Examples.java | 2 +- .../models/invoicing/Complement.java | 10 + .../billOfLading/Autotransporte.java | 94 + .../billOfLading/CantidadTransporta.java | 47 + .../invoicing/billOfLading/CartaPorte.java | 186 + .../billOfLading/DetalleMercancia.java | 61 + .../billOfLading/DocumentoAduanero.java | 31 + .../invoicing/billOfLading/Domicilio.java | 94 + .../invoicing/billOfLading/Mercancia.java | 227 + .../billOfLading/ParteTransporte.java | 13 + .../billOfLading/RegimenAduanero.java | 13 + .../invoicing/billOfLading/Remolque.java | 22 + .../invoicing/billOfLading/TipoFigura.java | 60 + .../billOfLading/TransporteAereo.java | 103 + .../billOfLading/TransporteFerroviario.java | 172 + .../billOfLading/TransporteMaritimo.java | 375 ++ .../invoicing/billOfLading/Ubicacion.java | 138 + 19 files changed, 9212 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java create mode 100644 src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java rename src/main/java/com/fiscalapi/{ => examples}/Examples.java (99%) create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java new file mode 100644 index 0000000..f2780ee --- /dev/null +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java @@ -0,0 +1,3739 @@ +// package com.fiscalapi.examples; + +// import java.math.BigDecimal; +// import java.time.LocalDateTime; +// import java.util.ArrayList; +// import java.util.List; + +// import com.fiscalapi.OptUtil; +// import com.fiscalapi.common.ApiResponse; +// import com.fiscalapi.common.FiscalApiSettings; +// import com.fiscalapi.models.invoicing.Complement; +// import com.fiscalapi.models.invoicing.Invoice; +// import com.fiscalapi.models.invoicing.InvoiceIssuer; +// import com.fiscalapi.models.invoicing.InvoiceItem; +// import com.fiscalapi.models.invoicing.InvoiceRecipient; +// import com.fiscalapi.models.invoicing.ItemTax; +// import com.fiscalapi.models.invoicing.TaxCredential; +// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Remolque; +// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +// import com.fiscalapi.services.FiscalApiClient; + +// public class EjemplosCartaPorteReferencias { + +// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; +// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; +// final String password = "12345678a"; + +// public void main(String[] args) { +// FiscalApiSettings settings = new FiscalApiSettings(); +// settings.setDebugMode(true); +// settings.setApiUrl("https://test.fiscalapi.com"); +// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); +// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); + +// facturaIngresoAutoTransporteNacional(settings); +// } + +// // Factura ingreso autotransporte nacional (sin impuestos) +// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte nacional con impuestos +// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// List itemTaxes = new ArrayList<>(); +// ItemTax ivaTraslado = new ItemTax(); +// ivaTraslado.setTaxCode("002"); +// ivaTraslado.setTaxTypeCode("Tasa"); +// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); +// ivaTraslado.setTaxFlagCode("T"); +// itemTaxes.add(ivaTraslado); +// ItemTax ivaRetencion = new ItemTax(); +// ivaRetencion.setTaxCode("002"); +// ivaRetencion.setTaxTypeCode("Tasa"); +// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); +// ivaRetencion.setTaxFlagCode("R"); +// itemTaxes.add(ivaRetencion); + +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("26232.75")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("02"); +// item.setItemTaxes(itemTaxes); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte extranjero (salida) +// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) +// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); +// documentoAduanero.setTipoDocumentoId("01"); +// documentoAduanero.setNumPedimento("23 43 0472 8000448"); +// documentoAduanero.setRfcImpo("EKU9003173C9"); +// List documentosAduaneros = new ArrayList<>(); +// documentosAduaneros.add(documentoAduanero); + +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(documentosAduaneros); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario nacional +// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario extranjero +// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo nacional +// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo extranjero (salida) +// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo nacional +// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo extranjero (salida) +// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// destino.setTipoEstacionId("02"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// ct.setCvesTransporteId("02"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("X1A"); +// detalle.setPesoBruto(new BigDecimal("1.50")); +// detalle.setPesoNeto(new BigDecimal("1.00")); +// detalle.setPesoTara(new BigDecimal("0.50")); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1.50")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("Calle1"); +// domFigura.setNumeroExterior("NumeroExterior1"); +// domFigura.setNumeroInterior("NumeroInterior1"); +// domFigura.setColoniaId("Colonia1"); +// domFigura.setLocalidadId("Localidad1"); +// domFigura.setReferencia("Referencia1"); +// domFigura.setMunicipioId("Municipio1"); +// domFigura.setEstadoId("Estado1"); +// domFigura.setPaisId("AFG"); +// domFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("CP3.1"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte nacional +// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (no station, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (no station, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura (no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte extranjero (salida, EXD) +// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte internacional aduanero (entrada, IMD) +// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Ejemplo 17: Factura traslado transporte ferroviario nacional +// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse17); +// } + +// // Ejemplo 18: Factura traslado transporte ferroviario extranjero +// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse18); +// } + +// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse19); +// } + +// // Ejemplo 20: Factura traslado transporte aereo nacional +// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse20); +// } + +// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) +// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse21); +// } + +// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse22); +// } + +// // Ejemplo 23: Factura traslado transporte maritimo nacional +// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse23); +// } + +// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) +// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse24); +// } + +// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse25); +// } + +// // ── Helper methods ────────────────────────────────────────────────────────── + +// private List buildTaxCredentials() { +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// List credentials = new ArrayList<>(); +// credentials.add(cer); +// credentials.add(key); +// return credentials; +// } + +// private InvoiceIssuer buildIssuerEKU() { +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); +// return issuer; +// } + +// private InvoiceRecipient buildRecipientEKU() { +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); +// return recipient; +// } + +// private InvoiceItem buildStandardItem() { +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// return item; +// } + +// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, +// List items, Complement complement) { +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); +// return invoice; +// } + +// private TransporteAereo buildTransporteAereoCP() { +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); +// return transporteAereo; +// } + +// private TransporteMaritimo buildTransporteMaritimo() { +// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); +// remolqueCCP.setSubTipoRemCCPId("CTR001"); +// remolqueCCP.setPlacaCCP("JNG7636"); +// List remolquesCCP = new ArrayList<>(); +// remolquesCCP.add(remolqueCCP); + +// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); +// contenedor.setTipoContenedorId("CM011"); +// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); +// contenedor.setPlacaVMCCP("JNG7683"); +// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); +// contenedor.setRemolquesCCP(remolquesCCP); +// List contenedores = new ArrayList<>(); +// contenedores.add(contenedor); + +// TransporteMaritimo maritimo = new TransporteMaritimo(); +// maritimo.setPermSCTId("TPAF01"); +// maritimo.setNumPermisoSCT("NumPermisoSCT1"); +// maritimo.setNombreAseg("NombreAseg1"); +// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); +// maritimo.setTipoEmbarcacionId("B01"); +// maritimo.setMatricula("Matricula1"); +// maritimo.setNumeroOMI("IMO1234567"); +// maritimo.setAnioEmbarcacion(2003); +// maritimo.setNombreEmbarc("NombreEmbarc1"); +// maritimo.setNacionalidadEmbarcId("AFG"); +// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); +// maritimo.setTipoCargaId("CGS"); +// maritimo.setEslora(new BigDecimal("0.01")); +// maritimo.setManga(new BigDecimal("0.01")); +// maritimo.setCalado(new BigDecimal("0.01")); +// maritimo.setPuntal(new BigDecimal("0.01")); +// maritimo.setLineaNaviera("LineaNaviera1"); +// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); +// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); +// maritimo.setNumViaje("NumViaje1"); +// maritimo.setNumConocEmbarc("NumConocEmbarc1"); +// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); +// maritimo.setContenedores(contenedores); +// return maritimo; +// } + +// private TransporteFerroviario buildTransporteFerroviario() { +// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); +// derecho.setTipoDerechoDePasoId("CDP114"); +// derecho.setKilometrajePagado(new BigDecimal("100")); +// List derechos = new ArrayList<>(); +// derechos.add(derecho); + +// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); +// carro.setTipoCarroId("TC08"); +// carro.setMatriculaCarro("A00012"); +// carro.setGuiaCarro("123ASD"); +// carro.setToneladasNetasCarro(new BigDecimal("10")); +// List carros = new ArrayList<>(); +// carros.add(carro); + +// TransporteFerroviario transporte = new TransporteFerroviario(); +// transporte.setTipoDeServicioId("TS01"); +// transporte.setTipoDeTraficoId("TT01"); +// transporte.setDerechosDePaso(derechos); +// transporte.setCarros(carros); +// return transporte; +// } + +// private List buildTiposFiguraFerroviario() { +// ParteTransporte parte = new ParteTransporte(); +// parte.setParteTransporteId("PT02"); +// List partes = new ArrayList<>(); +// partes.add(parte); + +// Domicilio domicilio = new Domicilio(); +// domicilio.setCalle("calle"); +// domicilio.setNumeroExterior("211"); +// domicilio.setColoniaId("0814"); +// domicilio.setLocalidadId("01"); +// domicilio.setReferencia("casa blanca"); +// domicilio.setMunicipioId("010"); +// domicilio.setEstadoId("ZAC"); +// domicilio.setPaisId("MEX"); +// domicilio.setCodigoPostalId("99080"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("02"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNombreFigura("NombreFigura"); +// figura.setPartesTransporte(partes); +// figura.setDomicilio(domicilio); + +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); +// return tiposFigura; +// } + +// private List buildUbicacionesFerroviarioComunes() { +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("Q0736"); +// origen.setNombreEstacion("SANTO NINO"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// Ubicacion dest1 = new Ubicacion(); +// dest1.setTipoUbicacion("Destino"); +// dest1.setIdUbicacion("DE202021"); +// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest1.setNumEstacionId("SC283"); +// dest1.setNombreEstacion("HUAXTITLA"); +// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); +// dest1.setTipoEstacionId("02"); +// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest2 = new Ubicacion(); +// dest2.setTipoUbicacion("Destino"); +// dest2.setIdUbicacion("DE202022"); +// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest2.setNumEstacionId("TG0"); +// dest2.setNombreEstacion("NAVOJOA"); +// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); +// dest2.setTipoEstacionId("02"); +// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest3 = new Ubicacion(); +// dest3.setTipoUbicacion("Destino"); +// dest3.setIdUbicacion("DE202023"); +// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest3.setNumEstacionId("E0029"); +// dest3.setNombreEstacion("TRES JAGUEYES"); +// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); +// dest3.setTipoEstacionId("02"); +// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest4 = new Ubicacion(); +// dest4.setTipoUbicacion("Destino"); +// dest4.setIdUbicacion("DE202024"); +// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest4.setNumEstacionId("TI032"); +// dest4.setNombreEstacion("NAVOLATO"); +// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// dest4.setTipoEstacionId("02"); +// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(dest1); +// ubicaciones.add(dest2); +// ubicaciones.add(dest3); +// ubicaciones.add(dest4); +// return ubicaciones; +// } +// } diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java new file mode 100644 index 0000000..e3ab578 --- /dev/null +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java @@ -0,0 +1,3826 @@ +// package com.fiscalapi.examples; + +// import java.math.BigDecimal; +// import java.time.LocalDateTime; +// import java.util.ArrayList; +// import java.util.List; + +// import com.fiscalapi.OptUtil; +// import com.fiscalapi.common.ApiResponse; +// import com.fiscalapi.common.FiscalApiSettings; +// import com.fiscalapi.models.invoicing.Complement; +// import com.fiscalapi.models.invoicing.Invoice; +// import com.fiscalapi.models.invoicing.InvoiceIssuer; +// import com.fiscalapi.models.invoicing.InvoiceItem; +// import com.fiscalapi.models.invoicing.InvoiceRecipient; +// import com.fiscalapi.models.invoicing.ItemTax; +// import com.fiscalapi.models.invoicing.TaxCredential; +// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Remolque; +// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +// import com.fiscalapi.services.FiscalApiClient; + +// public class EjemplosCartaPorteValores { + +// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; +// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; +// final String password = "12345678a"; + +// public void main(String[] args) { +// FiscalApiSettings settings = new FiscalApiSettings(); +// settings.setDebugMode(true); +// settings.setApiUrl("https://test.fiscalapi.com"); +// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); +// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); + +// facturaIngresoAutoTransporteNacional(settings); +// } + +// // Factura ingreso autotransporte nacional (sin impuestos) +// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("URE180429TM6"); +// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); +// recipient.setZipCode("86991"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte nacional con impuestos +// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("URE180429TM6"); +// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); +// recipient.setZipCode("86991"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// List itemTaxes = new ArrayList<>(); +// ItemTax ivaTraslado = new ItemTax(); +// ivaTraslado.setTaxCode("002"); +// ivaTraslado.setTaxTypeCode("Tasa"); +// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); +// ivaTraslado.setTaxFlagCode("T"); +// itemTaxes.add(ivaTraslado); +// ItemTax ivaRetencion = new ItemTax(); +// ivaRetencion.setTaxCode("002"); +// ivaRetencion.setTaxTypeCode("Tasa"); +// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); +// ivaRetencion.setTaxFlagCode("R"); +// itemTaxes.add(ivaRetencion); + +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("26232.75")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("02"); +// item.setItemTaxes(itemTaxes); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte extranjero (salida) +// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient (same as issuer for international) +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) +// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient (same as issuer for international) +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); +// documentoAduanero.setTipoDocumentoId("01"); +// documentoAduanero.setNumPedimento("23 43 0472 8000448"); +// documentoAduanero.setRfcImpo("EKU9003173C9"); +// List documentosAduaneros = new ArrayList<>(); +// documentosAduaneros.add(documentoAduanero); + +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(documentosAduaneros); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario nacional +// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario extranjero +// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo nacional +// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo extranjero (salida) +// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo nacional +// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo extranjero (salida) +// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// destino.setTipoEstacionId("02"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// ct.setCvesTransporteId("02"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("X1A"); +// detalle.setPesoBruto(new BigDecimal("1.50")); +// detalle.setPesoNeto(new BigDecimal("1.00")); +// detalle.setPesoTara(new BigDecimal("0.50")); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1.50")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("Calle1"); +// domFigura.setNumeroExterior("NumeroExterior1"); +// domFigura.setNumeroInterior("NumeroInterior1"); +// domFigura.setColoniaId("Colonia1"); +// domFigura.setLocalidadId("Localidad1"); +// domFigura.setReferencia("Referencia1"); +// domFigura.setMunicipioId("Municipio1"); +// domFigura.setEstadoId("Estado1"); +// domFigura.setPaisId("AFG"); +// domFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("CP3.1"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte nacional +// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (no station, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (no station, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura (no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte extranjero (salida, EXD) +// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte internacional aduanero (entrada, IMD) +// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Ejemplo 17: Factura traslado transporte ferroviario nacional +// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse17); +// } + +// // Ejemplo 18: Factura traslado transporte ferroviario extranjero +// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse18); +// } + +// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse19); +// } + +// // Ejemplo 20: Factura traslado transporte aereo nacional +// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse20); +// } + +// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) +// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse21); +// } + +// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse22); +// } + +// // Ejemplo 23: Factura traslado transporte maritimo nacional +// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse23); +// } + +// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) +// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse24); +// } + +// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse25); +// } + +// // ── Helper methods ────────────────────────────────────────────────────────── + +// private List buildTaxCredentials() { +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// List credentials = new ArrayList<>(); +// credentials.add(cer); +// credentials.add(key); +// return credentials; +// } + +// private InvoiceIssuer buildIssuerEKU() { +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(buildTaxCredentials()); +// return issuer; +// } + +// private InvoiceRecipient buildRecipientEKU() { +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); +// return recipient; +// } + +// private InvoiceItem buildStandardItem() { +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// return item; +// } + +// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, +// List items, Complement complement) { +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); +// return invoice; +// } + +// private TransporteAereo buildTransporteAereoCP() { +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); +// return transporteAereo; +// } + +// private TransporteMaritimo buildTransporteMaritimo() { +// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); +// remolqueCCP.setSubTipoRemCCPId("CTR001"); +// remolqueCCP.setPlacaCCP("JNG7636"); +// List remolquesCCP = new ArrayList<>(); +// remolquesCCP.add(remolqueCCP); + +// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); +// contenedor.setTipoContenedorId("CM011"); +// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); +// contenedor.setPlacaVMCCP("JNG7683"); +// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); +// contenedor.setRemolquesCCP(remolquesCCP); +// List contenedores = new ArrayList<>(); +// contenedores.add(contenedor); + +// TransporteMaritimo maritimo = new TransporteMaritimo(); +// maritimo.setPermSCTId("TPAF01"); +// maritimo.setNumPermisoSCT("NumPermisoSCT1"); +// maritimo.setNombreAseg("NombreAseg1"); +// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); +// maritimo.setTipoEmbarcacionId("B01"); +// maritimo.setMatricula("Matricula1"); +// maritimo.setNumeroOMI("IMO1234567"); +// maritimo.setAnioEmbarcacion(2003); +// maritimo.setNombreEmbarc("NombreEmbarc1"); +// maritimo.setNacionalidadEmbarcId("AFG"); +// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); +// maritimo.setTipoCargaId("CGS"); +// maritimo.setEslora(new BigDecimal("0.01")); +// maritimo.setManga(new BigDecimal("0.01")); +// maritimo.setCalado(new BigDecimal("0.01")); +// maritimo.setPuntal(new BigDecimal("0.01")); +// maritimo.setLineaNaviera("LineaNaviera1"); +// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); +// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); +// maritimo.setNumViaje("NumViaje1"); +// maritimo.setNumConocEmbarc("NumConocEmbarc1"); +// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); +// maritimo.setContenedores(contenedores); +// return maritimo; +// } + +// private TransporteFerroviario buildTransporteFerroviario() { +// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); +// derecho.setTipoDerechoDePasoId("CDP114"); +// derecho.setKilometrajePagado(new BigDecimal("100")); +// List derechos = new ArrayList<>(); +// derechos.add(derecho); + +// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); +// carro.setTipoCarroId("TC08"); +// carro.setMatriculaCarro("A00012"); +// carro.setGuiaCarro("123ASD"); +// carro.setToneladasNetasCarro(new BigDecimal("10")); +// List carros = new ArrayList<>(); +// carros.add(carro); + +// TransporteFerroviario transporte = new TransporteFerroviario(); +// transporte.setTipoDeServicioId("TS01"); +// transporte.setTipoDeTraficoId("TT01"); +// transporte.setDerechosDePaso(derechos); +// transporte.setCarros(carros); +// return transporte; +// } + +// private List buildTiposFiguraFerroviario() { +// ParteTransporte parte = new ParteTransporte(); +// parte.setParteTransporteId("PT02"); +// List partes = new ArrayList<>(); +// partes.add(parte); + +// Domicilio domicilio = new Domicilio(); +// domicilio.setCalle("calle"); +// domicilio.setNumeroExterior("211"); +// domicilio.setColoniaId("0814"); +// domicilio.setLocalidadId("01"); +// domicilio.setReferencia("casa blanca"); +// domicilio.setMunicipioId("010"); +// domicilio.setEstadoId("ZAC"); +// domicilio.setPaisId("MEX"); +// domicilio.setCodigoPostalId("99080"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("02"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNombreFigura("NombreFigura"); +// figura.setPartesTransporte(partes); +// figura.setDomicilio(domicilio); + +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); +// return tiposFigura; +// } + +// private List buildUbicacionesFerroviarioComunes() { +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("Q0736"); +// origen.setNombreEstacion("SANTO NINO"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// Ubicacion dest1 = new Ubicacion(); +// dest1.setTipoUbicacion("Destino"); +// dest1.setIdUbicacion("DE202021"); +// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest1.setNumEstacionId("SC283"); +// dest1.setNombreEstacion("HUAXTITLA"); +// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); +// dest1.setTipoEstacionId("02"); +// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest2 = new Ubicacion(); +// dest2.setTipoUbicacion("Destino"); +// dest2.setIdUbicacion("DE202022"); +// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest2.setNumEstacionId("TG0"); +// dest2.setNombreEstacion("NAVOJOA"); +// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); +// dest2.setTipoEstacionId("02"); +// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest3 = new Ubicacion(); +// dest3.setTipoUbicacion("Destino"); +// dest3.setIdUbicacion("DE202023"); +// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest3.setNumEstacionId("E0029"); +// dest3.setNombreEstacion("TRES JAGUEYES"); +// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); +// dest3.setTipoEstacionId("02"); +// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest4 = new Ubicacion(); +// dest4.setTipoUbicacion("Destino"); +// dest4.setIdUbicacion("DE202024"); +// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest4.setNumEstacionId("TI032"); +// dest4.setNombreEstacion("NAVOLATO"); +// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// dest4.setTipoEstacionId("02"); +// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(dest1); +// ubicaciones.add(dest2); +// ubicaciones.add(dest3); +// ubicaciones.add(dest4); +// return ubicaciones; +// } +// } diff --git a/src/main/java/com/fiscalapi/Examples.java b/src/main/java/com/fiscalapi/examples/Examples.java similarity index 99% rename from src/main/java/com/fiscalapi/Examples.java rename to src/main/java/com/fiscalapi/examples/Examples.java index a697aca..f16c038 100644 --- a/src/main/java/com/fiscalapi/Examples.java +++ b/src/main/java/com/fiscalapi/examples/Examples.java @@ -1,4 +1,4 @@ -package com.fiscalapi; +package com.fiscalapi.examples; //package com.fiscalapi; // diff --git a/src/main/java/com/fiscalapi/models/invoicing/Complement.java b/src/main/java/com/fiscalapi/models/invoicing/Complement.java index a6295cb..34c1ee6 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/Complement.java +++ b/src/main/java/com/fiscalapi/models/invoicing/Complement.java @@ -1,5 +1,6 @@ package com.fiscalapi.models.invoicing; +import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; import com.fiscalapi.models.invoicing.localTaxes.LocalTaxes; import com.fiscalapi.models.invoicing.paymentComplement.InvoicePayment; import com.fiscalapi.models.invoicing.payroll.Payroll; @@ -8,6 +9,7 @@ public class Complement { private Payroll payroll; private InvoicePayment payment; private LocalTaxes localTaxes; + private CartaPorte cartaPorte; public Payroll getPayroll() { return payroll; @@ -32,4 +34,12 @@ public LocalTaxes getLocalTaxes() { public void setLocalTaxes(LocalTaxes localTaxes) { this.localTaxes = localTaxes; } + + public CartaPorte getCartaPorte() { + return cartaPorte; + } + + public void setCartaPorte(CartaPorte cartaPorte) { + this.cartaPorte = cartaPorte; + } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java new file mode 100644 index 0000000..625b222 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java @@ -0,0 +1,94 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class Autotransporte { + private String permSCTId; + private String numPermisoSCT; + private String configVehicularId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoBrutoVehicular; + + private String placaVM; + private int anioModeloVM; + private String aseguraRespCivil; + private String polizaRespCivil; + private List remolques; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getConfigVehicularId() { + return configVehicularId; + } + + public void setConfigVehicularId(String configVehicularId) { + this.configVehicularId = configVehicularId; + } + + public BigDecimal getPesoBrutoVehicular() { + return pesoBrutoVehicular; + } + + public void setPesoBrutoVehicular(BigDecimal pesoBrutoVehicular) { + this.pesoBrutoVehicular = pesoBrutoVehicular; + } + + public String getPlacaVM() { + return placaVM; + } + + public void setPlacaVM(String placaVM) { + this.placaVM = placaVM; + } + + public int getAnioModeloVM() { + return anioModeloVM; + } + + public void setAnioModeloVM(int anioModeloVM) { + this.anioModeloVM = anioModeloVM; + } + + public String getAseguraRespCivil() { + return aseguraRespCivil; + } + + public void setAseguraRespCivil(String aseguraRespCivil) { + this.aseguraRespCivil = aseguraRespCivil; + } + + public String getPolizaRespCivil() { + return polizaRespCivil; + } + + public void setPolizaRespCivil(String polizaRespCivil) { + this.polizaRespCivil = polizaRespCivil; + } + + public List getRemolques() { + return remolques; + } + + public void setRemolques(List remolques) { + this.remolques = remolques; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java new file mode 100644 index 0000000..d73e35a --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java @@ -0,0 +1,47 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class CantidadTransporta { + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal cantidad; + + private String idOrigen; + private String idDestino; + private String cvesTransporteId; + + public BigDecimal getCantidad() { + return cantidad; + } + + public void setCantidad(BigDecimal cantidad) { + this.cantidad = cantidad; + } + + public String getIdOrigen() { + return idOrigen; + } + + public void setIdOrigen(String idOrigen) { + this.idOrigen = idOrigen; + } + + public String getIdDestino() { + return idDestino; + } + + public void setIdDestino(String idDestino) { + this.idDestino = idDestino; + } + + public String getCvesTransporteId() { + return cvesTransporteId; + } + + public void setCvesTransporteId(String cvesTransporteId) { + this.cvesTransporteId = cvesTransporteId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java new file mode 100644 index 0000000..0d70d70 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java @@ -0,0 +1,186 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class CartaPorte { + private String transpInternacId; + private String entradaSalidaMercId; + private String paisOrigenDestinoId; + private String viaEntradaSalidaId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal totalDistRec; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoTotal; + + private String registroISTMOId; + private String ubicacionPoloOrigenId; + private String ubicacionPoloDestinoId; + private String unidadPesoId; + private String logisticaInversaRecoleccionDevolucionId; + private List regimenAduaneros; + private List ubicaciones; + private List mercancias; + private Autotransporte autotransporte; + private TransporteMaritimo transporteMaritimo; + private TransporteAereo transporteAereo; + private TransporteFerroviario transporteFerroviario; + private List tiposFigura; + + public String getTranspInternacId() { + return transpInternacId; + } + + public void setTranspInternacId(String transpInternacId) { + this.transpInternacId = transpInternacId; + } + + public String getEntradaSalidaMercId() { + return entradaSalidaMercId; + } + + public void setEntradaSalidaMercId(String entradaSalidaMercId) { + this.entradaSalidaMercId = entradaSalidaMercId; + } + + public String getPaisOrigenDestinoId() { + return paisOrigenDestinoId; + } + + public void setPaisOrigenDestinoId(String paisOrigenDestinoId) { + this.paisOrigenDestinoId = paisOrigenDestinoId; + } + + public String getViaEntradaSalidaId() { + return viaEntradaSalidaId; + } + + public void setViaEntradaSalidaId(String viaEntradaSalidaId) { + this.viaEntradaSalidaId = viaEntradaSalidaId; + } + + public BigDecimal getTotalDistRec() { + return totalDistRec; + } + + public void setTotalDistRec(BigDecimal totalDistRec) { + this.totalDistRec = totalDistRec; + } + + public BigDecimal getPesoNetoTotal() { + return pesoNetoTotal; + } + + public void setPesoNetoTotal(BigDecimal pesoNetoTotal) { + this.pesoNetoTotal = pesoNetoTotal; + } + + public String getRegistroISTMOId() { + return registroISTMOId; + } + + public void setRegistroISTMOId(String registroISTMOId) { + this.registroISTMOId = registroISTMOId; + } + + public String getUbicacionPoloOrigenId() { + return ubicacionPoloOrigenId; + } + + public void setUbicacionPoloOrigenId(String ubicacionPoloOrigenId) { + this.ubicacionPoloOrigenId = ubicacionPoloOrigenId; + } + + public String getUbicacionPoloDestinoId() { + return ubicacionPoloDestinoId; + } + + public void setUbicacionPoloDestinoId(String ubicacionPoloDestinoId) { + this.ubicacionPoloDestinoId = ubicacionPoloDestinoId; + } + + public String getUnidadPesoId() { + return unidadPesoId; + } + + public void setUnidadPesoId(String unidadPesoId) { + this.unidadPesoId = unidadPesoId; + } + + public String getLogisticaInversaRecoleccionDevolucionId() { + return logisticaInversaRecoleccionDevolucionId; + } + + public void setLogisticaInversaRecoleccionDevolucionId(String logisticaInversaRecoleccionDevolucionId) { + this.logisticaInversaRecoleccionDevolucionId = logisticaInversaRecoleccionDevolucionId; + } + + public List getRegimenAduaneros() { + return regimenAduaneros; + } + + public void setRegimenAduaneros(List regimenAduaneros) { + this.regimenAduaneros = regimenAduaneros; + } + + public List getUbicaciones() { + return ubicaciones; + } + + public void setUbicaciones(List ubicaciones) { + this.ubicaciones = ubicaciones; + } + + public List getMercancias() { + return mercancias; + } + + public void setMercancias(List mercancias) { + this.mercancias = mercancias; + } + + public Autotransporte getAutotransporte() { + return autotransporte; + } + + public void setAutotransporte(Autotransporte autotransporte) { + this.autotransporte = autotransporte; + } + + public TransporteMaritimo getTransporteMaritimo() { + return transporteMaritimo; + } + + public void setTransporteMaritimo(TransporteMaritimo transporteMaritimo) { + this.transporteMaritimo = transporteMaritimo; + } + + public TransporteAereo getTransporteAereo() { + return transporteAereo; + } + + public void setTransporteAereo(TransporteAereo transporteAereo) { + this.transporteAereo = transporteAereo; + } + + public TransporteFerroviario getTransporteFerroviario() { + return transporteFerroviario; + } + + public void setTransporteFerroviario(TransporteFerroviario transporteFerroviario) { + this.transporteFerroviario = transporteFerroviario; + } + + public List getTiposFigura() { + return tiposFigura; + } + + public void setTiposFigura(List tiposFigura) { + this.tiposFigura = tiposFigura; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java new file mode 100644 index 0000000..61be0c4 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java @@ -0,0 +1,61 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class DetalleMercancia { + private String unidadPesoMercId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoBruto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNeto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoTara; + + private Integer numPiezas = null; + + public String getUnidadPesoMercId() { + return unidadPesoMercId; + } + + public void setUnidadPesoMercId(String unidadPesoMercId) { + this.unidadPesoMercId = unidadPesoMercId; + } + + public BigDecimal getPesoBruto() { + return pesoBruto; + } + + public void setPesoBruto(BigDecimal pesoBruto) { + this.pesoBruto = pesoBruto; + } + + public BigDecimal getPesoNeto() { + return pesoNeto; + } + + public void setPesoNeto(BigDecimal pesoNeto) { + this.pesoNeto = pesoNeto; + } + + public BigDecimal getPesoTara() { + return pesoTara; + } + + public void setPesoTara(BigDecimal pesoTara) { + this.pesoTara = pesoTara; + } + + public Integer getNumPiezas() { + return numPiezas; + } + + public void setNumPiezas(Integer numPiezas) { + this.numPiezas = numPiezas; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java new file mode 100644 index 0000000..7d86004 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java @@ -0,0 +1,31 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class DocumentoAduanero { + private String tipoDocumentoId; + private String numPedimento; + private String rfcImpo; + + public String getTipoDocumentoId() { + return tipoDocumentoId; + } + + public void setTipoDocumentoId(String tipoDocumentoId) { + this.tipoDocumentoId = tipoDocumentoId; + } + + public String getNumPedimento() { + return numPedimento; + } + + public void setNumPedimento(String numPedimento) { + this.numPedimento = numPedimento; + } + + public String getRfcImpo() { + return rfcImpo; + } + + public void setRfcImpo(String rfcImpo) { + this.rfcImpo = rfcImpo; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java new file mode 100644 index 0000000..261b786 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java @@ -0,0 +1,94 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class Domicilio { + private String calle; + private String numeroExterior; + private String numeroInterior; + private String coloniaId; + private String localidadId; + private String referencia; + private String municipioId; + private String estadoId; + private String paisId; + private String codigoPostalId; + + public String getCalle() { + return calle; + } + + public void setCalle(String calle) { + this.calle = calle; + } + + public String getNumeroExterior() { + return numeroExterior; + } + + public void setNumeroExterior(String numeroExterior) { + this.numeroExterior = numeroExterior; + } + + public String getNumeroInterior() { + return numeroInterior; + } + + public void setNumeroInterior(String numeroInterior) { + this.numeroInterior = numeroInterior; + } + + public String getColoniaId() { + return coloniaId; + } + + public void setColoniaId(String coloniaId) { + this.coloniaId = coloniaId; + } + + public String getLocalidadId() { + return localidadId; + } + + public void setLocalidadId(String localidadId) { + this.localidadId = localidadId; + } + + public String getReferencia() { + return referencia; + } + + public void setReferencia(String referencia) { + this.referencia = referencia; + } + + public String getMunicipioId() { + return municipioId; + } + + public void setMunicipioId(String municipioId) { + this.municipioId = municipioId; + } + + public String getEstadoId() { + return estadoId; + } + + public void setEstadoId(String estadoId) { + this.estadoId = estadoId; + } + + public String getPaisId() { + return paisId; + } + + public void setPaisId(String paisId) { + this.paisId = paisId; + } + + public String getCodigoPostalId() { + return codigoPostalId; + } + + public void setCodigoPostalId(String codigoPostalId) { + this.codigoPostalId = codigoPostalId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java new file mode 100644 index 0000000..ce62b66 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java @@ -0,0 +1,227 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +public class Mercancia { + private String bienesTranspId; + private String descripcion; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal cantidad; + + private String claveUnidadId; + private String materialPeligrosoId; + private String denominacionGenericaProd; + private String denominacionDistintivaProd; + private String fabricante; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaCaducidad; + + private String loteMedicamento; + private String formaFarmaceuticaId; + private String condicionesEspTranspId; + private String registroSanitarioFolioAutorizacion; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoEnKg; + + private String fraccionArancelariaId; + private String tipoMateriaId; + private String descripcionMateria; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal valorMercancia = null; + + private String monedaId; + private List documentacionAduanera; + private List cantidadTransporta; + private DetalleMercancia detalleMercancia; + + public String getBienesTranspId() { + return bienesTranspId; + } + + public void setBienesTranspId(String bienesTranspId) { + this.bienesTranspId = bienesTranspId; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + public BigDecimal getCantidad() { + return cantidad; + } + + public void setCantidad(BigDecimal cantidad) { + this.cantidad = cantidad; + } + + public String getClaveUnidadId() { + return claveUnidadId; + } + + public void setClaveUnidadId(String claveUnidadId) { + this.claveUnidadId = claveUnidadId; + } + + public String getMaterialPeligrosoId() { + return materialPeligrosoId; + } + + public void setMaterialPeligrosoId(String materialPeligrosoId) { + this.materialPeligrosoId = materialPeligrosoId; + } + + public String getDenominacionGenericaProd() { + return denominacionGenericaProd; + } + + public void setDenominacionGenericaProd(String denominacionGenericaProd) { + this.denominacionGenericaProd = denominacionGenericaProd; + } + + public String getDenominacionDistintivaProd() { + return denominacionDistintivaProd; + } + + public void setDenominacionDistintivaProd(String denominacionDistintivaProd) { + this.denominacionDistintivaProd = denominacionDistintivaProd; + } + + public String getFabricante() { + return fabricante; + } + + public void setFabricante(String fabricante) { + this.fabricante = fabricante; + } + + public LocalDateTime getFechaCaducidad() { + return fechaCaducidad; + } + + public void setFechaCaducidad(LocalDateTime fechaCaducidad) { + this.fechaCaducidad = fechaCaducidad; + } + + public String getLoteMedicamento() { + return loteMedicamento; + } + + public void setLoteMedicamento(String loteMedicamento) { + this.loteMedicamento = loteMedicamento; + } + + public String getFormaFarmaceuticaId() { + return formaFarmaceuticaId; + } + + public void setFormaFarmaceuticaId(String formaFarmaceuticaId) { + this.formaFarmaceuticaId = formaFarmaceuticaId; + } + + public String getCondicionesEspTranspId() { + return condicionesEspTranspId; + } + + public void setCondicionesEspTranspId(String condicionesEspTranspId) { + this.condicionesEspTranspId = condicionesEspTranspId; + } + + public String getRegistroSanitarioFolioAutorizacion() { + return registroSanitarioFolioAutorizacion; + } + + public void setRegistroSanitarioFolioAutorizacion(String registroSanitarioFolioAutorizacion) { + this.registroSanitarioFolioAutorizacion = registroSanitarioFolioAutorizacion; + } + + public BigDecimal getPesoEnKg() { + return pesoEnKg; + } + + public void setPesoEnKg(BigDecimal pesoEnKg) { + this.pesoEnKg = pesoEnKg; + } + + public String getFraccionArancelariaId() { + return fraccionArancelariaId; + } + + public void setFraccionArancelariaId(String fraccionArancelariaId) { + this.fraccionArancelariaId = fraccionArancelariaId; + } + + public String getTipoMateriaId() { + return tipoMateriaId; + } + + public void setTipoMateriaId(String tipoMateriaId) { + this.tipoMateriaId = tipoMateriaId; + } + + public String getDescripcionMateria() { + return descripcionMateria; + } + + public void setDescripcionMateria(String descripcionMateria) { + this.descripcionMateria = descripcionMateria; + } + + public BigDecimal getValorMercancia() { + return valorMercancia; + } + + public void setValorMercancia(BigDecimal valorMercancia) { + this.valorMercancia = valorMercancia; + } + + public String getMonedaId() { + return monedaId; + } + + public void setMonedaId(String monedaId) { + this.monedaId = monedaId; + } + + public List getDocumentacionAduanera() { + return documentacionAduanera; + } + + public void setDocumentacionAduanera(List documentacionAduanera) { + this.documentacionAduanera = documentacionAduanera; + } + + public List getCantidadTransporta() { + return cantidadTransporta; + } + + public void setCantidadTransporta(List cantidadTransporta) { + this.cantidadTransporta = cantidadTransporta; + } + + public DetalleMercancia getDetalleMercancia() { + return detalleMercancia; + } + + public void setDetalleMercancia(DetalleMercancia detalleMercancia) { + this.detalleMercancia = detalleMercancia; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java new file mode 100644 index 0000000..3798811 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java @@ -0,0 +1,13 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class ParteTransporte { + private String parteTransporteId; + + public String getParteTransporteId() { + return parteTransporteId; + } + + public void setParteTransporteId(String parteTransporteId) { + this.parteTransporteId = parteTransporteId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java new file mode 100644 index 0000000..f1eac9a --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java @@ -0,0 +1,13 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class RegimenAduanero { + private String regimenAduaneroId; + + public String getRegimenAduaneroId() { + return regimenAduaneroId; + } + + public void setRegimenAduaneroId(String regimenAduaneroId) { + this.regimenAduaneroId = regimenAduaneroId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java new file mode 100644 index 0000000..042e79b --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java @@ -0,0 +1,22 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class Remolque { + private String subTipoRemId; + private String placa; + + public String getSubTipoRemId() { + return subTipoRemId; + } + + public void setSubTipoRemId(String subTipoRemId) { + this.subTipoRemId = subTipoRemId; + } + + public String getPlaca() { + return placa; + } + + public void setPlaca(String placa) { + this.placa = placa; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java new file mode 100644 index 0000000..4fae70d --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java @@ -0,0 +1,60 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import java.util.List; + +public class TipoFigura { + private String tipoFiguraId; + private String rfcFigura; + private String numLicencia; + private String nombreFigura; + private List partesTransporte; + private Domicilio domicilio; + + public String getTipoFiguraId() { + return tipoFiguraId; + } + + public void setTipoFiguraId(String tipoFiguraId) { + this.tipoFiguraId = tipoFiguraId; + } + + public String getRfcFigura() { + return rfcFigura; + } + + public void setRfcFigura(String rfcFigura) { + this.rfcFigura = rfcFigura; + } + + public String getNumLicencia() { + return numLicencia; + } + + public void setNumLicencia(String numLicencia) { + this.numLicencia = numLicencia; + } + + public String getNombreFigura() { + return nombreFigura; + } + + public void setNombreFigura(String nombreFigura) { + this.nombreFigura = nombreFigura; + } + + public List getPartesTransporte() { + return partesTransporte; + } + + public void setPartesTransporte(List partesTransporte) { + this.partesTransporte = partesTransporte; + } + + public Domicilio getDomicilio() { + return domicilio; + } + + public void setDomicilio(Domicilio domicilio) { + this.domicilio = domicilio; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java new file mode 100644 index 0000000..42f6e07 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java @@ -0,0 +1,103 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class TransporteAereo { + private String permSCTId; + private String numPermisoSCT; + private String matriculaAeronave; + private String nombreAseg; + private String numPolizaSeguro; + private String numeroGuia; + private String lugarContrato; + private String codigoTransportistaId; + private String rfcEmbarcador; + private String nombreEmbarcador; + private String rfcTransportista; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getMatriculaAeronave() { + return matriculaAeronave; + } + + public void setMatriculaAeronave(String matriculaAeronave) { + this.matriculaAeronave = matriculaAeronave; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public String getNumeroGuia() { + return numeroGuia; + } + + public void setNumeroGuia(String numeroGuia) { + this.numeroGuia = numeroGuia; + } + + public String getLugarContrato() { + return lugarContrato; + } + + public void setLugarContrato(String lugarContrato) { + this.lugarContrato = lugarContrato; + } + + public String getCodigoTransportistaId() { + return codigoTransportistaId; + } + + public void setCodigoTransportistaId(String codigoTransportistaId) { + this.codigoTransportistaId = codigoTransportistaId; + } + + public String getRfcEmbarcador() { + return rfcEmbarcador; + } + + public void setRfcEmbarcador(String rfcEmbarcador) { + this.rfcEmbarcador = rfcEmbarcador; + } + + public String getNombreEmbarcador() { + return nombreEmbarcador; + } + + public void setNombreEmbarcador(String nombreEmbarcador) { + this.nombreEmbarcador = nombreEmbarcador; + } + + public String getRfcTransportista() { + return rfcTransportista; + } + + public void setRfcTransportista(String rfcTransportista) { + this.rfcTransportista = rfcTransportista; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java new file mode 100644 index 0000000..ff6b568 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java @@ -0,0 +1,172 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class TransporteFerroviario { + private String tipoDeServicioId; + private String tipoDeTraficoId; + private String nombreAseg; + private String numPolizaSeguro; + private List derechosDePaso; + private List carros; + + public String getTipoDeServicioId() { + return tipoDeServicioId; + } + + public void setTipoDeServicioId(String tipoDeServicioId) { + this.tipoDeServicioId = tipoDeServicioId; + } + + public String getTipoDeTraficoId() { + return tipoDeTraficoId; + } + + public void setTipoDeTraficoId(String tipoDeTraficoId) { + this.tipoDeTraficoId = tipoDeTraficoId; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public List getDerechosDePaso() { + return derechosDePaso; + } + + public void setDerechosDePaso(List derechosDePaso) { + this.derechosDePaso = derechosDePaso; + } + + public List getCarros() { + return carros; + } + + public void setCarros(List carros) { + this.carros = carros; + } + + public static class DerechoDePaso { + private String tipoDerechoDePasoId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal kilometrajePagado; + + public String getTipoDerechoDePasoId() { + return tipoDerechoDePasoId; + } + + public void setTipoDerechoDePasoId(String tipoDerechoDePasoId) { + this.tipoDerechoDePasoId = tipoDerechoDePasoId; + } + + public BigDecimal getKilometrajePagado() { + return kilometrajePagado; + } + + public void setKilometrajePagado(BigDecimal kilometrajePagado) { + this.kilometrajePagado = kilometrajePagado; + } + } + + public static class Carro { + private String tipoCarroId; + private String matriculaCarro; + private String guiaCarro; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal toneladasNetasCarro; + + private List contenedores; + + public String getTipoCarroId() { + return tipoCarroId; + } + + public void setTipoCarroId(String tipoCarroId) { + this.tipoCarroId = tipoCarroId; + } + + public String getMatriculaCarro() { + return matriculaCarro; + } + + public void setMatriculaCarro(String matriculaCarro) { + this.matriculaCarro = matriculaCarro; + } + + public String getGuiaCarro() { + return guiaCarro; + } + + public void setGuiaCarro(String guiaCarro) { + this.guiaCarro = guiaCarro; + } + + public BigDecimal getToneladasNetasCarro() { + return toneladasNetasCarro; + } + + public void setToneladasNetasCarro(BigDecimal toneladasNetasCarro) { + this.toneladasNetasCarro = toneladasNetasCarro; + } + + public List getContenedores() { + return contenedores; + } + + public void setContenedores(List contenedores) { + this.contenedores = contenedores; + } + } + + public static class ContenedorFerroviario { + private String tipoContenedorId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoContenedorVacio; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoMercancia; + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public BigDecimal getPesoContenedorVacio() { + return pesoContenedorVacio; + } + + public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { + this.pesoContenedorVacio = pesoContenedorVacio; + } + + public BigDecimal getPesoNetoMercancia() { + return pesoNetoMercancia; + } + + public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { + this.pesoNetoMercancia = pesoNetoMercancia; + } + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java new file mode 100644 index 0000000..3e1d95d --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java @@ -0,0 +1,375 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class TransporteMaritimo { + private String permSCTId; + private String numPermisoSCT; + private String configMaritimaId; + private String nombreAseg; + private String numPolizaSeguro; + private String tipoEmbarcacionId; + private String matricula; + private String numeroOMI; + private Integer anioEmbarcacion = null; + private String nombreEmbarc; + private String nacionalidadEmbarcId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal unidadesDeArqBruto = null; + + private String tipoCargaId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal eslora = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal manga = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal calado = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal puntal = null; + + private String lineaNaviera; + private String nombreAgenteNaviero; + private String numCertITC; + private String nombreEmbarCargador; + private String nombreAgente; + private String numAutorizacionNavieroId; + private String numViaje; + private String numConocEmbarc; + private String permisoTempNavegacion; + private List contenedores; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getConfigMaritimaId() { + return configMaritimaId; + } + + public void setConfigMaritimaId(String configMaritimaId) { + this.configMaritimaId = configMaritimaId; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public String getTipoEmbarcacionId() { + return tipoEmbarcacionId; + } + + public void setTipoEmbarcacionId(String tipoEmbarcacionId) { + this.tipoEmbarcacionId = tipoEmbarcacionId; + } + + public String getMatricula() { + return matricula; + } + + public void setMatricula(String matricula) { + this.matricula = matricula; + } + + public String getNumeroOMI() { + return numeroOMI; + } + + public void setNumeroOMI(String numeroOMI) { + this.numeroOMI = numeroOMI; + } + + public Integer getAnioEmbarcacion() { + return anioEmbarcacion; + } + + public void setAnioEmbarcacion(Integer anioEmbarcacion) { + this.anioEmbarcacion = anioEmbarcacion; + } + + public String getNombreEmbarc() { + return nombreEmbarc; + } + + public void setNombreEmbarc(String nombreEmbarc) { + this.nombreEmbarc = nombreEmbarc; + } + + public String getNacionalidadEmbarcId() { + return nacionalidadEmbarcId; + } + + public void setNacionalidadEmbarcId(String nacionalidadEmbarcId) { + this.nacionalidadEmbarcId = nacionalidadEmbarcId; + } + + public BigDecimal getUnidadesDeArqBruto() { + return unidadesDeArqBruto; + } + + public void setUnidadesDeArqBruto(BigDecimal unidadesDeArqBruto) { + this.unidadesDeArqBruto = unidadesDeArqBruto; + } + + public String getTipoCargaId() { + return tipoCargaId; + } + + public void setTipoCargaId(String tipoCargaId) { + this.tipoCargaId = tipoCargaId; + } + + public BigDecimal getEslora() { + return eslora; + } + + public void setEslora(BigDecimal eslora) { + this.eslora = eslora; + } + + public BigDecimal getManga() { + return manga; + } + + public void setManga(BigDecimal manga) { + this.manga = manga; + } + + public BigDecimal getCalado() { + return calado; + } + + public void setCalado(BigDecimal calado) { + this.calado = calado; + } + + public BigDecimal getPuntal() { + return puntal; + } + + public void setPuntal(BigDecimal puntal) { + this.puntal = puntal; + } + + public String getLineaNaviera() { + return lineaNaviera; + } + + public void setLineaNaviera(String lineaNaviera) { + this.lineaNaviera = lineaNaviera; + } + + public String getNombreAgenteNaviero() { + return nombreAgenteNaviero; + } + + public void setNombreAgenteNaviero(String nombreAgenteNaviero) { + this.nombreAgenteNaviero = nombreAgenteNaviero; + } + + public String getNumCertITC() { + return numCertITC; + } + + public void setNumCertITC(String numCertITC) { + this.numCertITC = numCertITC; + } + + public String getNombreEmbarCargador() { + return nombreEmbarCargador; + } + + public void setNombreEmbarCargador(String nombreEmbarCargador) { + this.nombreEmbarCargador = nombreEmbarCargador; + } + + public String getNombreAgente() { + return nombreAgente; + } + + public void setNombreAgente(String nombreAgente) { + this.nombreAgente = nombreAgente; + } + + public String getNumAutorizacionNavieroId() { + return numAutorizacionNavieroId; + } + + public void setNumAutorizacionNavieroId(String numAutorizacionNavieroId) { + this.numAutorizacionNavieroId = numAutorizacionNavieroId; + } + + public String getNumViaje() { + return numViaje; + } + + public void setNumViaje(String numViaje) { + this.numViaje = numViaje; + } + + public String getNumConocEmbarc() { + return numConocEmbarc; + } + + public void setNumConocEmbarc(String numConocEmbarc) { + this.numConocEmbarc = numConocEmbarc; + } + + public String getPermisoTempNavegacion() { + return permisoTempNavegacion; + } + + public void setPermisoTempNavegacion(String permisoTempNavegacion) { + this.permisoTempNavegacion = permisoTempNavegacion; + } + + public List getContenedores() { + return contenedores; + } + + public void setContenedores(List contenedores) { + this.contenedores = contenedores; + } + + public static class ContenedorMaritimo { + private String matriculaContenedor; + private String tipoContenedorId; + private String numPrecinto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoContenedorVacio; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoMercancia; + + private String idCCPRelacionado; + private String placaVMCCP; + private String fechaCertificacionCCP; + private List remolquesCCP; + + public String getMatriculaContenedor() { + return matriculaContenedor; + } + + public void setMatriculaContenedor(String matriculaContenedor) { + this.matriculaContenedor = matriculaContenedor; + } + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public String getNumPrecinto() { + return numPrecinto; + } + + public void setNumPrecinto(String numPrecinto) { + this.numPrecinto = numPrecinto; + } + + public BigDecimal getPesoContenedorVacio() { + return pesoContenedorVacio; + } + + public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { + this.pesoContenedorVacio = pesoContenedorVacio; + } + + public BigDecimal getPesoNetoMercancia() { + return pesoNetoMercancia; + } + + public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { + this.pesoNetoMercancia = pesoNetoMercancia; + } + + public String getIdCCPRelacionado() { + return idCCPRelacionado; + } + + public void setIdCCPRelacionado(String idCCPRelacionado) { + this.idCCPRelacionado = idCCPRelacionado; + } + + public String getPlacaVMCCP() { + return placaVMCCP; + } + + public void setPlacaVMCCP(String placaVMCCP) { + this.placaVMCCP = placaVMCCP; + } + + public String getFechaCertificacionCCP() { + return fechaCertificacionCCP; + } + + public void setFechaCertificacionCCP(String fechaCertificacionCCP) { + this.fechaCertificacionCCP = fechaCertificacionCCP; + } + + public List getRemolquesCCP() { + return remolquesCCP; + } + + public void setRemolquesCCP(List remolquesCCP) { + this.remolquesCCP = remolquesCCP; + } + } + + public static class RemolqueCCP { + private String subTipoRemCCPId; + private String placaCCP; + + public String getSubTipoRemCCPId() { + return subTipoRemCCPId; + } + + public void setSubTipoRemCCPId(String subTipoRemCCPId) { + this.subTipoRemCCPId = subTipoRemCCPId; + } + + public String getPlacaCCP() { + return placaCCP; + } + + public void setPlacaCCP(String placaCCP) { + this.placaCCP = placaCCP; + } + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java new file mode 100644 index 0000000..37bbf53 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java @@ -0,0 +1,138 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +public class Ubicacion { + private String tipoUbicacion; + private String idUbicacion; + private String rfcRemitenteDestinatario; + private String numRegIdTrib; + private String residenciaFiscalId; + private String nombreRemitenteDestinatario; + private String numEstacionId; + private String nombreEstacion; + private String navegacionTraficoId; + private String tipoEstacionId; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaHoraSalidaLlegada; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal distanciaRecorrida = null; + + private Domicilio domicilio; + + public String getTipoUbicacion() { + return tipoUbicacion; + } + + public void setTipoUbicacion(String tipoUbicacion) { + this.tipoUbicacion = tipoUbicacion; + } + + public String getIdUbicacion() { + return idUbicacion; + } + + public void setIdUbicacion(String idUbicacion) { + this.idUbicacion = idUbicacion; + } + + public String getRfcRemitenteDestinatario() { + return rfcRemitenteDestinatario; + } + + public void setRfcRemitenteDestinatario(String rfcRemitenteDestinatario) { + this.rfcRemitenteDestinatario = rfcRemitenteDestinatario; + } + + public String getNumRegIdTrib() { + return numRegIdTrib; + } + + public void setNumRegIdTrib(String numRegIdTrib) { + this.numRegIdTrib = numRegIdTrib; + } + + public String getResidenciaFiscalId() { + return residenciaFiscalId; + } + + public void setResidenciaFiscalId(String residenciaFiscalId) { + this.residenciaFiscalId = residenciaFiscalId; + } + + public String getNombreRemitenteDestinatario() { + return nombreRemitenteDestinatario; + } + + public void setNombreRemitenteDestinatario(String nombreRemitenteDestinatario) { + this.nombreRemitenteDestinatario = nombreRemitenteDestinatario; + } + + public String getNumEstacionId() { + return numEstacionId; + } + + public void setNumEstacionId(String numEstacionId) { + this.numEstacionId = numEstacionId; + } + + public String getNombreEstacion() { + return nombreEstacion; + } + + public void setNombreEstacion(String nombreEstacion) { + this.nombreEstacion = nombreEstacion; + } + + public String getNavegacionTraficoId() { + return navegacionTraficoId; + } + + public void setNavegacionTraficoId(String navegacionTraficoId) { + this.navegacionTraficoId = navegacionTraficoId; + } + + public String getTipoEstacionId() { + return tipoEstacionId; + } + + public void setTipoEstacionId(String tipoEstacionId) { + this.tipoEstacionId = tipoEstacionId; + } + + public LocalDateTime getFechaHoraSalidaLlegada() { + return fechaHoraSalidaLlegada; + } + + public void setFechaHoraSalidaLlegada(LocalDateTime fechaHoraSalidaLlegada) { + this.fechaHoraSalidaLlegada = fechaHoraSalidaLlegada; + } + + public BigDecimal getDistanciaRecorrida() { + return distanciaRecorrida; + } + + public void setDistanciaRecorrida(BigDecimal distanciaRecorrida) { + this.distanciaRecorrida = distanciaRecorrida; + } + + public Domicilio getDomicilio() { + return domicilio; + } + + public void setDomicilio(Domicilio domicilio) { + this.domicilio = domicilio; + } +} From 6273f18a27b9fc37a168a5c71490713bb9e1601a Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Sun, 22 Mar 2026 12:33:12 -0600 Subject: [PATCH 2/8] Version bump --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 758329d..c8bb435 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.fiscalapi fiscalapi - 4.0.360 + 4.0.372 ${project.groupId}:${project.artifactId} Genera facturas CFDI válidas ante el SAT consumiendo la API de https://www.fiscalapi.com https://www.fiscalapi.com From 6828c5b35a2d6f6f8841d2da30dd6982bbccfb9b Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Thu, 16 Apr 2026 19:18:49 -0600 Subject: [PATCH 3/8] Fixed discrepancies with public API --- .../billOfLading/Autotransporte.java | 48 ++++ .../invoicing/billOfLading/CartaPorte.java | 12 + .../billOfLading/DocumentoAduanero.java | 9 + .../billOfLading/GuiaIdentificacion.java | 38 +++ .../invoicing/billOfLading/Mercancia.java | 219 ++++++++++++++++-- .../invoicing/billOfLading/TipoFigura.java | 18 ++ .../billOfLading/TransporteAereo.java | 27 ++- .../billOfLading/TransporteMaritimo.java | 91 ++------ 8 files changed, 363 insertions(+), 99 deletions(-) create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/GuiaIdentificacion.java diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java index 625b222..05e0a83 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java @@ -18,6 +18,14 @@ public class Autotransporte { private int anioModeloVM; private String aseguraRespCivil; private String polizaRespCivil; + private String aseguraMedAmbiente; + private String polizaMedAmbiente; + private String aseguraCarga; + private String polizaCarga; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal primaSeguro; + private List remolques; public String getPermSCTId() { @@ -84,6 +92,46 @@ public void setPolizaRespCivil(String polizaRespCivil) { this.polizaRespCivil = polizaRespCivil; } + public String getAseguraMedAmbiente() { + return aseguraMedAmbiente; + } + + public void setAseguraMedAmbiente(String aseguraMedAmbiente) { + this.aseguraMedAmbiente = aseguraMedAmbiente; + } + + public String getPolizaMedAmbiente() { + return polizaMedAmbiente; + } + + public void setPolizaMedAmbiente(String polizaMedAmbiente) { + this.polizaMedAmbiente = polizaMedAmbiente; + } + + public String getAseguraCarga() { + return aseguraCarga; + } + + public void setAseguraCarga(String aseguraCarga) { + this.aseguraCarga = aseguraCarga; + } + + public String getPolizaCarga() { + return polizaCarga; + } + + public void setPolizaCarga(String polizaCarga) { + this.polizaCarga = polizaCarga; + } + + public BigDecimal getPrimaSeguro() { + return primaSeguro; + } + + public void setPrimaSeguro(BigDecimal primaSeguro) { + this.primaSeguro = primaSeguro; + } + public List getRemolques() { return remolques; } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java index 0d70d70..18699f6 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java @@ -22,6 +22,10 @@ public class CartaPorte { private String ubicacionPoloOrigenId; private String ubicacionPoloDestinoId; private String unidadPesoId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal cargoPorTasacion; + private String logisticaInversaRecoleccionDevolucionId; private List regimenAduaneros; private List ubicaciones; @@ -112,6 +116,14 @@ public void setUnidadPesoId(String unidadPesoId) { this.unidadPesoId = unidadPesoId; } + public BigDecimal getCargoPorTasacion() { + return cargoPorTasacion; + } + + public void setCargoPorTasacion(BigDecimal cargoPorTasacion) { + this.cargoPorTasacion = cargoPorTasacion; + } + public String getLogisticaInversaRecoleccionDevolucionId() { return logisticaInversaRecoleccionDevolucionId; } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java index 7d86004..828b234 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java @@ -3,6 +3,7 @@ public class DocumentoAduanero { private String tipoDocumentoId; private String numPedimento; + private String identDocAduanero; private String rfcImpo; public String getTipoDocumentoId() { @@ -21,6 +22,14 @@ public void setNumPedimento(String numPedimento) { this.numPedimento = numPedimento; } + public String getIdentDocAduanero() { + return identDocAduanero; + } + + public void setIdentDocAduanero(String identDocAduanero) { + this.identDocAduanero = identDocAduanero; + } + public String getRfcImpo() { return rfcImpo; } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/GuiaIdentificacion.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/GuiaIdentificacion.java new file mode 100644 index 0000000..6b35485 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/GuiaIdentificacion.java @@ -0,0 +1,38 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class GuiaIdentificacion { + private String numeroGuiaIdentificacion; + private String descripGuiaIdentificacion; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoGuiaIdentificacion; + + public String getNumeroGuiaIdentificacion() { + return numeroGuiaIdentificacion; + } + + public void setNumeroGuiaIdentificacion(String numeroGuiaIdentificacion) { + this.numeroGuiaIdentificacion = numeroGuiaIdentificacion; + } + + public String getDescripGuiaIdentificacion() { + return descripGuiaIdentificacion; + } + + public void setDescripGuiaIdentificacion(String descripGuiaIdentificacion) { + this.descripGuiaIdentificacion = descripGuiaIdentificacion; + } + + public BigDecimal getPesoGuiaIdentificacion() { + return pesoGuiaIdentificacion; + } + + public void setPesoGuiaIdentificacion(BigDecimal pesoGuiaIdentificacion) { + this.pesoGuiaIdentificacion = pesoGuiaIdentificacion; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java index ce62b66..7516e5b 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java @@ -13,13 +13,22 @@ public class Mercancia { private String bienesTranspId; + private String claveSTCCId; private String descripcion; @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal cantidad; private String claveUnidadId; + private String unidad; + private String dimensiones; private String materialPeligrosoId; + private String cveMaterialPeligrosoId; + private String embalajeId; + private String descripEmbalaje; + private String sectorCOFEPRISId; + private String nombreIngredienteActivo; + private String nomQuimico; private String denominacionGenericaProd; private String denominacionDistintivaProd; private String fabricante; @@ -33,19 +42,29 @@ public class Mercancia { private String formaFarmaceuticaId; private String condicionesEspTranspId; private String registroSanitarioFolioAutorizacion; + private String permisoImportacion; + private String folioImpoVUCEM; + private String numCAS; + private String razonSocialEmpImp; + private String numRegSanPlagCOFEPRIS; + private String datosFabricante; + private String datosFormulador; + private String datosMaquilador; + private String usoAutorizado; @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal pesoEnKg; - private String fraccionArancelariaId; - private String tipoMateriaId; - private String descripcionMateria; - @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal valorMercancia = null; private String monedaId; + private String fraccionArancelariaId; + private String uuidComercioExt; + private String tipoMateriaId; + private String descripcionMateria; private List documentacionAduanera; + private List guiasIdentificacion; private List cantidadTransporta; private DetalleMercancia detalleMercancia; @@ -57,6 +76,14 @@ public void setBienesTranspId(String bienesTranspId) { this.bienesTranspId = bienesTranspId; } + public String getClaveSTCCId() { + return claveSTCCId; + } + + public void setClaveSTCCId(String claveSTCCId) { + this.claveSTCCId = claveSTCCId; + } + public String getDescripcion() { return descripcion; } @@ -81,6 +108,22 @@ public void setClaveUnidadId(String claveUnidadId) { this.claveUnidadId = claveUnidadId; } + public String getUnidad() { + return unidad; + } + + public void setUnidad(String unidad) { + this.unidad = unidad; + } + + public String getDimensiones() { + return dimensiones; + } + + public void setDimensiones(String dimensiones) { + this.dimensiones = dimensiones; + } + public String getMaterialPeligrosoId() { return materialPeligrosoId; } @@ -89,6 +132,54 @@ public void setMaterialPeligrosoId(String materialPeligrosoId) { this.materialPeligrosoId = materialPeligrosoId; } + public String getCveMaterialPeligrosoId() { + return cveMaterialPeligrosoId; + } + + public void setCveMaterialPeligrosoId(String cveMaterialPeligrosoId) { + this.cveMaterialPeligrosoId = cveMaterialPeligrosoId; + } + + public String getEmbalajeId() { + return embalajeId; + } + + public void setEmbalajeId(String embalajeId) { + this.embalajeId = embalajeId; + } + + public String getDescripEmbalaje() { + return descripEmbalaje; + } + + public void setDescripEmbalaje(String descripEmbalaje) { + this.descripEmbalaje = descripEmbalaje; + } + + public String getSectorCOFEPRISId() { + return sectorCOFEPRISId; + } + + public void setSectorCOFEPRISId(String sectorCOFEPRISId) { + this.sectorCOFEPRISId = sectorCOFEPRISId; + } + + public String getNombreIngredienteActivo() { + return nombreIngredienteActivo; + } + + public void setNombreIngredienteActivo(String nombreIngredienteActivo) { + this.nombreIngredienteActivo = nombreIngredienteActivo; + } + + public String getNomQuimico() { + return nomQuimico; + } + + public void setNomQuimico(String nomQuimico) { + this.nomQuimico = nomQuimico; + } + public String getDenominacionGenericaProd() { return denominacionGenericaProd; } @@ -153,36 +244,84 @@ public void setRegistroSanitarioFolioAutorizacion(String registroSanitarioFolioA this.registroSanitarioFolioAutorizacion = registroSanitarioFolioAutorizacion; } - public BigDecimal getPesoEnKg() { - return pesoEnKg; + public String getPermisoImportacion() { + return permisoImportacion; } - public void setPesoEnKg(BigDecimal pesoEnKg) { - this.pesoEnKg = pesoEnKg; + public void setPermisoImportacion(String permisoImportacion) { + this.permisoImportacion = permisoImportacion; } - public String getFraccionArancelariaId() { - return fraccionArancelariaId; + public String getFolioImpoVUCEM() { + return folioImpoVUCEM; } - public void setFraccionArancelariaId(String fraccionArancelariaId) { - this.fraccionArancelariaId = fraccionArancelariaId; + public void setFolioImpoVUCEM(String folioImpoVUCEM) { + this.folioImpoVUCEM = folioImpoVUCEM; } - public String getTipoMateriaId() { - return tipoMateriaId; + public String getNumCAS() { + return numCAS; } - public void setTipoMateriaId(String tipoMateriaId) { - this.tipoMateriaId = tipoMateriaId; + public void setNumCAS(String numCAS) { + this.numCAS = numCAS; } - public String getDescripcionMateria() { - return descripcionMateria; + public String getRazonSocialEmpImp() { + return razonSocialEmpImp; } - public void setDescripcionMateria(String descripcionMateria) { - this.descripcionMateria = descripcionMateria; + public void setRazonSocialEmpImp(String razonSocialEmpImp) { + this.razonSocialEmpImp = razonSocialEmpImp; + } + + public String getNumRegSanPlagCOFEPRIS() { + return numRegSanPlagCOFEPRIS; + } + + public void setNumRegSanPlagCOFEPRIS(String numRegSanPlagCOFEPRIS) { + this.numRegSanPlagCOFEPRIS = numRegSanPlagCOFEPRIS; + } + + public String getDatosFabricante() { + return datosFabricante; + } + + public void setDatosFabricante(String datosFabricante) { + this.datosFabricante = datosFabricante; + } + + public String getDatosFormulador() { + return datosFormulador; + } + + public void setDatosFormulador(String datosFormulador) { + this.datosFormulador = datosFormulador; + } + + public String getDatosMaquilador() { + return datosMaquilador; + } + + public void setDatosMaquilador(String datosMaquilador) { + this.datosMaquilador = datosMaquilador; + } + + public String getUsoAutorizado() { + return usoAutorizado; + } + + public void setUsoAutorizado(String usoAutorizado) { + this.usoAutorizado = usoAutorizado; + } + + public BigDecimal getPesoEnKg() { + return pesoEnKg; + } + + public void setPesoEnKg(BigDecimal pesoEnKg) { + this.pesoEnKg = pesoEnKg; } public BigDecimal getValorMercancia() { @@ -201,6 +340,38 @@ public void setMonedaId(String monedaId) { this.monedaId = monedaId; } + public String getFraccionArancelariaId() { + return fraccionArancelariaId; + } + + public void setFraccionArancelariaId(String fraccionArancelariaId) { + this.fraccionArancelariaId = fraccionArancelariaId; + } + + public String getUuidComercioExt() { + return uuidComercioExt; + } + + public void setUuidComercioExt(String uuidComercioExt) { + this.uuidComercioExt = uuidComercioExt; + } + + public String getTipoMateriaId() { + return tipoMateriaId; + } + + public void setTipoMateriaId(String tipoMateriaId) { + this.tipoMateriaId = tipoMateriaId; + } + + public String getDescripcionMateria() { + return descripcionMateria; + } + + public void setDescripcionMateria(String descripcionMateria) { + this.descripcionMateria = descripcionMateria; + } + public List getDocumentacionAduanera() { return documentacionAduanera; } @@ -209,6 +380,14 @@ public void setDocumentacionAduanera(List documentacionAduane this.documentacionAduanera = documentacionAduanera; } + public List getGuiasIdentificacion() { + return guiasIdentificacion; + } + + public void setGuiasIdentificacion(List guiasIdentificacion) { + this.guiasIdentificacion = guiasIdentificacion; + } + public List getCantidadTransporta() { return cantidadTransporta; } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java index 4fae70d..981a091 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java @@ -7,6 +7,8 @@ public class TipoFigura { private String rfcFigura; private String numLicencia; private String nombreFigura; + private String numRegIdTribFigura; + private String residenciaFiscalFiguraId; private List partesTransporte; private Domicilio domicilio; @@ -42,6 +44,22 @@ public void setNombreFigura(String nombreFigura) { this.nombreFigura = nombreFigura; } + public String getNumRegIdTribFigura() { + return numRegIdTribFigura; + } + + public void setNumRegIdTribFigura(String numRegIdTribFigura) { + this.numRegIdTribFigura = numRegIdTribFigura; + } + + public String getResidenciaFiscalFiguraId() { + return residenciaFiscalFiguraId; + } + + public void setResidenciaFiscalFiguraId(String residenciaFiscalFiguraId) { + this.residenciaFiscalFiguraId = residenciaFiscalFiguraId; + } + public List getPartesTransporte() { return partesTransporte; } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java index 42f6e07..b966add 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java @@ -10,8 +10,9 @@ public class TransporteAereo { private String lugarContrato; private String codigoTransportistaId; private String rfcEmbarcador; + private String numRegIdTribEmbarc; + private String residenciaFiscalEmbarcId; private String nombreEmbarcador; - private String rfcTransportista; public String getPermSCTId() { return permSCTId; @@ -85,19 +86,27 @@ public void setRfcEmbarcador(String rfcEmbarcador) { this.rfcEmbarcador = rfcEmbarcador; } - public String getNombreEmbarcador() { - return nombreEmbarcador; + public String getNumRegIdTribEmbarc() { + return numRegIdTribEmbarc; } - public void setNombreEmbarcador(String nombreEmbarcador) { - this.nombreEmbarcador = nombreEmbarcador; + public void setNumRegIdTribEmbarc(String numRegIdTribEmbarc) { + this.numRegIdTribEmbarc = numRegIdTribEmbarc; + } + + public String getResidenciaFiscalEmbarcId() { + return residenciaFiscalEmbarcId; } - public String getRfcTransportista() { - return rfcTransportista; + public void setResidenciaFiscalEmbarcId(String residenciaFiscalEmbarcId) { + this.residenciaFiscalEmbarcId = residenciaFiscalEmbarcId; } - public void setRfcTransportista(String rfcTransportista) { - this.rfcTransportista = rfcTransportista; + public String getNombreEmbarcador() { + return nombreEmbarcador; + } + + public void setNombreEmbarcador(String nombreEmbarcador) { + this.nombreEmbarcador = nombreEmbarcador; } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java index 3e1d95d..f57384f 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java @@ -1,15 +1,19 @@ package com.fiscalapi.models.invoicing.billOfLading; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fiscalapi.serialization.BigDecimalSerializer; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.List; public class TransporteMaritimo { private String permSCTId; private String numPermisoSCT; - private String configMaritimaId; private String nombreAseg; private String numPolizaSeguro; private String tipoEmbarcacionId; @@ -38,9 +42,6 @@ public class TransporteMaritimo { private String lineaNaviera; private String nombreAgenteNaviero; - private String numCertITC; - private String nombreEmbarCargador; - private String nombreAgente; private String numAutorizacionNavieroId; private String numViaje; private String numConocEmbarc; @@ -63,14 +64,6 @@ public void setNumPermisoSCT(String numPermisoSCT) { this.numPermisoSCT = numPermisoSCT; } - public String getConfigMaritimaId() { - return configMaritimaId; - } - - public void setConfigMaritimaId(String configMaritimaId) { - this.configMaritimaId = configMaritimaId; - } - public String getNombreAseg() { return nombreAseg; } @@ -199,30 +192,6 @@ public void setNombreAgenteNaviero(String nombreAgenteNaviero) { this.nombreAgenteNaviero = nombreAgenteNaviero; } - public String getNumCertITC() { - return numCertITC; - } - - public void setNumCertITC(String numCertITC) { - this.numCertITC = numCertITC; - } - - public String getNombreEmbarCargador() { - return nombreEmbarCargador; - } - - public void setNombreEmbarCargador(String nombreEmbarCargador) { - this.nombreEmbarCargador = nombreEmbarCargador; - } - - public String getNombreAgente() { - return nombreAgente; - } - - public void setNombreAgente(String nombreAgente) { - this.nombreAgente = nombreAgente; - } - public String getNumAutorizacionNavieroId() { return numAutorizacionNavieroId; } @@ -264,28 +233,18 @@ public void setContenedores(List contenedores) { } public static class ContenedorMaritimo { - private String matriculaContenedor; private String tipoContenedorId; + private String matriculaContenedor; private String numPrecinto; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal pesoContenedorVacio; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal pesoNetoMercancia; - private String idCCPRelacionado; private String placaVMCCP; - private String fechaCertificacionCCP; - private List remolquesCCP; - public String getMatriculaContenedor() { - return matriculaContenedor; - } + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaCertificacionCCP; - public void setMatriculaContenedor(String matriculaContenedor) { - this.matriculaContenedor = matriculaContenedor; - } + private List remolquesCCP; public String getTipoContenedorId() { return tipoContenedorId; @@ -295,28 +254,20 @@ public void setTipoContenedorId(String tipoContenedorId) { this.tipoContenedorId = tipoContenedorId; } - public String getNumPrecinto() { - return numPrecinto; - } - - public void setNumPrecinto(String numPrecinto) { - this.numPrecinto = numPrecinto; - } - - public BigDecimal getPesoContenedorVacio() { - return pesoContenedorVacio; + public String getMatriculaContenedor() { + return matriculaContenedor; } - public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { - this.pesoContenedorVacio = pesoContenedorVacio; + public void setMatriculaContenedor(String matriculaContenedor) { + this.matriculaContenedor = matriculaContenedor; } - public BigDecimal getPesoNetoMercancia() { - return pesoNetoMercancia; + public String getNumPrecinto() { + return numPrecinto; } - public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { - this.pesoNetoMercancia = pesoNetoMercancia; + public void setNumPrecinto(String numPrecinto) { + this.numPrecinto = numPrecinto; } public String getIdCCPRelacionado() { @@ -335,11 +286,11 @@ public void setPlacaVMCCP(String placaVMCCP) { this.placaVMCCP = placaVMCCP; } - public String getFechaCertificacionCCP() { + public LocalDateTime getFechaCertificacionCCP() { return fechaCertificacionCCP; } - public void setFechaCertificacionCCP(String fechaCertificacionCCP) { + public void setFechaCertificacionCCP(LocalDateTime fechaCertificacionCCP) { this.fechaCertificacionCCP = fechaCertificacionCCP; } From cc4290a4663b97e813d1d333b2039fda4b5438f8 Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Thu, 16 Apr 2026 22:39:50 -0600 Subject: [PATCH 4/8] Fixed examples --- .../EjemplosCartaPorteReferencias.java | 7478 ++++++++-------- .../examples/EjemplosCartaPorteValores.java | 7652 ++++++++--------- 2 files changed, 7565 insertions(+), 7565 deletions(-) diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java index f2780ee..a5b4be6 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java @@ -1,3739 +1,3739 @@ -// package com.fiscalapi.examples; - -// import java.math.BigDecimal; -// import java.time.LocalDateTime; -// import java.util.ArrayList; -// import java.util.List; - -// import com.fiscalapi.OptUtil; -// import com.fiscalapi.common.ApiResponse; -// import com.fiscalapi.common.FiscalApiSettings; -// import com.fiscalapi.models.invoicing.Complement; -// import com.fiscalapi.models.invoicing.Invoice; -// import com.fiscalapi.models.invoicing.InvoiceIssuer; -// import com.fiscalapi.models.invoicing.InvoiceItem; -// import com.fiscalapi.models.invoicing.InvoiceRecipient; -// import com.fiscalapi.models.invoicing.ItemTax; -// import com.fiscalapi.models.invoicing.TaxCredential; -// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; -// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; -// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; -// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; -// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; -// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; -// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; -// import com.fiscalapi.models.invoicing.billOfLading.Remolque; -// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; -// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; -// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; -// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; -// import com.fiscalapi.services.FiscalApiClient; - -// public class EjemplosCartaPorteReferencias { - -// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; -// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; -// final String password = "12345678a"; - -// public void main(String[] args) { -// FiscalApiSettings settings = new FiscalApiSettings(); -// settings.setDebugMode(true); -// settings.setApiUrl("https://test.fiscalapi.com"); -// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); -// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); - -// facturaIngresoAutoTransporteNacional(settings); -// } - -// // Factura ingreso autotransporte nacional (sin impuestos) -// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Ubicacion Origen -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("Calle1"); -// domicilioOrigen.setNumeroExterior("211"); -// domicilioOrigen.setNumeroInterior("212"); -// domicilioOrigen.setColoniaId("1957"); -// domicilioOrigen.setLocalidadId("13"); -// domicilioOrigen.setReferencia("casa blanca"); -// domicilioOrigen.setMunicipioId("011"); -// domicilioOrigen.setEstadoId("CMX"); -// domicilioOrigen.setPaisId("MEX"); -// domicilioOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("URE180429TM6"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("Calle2"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setNumeroInterior("215"); -// domicilioDestino.setColoniaId("0347"); -// domicilioDestino.setLocalidadId("23"); -// domicilioDestino.setReferencia("casa negra"); -// domicilioDestino.setMunicipioId("004"); -// domicilioDestino.setEstadoId("COA"); -// domicilioDestino.setPaisId("MEX"); -// domicilioDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("URE180429TM6"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("Calle1"); -// domicilioFigura.setNumeroExterior("NumeroExterior1"); -// domicilioFigura.setNumeroInterior("NumeroInterior1"); -// domicilioFigura.setColoniaId("Colonia1"); -// domicilioFigura.setLocalidadId("Localidad1"); -// domicilioFigura.setReferencia("Referencia1"); -// domicilioFigura.setMunicipioId("Municipio1"); -// domicilioFigura.setEstadoId("Estado1"); -// domicilioFigura.setPaisId("AFG"); -// domicilioFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("URE180429TM6"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte nacional con impuestos -// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Items -// List itemTaxes = new ArrayList<>(); -// ItemTax ivaTraslado = new ItemTax(); -// ivaTraslado.setTaxCode("002"); -// ivaTraslado.setTaxTypeCode("Tasa"); -// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); -// ivaTraslado.setTaxFlagCode("T"); -// itemTaxes.add(ivaTraslado); -// ItemTax ivaRetencion = new ItemTax(); -// ivaRetencion.setTaxCode("002"); -// ivaRetencion.setTaxTypeCode("Tasa"); -// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); -// ivaRetencion.setTaxFlagCode("R"); -// itemTaxes.add(ivaRetencion); - -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("26232.75")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("02"); -// item.setItemTaxes(itemTaxes); -// List items = new ArrayList<>(); -// items.add(item); - -// // Ubicacion Origen -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("Calle1"); -// domicilioOrigen.setNumeroExterior("211"); -// domicilioOrigen.setNumeroInterior("212"); -// domicilioOrigen.setColoniaId("1957"); -// domicilioOrigen.setLocalidadId("13"); -// domicilioOrigen.setReferencia("casa blanca"); -// domicilioOrigen.setMunicipioId("011"); -// domicilioOrigen.setEstadoId("CMX"); -// domicilioOrigen.setPaisId("MEX"); -// domicilioOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("URE180429TM6"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("Calle2"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setNumeroInterior("215"); -// domicilioDestino.setColoniaId("0347"); -// domicilioDestino.setLocalidadId("23"); -// domicilioDestino.setReferencia("casa negra"); -// domicilioDestino.setMunicipioId("004"); -// domicilioDestino.setEstadoId("COA"); -// domicilioDestino.setPaisId("MEX"); -// domicilioDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("URE180429TM6"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("Calle1"); -// domicilioFigura.setNumeroExterior("NumeroExterior1"); -// domicilioFigura.setNumeroInterior("NumeroInterior1"); -// domicilioFigura.setColoniaId("Colonia1"); -// domicilioFigura.setLocalidadId("Localidad1"); -// domicilioFigura.setReferencia("Referencia1"); -// domicilioFigura.setMunicipioId("Municipio1"); -// domicilioFigura.setEstadoId("Estado1"); -// domicilioFigura.setPaisId("AFG"); -// domicilioFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("URE180429TM6"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte extranjero (salida) -// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (extranjero) -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("ST"); -// domicilioOrigen.setNumeroExterior("214"); -// domicilioOrigen.setColoniaId("N/A"); -// domicilioOrigen.setReferencia("WHITE HOUSE"); -// domicilioOrigen.setMunicipioId("N/A"); -// domicilioOrigen.setEstadoId("TX"); -// domicilioOrigen.setPaisId("USA"); -// domicilioOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino (extranjero) -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("ST"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setColoniaId("N/A"); -// domicilioDestino.setReferencia("WHITE HOUSE"); -// domicilioDestino.setMunicipioId("N/A"); -// domicilioDestino.setEstadoId("TX"); -// domicilioDestino.setPaisId("USA"); -// domicilioDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("ST"); -// domicilioFigura.setNumeroExterior("214"); -// domicilioFigura.setColoniaId("N/A"); -// domicilioFigura.setReferencia("WHITE HOUSE"); -// domicilioFigura.setMunicipioId("N/A"); -// domicilioFigura.setEstadoId("TX"); -// domicilioFigura.setPaisId("USA"); -// domicilioFigura.setCodigoPostalId("N/A"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("EKU9003173C9"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) -// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (extranjero) -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("ST"); -// domicilioOrigen.setNumeroExterior("214"); -// domicilioOrigen.setColoniaId("N/A"); -// domicilioOrigen.setReferencia("WHITE HOUSE"); -// domicilioOrigen.setMunicipioId("N/A"); -// domicilioOrigen.setEstadoId("TX"); -// domicilioOrigen.setPaisId("USA"); -// domicilioOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino (extranjero) -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("ST"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setColoniaId("N/A"); -// domicilioDestino.setReferencia("WHITE HOUSE"); -// domicilioDestino.setMunicipioId("N/A"); -// domicilioDestino.setEstadoId("TX"); -// domicilioDestino.setPaisId("USA"); -// domicilioDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); -// documentoAduanero.setTipoDocumentoId("01"); -// documentoAduanero.setNumPedimento("23 43 0472 8000448"); -// documentoAduanero.setRfcImpo("EKU9003173C9"); -// List documentosAduaneros = new ArrayList<>(); -// documentosAduaneros.add(documentoAduanero); - -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(documentosAduaneros); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("ST"); -// domicilioFigura.setNumeroExterior("214"); -// domicilioFigura.setColoniaId("N/A"); -// domicilioFigura.setReferencia("WHITE HOUSE"); -// domicilioFigura.setMunicipioId("N/A"); -// domicilioFigura.setEstadoId("TX"); -// domicilioFigura.setPaisId("USA"); -// domicilioFigura.setCodigoPostalId("N/A"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("EKU9003173C9"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario nacional -// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario extranjero -// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("ST"); -// domDest5.setNumeroExterior("1234"); -// domDest5.setColoniaId("1234"); -// domDest5.setReferencia("WHITE HOUSE"); -// domDest5.setMunicipioId("1234"); -// domDest5.setEstadoId("TX"); -// domDest5.setPaisId("USA"); -// domDest5.setCodigoPostalId("12345"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("XEXX010101000"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumRegIdTrib("01010101"); -// dest5.setResidenciaFiscalId("USA"); -// dest5.setNumEstacionId("EF0001"); -// dest5.setNombreEstacion("NombreEstacion"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia (with tipoMateria) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) -// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo nacional -// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Origen (aeropuerto EA0417, Loreto) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Destino (aeropuerto EA0418, Los Cabos) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (with valorMercancia and monedaId) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TransporteAereo -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); - -// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(transporteAereo); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo extranjero (salida) -// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle2"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setNumeroInterior("215"); -// domOrigen.setColoniaId("0347"); -// domOrigen.setLocalidadId("23"); -// domOrigen.setReferencia("casa negra"); -// domOrigen.setMunicipioId("004"); -// domOrigen.setEstadoId("COA"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("25350"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12344"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("EA0143"); -// destino.setNombreEstacion("Phoenix-Mesa Gateway"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) -// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo nacional -// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo extranjero (salida) -// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12345"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("N/A"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("PM120"); -// destino.setNombreEstacion("NombreEstacion"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia and tipoMateria -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) -// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero (two IMD entries) -// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); -// regimenAduanero1.setRegimenAduaneroId("IMD"); -// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); -// regimenAduanero2.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero1); -// regimenAduaneros.add(regimenAduanero2); - -// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); -// destino.setTipoEstacionId("02"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// ct.setCvesTransporteId("02"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("X1A"); -// detalle.setPesoBruto(new BigDecimal("1.50")); -// detalle.setPesoNeto(new BigDecimal("1.00")); -// detalle.setPesoTara(new BigDecimal("0.50")); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1.50")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("Calle1"); -// domFigura.setNumeroExterior("NumeroExterior1"); -// domFigura.setNumeroInterior("NumeroInterior1"); -// domFigura.setColoniaId("Colonia1"); -// domFigura.setLocalidadId("Localidad1"); -// domFigura.setReferencia("Referencia1"); -// domFigura.setMunicipioId("Municipio1"); -// domFigura.setEstadoId("Estado1"); -// domFigura.setPaisId("AFG"); -// domFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("CP3.1"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte nacional -// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (no station, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (no station, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura (no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte extranjero (salida, EXD) -// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (foreign USA/TX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("ST"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setColoniaId("N/A"); -// domOrigen.setReferencia("WHITE HOUSE"); -// domOrigen.setMunicipioId("N/A"); -// domOrigen.setEstadoId("TX"); -// domOrigen.setPaisId("USA"); -// domOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (foreign USA/TX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("214"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura with USA domicilio -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("ST"); -// domFigura.setNumeroExterior("214"); -// domFigura.setColoniaId("N/A"); -// domFigura.setReferencia("WHITE HOUSE"); -// domFigura.setMunicipioId("N/A"); -// domFigura.setEstadoId("TX"); -// domFigura.setPaisId("USA"); -// domFigura.setCodigoPostalId("N/A"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte internacional aduanero (entrada, IMD) -// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (foreign USA/TX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("ST"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setColoniaId("N/A"); -// domOrigen.setReferencia("WHITE HOUSE"); -// domOrigen.setMunicipioId("N/A"); -// domOrigen.setEstadoId("TX"); -// domOrigen.setPaisId("USA"); -// domOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (foreign USA/TX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("214"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura with USA domicilio -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("ST"); -// domFigura.setNumeroExterior("214"); -// domFigura.setColoniaId("N/A"); -// domFigura.setReferencia("WHITE HOUSE"); -// domFigura.setMunicipioId("N/A"); -// domFigura.setEstadoId("TX"); -// domFigura.setPaisId("USA"); -// domFigura.setCodigoPostalId("N/A"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Ejemplo 17: Factura traslado transporte ferroviario nacional -// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse17); -// } - -// // Ejemplo 18: Factura traslado transporte ferroviario extranjero -// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("ST"); -// domDest5.setNumeroExterior("1234"); -// domDest5.setColoniaId("1234"); -// domDest5.setReferencia("WHITE HOUSE"); -// domDest5.setMunicipioId("1234"); -// domDest5.setEstadoId("TX"); -// domDest5.setPaisId("USA"); -// domDest5.setCodigoPostalId("12345"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("XEXX010101000"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumRegIdTrib("01010101"); -// dest5.setResidenciaFiscalId("USA"); -// dest5.setNumEstacionId("EF0001"); -// dest5.setNombreEstacion("NombreEstacion"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia (with tipoMateria) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse18); -// } - -// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) -// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia con documentacion aduanera y tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse19); -// } - -// // Ejemplo 20: Factura traslado transporte aereo nacional -// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Origen (aeropuerto EA0417, Loreto) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Destino (aeropuerto EA0418, Los Cabos) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (with valorMercancia and monedaId) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TransporteAereo -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); - -// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(transporteAereo); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse20); -// } - -// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) -// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle2"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setNumeroInterior("215"); -// domOrigen.setColoniaId("0347"); -// domOrigen.setLocalidadId("23"); -// domOrigen.setReferencia("casa negra"); -// domOrigen.setMunicipioId("004"); -// domOrigen.setEstadoId("COA"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("25350"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12344"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("EA0143"); -// destino.setNombreEstacion("Phoenix-Mesa Gateway"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse21); -// } - -// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) -// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera y tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse22); -// } - -// // Ejemplo 23: Factura traslado transporte maritimo nacional -// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse23); -// } - -// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) -// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12345"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("N/A"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("PM120"); -// destino.setNombreEstacion("NombreEstacion"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia and tipoMateria -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse24); -// } - -// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) -// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero (two IMD entries) -// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); -// regimenAduanero1.setRegimenAduaneroId("IMD"); -// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); -// regimenAduanero2.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero1); -// regimenAduaneros.add(regimenAduanero2); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse25); -// } - -// // ── Helper methods ────────────────────────────────────────────────────────── - -// private List buildTaxCredentials() { -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// List credentials = new ArrayList<>(); -// credentials.add(cer); -// credentials.add(key); -// return credentials; -// } - -// private InvoiceIssuer buildIssuerEKU() { -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); -// return issuer; -// } - -// private InvoiceRecipient buildRecipientEKU() { -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); -// return recipient; -// } - -// private InvoiceItem buildStandardItem() { -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// return item; -// } - -// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, -// List items, Complement complement) { -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); -// return invoice; -// } - -// private TransporteAereo buildTransporteAereoCP() { -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); -// return transporteAereo; -// } - -// private TransporteMaritimo buildTransporteMaritimo() { -// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); -// remolqueCCP.setSubTipoRemCCPId("CTR001"); -// remolqueCCP.setPlacaCCP("JNG7636"); -// List remolquesCCP = new ArrayList<>(); -// remolquesCCP.add(remolqueCCP); - -// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); -// contenedor.setTipoContenedorId("CM011"); -// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); -// contenedor.setPlacaVMCCP("JNG7683"); -// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); -// contenedor.setRemolquesCCP(remolquesCCP); -// List contenedores = new ArrayList<>(); -// contenedores.add(contenedor); - -// TransporteMaritimo maritimo = new TransporteMaritimo(); -// maritimo.setPermSCTId("TPAF01"); -// maritimo.setNumPermisoSCT("NumPermisoSCT1"); -// maritimo.setNombreAseg("NombreAseg1"); -// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); -// maritimo.setTipoEmbarcacionId("B01"); -// maritimo.setMatricula("Matricula1"); -// maritimo.setNumeroOMI("IMO1234567"); -// maritimo.setAnioEmbarcacion(2003); -// maritimo.setNombreEmbarc("NombreEmbarc1"); -// maritimo.setNacionalidadEmbarcId("AFG"); -// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); -// maritimo.setTipoCargaId("CGS"); -// maritimo.setEslora(new BigDecimal("0.01")); -// maritimo.setManga(new BigDecimal("0.01")); -// maritimo.setCalado(new BigDecimal("0.01")); -// maritimo.setPuntal(new BigDecimal("0.01")); -// maritimo.setLineaNaviera("LineaNaviera1"); -// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); -// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); -// maritimo.setNumViaje("NumViaje1"); -// maritimo.setNumConocEmbarc("NumConocEmbarc1"); -// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); -// maritimo.setContenedores(contenedores); -// return maritimo; -// } - -// private TransporteFerroviario buildTransporteFerroviario() { -// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); -// derecho.setTipoDerechoDePasoId("CDP114"); -// derecho.setKilometrajePagado(new BigDecimal("100")); -// List derechos = new ArrayList<>(); -// derechos.add(derecho); - -// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); -// carro.setTipoCarroId("TC08"); -// carro.setMatriculaCarro("A00012"); -// carro.setGuiaCarro("123ASD"); -// carro.setToneladasNetasCarro(new BigDecimal("10")); -// List carros = new ArrayList<>(); -// carros.add(carro); - -// TransporteFerroviario transporte = new TransporteFerroviario(); -// transporte.setTipoDeServicioId("TS01"); -// transporte.setTipoDeTraficoId("TT01"); -// transporte.setDerechosDePaso(derechos); -// transporte.setCarros(carros); -// return transporte; -// } - -// private List buildTiposFiguraFerroviario() { -// ParteTransporte parte = new ParteTransporte(); -// parte.setParteTransporteId("PT02"); -// List partes = new ArrayList<>(); -// partes.add(parte); - -// Domicilio domicilio = new Domicilio(); -// domicilio.setCalle("calle"); -// domicilio.setNumeroExterior("211"); -// domicilio.setColoniaId("0814"); -// domicilio.setLocalidadId("01"); -// domicilio.setReferencia("casa blanca"); -// domicilio.setMunicipioId("010"); -// domicilio.setEstadoId("ZAC"); -// domicilio.setPaisId("MEX"); -// domicilio.setCodigoPostalId("99080"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("02"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNombreFigura("NombreFigura"); -// figura.setPartesTransporte(partes); -// figura.setDomicilio(domicilio); - -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); -// return tiposFigura; -// } - -// private List buildUbicacionesFerroviarioComunes() { -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("Q0736"); -// origen.setNombreEstacion("SANTO NINO"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// Ubicacion dest1 = new Ubicacion(); -// dest1.setTipoUbicacion("Destino"); -// dest1.setIdUbicacion("DE202021"); -// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest1.setNumEstacionId("SC283"); -// dest1.setNombreEstacion("HUAXTITLA"); -// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); -// dest1.setTipoEstacionId("02"); -// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest2 = new Ubicacion(); -// dest2.setTipoUbicacion("Destino"); -// dest2.setIdUbicacion("DE202022"); -// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest2.setNumEstacionId("TG0"); -// dest2.setNombreEstacion("NAVOJOA"); -// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); -// dest2.setTipoEstacionId("02"); -// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest3 = new Ubicacion(); -// dest3.setTipoUbicacion("Destino"); -// dest3.setIdUbicacion("DE202023"); -// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest3.setNumEstacionId("E0029"); -// dest3.setNombreEstacion("TRES JAGUEYES"); -// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); -// dest3.setTipoEstacionId("02"); -// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest4 = new Ubicacion(); -// dest4.setTipoUbicacion("Destino"); -// dest4.setIdUbicacion("DE202024"); -// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest4.setNumEstacionId("TI032"); -// dest4.setNombreEstacion("NAVOLATO"); -// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); -// dest4.setTipoEstacionId("02"); -// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(dest1); -// ubicaciones.add(dest2); -// ubicaciones.add(dest3); -// ubicaciones.add(dest4); -// return ubicaciones; -// } -// } +package com.fiscalapi.examples; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import com.fiscalapi.OptUtil; +import com.fiscalapi.common.ApiResponse; +import com.fiscalapi.common.FiscalApiSettings; +import com.fiscalapi.models.invoicing.Complement; +import com.fiscalapi.models.invoicing.Invoice; +import com.fiscalapi.models.invoicing.InvoiceIssuer; +import com.fiscalapi.models.invoicing.InvoiceItem; +import com.fiscalapi.models.invoicing.InvoiceRecipient; +import com.fiscalapi.models.invoicing.ItemTax; +import com.fiscalapi.models.invoicing.TaxCredential; +import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +import com.fiscalapi.models.invoicing.billOfLading.Remolque; +import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +import com.fiscalapi.services.FiscalApiClient; + +public class EjemplosCartaPorteReferencias { + + final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; + final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; + final String password = "12345678a"; + + public void main(String[] args) { + FiscalApiSettings settings = new FiscalApiSettings(); + settings.setDebugMode(true); + settings.setApiUrl("https://test.fiscalapi.com"); + settings.setApiKey("api_key"); + settings.setTenant("tenant_id"); + + facturaIngresoAutoTransporteNacional(settings); + } + + // Factura ingreso autotransporte nacional (sin impuestos) + private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Ubicacion Origen + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("Calle1"); + domicilioOrigen.setNumeroExterior("211"); + domicilioOrigen.setNumeroInterior("212"); + domicilioOrigen.setColoniaId("1957"); + domicilioOrigen.setLocalidadId("13"); + domicilioOrigen.setReferencia("casa blanca"); + domicilioOrigen.setMunicipioId("011"); + domicilioOrigen.setEstadoId("CMX"); + domicilioOrigen.setPaisId("MEX"); + domicilioOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("URE180429TM6"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("Calle2"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setNumeroInterior("215"); + domicilioDestino.setColoniaId("0347"); + domicilioDestino.setLocalidadId("23"); + domicilioDestino.setReferencia("casa negra"); + domicilioDestino.setMunicipioId("004"); + domicilioDestino.setEstadoId("COA"); + domicilioDestino.setPaisId("MEX"); + domicilioDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("URE180429TM6"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("Calle1"); + domicilioFigura.setNumeroExterior("NumeroExterior1"); + domicilioFigura.setNumeroInterior("NumeroInterior1"); + domicilioFigura.setColoniaId("Colonia1"); + domicilioFigura.setLocalidadId("Localidad1"); + domicilioFigura.setReferencia("Referencia1"); + domicilioFigura.setMunicipioId("Municipio1"); + domicilioFigura.setEstadoId("Estado1"); + domicilioFigura.setPaisId("AFG"); + domicilioFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("URE180429TM6"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte nacional con impuestos + private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Items + List itemTaxes = new ArrayList<>(); + ItemTax ivaTraslado = new ItemTax(); + ivaTraslado.setTaxCode("002"); + ivaTraslado.setTaxTypeCode("Tasa"); + ivaTraslado.setTaxRate(new BigDecimal("0.160000")); + ivaTraslado.setTaxFlagCode("T"); + itemTaxes.add(ivaTraslado); + ItemTax ivaRetencion = new ItemTax(); + ivaRetencion.setTaxCode("002"); + ivaRetencion.setTaxTypeCode("Tasa"); + ivaRetencion.setTaxRate(new BigDecimal("0.040000")); + ivaRetencion.setTaxFlagCode("R"); + itemTaxes.add(ivaRetencion); + + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("26232.75")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("02"); + item.setItemTaxes(itemTaxes); + List items = new ArrayList<>(); + items.add(item); + + // Ubicacion Origen + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("Calle1"); + domicilioOrigen.setNumeroExterior("211"); + domicilioOrigen.setNumeroInterior("212"); + domicilioOrigen.setColoniaId("1957"); + domicilioOrigen.setLocalidadId("13"); + domicilioOrigen.setReferencia("casa blanca"); + domicilioOrigen.setMunicipioId("011"); + domicilioOrigen.setEstadoId("CMX"); + domicilioOrigen.setPaisId("MEX"); + domicilioOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("URE180429TM6"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("Calle2"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setNumeroInterior("215"); + domicilioDestino.setColoniaId("0347"); + domicilioDestino.setLocalidadId("23"); + domicilioDestino.setReferencia("casa negra"); + domicilioDestino.setMunicipioId("004"); + domicilioDestino.setEstadoId("COA"); + domicilioDestino.setPaisId("MEX"); + domicilioDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("URE180429TM6"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("Calle1"); + domicilioFigura.setNumeroExterior("NumeroExterior1"); + domicilioFigura.setNumeroInterior("NumeroInterior1"); + domicilioFigura.setColoniaId("Colonia1"); + domicilioFigura.setLocalidadId("Localidad1"); + domicilioFigura.setReferencia("Referencia1"); + domicilioFigura.setMunicipioId("Municipio1"); + domicilioFigura.setEstadoId("Estado1"); + domicilioFigura.setPaisId("AFG"); + domicilioFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("URE180429TM6"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte extranjero (salida) + private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (extranjero) + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("ST"); + domicilioOrigen.setNumeroExterior("214"); + domicilioOrigen.setColoniaId("N/A"); + domicilioOrigen.setReferencia("WHITE HOUSE"); + domicilioOrigen.setMunicipioId("N/A"); + domicilioOrigen.setEstadoId("TX"); + domicilioOrigen.setPaisId("USA"); + domicilioOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino (extranjero) + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("ST"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setColoniaId("N/A"); + domicilioDestino.setReferencia("WHITE HOUSE"); + domicilioDestino.setMunicipioId("N/A"); + domicilioDestino.setEstadoId("TX"); + domicilioDestino.setPaisId("USA"); + domicilioDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("ST"); + domicilioFigura.setNumeroExterior("214"); + domicilioFigura.setColoniaId("N/A"); + domicilioFigura.setReferencia("WHITE HOUSE"); + domicilioFigura.setMunicipioId("N/A"); + domicilioFigura.setEstadoId("TX"); + domicilioFigura.setPaisId("USA"); + domicilioFigura.setCodigoPostalId("N/A"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("EKU9003173C9"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) + private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (extranjero) + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("ST"); + domicilioOrigen.setNumeroExterior("214"); + domicilioOrigen.setColoniaId("N/A"); + domicilioOrigen.setReferencia("WHITE HOUSE"); + domicilioOrigen.setMunicipioId("N/A"); + domicilioOrigen.setEstadoId("TX"); + domicilioOrigen.setPaisId("USA"); + domicilioOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino (extranjero) + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("ST"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setColoniaId("N/A"); + domicilioDestino.setReferencia("WHITE HOUSE"); + domicilioDestino.setMunicipioId("N/A"); + domicilioDestino.setEstadoId("TX"); + domicilioDestino.setPaisId("USA"); + domicilioDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera + DocumentoAduanero documentoAduanero = new DocumentoAduanero(); + documentoAduanero.setTipoDocumentoId("01"); + documentoAduanero.setNumPedimento("23 43 0472 8000448"); + documentoAduanero.setRfcImpo("EKU9003173C9"); + List documentosAduaneros = new ArrayList<>(); + documentosAduaneros.add(documentoAduanero); + + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(documentosAduaneros); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("ST"); + domicilioFigura.setNumeroExterior("214"); + domicilioFigura.setColoniaId("N/A"); + domicilioFigura.setReferencia("WHITE HOUSE"); + domicilioFigura.setMunicipioId("N/A"); + domicilioFigura.setEstadoId("TX"); + domicilioFigura.setPaisId("USA"); + domicilioFigura.setCodigoPostalId("N/A"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("EKU9003173C9"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario nacional + private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario extranjero + private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("ST"); + domDest5.setNumeroExterior("1234"); + domDest5.setColoniaId("1234"); + domDest5.setReferencia("WHITE HOUSE"); + domDest5.setMunicipioId("1234"); + domDest5.setEstadoId("TX"); + domDest5.setPaisId("USA"); + domDest5.setCodigoPostalId("12345"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("XEXX010101000"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumRegIdTrib("01010101"); + dest5.setResidenciaFiscalId("USA"); + dest5.setNumEstacionId("EF0001"); + dest5.setNombreEstacion("NombreEstacion"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia (with tipoMateria) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) + private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia con documentacion aduanera + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo nacional + private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Origen (aeropuerto EA0417, Loreto) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Destino (aeropuerto EA0418, Los Cabos) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (with valorMercancia and monedaId) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TransporteAereo + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + + // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(transporteAereo); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo extranjero (salida) + private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, COA/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle2"); + domOrigen.setNumeroExterior("214"); + domOrigen.setNumeroInterior("215"); + domOrigen.setColoniaId("0347"); + domOrigen.setLocalidadId("23"); + domOrigen.setReferencia("casa negra"); + domOrigen.setMunicipioId("004"); + domOrigen.setEstadoId("COA"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("25350"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12344"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("EA0143"); + destino.setNombreEstacion("Phoenix-Mesa Gateway"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) + private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo nacional + private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo extranjero (salida) + private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12345"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("N/A"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("PM120"); + destino.setNombreEstacion("NombreEstacion"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia and tipoMateria + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) + private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero (two IMD entries) + RegimenAduanero regimenAduanero1 = new RegimenAduanero(); + regimenAduanero1.setRegimenAduaneroId("IMD"); + RegimenAduanero regimenAduanero2 = new RegimenAduanero(); + regimenAduanero2.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero1); + regimenAduaneros.add(regimenAduanero2); + + // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); + destino.setTipoEstacionId("02"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + ct.setCvesTransporteId("02"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("X1A"); + detalle.setPesoBruto(new BigDecimal("1.50")); + detalle.setPesoNeto(new BigDecimal("1.00")); + detalle.setPesoTara(new BigDecimal("0.50")); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1.50")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("Calle1"); + domFigura.setNumeroExterior("NumeroExterior1"); + domFigura.setNumeroInterior("NumeroInterior1"); + domFigura.setColoniaId("Colonia1"); + domFigura.setLocalidadId("Localidad1"); + domFigura.setReferencia("Referencia1"); + domFigura.setMunicipioId("Municipio1"); + domFigura.setEstadoId("Estado1"); + domFigura.setPaisId("AFG"); + domFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("CP3.1"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte nacional + private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (no station, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (no station, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura (no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte extranjero (salida, EXD) + private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (foreign USA/TX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("ST"); + domOrigen.setNumeroExterior("214"); + domOrigen.setColoniaId("N/A"); + domOrigen.setReferencia("WHITE HOUSE"); + domOrigen.setMunicipioId("N/A"); + domOrigen.setEstadoId("TX"); + domOrigen.setPaisId("USA"); + domOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (foreign USA/TX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("214"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura with USA domicilio + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("ST"); + domFigura.setNumeroExterior("214"); + domFigura.setColoniaId("N/A"); + domFigura.setReferencia("WHITE HOUSE"); + domFigura.setMunicipioId("N/A"); + domFigura.setEstadoId("TX"); + domFigura.setPaisId("USA"); + domFigura.setCodigoPostalId("N/A"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte internacional aduanero (entrada, IMD) + private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (foreign USA/TX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("ST"); + domOrigen.setNumeroExterior("214"); + domOrigen.setColoniaId("N/A"); + domOrigen.setReferencia("WHITE HOUSE"); + domOrigen.setMunicipioId("N/A"); + domOrigen.setEstadoId("TX"); + domOrigen.setPaisId("USA"); + domOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (foreign USA/TX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("214"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura with USA domicilio + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("ST"); + domFigura.setNumeroExterior("214"); + domFigura.setColoniaId("N/A"); + domFigura.setReferencia("WHITE HOUSE"); + domFigura.setMunicipioId("N/A"); + domFigura.setEstadoId("TX"); + domFigura.setPaisId("USA"); + domFigura.setCodigoPostalId("N/A"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Ejemplo 17: Factura traslado transporte ferroviario nacional + private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse17); + } + + // Ejemplo 18: Factura traslado transporte ferroviario extranjero + private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("ST"); + domDest5.setNumeroExterior("1234"); + domDest5.setColoniaId("1234"); + domDest5.setReferencia("WHITE HOUSE"); + domDest5.setMunicipioId("1234"); + domDest5.setEstadoId("TX"); + domDest5.setPaisId("USA"); + domDest5.setCodigoPostalId("12345"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("XEXX010101000"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumRegIdTrib("01010101"); + dest5.setResidenciaFiscalId("USA"); + dest5.setNumEstacionId("EF0001"); + dest5.setNombreEstacion("NombreEstacion"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia (with tipoMateria) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse18); + } + + // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) + private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia con documentacion aduanera y tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse19); + } + + // Ejemplo 20: Factura traslado transporte aereo nacional + private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Origen (aeropuerto EA0417, Loreto) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Destino (aeropuerto EA0418, Los Cabos) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (with valorMercancia and monedaId) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TransporteAereo + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + + // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(transporteAereo); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse20); + } + + // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) + private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, COA/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle2"); + domOrigen.setNumeroExterior("214"); + domOrigen.setNumeroInterior("215"); + domOrigen.setColoniaId("0347"); + domOrigen.setLocalidadId("23"); + domOrigen.setReferencia("casa negra"); + domOrigen.setMunicipioId("004"); + domOrigen.setEstadoId("COA"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("25350"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12344"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("EA0143"); + destino.setNombreEstacion("Phoenix-Mesa Gateway"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia, no partesTransporte, no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse21); + } + + // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) + private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera y tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia, no partesTransporte, no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse22); + } + + // Ejemplo 23: Factura traslado transporte maritimo nacional + private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse23); + } + + // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) + private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12345"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("N/A"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("PM120"); + destino.setNombreEstacion("NombreEstacion"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia and tipoMateria + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse24); + } + + // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) + private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero (two IMD entries) + RegimenAduanero regimenAduanero1 = new RegimenAduanero(); + regimenAduanero1.setRegimenAduaneroId("IMD"); + RegimenAduanero regimenAduanero2 = new RegimenAduanero(); + regimenAduanero2.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero1); + regimenAduaneros.add(regimenAduanero2); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse25); + } + + // ── Helper methods ────────────────────────────────────────────────────────── + + private List buildTaxCredentials() { + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + List credentials = new ArrayList<>(); + credentials.add(cer); + credentials.add(key); + return credentials; + } + + private InvoiceIssuer buildIssuerEKU() { + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + return issuer; + } + + private InvoiceRecipient buildRecipientEKU() { + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + return recipient; + } + + private InvoiceItem buildStandardItem() { + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + return item; + } + + private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, + List items, Complement complement) { + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + return invoice; + } + + private TransporteAereo buildTransporteAereoCP() { + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + return transporteAereo; + } + + private TransporteMaritimo buildTransporteMaritimo() { + TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); + remolqueCCP.setSubTipoRemCCPId("CTR001"); + remolqueCCP.setPlacaCCP("JNG7636"); + List remolquesCCP = new ArrayList<>(); + remolquesCCP.add(remolqueCCP); + + TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); + contenedor.setTipoContenedorId("CM011"); + contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); + contenedor.setPlacaVMCCP("JNG7683"); + contenedor.setFechaCertificacionCCP(OptUtil.parseLocalDateTime("2024-06-20T11:11:00")); + contenedor.setRemolquesCCP(remolquesCCP); + List contenedores = new ArrayList<>(); + contenedores.add(contenedor); + + TransporteMaritimo maritimo = new TransporteMaritimo(); + maritimo.setPermSCTId("TPAF01"); + maritimo.setNumPermisoSCT("NumPermisoSCT1"); + maritimo.setNombreAseg("NombreAseg1"); + maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); + maritimo.setTipoEmbarcacionId("B01"); + maritimo.setMatricula("Matricula1"); + maritimo.setNumeroOMI("IMO1234567"); + maritimo.setAnioEmbarcacion(2003); + maritimo.setNombreEmbarc("NombreEmbarc1"); + maritimo.setNacionalidadEmbarcId("AFG"); + maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); + maritimo.setTipoCargaId("CGS"); + maritimo.setEslora(new BigDecimal("0.01")); + maritimo.setManga(new BigDecimal("0.01")); + maritimo.setCalado(new BigDecimal("0.01")); + maritimo.setPuntal(new BigDecimal("0.01")); + maritimo.setLineaNaviera("LineaNaviera1"); + maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); + maritimo.setNumAutorizacionNavieroId("ANC001/2022"); + maritimo.setNumViaje("NumViaje1"); + maritimo.setNumConocEmbarc("NumConocEmbarc1"); + maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); + maritimo.setContenedores(contenedores); + return maritimo; + } + + private TransporteFerroviario buildTransporteFerroviario() { + TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); + derecho.setTipoDerechoDePasoId("CDP114"); + derecho.setKilometrajePagado(new BigDecimal("100")); + List derechos = new ArrayList<>(); + derechos.add(derecho); + + TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); + carro.setTipoCarroId("TC08"); + carro.setMatriculaCarro("A00012"); + carro.setGuiaCarro("123ASD"); + carro.setToneladasNetasCarro(new BigDecimal("10")); + List carros = new ArrayList<>(); + carros.add(carro); + + TransporteFerroviario transporte = new TransporteFerroviario(); + transporte.setTipoDeServicioId("TS01"); + transporte.setTipoDeTraficoId("TT01"); + transporte.setDerechosDePaso(derechos); + transporte.setCarros(carros); + return transporte; + } + + private List buildTiposFiguraFerroviario() { + ParteTransporte parte = new ParteTransporte(); + parte.setParteTransporteId("PT02"); + List partes = new ArrayList<>(); + partes.add(parte); + + Domicilio domicilio = new Domicilio(); + domicilio.setCalle("calle"); + domicilio.setNumeroExterior("211"); + domicilio.setColoniaId("0814"); + domicilio.setLocalidadId("01"); + domicilio.setReferencia("casa blanca"); + domicilio.setMunicipioId("010"); + domicilio.setEstadoId("ZAC"); + domicilio.setPaisId("MEX"); + domicilio.setCodigoPostalId("99080"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("02"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNombreFigura("NombreFigura"); + figura.setPartesTransporte(partes); + figura.setDomicilio(domicilio); + + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + return tiposFigura; + } + + private List buildUbicacionesFerroviarioComunes() { + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("Q0736"); + origen.setNombreEstacion("SANTO NINO"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + Ubicacion dest1 = new Ubicacion(); + dest1.setTipoUbicacion("Destino"); + dest1.setIdUbicacion("DE202021"); + dest1.setRfcRemitenteDestinatario("EKU9003173C9"); + dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest1.setNumEstacionId("SC283"); + dest1.setNombreEstacion("HUAXTITLA"); + dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); + dest1.setTipoEstacionId("02"); + dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest2 = new Ubicacion(); + dest2.setTipoUbicacion("Destino"); + dest2.setIdUbicacion("DE202022"); + dest2.setRfcRemitenteDestinatario("EKU9003173C9"); + dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest2.setNumEstacionId("TG0"); + dest2.setNombreEstacion("NAVOJOA"); + dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); + dest2.setTipoEstacionId("02"); + dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest3 = new Ubicacion(); + dest3.setTipoUbicacion("Destino"); + dest3.setIdUbicacion("DE202023"); + dest3.setRfcRemitenteDestinatario("EKU9003173C9"); + dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest3.setNumEstacionId("E0029"); + dest3.setNombreEstacion("TRES JAGUEYES"); + dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); + dest3.setTipoEstacionId("02"); + dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest4 = new Ubicacion(); + dest4.setTipoUbicacion("Destino"); + dest4.setIdUbicacion("DE202024"); + dest4.setRfcRemitenteDestinatario("EKU9003173C9"); + dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest4.setNumEstacionId("TI032"); + dest4.setNombreEstacion("NAVOLATO"); + dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); + dest4.setTipoEstacionId("02"); + dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(dest1); + ubicaciones.add(dest2); + ubicaciones.add(dest3); + ubicaciones.add(dest4); + return ubicaciones; + } +} diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java index e3ab578..4951de7 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java @@ -1,3826 +1,3826 @@ -// package com.fiscalapi.examples; - -// import java.math.BigDecimal; -// import java.time.LocalDateTime; -// import java.util.ArrayList; -// import java.util.List; - -// import com.fiscalapi.OptUtil; -// import com.fiscalapi.common.ApiResponse; -// import com.fiscalapi.common.FiscalApiSettings; -// import com.fiscalapi.models.invoicing.Complement; -// import com.fiscalapi.models.invoicing.Invoice; -// import com.fiscalapi.models.invoicing.InvoiceIssuer; -// import com.fiscalapi.models.invoicing.InvoiceItem; -// import com.fiscalapi.models.invoicing.InvoiceRecipient; -// import com.fiscalapi.models.invoicing.ItemTax; -// import com.fiscalapi.models.invoicing.TaxCredential; -// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; -// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; -// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; -// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; -// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; -// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; -// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; -// import com.fiscalapi.models.invoicing.billOfLading.Remolque; -// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; -// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; -// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; -// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; -// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; -// import com.fiscalapi.services.FiscalApiClient; - -// public class EjemplosCartaPorteValores { - -// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; -// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; -// final String password = "12345678a"; - -// public void main(String[] args) { -// FiscalApiSettings settings = new FiscalApiSettings(); -// settings.setDebugMode(true); -// settings.setApiUrl("https://test.fiscalapi.com"); -// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); -// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); - -// facturaIngresoAutoTransporteNacional(settings); -// } - -// // Factura ingreso autotransporte nacional (sin impuestos) -// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Tax credentials -// List taxCredentials = new ArrayList<>(); -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// taxCredentials.add(cer); -// taxCredentials.add(key); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setTin("EKU9003173C9"); -// issuer.setLegalName("ESCUELA KEMPER URGATE"); -// issuer.setTaxRegimeCode("601"); -// issuer.setTaxCredentials(taxCredentials); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setTin("URE180429TM6"); -// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); -// recipient.setZipCode("86991"); -// recipient.setTaxRegimeCode("601"); -// recipient.setCfdiUseCode("S01"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Ubicacion Origen -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("Calle1"); -// domicilioOrigen.setNumeroExterior("211"); -// domicilioOrigen.setNumeroInterior("212"); -// domicilioOrigen.setColoniaId("1957"); -// domicilioOrigen.setLocalidadId("13"); -// domicilioOrigen.setReferencia("casa blanca"); -// domicilioOrigen.setMunicipioId("011"); -// domicilioOrigen.setEstadoId("CMX"); -// domicilioOrigen.setPaisId("MEX"); -// domicilioOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("URE180429TM6"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("Calle2"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setNumeroInterior("215"); -// domicilioDestino.setColoniaId("0347"); -// domicilioDestino.setLocalidadId("23"); -// domicilioDestino.setReferencia("casa negra"); -// domicilioDestino.setMunicipioId("004"); -// domicilioDestino.setEstadoId("COA"); -// domicilioDestino.setPaisId("MEX"); -// domicilioDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("URE180429TM6"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("Calle1"); -// domicilioFigura.setNumeroExterior("NumeroExterior1"); -// domicilioFigura.setNumeroInterior("NumeroInterior1"); -// domicilioFigura.setColoniaId("Colonia1"); -// domicilioFigura.setLocalidadId("Localidad1"); -// domicilioFigura.setReferencia("Referencia1"); -// domicilioFigura.setMunicipioId("Municipio1"); -// domicilioFigura.setEstadoId("Estado1"); -// domicilioFigura.setPaisId("AFG"); -// domicilioFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("URE180429TM6"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte nacional con impuestos -// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Tax credentials -// List taxCredentials = new ArrayList<>(); -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// taxCredentials.add(cer); -// taxCredentials.add(key); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setTin("EKU9003173C9"); -// issuer.setLegalName("ESCUELA KEMPER URGATE"); -// issuer.setTaxRegimeCode("601"); -// issuer.setTaxCredentials(taxCredentials); - -// // Recipient -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setTin("URE180429TM6"); -// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); -// recipient.setZipCode("86991"); -// recipient.setTaxRegimeCode("601"); -// recipient.setCfdiUseCode("S01"); - -// // Items -// List itemTaxes = new ArrayList<>(); -// ItemTax ivaTraslado = new ItemTax(); -// ivaTraslado.setTaxCode("002"); -// ivaTraslado.setTaxTypeCode("Tasa"); -// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); -// ivaTraslado.setTaxFlagCode("T"); -// itemTaxes.add(ivaTraslado); -// ItemTax ivaRetencion = new ItemTax(); -// ivaRetencion.setTaxCode("002"); -// ivaRetencion.setTaxTypeCode("Tasa"); -// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); -// ivaRetencion.setTaxFlagCode("R"); -// itemTaxes.add(ivaRetencion); - -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("26232.75")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("02"); -// item.setItemTaxes(itemTaxes); -// List items = new ArrayList<>(); -// items.add(item); - -// // Ubicacion Origen -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("Calle1"); -// domicilioOrigen.setNumeroExterior("211"); -// domicilioOrigen.setNumeroInterior("212"); -// domicilioOrigen.setColoniaId("1957"); -// domicilioOrigen.setLocalidadId("13"); -// domicilioOrigen.setReferencia("casa blanca"); -// domicilioOrigen.setMunicipioId("011"); -// domicilioOrigen.setEstadoId("CMX"); -// domicilioOrigen.setPaisId("MEX"); -// domicilioOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("URE180429TM6"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("Calle2"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setNumeroInterior("215"); -// domicilioDestino.setColoniaId("0347"); -// domicilioDestino.setLocalidadId("23"); -// domicilioDestino.setReferencia("casa negra"); -// domicilioDestino.setMunicipioId("004"); -// domicilioDestino.setEstadoId("COA"); -// domicilioDestino.setPaisId("MEX"); -// domicilioDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("URE180429TM6"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("Calle1"); -// domicilioFigura.setNumeroExterior("NumeroExterior1"); -// domicilioFigura.setNumeroInterior("NumeroInterior1"); -// domicilioFigura.setColoniaId("Colonia1"); -// domicilioFigura.setLocalidadId("Localidad1"); -// domicilioFigura.setReferencia("Referencia1"); -// domicilioFigura.setMunicipioId("Municipio1"); -// domicilioFigura.setEstadoId("Estado1"); -// domicilioFigura.setPaisId("AFG"); -// domicilioFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("URE180429TM6"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte extranjero (salida) -// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Tax credentials -// List taxCredentials = new ArrayList<>(); -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// taxCredentials.add(cer); -// taxCredentials.add(key); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setTin("EKU9003173C9"); -// issuer.setLegalName("ESCUELA KEMPER URGATE"); -// issuer.setTaxRegimeCode("601"); -// issuer.setTaxCredentials(taxCredentials); - -// // Recipient (same as issuer for international) -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setTin("EKU9003173C9"); -// recipient.setLegalName("ESCUELA KEMPER URGATE"); -// recipient.setZipCode("42501"); -// recipient.setTaxRegimeCode("601"); -// recipient.setCfdiUseCode("S01"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (extranjero) -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("ST"); -// domicilioOrigen.setNumeroExterior("214"); -// domicilioOrigen.setColoniaId("N/A"); -// domicilioOrigen.setReferencia("WHITE HOUSE"); -// domicilioOrigen.setMunicipioId("N/A"); -// domicilioOrigen.setEstadoId("TX"); -// domicilioOrigen.setPaisId("USA"); -// domicilioOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino (extranjero) -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("ST"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setColoniaId("N/A"); -// domicilioDestino.setReferencia("WHITE HOUSE"); -// domicilioDestino.setMunicipioId("N/A"); -// domicilioDestino.setEstadoId("TX"); -// domicilioDestino.setPaisId("USA"); -// domicilioDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("ST"); -// domicilioFigura.setNumeroExterior("214"); -// domicilioFigura.setColoniaId("N/A"); -// domicilioFigura.setReferencia("WHITE HOUSE"); -// domicilioFigura.setMunicipioId("N/A"); -// domicilioFigura.setEstadoId("TX"); -// domicilioFigura.setPaisId("USA"); -// domicilioFigura.setCodigoPostalId("N/A"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("EKU9003173C9"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) -// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); - -// // Tax credentials -// List taxCredentials = new ArrayList<>(); -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// taxCredentials.add(cer); -// taxCredentials.add(key); - -// // Issuer -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setTin("EKU9003173C9"); -// issuer.setLegalName("ESCUELA KEMPER URGATE"); -// issuer.setTaxRegimeCode("601"); -// issuer.setTaxCredentials(taxCredentials); - -// // Recipient (same as issuer for international) -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setTin("EKU9003173C9"); -// recipient.setLegalName("ESCUELA KEMPER URGATE"); -// recipient.setZipCode("42501"); -// recipient.setTaxRegimeCode("601"); -// recipient.setCfdiUseCode("S01"); - -// // Items -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// List items = new ArrayList<>(); -// items.add(item); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (extranjero) -// Domicilio domicilioOrigen = new Domicilio(); -// domicilioOrigen.setCalle("ST"); -// domicilioOrigen.setNumeroExterior("214"); -// domicilioOrigen.setColoniaId("N/A"); -// domicilioOrigen.setReferencia("WHITE HOUSE"); -// domicilioOrigen.setMunicipioId("N/A"); -// domicilioOrigen.setEstadoId("TX"); -// domicilioOrigen.setPaisId("USA"); -// domicilioOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domicilioOrigen); - -// // Ubicacion Destino (extranjero) -// Domicilio domicilioDestino = new Domicilio(); -// domicilioDestino.setCalle("ST"); -// domicilioDestino.setNumeroExterior("214"); -// domicilioDestino.setColoniaId("N/A"); -// domicilioDestino.setReferencia("WHITE HOUSE"); -// domicilioDestino.setMunicipioId("N/A"); -// domicilioDestino.setEstadoId("TX"); -// domicilioDestino.setPaisId("USA"); -// domicilioDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domicilioDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); -// documentoAduanero.setTipoDocumentoId("01"); -// documentoAduanero.setNumPedimento("23 43 0472 8000448"); -// documentoAduanero.setRfcImpo("EKU9003173C9"); -// List documentosAduaneros = new ArrayList<>(); -// documentosAduaneros.add(documentoAduanero); - -// CantidadTransporta cantidadTransporta = new CantidadTransporta(); -// cantidadTransporta.setCantidad(new BigDecimal("1")); -// cantidadTransporta.setIdOrigen("OR101010"); -// cantidadTransporta.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(cantidadTransporta); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(documentosAduaneros); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura -// Domicilio domicilioFigura = new Domicilio(); -// domicilioFigura.setCalle("ST"); -// domicilioFigura.setNumeroExterior("214"); -// domicilioFigura.setColoniaId("N/A"); -// domicilioFigura.setReferencia("WHITE HOUSE"); -// domicilioFigura.setMunicipioId("N/A"); -// domicilioFigura.setEstadoId("TX"); -// domicilioFigura.setPaisId("USA"); -// domicilioFigura.setCodigoPostalId("N/A"); - -// TipoFigura tipoFigura = new TipoFigura(); -// tipoFigura.setTipoFiguraId("01"); -// tipoFigura.setRfcFigura("EKU9003173C9"); -// tipoFigura.setNumLicencia("NumLicencia1"); -// tipoFigura.setNombreFigura("NombreFigura1"); -// tipoFigura.setDomicilio(domicilioFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(tipoFigura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(currentDate); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario nacional -// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario extranjero -// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("ST"); -// domDest5.setNumeroExterior("1234"); -// domDest5.setColoniaId("1234"); -// domDest5.setReferencia("WHITE HOUSE"); -// domDest5.setMunicipioId("1234"); -// domDest5.setEstadoId("TX"); -// domDest5.setPaisId("USA"); -// domDest5.setCodigoPostalId("12345"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("XEXX010101000"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumRegIdTrib("01010101"); -// dest5.setResidenciaFiscalId("USA"); -// dest5.setNumEstacionId("EF0001"); -// dest5.setNombreEstacion("NombreEstacion"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia (with tipoMateria) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) -// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo nacional -// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Origen (aeropuerto EA0417, Loreto) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Destino (aeropuerto EA0418, Los Cabos) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (with valorMercancia and monedaId) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TransporteAereo -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); - -// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(transporteAereo); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo extranjero (salida) -// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle2"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setNumeroInterior("215"); -// domOrigen.setColoniaId("0347"); -// domOrigen.setLocalidadId("23"); -// domOrigen.setReferencia("casa negra"); -// domOrigen.setMunicipioId("004"); -// domOrigen.setEstadoId("COA"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("25350"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12344"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("EA0143"); -// destino.setNombreEstacion("Phoenix-Mesa Gateway"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) -// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo nacional -// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo extranjero (salida) -// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12345"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("N/A"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("PM120"); -// destino.setNombreEstacion("NombreEstacion"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia and tipoMateria -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// ApiResponse apiResponse = client.getInvoiceService().create( -// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); -// System.out.println(apiResponse); -// } - -// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) -// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero (two IMD entries) -// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); -// regimenAduanero1.setRegimenAduaneroId("IMD"); -// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); -// regimenAduanero2.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero1); -// regimenAduaneros.add(regimenAduanero2); - -// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); -// destino.setTipoEstacionId("02"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// ct.setCvesTransporteId("02"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("X1A"); -// detalle.setPesoBruto(new BigDecimal("1.50")); -// detalle.setPesoNeto(new BigDecimal("1.00")); -// detalle.setPesoTara(new BigDecimal("0.50")); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1.50")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("Calle1"); -// domFigura.setNumeroExterior("NumeroExterior1"); -// domFigura.setNumeroInterior("NumeroInterior1"); -// domFigura.setColoniaId("Colonia1"); -// domFigura.setLocalidadId("Localidad1"); -// domFigura.setReferencia("Referencia1"); -// domFigura.setMunicipioId("Municipio1"); -// domFigura.setEstadoId("Estado1"); -// domFigura.setPaisId("AFG"); -// domFigura.setCodigoPostalId("CodigoPosta1"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("CP3.1"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte nacional -// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (no station, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (no station, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura (no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte extranjero (salida, EXD) -// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (foreign USA/TX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("ST"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setColoniaId("N/A"); -// domOrigen.setReferencia("WHITE HOUSE"); -// domOrigen.setMunicipioId("N/A"); -// domOrigen.setEstadoId("TX"); -// domOrigen.setPaisId("USA"); -// domOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (foreign USA/TX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("214"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura with USA domicilio -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("ST"); -// domFigura.setNumeroExterior("214"); -// domFigura.setColoniaId("N/A"); -// domFigura.setReferencia("WHITE HOUSE"); -// domFigura.setMunicipioId("N/A"); -// domFigura.setEstadoId("TX"); -// domFigura.setPaisId("USA"); -// domFigura.setCodigoPostalId("N/A"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Factura traslado autotransporte internacional aduanero (entrada, IMD) -// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (foreign USA/TX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("ST"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setColoniaId("N/A"); -// domOrigen.setReferencia("WHITE HOUSE"); -// domOrigen.setMunicipioId("N/A"); -// domOrigen.setEstadoId("TX"); -// domOrigen.setPaisId("USA"); -// domOrigen.setCodigoPostalId("N/A"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("XEXX010101000"); -// origen.setNumRegIdTrib("01010101"); -// origen.setResidenciaFiscalId("USA"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (foreign USA/TX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("214"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("N/A"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDistanciaRecorrida(new BigDecimal("1")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setFormaFarmaceuticaId("01"); -// mercancia.setCondicionesEspTranspId("01"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setFraccionArancelariaId("6309000100"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // Autotransporte -// Remolque remolque = new Remolque(); -// remolque.setSubTipoRemId("CTR004"); -// remolque.setPlaca("VL45K98"); -// List remolques = new ArrayList<>(); -// remolques.add(remolque); - -// Autotransporte autotransporte = new Autotransporte(); -// autotransporte.setPermSCTId("TPAF01"); -// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); -// autotransporte.setConfigVehicularId("VL"); -// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); -// autotransporte.setPlacaVM("plac892"); -// autotransporte.setAnioModeloVM(2020); -// autotransporte.setAseguraRespCivil("AseguraRespCivil"); -// autotransporte.setPolizaRespCivil("123456789"); -// autotransporte.setRemolques(remolques); - -// // TipoFigura with USA domicilio -// Domicilio domFigura = new Domicilio(); -// domFigura.setCalle("ST"); -// domFigura.setNumeroExterior("214"); -// domFigura.setColoniaId("N/A"); -// domFigura.setReferencia("WHITE HOUSE"); -// domFigura.setMunicipioId("N/A"); -// domFigura.setEstadoId("TX"); -// domFigura.setPaisId("USA"); -// domFigura.setCodigoPostalId("N/A"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("NumLicencia1"); -// figura.setNombreFigura("NombreFigura1"); -// figura.setDomicilio(domFigura); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("01"); -// cartaPorte.setTotalDistRec(new BigDecimal("1")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setAutotransporte(autotransporte); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("SerieCCP31"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse); -// } - -// // Ejemplo 17: Factura traslado transporte ferroviario nacional -// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse17); -// } - -// // Ejemplo 18: Factura traslado transporte ferroviario extranjero -// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("ST"); -// domDest5.setNumeroExterior("1234"); -// domDest5.setColoniaId("1234"); -// domDest5.setReferencia("WHITE HOUSE"); -// domDest5.setMunicipioId("1234"); -// domDest5.setEstadoId("TX"); -// domDest5.setPaisId("USA"); -// domDest5.setCodigoPostalId("12345"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("XEXX010101000"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumRegIdTrib("01010101"); -// dest5.setResidenciaFiscalId("USA"); -// dest5.setNumEstacionId("EF0001"); -// dest5.setNombreEstacion("NombreEstacion"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia (with tipoMateria) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse18); -// } - -// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) -// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) -// List ubicaciones = buildUbicacionesFerroviarioComunes(); -// Domicilio domDest5 = new Domicilio(); -// domDest5.setCalle("Calle2"); -// domDest5.setNumeroExterior("214"); -// domDest5.setNumeroInterior("215"); -// domDest5.setColoniaId("0347"); -// domDest5.setLocalidadId("23"); -// domDest5.setReferencia("casa negra"); -// domDest5.setMunicipioId("004"); -// domDest5.setEstadoId("COA"); -// domDest5.setPaisId("MEX"); -// domDest5.setCodigoPostalId("25350"); - -// Ubicacion dest5 = new Ubicacion(); -// dest5.setTipoUbicacion("Destino"); -// dest5.setIdUbicacion("DE202025"); -// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest5.setNumEstacionId("JM047"); -// dest5.setNombreEstacion("HUEHUETOCA"); -// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); -// dest5.setTipoEstacionId("03"); -// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); -// dest5.setDomicilio(domDest5); -// ubicaciones.add(dest5); - -// // Mercancia con documentacion aduanera y tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202025"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("04"); -// cartaPorte.setTotalDistRec(new BigDecimal("500")); -// cartaPorte.setRegistroISTMOId("Sí"); -// cartaPorte.setUbicacionPoloOrigenId("01"); -// cartaPorte.setUbicacionPoloDestinoId("01"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse19); -// } - -// // Ejemplo 20: Factura traslado transporte aereo nacional -// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Origen (aeropuerto EA0417, Loreto) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Destino (aeropuerto EA0418, Los Cabos) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia (with valorMercancia and monedaId) -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TransporteAereo -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); - -// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(transporteAereo); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse20); -// } - -// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) -// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle2"); -// domOrigen.setNumeroExterior("214"); -// domOrigen.setNumeroInterior("215"); -// domOrigen.setColoniaId("0347"); -// domOrigen.setLocalidadId("23"); -// domOrigen.setReferencia("casa negra"); -// domOrigen.setMunicipioId("004"); -// domOrigen.setEstadoId("COA"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("25350"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12344"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("WHITE HOUSE"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("EA0143"); -// destino.setNombreEstacion("Phoenix-Mesa Gateway"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse21); -// } - -// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) -// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("EA0417"); -// origen.setNombreEstacion("Loreto"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("EA0418"); -// destino.setNombreEstacion("Los Cabos"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia con documentacion aduanera y tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("01"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNumLicencia("a234567890"); -// figura.setNombreFigura("NombreFigura"); -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("03"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); -// cartaPorte.setTiposFigura(tiposFigura); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse22); -// } - -// // Ejemplo 23: Factura traslado transporte maritimo nacional -// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("No"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse23); -// } - -// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) -// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero -// RegimenAduanero regimenAduanero = new RegimenAduanero(); -// regimenAduanero.setRegimenAduaneroId("EXD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("ST"); -// domDestino.setNumeroExterior("12345"); -// domDestino.setColoniaId("N/A"); -// domDestino.setReferencia("N/A"); -// domDestino.setMunicipioId("N/A"); -// domDestino.setEstadoId("TX"); -// domDestino.setPaisId("USA"); -// domDestino.setCodigoPostalId("12345"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("XEXX010101000"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumRegIdTrib("01010101"); -// destino.setResidenciaFiscalId("USA"); -// destino.setNumEstacionId("PM120"); -// destino.setNombreEstacion("NombreEstacion"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with detalleMercancia and tipoMateria -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Salida"); -// cartaPorte.setPaisOrigenDestinoId("USA"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse24); -// } - -// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) -// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { -// FiscalApiClient client = FiscalApiClient.create(settings); -// List items = new ArrayList<>(); -// items.add(buildStandardItem()); - -// // Regimen aduanero (two IMD entries) -// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); -// regimenAduanero1.setRegimenAduaneroId("IMD"); -// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); -// regimenAduanero2.setRegimenAduaneroId("IMD"); -// List regimenAduaneros = new ArrayList<>(); -// regimenAduaneros.add(regimenAduanero1); -// regimenAduaneros.add(regimenAduanero2); - -// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("PM001"); -// origen.setNombreEstacion("Rosarito"); -// origen.setNavegacionTraficoId("Altura"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) -// Domicilio domDestino = new Domicilio(); -// domDestino.setCalle("Calle2"); -// domDestino.setNumeroExterior("214"); -// domDestino.setNumeroInterior("215"); -// domDestino.setColoniaId("0347"); -// domDestino.setLocalidadId("23"); -// domDestino.setReferencia("casa negra"); -// domDestino.setMunicipioId("004"); -// domDestino.setEstadoId("COA"); -// domDestino.setPaisId("MEX"); -// domDestino.setCodigoPostalId("25350"); - -// Ubicacion destino = new Ubicacion(); -// destino.setTipoUbicacion("Destino"); -// destino.setIdUbicacion("DE202020"); -// destino.setRfcRemitenteDestinatario("EKU9003173C9"); -// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// destino.setNumEstacionId("PM001"); -// destino.setNombreEstacion("Rosarito"); -// destino.setNavegacionTraficoId("Altura"); -// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); -// destino.setTipoEstacionId("03"); -// destino.setDomicilio(domDestino); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(destino); - -// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria -// DocumentoAduanero doc = new DocumentoAduanero(); -// doc.setTipoDocumentoId("01"); -// doc.setNumPedimento("23 43 0472 8000448"); -// doc.setRfcImpo("EKU9003173C9"); -// List docs = new ArrayList<>(); -// docs.add(doc); - -// CantidadTransporta ct = new CantidadTransporta(); -// ct.setCantidad(new BigDecimal("1")); -// ct.setIdOrigen("OR101010"); -// ct.setIdDestino("DE202020"); -// List cantTransList = new ArrayList<>(); -// cantTransList.add(ct); - -// DetalleMercancia detalle = new DetalleMercancia(); -// detalle.setUnidadPesoMercId("Tu"); -// detalle.setPesoBruto(new BigDecimal("1")); -// detalle.setPesoNeto(new BigDecimal("1")); -// detalle.setPesoTara(new BigDecimal("0.001")); -// detalle.setNumPiezas(1); - -// Mercancia mercancia = new Mercancia(); -// mercancia.setBienesTranspId("11121900"); -// mercancia.setDescripcion("Accesorios de equipo de telefonía"); -// mercancia.setCantidad(new BigDecimal("1.0")); -// mercancia.setClaveUnidadId("XBX"); -// mercancia.setMaterialPeligrosoId("No"); -// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); -// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); -// mercancia.setFabricante("Fabricante1"); -// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); -// mercancia.setLoteMedicamento("LoteMedic1"); -// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); -// mercancia.setPesoEnKg(new BigDecimal("1")); -// mercancia.setValorMercancia(new BigDecimal("100")); -// mercancia.setMonedaId("MXN"); -// mercancia.setTipoMateriaId("05"); -// mercancia.setDescripcionMateria("otramateria"); -// mercancia.setDocumentacionAduanera(docs); -// mercancia.setCantidadTransporta(cantTransList); -// mercancia.setDetalleMercancia(detalle); -// List mercancias = new ArrayList<>(); -// mercancias.add(mercancia); - -// // CartaPorte -// CartaPorte cartaPorte = new CartaPorte(); -// cartaPorte.setTranspInternacId("Sí"); -// cartaPorte.setEntradaSalidaMercId("Entrada"); -// cartaPorte.setPaisOrigenDestinoId("AFG"); -// cartaPorte.setViaEntradaSalidaId("02"); -// cartaPorte.setUnidadPesoId("XBX"); -// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); -// cartaPorte.setRegimenAduaneros(regimenAduaneros); -// cartaPorte.setUbicaciones(ubicaciones); -// cartaPorte.setMercancias(mercancias); -// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); -// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); - -// Complement complement = new Complement(); -// complement.setCartaPorte(cartaPorte); - -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setCurrencyCode("XXX"); -// invoice.setTypeCode("T"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(buildIssuerEKU()); -// invoice.setRecipient(buildRecipientEKU()); -// invoice.setItems(items); -// invoice.setComplement(complement); - -// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); -// System.out.println(apiResponse25); -// } - -// // ── Helper methods ────────────────────────────────────────────────────────── - -// private List buildTaxCredentials() { -// TaxCredential cer = new TaxCredential(); -// cer.setBase64File(escuelaKemperUrgateBase64Cer); -// cer.setFileType(0); -// cer.setPassword(password); -// TaxCredential key = new TaxCredential(); -// key.setBase64File(escuelaKemperUrgateBase64Key); -// key.setFileType(1); -// key.setPassword(password); -// List credentials = new ArrayList<>(); -// credentials.add(cer); -// credentials.add(key); -// return credentials; -// } - -// private InvoiceIssuer buildIssuerEKU() { -// InvoiceIssuer issuer = new InvoiceIssuer(); -// issuer.setTin("EKU9003173C9"); -// issuer.setLegalName("ESCUELA KEMPER URGATE"); -// issuer.setTaxRegimeCode("601"); -// issuer.setTaxCredentials(buildTaxCredentials()); -// return issuer; -// } - -// private InvoiceRecipient buildRecipientEKU() { -// InvoiceRecipient recipient = new InvoiceRecipient(); -// recipient.setTin("EKU9003173C9"); -// recipient.setLegalName("ESCUELA KEMPER URGATE"); -// recipient.setZipCode("42501"); -// recipient.setTaxRegimeCode("601"); -// recipient.setCfdiUseCode("S01"); -// return recipient; -// } - -// private InvoiceItem buildStandardItem() { -// InvoiceItem item = new InvoiceItem(); -// item.setItemCode("78101800"); -// item.setItemSku("UT421511"); -// item.setQuantity(new BigDecimal("1")); -// item.setUnitOfMeasurementCode("H87"); -// item.setDescription("Transporte de carga por carretera"); -// item.setUnitPrice(new BigDecimal("100.00")); -// item.setDiscount(new BigDecimal("0")); -// item.setTaxObjectCode("01"); -// item.setItemTaxes(new ArrayList<>()); -// return item; -// } - -// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, -// List items, Complement complement) { -// Invoice invoice = new Invoice(); -// invoice.setVersionCode("4.0"); -// invoice.setPaymentFormCode("01"); -// invoice.setPaymentMethodCode("PUE"); -// invoice.setCurrencyCode("MXN"); -// invoice.setTypeCode("I"); -// invoice.setExpeditionZipCode("42501"); -// invoice.setSeries("Serie"); -// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); -// invoice.setExchangeRate(new BigDecimal("1")); -// invoice.setExportCode("01"); -// invoice.setIssuer(issuer); -// invoice.setRecipient(recipient); -// invoice.setItems(items); -// invoice.setComplement(complement); -// return invoice; -// } - -// private TransporteAereo buildTransporteAereoCP() { -// TransporteAereo transporteAereo = new TransporteAereo(); -// transporteAereo.setPermSCTId("TPAF01"); -// transporteAereo.setNumPermisoSCT("Demo"); -// transporteAereo.setMatriculaAeronave("61E5-WZ"); -// transporteAereo.setNombreAseg("NombreAseg"); -// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); -// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); -// transporteAereo.setLugarContrato("LugarContrato"); -// transporteAereo.setCodigoTransportistaId("CA001"); -// transporteAereo.setRfcEmbarcador("EKU9003173C9"); -// transporteAereo.setNombreEmbarcador("Embarcador"); -// return transporteAereo; -// } - -// private TransporteMaritimo buildTransporteMaritimo() { -// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); -// remolqueCCP.setSubTipoRemCCPId("CTR001"); -// remolqueCCP.setPlacaCCP("JNG7636"); -// List remolquesCCP = new ArrayList<>(); -// remolquesCCP.add(remolqueCCP); - -// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); -// contenedor.setTipoContenedorId("CM011"); -// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); -// contenedor.setPlacaVMCCP("JNG7683"); -// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); -// contenedor.setRemolquesCCP(remolquesCCP); -// List contenedores = new ArrayList<>(); -// contenedores.add(contenedor); - -// TransporteMaritimo maritimo = new TransporteMaritimo(); -// maritimo.setPermSCTId("TPAF01"); -// maritimo.setNumPermisoSCT("NumPermisoSCT1"); -// maritimo.setNombreAseg("NombreAseg1"); -// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); -// maritimo.setTipoEmbarcacionId("B01"); -// maritimo.setMatricula("Matricula1"); -// maritimo.setNumeroOMI("IMO1234567"); -// maritimo.setAnioEmbarcacion(2003); -// maritimo.setNombreEmbarc("NombreEmbarc1"); -// maritimo.setNacionalidadEmbarcId("AFG"); -// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); -// maritimo.setTipoCargaId("CGS"); -// maritimo.setEslora(new BigDecimal("0.01")); -// maritimo.setManga(new BigDecimal("0.01")); -// maritimo.setCalado(new BigDecimal("0.01")); -// maritimo.setPuntal(new BigDecimal("0.01")); -// maritimo.setLineaNaviera("LineaNaviera1"); -// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); -// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); -// maritimo.setNumViaje("NumViaje1"); -// maritimo.setNumConocEmbarc("NumConocEmbarc1"); -// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); -// maritimo.setContenedores(contenedores); -// return maritimo; -// } - -// private TransporteFerroviario buildTransporteFerroviario() { -// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); -// derecho.setTipoDerechoDePasoId("CDP114"); -// derecho.setKilometrajePagado(new BigDecimal("100")); -// List derechos = new ArrayList<>(); -// derechos.add(derecho); - -// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); -// carro.setTipoCarroId("TC08"); -// carro.setMatriculaCarro("A00012"); -// carro.setGuiaCarro("123ASD"); -// carro.setToneladasNetasCarro(new BigDecimal("10")); -// List carros = new ArrayList<>(); -// carros.add(carro); - -// TransporteFerroviario transporte = new TransporteFerroviario(); -// transporte.setTipoDeServicioId("TS01"); -// transporte.setTipoDeTraficoId("TT01"); -// transporte.setDerechosDePaso(derechos); -// transporte.setCarros(carros); -// return transporte; -// } - -// private List buildTiposFiguraFerroviario() { -// ParteTransporte parte = new ParteTransporte(); -// parte.setParteTransporteId("PT02"); -// List partes = new ArrayList<>(); -// partes.add(parte); - -// Domicilio domicilio = new Domicilio(); -// domicilio.setCalle("calle"); -// domicilio.setNumeroExterior("211"); -// domicilio.setColoniaId("0814"); -// domicilio.setLocalidadId("01"); -// domicilio.setReferencia("casa blanca"); -// domicilio.setMunicipioId("010"); -// domicilio.setEstadoId("ZAC"); -// domicilio.setPaisId("MEX"); -// domicilio.setCodigoPostalId("99080"); - -// TipoFigura figura = new TipoFigura(); -// figura.setTipoFiguraId("02"); -// figura.setRfcFigura("EKU9003173C9"); -// figura.setNombreFigura("NombreFigura"); -// figura.setPartesTransporte(partes); -// figura.setDomicilio(domicilio); - -// List tiposFigura = new ArrayList<>(); -// tiposFigura.add(figura); -// return tiposFigura; -// } - -// private List buildUbicacionesFerroviarioComunes() { -// Domicilio domOrigen = new Domicilio(); -// domOrigen.setCalle("Calle1"); -// domOrigen.setNumeroExterior("211"); -// domOrigen.setNumeroInterior("212"); -// domOrigen.setColoniaId("1957"); -// domOrigen.setLocalidadId("13"); -// domOrigen.setReferencia("casa blanca"); -// domOrigen.setMunicipioId("011"); -// domOrigen.setEstadoId("CMX"); -// domOrigen.setPaisId("MEX"); -// domOrigen.setCodigoPostalId("13250"); - -// Ubicacion origen = new Ubicacion(); -// origen.setTipoUbicacion("Origen"); -// origen.setIdUbicacion("OR101010"); -// origen.setRfcRemitenteDestinatario("EKU9003173C9"); -// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); -// origen.setNumEstacionId("Q0736"); -// origen.setNombreEstacion("SANTO NINO"); -// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); -// origen.setTipoEstacionId("01"); -// origen.setDomicilio(domOrigen); - -// Ubicacion dest1 = new Ubicacion(); -// dest1.setTipoUbicacion("Destino"); -// dest1.setIdUbicacion("DE202021"); -// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest1.setNumEstacionId("SC283"); -// dest1.setNombreEstacion("HUAXTITLA"); -// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); -// dest1.setTipoEstacionId("02"); -// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest2 = new Ubicacion(); -// dest2.setTipoUbicacion("Destino"); -// dest2.setIdUbicacion("DE202022"); -// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest2.setNumEstacionId("TG0"); -// dest2.setNombreEstacion("NAVOJOA"); -// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); -// dest2.setTipoEstacionId("02"); -// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest3 = new Ubicacion(); -// dest3.setTipoUbicacion("Destino"); -// dest3.setIdUbicacion("DE202023"); -// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest3.setNumEstacionId("E0029"); -// dest3.setNombreEstacion("TRES JAGUEYES"); -// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); -// dest3.setTipoEstacionId("02"); -// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); - -// Ubicacion dest4 = new Ubicacion(); -// dest4.setTipoUbicacion("Destino"); -// dest4.setIdUbicacion("DE202024"); -// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); -// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); -// dest4.setNumEstacionId("TI032"); -// dest4.setNombreEstacion("NAVOLATO"); -// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); -// dest4.setTipoEstacionId("02"); -// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); - -// List ubicaciones = new ArrayList<>(); -// ubicaciones.add(origen); -// ubicaciones.add(dest1); -// ubicaciones.add(dest2); -// ubicaciones.add(dest3); -// ubicaciones.add(dest4); -// return ubicaciones; -// } -// } +package com.fiscalapi.examples; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import com.fiscalapi.OptUtil; +import com.fiscalapi.common.ApiResponse; +import com.fiscalapi.common.FiscalApiSettings; +import com.fiscalapi.models.invoicing.Complement; +import com.fiscalapi.models.invoicing.Invoice; +import com.fiscalapi.models.invoicing.InvoiceIssuer; +import com.fiscalapi.models.invoicing.InvoiceItem; +import com.fiscalapi.models.invoicing.InvoiceRecipient; +import com.fiscalapi.models.invoicing.ItemTax; +import com.fiscalapi.models.invoicing.TaxCredential; +import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +import com.fiscalapi.models.invoicing.billOfLading.Remolque; +import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +import com.fiscalapi.services.FiscalApiClient; + +public class EjemplosCartaPorteValores { + + final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; + final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; + final String password = "12345678a"; + + public void main(String[] args) { + FiscalApiSettings settings = new FiscalApiSettings(); + settings.setDebugMode(true); + settings.setApiUrl("https://test.fiscalapi.com"); + settings.setApiKey("api_key"); + settings.setTenant("tenant_id"); + + facturaIngresoAutoTransporteNacional(settings); + } + + // Factura ingreso autotransporte nacional (sin impuestos) + private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Tax credentials + List taxCredentials = new ArrayList<>(); + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + taxCredentials.add(cer); + taxCredentials.add(key); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setTin("EKU9003173C9"); + issuer.setLegalName("ESCUELA KEMPER URGATE"); + issuer.setTaxRegimeCode("601"); + issuer.setTaxCredentials(taxCredentials); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setTin("URE180429TM6"); + recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); + recipient.setZipCode("86991"); + recipient.setTaxRegimeCode("601"); + recipient.setCfdiUseCode("S01"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Ubicacion Origen + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("Calle1"); + domicilioOrigen.setNumeroExterior("211"); + domicilioOrigen.setNumeroInterior("212"); + domicilioOrigen.setColoniaId("1957"); + domicilioOrigen.setLocalidadId("13"); + domicilioOrigen.setReferencia("casa blanca"); + domicilioOrigen.setMunicipioId("011"); + domicilioOrigen.setEstadoId("CMX"); + domicilioOrigen.setPaisId("MEX"); + domicilioOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("URE180429TM6"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("Calle2"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setNumeroInterior("215"); + domicilioDestino.setColoniaId("0347"); + domicilioDestino.setLocalidadId("23"); + domicilioDestino.setReferencia("casa negra"); + domicilioDestino.setMunicipioId("004"); + domicilioDestino.setEstadoId("COA"); + domicilioDestino.setPaisId("MEX"); + domicilioDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("URE180429TM6"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("Calle1"); + domicilioFigura.setNumeroExterior("NumeroExterior1"); + domicilioFigura.setNumeroInterior("NumeroInterior1"); + domicilioFigura.setColoniaId("Colonia1"); + domicilioFigura.setLocalidadId("Localidad1"); + domicilioFigura.setReferencia("Referencia1"); + domicilioFigura.setMunicipioId("Municipio1"); + domicilioFigura.setEstadoId("Estado1"); + domicilioFigura.setPaisId("AFG"); + domicilioFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("URE180429TM6"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte nacional con impuestos + private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Tax credentials + List taxCredentials = new ArrayList<>(); + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + taxCredentials.add(cer); + taxCredentials.add(key); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setTin("EKU9003173C9"); + issuer.setLegalName("ESCUELA KEMPER URGATE"); + issuer.setTaxRegimeCode("601"); + issuer.setTaxCredentials(taxCredentials); + + // Recipient + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setTin("URE180429TM6"); + recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); + recipient.setZipCode("86991"); + recipient.setTaxRegimeCode("601"); + recipient.setCfdiUseCode("S01"); + + // Items + List itemTaxes = new ArrayList<>(); + ItemTax ivaTraslado = new ItemTax(); + ivaTraslado.setTaxCode("002"); + ivaTraslado.setTaxTypeCode("Tasa"); + ivaTraslado.setTaxRate(new BigDecimal("0.160000")); + ivaTraslado.setTaxFlagCode("T"); + itemTaxes.add(ivaTraslado); + ItemTax ivaRetencion = new ItemTax(); + ivaRetencion.setTaxCode("002"); + ivaRetencion.setTaxTypeCode("Tasa"); + ivaRetencion.setTaxRate(new BigDecimal("0.040000")); + ivaRetencion.setTaxFlagCode("R"); + itemTaxes.add(ivaRetencion); + + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("26232.75")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("02"); + item.setItemTaxes(itemTaxes); + List items = new ArrayList<>(); + items.add(item); + + // Ubicacion Origen + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("Calle1"); + domicilioOrigen.setNumeroExterior("211"); + domicilioOrigen.setNumeroInterior("212"); + domicilioOrigen.setColoniaId("1957"); + domicilioOrigen.setLocalidadId("13"); + domicilioOrigen.setReferencia("casa blanca"); + domicilioOrigen.setMunicipioId("011"); + domicilioOrigen.setEstadoId("CMX"); + domicilioOrigen.setPaisId("MEX"); + domicilioOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("URE180429TM6"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("Calle2"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setNumeroInterior("215"); + domicilioDestino.setColoniaId("0347"); + domicilioDestino.setLocalidadId("23"); + domicilioDestino.setReferencia("casa negra"); + domicilioDestino.setMunicipioId("004"); + domicilioDestino.setEstadoId("COA"); + domicilioDestino.setPaisId("MEX"); + domicilioDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("URE180429TM6"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("Calle1"); + domicilioFigura.setNumeroExterior("NumeroExterior1"); + domicilioFigura.setNumeroInterior("NumeroInterior1"); + domicilioFigura.setColoniaId("Colonia1"); + domicilioFigura.setLocalidadId("Localidad1"); + domicilioFigura.setReferencia("Referencia1"); + domicilioFigura.setMunicipioId("Municipio1"); + domicilioFigura.setEstadoId("Estado1"); + domicilioFigura.setPaisId("AFG"); + domicilioFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("URE180429TM6"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte extranjero (salida) + private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Tax credentials + List taxCredentials = new ArrayList<>(); + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + taxCredentials.add(cer); + taxCredentials.add(key); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setTin("EKU9003173C9"); + issuer.setLegalName("ESCUELA KEMPER URGATE"); + issuer.setTaxRegimeCode("601"); + issuer.setTaxCredentials(taxCredentials); + + // Recipient (same as issuer for international) + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setTin("EKU9003173C9"); + recipient.setLegalName("ESCUELA KEMPER URGATE"); + recipient.setZipCode("42501"); + recipient.setTaxRegimeCode("601"); + recipient.setCfdiUseCode("S01"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (extranjero) + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("ST"); + domicilioOrigen.setNumeroExterior("214"); + domicilioOrigen.setColoniaId("N/A"); + domicilioOrigen.setReferencia("WHITE HOUSE"); + domicilioOrigen.setMunicipioId("N/A"); + domicilioOrigen.setEstadoId("TX"); + domicilioOrigen.setPaisId("USA"); + domicilioOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino (extranjero) + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("ST"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setColoniaId("N/A"); + domicilioDestino.setReferencia("WHITE HOUSE"); + domicilioDestino.setMunicipioId("N/A"); + domicilioDestino.setEstadoId("TX"); + domicilioDestino.setPaisId("USA"); + domicilioDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("ST"); + domicilioFigura.setNumeroExterior("214"); + domicilioFigura.setColoniaId("N/A"); + domicilioFigura.setReferencia("WHITE HOUSE"); + domicilioFigura.setMunicipioId("N/A"); + domicilioFigura.setEstadoId("TX"); + domicilioFigura.setPaisId("USA"); + domicilioFigura.setCodigoPostalId("N/A"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("EKU9003173C9"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) + private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + + // Tax credentials + List taxCredentials = new ArrayList<>(); + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + taxCredentials.add(cer); + taxCredentials.add(key); + + // Issuer + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setTin("EKU9003173C9"); + issuer.setLegalName("ESCUELA KEMPER URGATE"); + issuer.setTaxRegimeCode("601"); + issuer.setTaxCredentials(taxCredentials); + + // Recipient (same as issuer for international) + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setTin("EKU9003173C9"); + recipient.setLegalName("ESCUELA KEMPER URGATE"); + recipient.setZipCode("42501"); + recipient.setTaxRegimeCode("601"); + recipient.setCfdiUseCode("S01"); + + // Items + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + List items = new ArrayList<>(); + items.add(item); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (extranjero) + Domicilio domicilioOrigen = new Domicilio(); + domicilioOrigen.setCalle("ST"); + domicilioOrigen.setNumeroExterior("214"); + domicilioOrigen.setColoniaId("N/A"); + domicilioOrigen.setReferencia("WHITE HOUSE"); + domicilioOrigen.setMunicipioId("N/A"); + domicilioOrigen.setEstadoId("TX"); + domicilioOrigen.setPaisId("USA"); + domicilioOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domicilioOrigen); + + // Ubicacion Destino (extranjero) + Domicilio domicilioDestino = new Domicilio(); + domicilioDestino.setCalle("ST"); + domicilioDestino.setNumeroExterior("214"); + domicilioDestino.setColoniaId("N/A"); + domicilioDestino.setReferencia("WHITE HOUSE"); + domicilioDestino.setMunicipioId("N/A"); + domicilioDestino.setEstadoId("TX"); + domicilioDestino.setPaisId("USA"); + domicilioDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domicilioDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera + DocumentoAduanero documentoAduanero = new DocumentoAduanero(); + documentoAduanero.setTipoDocumentoId("01"); + documentoAduanero.setNumPedimento("23 43 0472 8000448"); + documentoAduanero.setRfcImpo("EKU9003173C9"); + List documentosAduaneros = new ArrayList<>(); + documentosAduaneros.add(documentoAduanero); + + CantidadTransporta cantidadTransporta = new CantidadTransporta(); + cantidadTransporta.setCantidad(new BigDecimal("1")); + cantidadTransporta.setIdOrigen("OR101010"); + cantidadTransporta.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(cantidadTransporta); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(documentosAduaneros); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura + Domicilio domicilioFigura = new Domicilio(); + domicilioFigura.setCalle("ST"); + domicilioFigura.setNumeroExterior("214"); + domicilioFigura.setColoniaId("N/A"); + domicilioFigura.setReferencia("WHITE HOUSE"); + domicilioFigura.setMunicipioId("N/A"); + domicilioFigura.setEstadoId("TX"); + domicilioFigura.setPaisId("USA"); + domicilioFigura.setCodigoPostalId("N/A"); + + TipoFigura tipoFigura = new TipoFigura(); + tipoFigura.setTipoFiguraId("01"); + tipoFigura.setRfcFigura("EKU9003173C9"); + tipoFigura.setNumLicencia("NumLicencia1"); + tipoFigura.setNombreFigura("NombreFigura1"); + tipoFigura.setDomicilio(domicilioFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(tipoFigura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(currentDate); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario nacional + private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario extranjero + private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("ST"); + domDest5.setNumeroExterior("1234"); + domDest5.setColoniaId("1234"); + domDest5.setReferencia("WHITE HOUSE"); + domDest5.setMunicipioId("1234"); + domDest5.setEstadoId("TX"); + domDest5.setPaisId("USA"); + domDest5.setCodigoPostalId("12345"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("XEXX010101000"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumRegIdTrib("01010101"); + dest5.setResidenciaFiscalId("USA"); + dest5.setNumEstacionId("EF0001"); + dest5.setNombreEstacion("NombreEstacion"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia (with tipoMateria) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) + private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia con documentacion aduanera + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo nacional + private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Origen (aeropuerto EA0417, Loreto) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Destino (aeropuerto EA0418, Los Cabos) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (with valorMercancia and monedaId) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TransporteAereo + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + + // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(transporteAereo); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo extranjero (salida) + private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, COA/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle2"); + domOrigen.setNumeroExterior("214"); + domOrigen.setNumeroInterior("215"); + domOrigen.setColoniaId("0347"); + domOrigen.setLocalidadId("23"); + domOrigen.setReferencia("casa negra"); + domOrigen.setMunicipioId("004"); + domOrigen.setEstadoId("COA"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("25350"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12344"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("EA0143"); + destino.setNombreEstacion("Phoenix-Mesa Gateway"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) + private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo nacional + private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo extranjero (salida) + private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12345"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("N/A"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("PM120"); + destino.setNombreEstacion("NombreEstacion"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia and tipoMateria + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + ApiResponse apiResponse = client.getInvoiceService().create( + buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); + System.out.println(apiResponse); + } + + // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) + private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero (two IMD entries) + RegimenAduanero regimenAduanero1 = new RegimenAduanero(); + regimenAduanero1.setRegimenAduaneroId("IMD"); + RegimenAduanero regimenAduanero2 = new RegimenAduanero(); + regimenAduanero2.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero1); + regimenAduaneros.add(regimenAduanero2); + + // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); + destino.setTipoEstacionId("02"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + ct.setCvesTransporteId("02"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("X1A"); + detalle.setPesoBruto(new BigDecimal("1.50")); + detalle.setPesoNeto(new BigDecimal("1.00")); + detalle.setPesoTara(new BigDecimal("0.50")); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1.50")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("Calle1"); + domFigura.setNumeroExterior("NumeroExterior1"); + domFigura.setNumeroInterior("NumeroInterior1"); + domFigura.setColoniaId("Colonia1"); + domFigura.setLocalidadId("Localidad1"); + domFigura.setReferencia("Referencia1"); + domFigura.setMunicipioId("Municipio1"); + domFigura.setEstadoId("Estado1"); + domFigura.setPaisId("AFG"); + domFigura.setCodigoPostalId("CodigoPosta1"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("CP3.1"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte nacional + private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (no station, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (no station, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura (no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte extranjero (salida, EXD) + private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (foreign USA/TX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("ST"); + domOrigen.setNumeroExterior("214"); + domOrigen.setColoniaId("N/A"); + domOrigen.setReferencia("WHITE HOUSE"); + domOrigen.setMunicipioId("N/A"); + domOrigen.setEstadoId("TX"); + domOrigen.setPaisId("USA"); + domOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (foreign USA/TX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("214"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura with USA domicilio + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("ST"); + domFigura.setNumeroExterior("214"); + domFigura.setColoniaId("N/A"); + domFigura.setReferencia("WHITE HOUSE"); + domFigura.setMunicipioId("N/A"); + domFigura.setEstadoId("TX"); + domFigura.setPaisId("USA"); + domFigura.setCodigoPostalId("N/A"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Factura traslado autotransporte internacional aduanero (entrada, IMD) + private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (foreign USA/TX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("ST"); + domOrigen.setNumeroExterior("214"); + domOrigen.setColoniaId("N/A"); + domOrigen.setReferencia("WHITE HOUSE"); + domOrigen.setMunicipioId("N/A"); + domOrigen.setEstadoId("TX"); + domOrigen.setPaisId("USA"); + domOrigen.setCodigoPostalId("N/A"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("XEXX010101000"); + origen.setNumRegIdTrib("01010101"); + origen.setResidenciaFiscalId("USA"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (foreign USA/TX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("214"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("N/A"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDistanciaRecorrida(new BigDecimal("1")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setFormaFarmaceuticaId("01"); + mercancia.setCondicionesEspTranspId("01"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setFraccionArancelariaId("6309000100"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // Autotransporte + Remolque remolque = new Remolque(); + remolque.setSubTipoRemId("CTR004"); + remolque.setPlaca("VL45K98"); + List remolques = new ArrayList<>(); + remolques.add(remolque); + + Autotransporte autotransporte = new Autotransporte(); + autotransporte.setPermSCTId("TPAF01"); + autotransporte.setNumPermisoSCT("NumPermisoSCT1"); + autotransporte.setConfigVehicularId("VL"); + autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); + autotransporte.setPlacaVM("plac892"); + autotransporte.setAnioModeloVM(2020); + autotransporte.setAseguraRespCivil("AseguraRespCivil"); + autotransporte.setPolizaRespCivil("123456789"); + autotransporte.setRemolques(remolques); + + // TipoFigura with USA domicilio + Domicilio domFigura = new Domicilio(); + domFigura.setCalle("ST"); + domFigura.setNumeroExterior("214"); + domFigura.setColoniaId("N/A"); + domFigura.setReferencia("WHITE HOUSE"); + domFigura.setMunicipioId("N/A"); + domFigura.setEstadoId("TX"); + domFigura.setPaisId("USA"); + domFigura.setCodigoPostalId("N/A"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("NumLicencia1"); + figura.setNombreFigura("NombreFigura1"); + figura.setDomicilio(domFigura); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("01"); + cartaPorte.setTotalDistRec(new BigDecimal("1")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setAutotransporte(autotransporte); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("SerieCCP31"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse = client.getInvoiceService().create(invoice); + System.out.println(apiResponse); + } + + // Ejemplo 17: Factura traslado transporte ferroviario nacional + private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse17); + } + + // Ejemplo 18: Factura traslado transporte ferroviario extranjero + private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("ST"); + domDest5.setNumeroExterior("1234"); + domDest5.setColoniaId("1234"); + domDest5.setReferencia("WHITE HOUSE"); + domDest5.setMunicipioId("1234"); + domDest5.setEstadoId("TX"); + domDest5.setPaisId("USA"); + domDest5.setCodigoPostalId("12345"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("XEXX010101000"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumRegIdTrib("01010101"); + dest5.setResidenciaFiscalId("USA"); + dest5.setNumEstacionId("EF0001"); + dest5.setNombreEstacion("NombreEstacion"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia (with tipoMateria) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse18); + } + + // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) + private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) + List ubicaciones = buildUbicacionesFerroviarioComunes(); + Domicilio domDest5 = new Domicilio(); + domDest5.setCalle("Calle2"); + domDest5.setNumeroExterior("214"); + domDest5.setNumeroInterior("215"); + domDest5.setColoniaId("0347"); + domDest5.setLocalidadId("23"); + domDest5.setReferencia("casa negra"); + domDest5.setMunicipioId("004"); + domDest5.setEstadoId("COA"); + domDest5.setPaisId("MEX"); + domDest5.setCodigoPostalId("25350"); + + Ubicacion dest5 = new Ubicacion(); + dest5.setTipoUbicacion("Destino"); + dest5.setIdUbicacion("DE202025"); + dest5.setRfcRemitenteDestinatario("EKU9003173C9"); + dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest5.setNumEstacionId("JM047"); + dest5.setNombreEstacion("HUEHUETOCA"); + dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); + dest5.setTipoEstacionId("03"); + dest5.setDistanciaRecorrida(new BigDecimal("100.00")); + dest5.setDomicilio(domDest5); + ubicaciones.add(dest5); + + // Mercancia con documentacion aduanera y tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202025"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("04"); + cartaPorte.setTotalDistRec(new BigDecimal("500")); + cartaPorte.setRegistroISTMOId("Sí"); + cartaPorte.setUbicacionPoloOrigenId("01"); + cartaPorte.setUbicacionPoloDestinoId("01"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse19); + } + + // Ejemplo 20: Factura traslado transporte aereo nacional + private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Origen (aeropuerto EA0417, Loreto) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Destino (aeropuerto EA0418, Los Cabos) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia (with valorMercancia and monedaId) + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TransporteAereo + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + + // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(transporteAereo); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse20); + } + + // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) + private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, COA/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle2"); + domOrigen.setNumeroExterior("214"); + domOrigen.setNumeroInterior("215"); + domOrigen.setColoniaId("0347"); + domOrigen.setLocalidadId("23"); + domOrigen.setReferencia("casa negra"); + domOrigen.setMunicipioId("004"); + domOrigen.setEstadoId("COA"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("25350"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12344"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("WHITE HOUSE"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("EA0143"); + destino.setNombreEstacion("Phoenix-Mesa Gateway"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia, no partesTransporte, no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse21); + } + + // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) + private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("EA0417"); + origen.setNombreEstacion("Loreto"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("EA0418"); + destino.setNombreEstacion("Los Cabos"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia con documentacion aduanera y tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // TipoFigura (operador, licencia, no partesTransporte, no domicilio) + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("01"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNumLicencia("a234567890"); + figura.setNombreFigura("NombreFigura"); + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("03"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("10")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteAereo(buildTransporteAereoCP()); + cartaPorte.setTiposFigura(tiposFigura); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse22); + } + + // Ejemplo 23: Factura traslado transporte maritimo nacional + private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("No"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse23); + } + + // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) + private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero + RegimenAduanero regimenAduanero = new RegimenAduanero(); + regimenAduanero.setRegimenAduaneroId("EXD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("ST"); + domDestino.setNumeroExterior("12345"); + domDestino.setColoniaId("N/A"); + domDestino.setReferencia("N/A"); + domDestino.setMunicipioId("N/A"); + domDestino.setEstadoId("TX"); + domDestino.setPaisId("USA"); + domDestino.setCodigoPostalId("12345"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("XEXX010101000"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumRegIdTrib("01010101"); + destino.setResidenciaFiscalId("USA"); + destino.setNumEstacionId("PM120"); + destino.setNombreEstacion("NombreEstacion"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with detalleMercancia and tipoMateria + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Salida"); + cartaPorte.setPaisOrigenDestinoId("USA"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse24); + } + + // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) + private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { + FiscalApiClient client = FiscalApiClient.create(settings); + List items = new ArrayList<>(); + items.add(buildStandardItem()); + + // Regimen aduanero (two IMD entries) + RegimenAduanero regimenAduanero1 = new RegimenAduanero(); + regimenAduanero1.setRegimenAduaneroId("IMD"); + RegimenAduanero regimenAduanero2 = new RegimenAduanero(); + regimenAduanero2.setRegimenAduaneroId("IMD"); + List regimenAduaneros = new ArrayList<>(); + regimenAduaneros.add(regimenAduanero1); + regimenAduaneros.add(regimenAduanero2); + + // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("PM001"); + origen.setNombreEstacion("Rosarito"); + origen.setNavegacionTraficoId("Altura"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + // Ubicacion Destino (PM001 / Rosarito, COA/MEX) + Domicilio domDestino = new Domicilio(); + domDestino.setCalle("Calle2"); + domDestino.setNumeroExterior("214"); + domDestino.setNumeroInterior("215"); + domDestino.setColoniaId("0347"); + domDestino.setLocalidadId("23"); + domDestino.setReferencia("casa negra"); + domDestino.setMunicipioId("004"); + domDestino.setEstadoId("COA"); + domDestino.setPaisId("MEX"); + domDestino.setCodigoPostalId("25350"); + + Ubicacion destino = new Ubicacion(); + destino.setTipoUbicacion("Destino"); + destino.setIdUbicacion("DE202020"); + destino.setRfcRemitenteDestinatario("EKU9003173C9"); + destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + destino.setNumEstacionId("PM001"); + destino.setNombreEstacion("Rosarito"); + destino.setNavegacionTraficoId("Altura"); + destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); + destino.setTipoEstacionId("03"); + destino.setDomicilio(domDestino); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(destino); + + // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria + DocumentoAduanero doc = new DocumentoAduanero(); + doc.setTipoDocumentoId("01"); + doc.setNumPedimento("23 43 0472 8000448"); + doc.setRfcImpo("EKU9003173C9"); + List docs = new ArrayList<>(); + docs.add(doc); + + CantidadTransporta ct = new CantidadTransporta(); + ct.setCantidad(new BigDecimal("1")); + ct.setIdOrigen("OR101010"); + ct.setIdDestino("DE202020"); + List cantTransList = new ArrayList<>(); + cantTransList.add(ct); + + DetalleMercancia detalle = new DetalleMercancia(); + detalle.setUnidadPesoMercId("Tu"); + detalle.setPesoBruto(new BigDecimal("1")); + detalle.setPesoNeto(new BigDecimal("1")); + detalle.setPesoTara(new BigDecimal("0.001")); + detalle.setNumPiezas(1); + + Mercancia mercancia = new Mercancia(); + mercancia.setBienesTranspId("11121900"); + mercancia.setDescripcion("Accesorios de equipo de telefonía"); + mercancia.setCantidad(new BigDecimal("1.0")); + mercancia.setClaveUnidadId("XBX"); + mercancia.setMaterialPeligrosoId("No"); + mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); + mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); + mercancia.setFabricante("Fabricante1"); + mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); + mercancia.setLoteMedicamento("LoteMedic1"); + mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); + mercancia.setPesoEnKg(new BigDecimal("1")); + mercancia.setValorMercancia(new BigDecimal("100")); + mercancia.setMonedaId("MXN"); + mercancia.setTipoMateriaId("05"); + mercancia.setDescripcionMateria("otramateria"); + mercancia.setDocumentacionAduanera(docs); + mercancia.setCantidadTransporta(cantTransList); + mercancia.setDetalleMercancia(detalle); + List mercancias = new ArrayList<>(); + mercancias.add(mercancia); + + // CartaPorte + CartaPorte cartaPorte = new CartaPorte(); + cartaPorte.setTranspInternacId("Sí"); + cartaPorte.setEntradaSalidaMercId("Entrada"); + cartaPorte.setPaisOrigenDestinoId("AFG"); + cartaPorte.setViaEntradaSalidaId("02"); + cartaPorte.setUnidadPesoId("XBX"); + cartaPorte.setPesoNetoTotal(new BigDecimal("1")); + cartaPorte.setRegimenAduaneros(regimenAduaneros); + cartaPorte.setUbicaciones(ubicaciones); + cartaPorte.setMercancias(mercancias); + cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); + cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + + Complement complement = new Complement(); + complement.setCartaPorte(cartaPorte); + + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setCurrencyCode("XXX"); + invoice.setTypeCode("T"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(buildIssuerEKU()); + invoice.setRecipient(buildRecipientEKU()); + invoice.setItems(items); + invoice.setComplement(complement); + + ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); + System.out.println(apiResponse25); + } + + // ── Helper methods ────────────────────────────────────────────────────────── + + private List buildTaxCredentials() { + TaxCredential cer = new TaxCredential(); + cer.setBase64File(escuelaKemperUrgateBase64Cer); + cer.setFileType(0); + cer.setPassword(password); + TaxCredential key = new TaxCredential(); + key.setBase64File(escuelaKemperUrgateBase64Key); + key.setFileType(1); + key.setPassword(password); + List credentials = new ArrayList<>(); + credentials.add(cer); + credentials.add(key); + return credentials; + } + + private InvoiceIssuer buildIssuerEKU() { + InvoiceIssuer issuer = new InvoiceIssuer(); + issuer.setTin("EKU9003173C9"); + issuer.setLegalName("ESCUELA KEMPER URGATE"); + issuer.setTaxRegimeCode("601"); + issuer.setTaxCredentials(buildTaxCredentials()); + return issuer; + } + + private InvoiceRecipient buildRecipientEKU() { + InvoiceRecipient recipient = new InvoiceRecipient(); + recipient.setTin("EKU9003173C9"); + recipient.setLegalName("ESCUELA KEMPER URGATE"); + recipient.setZipCode("42501"); + recipient.setTaxRegimeCode("601"); + recipient.setCfdiUseCode("S01"); + return recipient; + } + + private InvoiceItem buildStandardItem() { + InvoiceItem item = new InvoiceItem(); + item.setItemCode("78101800"); + item.setItemSku("UT421511"); + item.setQuantity(new BigDecimal("1")); + item.setUnitOfMeasurementCode("H87"); + item.setDescription("Transporte de carga por carretera"); + item.setUnitPrice(new BigDecimal("100.00")); + item.setDiscount(new BigDecimal("0")); + item.setTaxObjectCode("01"); + item.setItemTaxes(new ArrayList<>()); + return item; + } + + private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, + List items, Complement complement) { + Invoice invoice = new Invoice(); + invoice.setVersionCode("4.0"); + invoice.setPaymentFormCode("01"); + invoice.setPaymentMethodCode("PUE"); + invoice.setCurrencyCode("MXN"); + invoice.setTypeCode("I"); + invoice.setExpeditionZipCode("42501"); + invoice.setSeries("Serie"); + invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); + invoice.setExchangeRate(new BigDecimal("1")); + invoice.setExportCode("01"); + invoice.setIssuer(issuer); + invoice.setRecipient(recipient); + invoice.setItems(items); + invoice.setComplement(complement); + return invoice; + } + + private TransporteAereo buildTransporteAereoCP() { + TransporteAereo transporteAereo = new TransporteAereo(); + transporteAereo.setPermSCTId("TPAF01"); + transporteAereo.setNumPermisoSCT("Demo"); + transporteAereo.setMatriculaAeronave("61E5-WZ"); + transporteAereo.setNombreAseg("NombreAseg"); + transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); + transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); + transporteAereo.setLugarContrato("LugarContrato"); + transporteAereo.setCodigoTransportistaId("CA001"); + transporteAereo.setRfcEmbarcador("EKU9003173C9"); + transporteAereo.setNombreEmbarcador("Embarcador"); + return transporteAereo; + } + + private TransporteMaritimo buildTransporteMaritimo() { + TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); + remolqueCCP.setSubTipoRemCCPId("CTR001"); + remolqueCCP.setPlacaCCP("JNG7636"); + List remolquesCCP = new ArrayList<>(); + remolquesCCP.add(remolqueCCP); + + TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); + contenedor.setTipoContenedorId("CM011"); + contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); + contenedor.setPlacaVMCCP("JNG7683"); + contenedor.setFechaCertificacionCCP(OptUtil.parseLocalDateTime("2024-06-20T11:11:00")); + contenedor.setRemolquesCCP(remolquesCCP); + List contenedores = new ArrayList<>(); + contenedores.add(contenedor); + + TransporteMaritimo maritimo = new TransporteMaritimo(); + maritimo.setPermSCTId("TPAF01"); + maritimo.setNumPermisoSCT("NumPermisoSCT1"); + maritimo.setNombreAseg("NombreAseg1"); + maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); + maritimo.setTipoEmbarcacionId("B01"); + maritimo.setMatricula("Matricula1"); + maritimo.setNumeroOMI("IMO1234567"); + maritimo.setAnioEmbarcacion(2003); + maritimo.setNombreEmbarc("NombreEmbarc1"); + maritimo.setNacionalidadEmbarcId("AFG"); + maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); + maritimo.setTipoCargaId("CGS"); + maritimo.setEslora(new BigDecimal("0.01")); + maritimo.setManga(new BigDecimal("0.01")); + maritimo.setCalado(new BigDecimal("0.01")); + maritimo.setPuntal(new BigDecimal("0.01")); + maritimo.setLineaNaviera("LineaNaviera1"); + maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); + maritimo.setNumAutorizacionNavieroId("ANC001/2022"); + maritimo.setNumViaje("NumViaje1"); + maritimo.setNumConocEmbarc("NumConocEmbarc1"); + maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); + maritimo.setContenedores(contenedores); + return maritimo; + } + + private TransporteFerroviario buildTransporteFerroviario() { + TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); + derecho.setTipoDerechoDePasoId("CDP114"); + derecho.setKilometrajePagado(new BigDecimal("100")); + List derechos = new ArrayList<>(); + derechos.add(derecho); + + TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); + carro.setTipoCarroId("TC08"); + carro.setMatriculaCarro("A00012"); + carro.setGuiaCarro("123ASD"); + carro.setToneladasNetasCarro(new BigDecimal("10")); + List carros = new ArrayList<>(); + carros.add(carro); + + TransporteFerroviario transporte = new TransporteFerroviario(); + transporte.setTipoDeServicioId("TS01"); + transporte.setTipoDeTraficoId("TT01"); + transporte.setDerechosDePaso(derechos); + transporte.setCarros(carros); + return transporte; + } + + private List buildTiposFiguraFerroviario() { + ParteTransporte parte = new ParteTransporte(); + parte.setParteTransporteId("PT02"); + List partes = new ArrayList<>(); + partes.add(parte); + + Domicilio domicilio = new Domicilio(); + domicilio.setCalle("calle"); + domicilio.setNumeroExterior("211"); + domicilio.setColoniaId("0814"); + domicilio.setLocalidadId("01"); + domicilio.setReferencia("casa blanca"); + domicilio.setMunicipioId("010"); + domicilio.setEstadoId("ZAC"); + domicilio.setPaisId("MEX"); + domicilio.setCodigoPostalId("99080"); + + TipoFigura figura = new TipoFigura(); + figura.setTipoFiguraId("02"); + figura.setRfcFigura("EKU9003173C9"); + figura.setNombreFigura("NombreFigura"); + figura.setPartesTransporte(partes); + figura.setDomicilio(domicilio); + + List tiposFigura = new ArrayList<>(); + tiposFigura.add(figura); + return tiposFigura; + } + + private List buildUbicacionesFerroviarioComunes() { + Domicilio domOrigen = new Domicilio(); + domOrigen.setCalle("Calle1"); + domOrigen.setNumeroExterior("211"); + domOrigen.setNumeroInterior("212"); + domOrigen.setColoniaId("1957"); + domOrigen.setLocalidadId("13"); + domOrigen.setReferencia("casa blanca"); + domOrigen.setMunicipioId("011"); + domOrigen.setEstadoId("CMX"); + domOrigen.setPaisId("MEX"); + domOrigen.setCodigoPostalId("13250"); + + Ubicacion origen = new Ubicacion(); + origen.setTipoUbicacion("Origen"); + origen.setIdUbicacion("OR101010"); + origen.setRfcRemitenteDestinatario("EKU9003173C9"); + origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); + origen.setNumEstacionId("Q0736"); + origen.setNombreEstacion("SANTO NINO"); + origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); + origen.setTipoEstacionId("01"); + origen.setDomicilio(domOrigen); + + Ubicacion dest1 = new Ubicacion(); + dest1.setTipoUbicacion("Destino"); + dest1.setIdUbicacion("DE202021"); + dest1.setRfcRemitenteDestinatario("EKU9003173C9"); + dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest1.setNumEstacionId("SC283"); + dest1.setNombreEstacion("HUAXTITLA"); + dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); + dest1.setTipoEstacionId("02"); + dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest2 = new Ubicacion(); + dest2.setTipoUbicacion("Destino"); + dest2.setIdUbicacion("DE202022"); + dest2.setRfcRemitenteDestinatario("EKU9003173C9"); + dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest2.setNumEstacionId("TG0"); + dest2.setNombreEstacion("NAVOJOA"); + dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); + dest2.setTipoEstacionId("02"); + dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest3 = new Ubicacion(); + dest3.setTipoUbicacion("Destino"); + dest3.setIdUbicacion("DE202023"); + dest3.setRfcRemitenteDestinatario("EKU9003173C9"); + dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest3.setNumEstacionId("E0029"); + dest3.setNombreEstacion("TRES JAGUEYES"); + dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); + dest3.setTipoEstacionId("02"); + dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + + Ubicacion dest4 = new Ubicacion(); + dest4.setTipoUbicacion("Destino"); + dest4.setIdUbicacion("DE202024"); + dest4.setRfcRemitenteDestinatario("EKU9003173C9"); + dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); + dest4.setNumEstacionId("TI032"); + dest4.setNombreEstacion("NAVOLATO"); + dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); + dest4.setTipoEstacionId("02"); + dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + + List ubicaciones = new ArrayList<>(); + ubicaciones.add(origen); + ubicaciones.add(dest1); + ubicaciones.add(dest2); + ubicaciones.add(dest3); + ubicaciones.add(dest4); + return ubicaciones; + } +} From 45908a225c12471b5b3973e8548b8924eddc852a Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Thu, 16 Apr 2026 23:07:52 -0600 Subject: [PATCH 5/8] Fixed more discrepancies --- .../models/invoicing/billOfLading/TransporteMaritimo.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java index f57384f..62bb097 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java @@ -24,7 +24,7 @@ public class TransporteMaritimo { private String nacionalidadEmbarcId; @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal unidadesDeArqBruto = null; + private BigDecimal unidadesDeArqBruto; private String tipoCargaId; From 4228ab97492bda31d84cb54bf3eb713e22888afa Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Sat, 18 Apr 2026 15:24:05 -0600 Subject: [PATCH 6/8] Fixed all discrepancies --- .../EjemplosCartaPorteReferencias.java | 129 +++++++++--------- .../examples/EjemplosCartaPorteValores.java | 129 +++++++++--------- .../models/invoicing/billOfLading/Carro.java | 58 ++++++++ .../billOfLading/CarroContenedor.java | 40 ++++++ .../billOfLading/ContenedorMaritimo.java | 81 +++++++++++ .../invoicing/billOfLading/DerechoDePaso.java | 29 ++++ .../invoicing/billOfLading/RemolqueCCP.java | 22 +++ .../invoicing/billOfLading/TipoFigura.java | 6 +- .../billOfLading/TipoFiguraDomicilio.java | 94 +++++++++++++ .../billOfLading/TransporteFerroviario.java | 112 --------------- .../billOfLading/TransporteMaritimo.java | 97 ------------- .../invoicing/billOfLading/Ubicacion.java | 6 +- ...Domicilio.java => UbicacionDomicilio.java} | 2 +- 13 files changed, 465 insertions(+), 340 deletions(-) create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/Carro.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/CarroContenedor.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/ContenedorMaritimo.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/DerechoDePaso.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/RemolqueCCP.java create mode 100644 src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFiguraDomicilio.java rename src/main/java/com/fiscalapi/models/invoicing/billOfLading/{Domicilio.java => UbicacionDomicilio.java} (98%) diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java index a5b4be6..cf25ce1 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java @@ -17,12 +17,17 @@ import com.fiscalapi.models.invoicing.TaxCredential; import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +import com.fiscalapi.models.invoicing.billOfLading.Carro; import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +import com.fiscalapi.models.invoicing.billOfLading.ContenedorMaritimo; +import com.fiscalapi.models.invoicing.billOfLading.DerechoDePaso; import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; -import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +import com.fiscalapi.models.invoicing.billOfLading.UbicacionDomicilio; +import com.fiscalapi.models.invoicing.billOfLading.TipoFiguraDomicilio; import com.fiscalapi.models.invoicing.billOfLading.Mercancia; import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; import com.fiscalapi.models.invoicing.billOfLading.Remolque; +import com.fiscalapi.models.invoicing.billOfLading.RemolqueCCP; import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; @@ -76,7 +81,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { items.add(item); // Ubicacion Origen - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("Calle1"); domicilioOrigen.setNumeroExterior("211"); domicilioOrigen.setNumeroInterior("212"); @@ -97,7 +102,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { origen.setDomicilio(domicilioOrigen); // Ubicacion Destino - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("Calle2"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setNumeroInterior("215"); @@ -169,7 +174,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("Calle1"); domicilioFigura.setNumeroExterior("NumeroExterior1"); domicilioFigura.setNumeroInterior("NumeroInterior1"); @@ -269,7 +274,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings items.add(item); // Ubicacion Origen - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("Calle1"); domicilioOrigen.setNumeroExterior("211"); domicilioOrigen.setNumeroInterior("212"); @@ -290,7 +295,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings origen.setDomicilio(domicilioOrigen); // Ubicacion Destino - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("Calle2"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setNumeroInterior("215"); @@ -362,7 +367,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("Calle1"); domicilioFigura.setNumeroExterior("NumeroExterior1"); domicilioFigura.setNumeroInterior("NumeroInterior1"); @@ -454,7 +459,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (extranjero) - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("ST"); domicilioOrigen.setNumeroExterior("214"); domicilioOrigen.setColoniaId("N/A"); @@ -474,7 +479,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) origen.setDomicilio(domicilioOrigen); // Ubicacion Destino (extranjero) - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("ST"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setColoniaId("N/A"); @@ -547,7 +552,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("ST"); domicilioFigura.setNumeroExterior("214"); domicilioFigura.setColoniaId("N/A"); @@ -641,7 +646,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (extranjero) - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("ST"); domicilioOrigen.setNumeroExterior("214"); domicilioOrigen.setColoniaId("N/A"); @@ -661,7 +666,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings origen.setDomicilio(domicilioOrigen); // Ubicacion Destino (extranjero) - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("ST"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setColoniaId("N/A"); @@ -742,7 +747,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("ST"); domicilioFigura.setNumeroExterior("214"); domicilioFigura.setColoniaId("N/A"); @@ -810,7 +815,7 @@ private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings setti // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -896,7 +901,7 @@ private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings set // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("ST"); domDest5.setNumeroExterior("1234"); domDest5.setColoniaId("1234"); @@ -987,7 +992,7 @@ private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiS // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -1080,7 +1085,7 @@ private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { items.add(buildStandardItem()); // Origen (aeropuerto EA0417, Loreto) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1104,7 +1109,7 @@ private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { origen.setDomicilio(domOrigen); // Destino (aeropuerto EA0418, Los Cabos) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1211,7 +1216,7 @@ private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, COA/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle2"); domOrigen.setNumeroExterior("214"); domOrigen.setNumeroInterior("215"); @@ -1235,7 +1240,7 @@ private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12344"); domDestino.setColoniaId("N/A"); @@ -1334,7 +1339,7 @@ private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSetting regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1358,7 +1363,7 @@ private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSetting origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1460,7 +1465,7 @@ private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings items.add(buildStandardItem()); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1485,7 +1490,7 @@ private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1579,7 +1584,7 @@ private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settin regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1604,7 +1609,7 @@ private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settin origen.setDomicilio(domOrigen); // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12345"); domDestino.setColoniaId("N/A"); @@ -1706,7 +1711,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett regimenAduaneros.add(regimenAduanero2); // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1731,7 +1736,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1808,7 +1813,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett mercancias.add(mercancia); // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("Calle1"); domFigura.setNumeroExterior("NumeroExterior1"); domFigura.setNumeroInterior("NumeroInterior1"); @@ -1877,7 +1882,7 @@ private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { items.add(buildStandardItem()); // Ubicacion Origen (no station, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1898,7 +1903,7 @@ private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { origen.setDomicilio(domOrigen); // Ubicacion Destino (no station, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -2023,7 +2028,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (foreign USA/TX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("ST"); domOrigen.setNumeroExterior("214"); domOrigen.setColoniaId("N/A"); @@ -2043,7 +2048,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Ubicacion Destino (foreign USA/TX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("214"); domDestino.setColoniaId("N/A"); @@ -2116,7 +2121,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) autotransporte.setRemolques(remolques); // TipoFigura with USA domicilio - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("ST"); domFigura.setNumeroExterior("214"); domFigura.setColoniaId("N/A"); @@ -2187,7 +2192,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (foreign USA/TX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("ST"); domOrigen.setNumeroExterior("214"); domOrigen.setColoniaId("N/A"); @@ -2207,7 +2212,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting origen.setDomicilio(domOrigen); // Ubicacion Destino (foreign USA/TX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("214"); domDestino.setColoniaId("N/A"); @@ -2288,7 +2293,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting autotransporte.setRemolques(remolques); // TipoFigura with USA domicilio - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("ST"); domFigura.setNumeroExterior("214"); domFigura.setColoniaId("N/A"); @@ -2354,7 +2359,7 @@ private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings sett // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -2453,7 +2458,7 @@ private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings se // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("ST"); domDest5.setNumeroExterior("1234"); domDest5.setColoniaId("1234"); @@ -2557,7 +2562,7 @@ private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApi // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -2663,7 +2668,7 @@ private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) items.add(buildStandardItem()); // Origen (aeropuerto EA0417, Loreto) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -2687,7 +2692,7 @@ private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Destino (aeropuerto EA0418, Los Cabos) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -2807,7 +2812,7 @@ private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, COA/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle2"); domOrigen.setNumeroExterior("214"); domOrigen.setNumeroInterior("215"); @@ -2831,7 +2836,7 @@ private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12344"); domDestino.setColoniaId("N/A"); @@ -2943,7 +2948,7 @@ private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettin regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -2967,7 +2972,7 @@ private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettin origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3082,7 +3087,7 @@ private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings setting items.add(buildStandardItem()); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3107,7 +3112,7 @@ private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings setting origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3214,7 +3219,7 @@ private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings setti regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3239,7 +3244,7 @@ private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings setti origen.setDomicilio(domOrigen); // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12345"); domDestino.setColoniaId("N/A"); @@ -3354,7 +3359,7 @@ private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSet regimenAduaneros.add(regimenAduanero2); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3379,7 +3384,7 @@ private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSet origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3566,19 +3571,19 @@ private TransporteAereo buildTransporteAereoCP() { } private TransporteMaritimo buildTransporteMaritimo() { - TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); + RemolqueCCP remolqueCCP = new RemolqueCCP(); remolqueCCP.setSubTipoRemCCPId("CTR001"); remolqueCCP.setPlacaCCP("JNG7636"); - List remolquesCCP = new ArrayList<>(); + List remolquesCCP = new ArrayList<>(); remolquesCCP.add(remolqueCCP); - TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); + ContenedorMaritimo contenedor = new ContenedorMaritimo(); contenedor.setTipoContenedorId("CM011"); contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); contenedor.setPlacaVMCCP("JNG7683"); contenedor.setFechaCertificacionCCP(OptUtil.parseLocalDateTime("2024-06-20T11:11:00")); contenedor.setRemolquesCCP(remolquesCCP); - List contenedores = new ArrayList<>(); + List contenedores = new ArrayList<>(); contenedores.add(contenedor); TransporteMaritimo maritimo = new TransporteMaritimo(); @@ -3609,18 +3614,18 @@ private TransporteMaritimo buildTransporteMaritimo() { } private TransporteFerroviario buildTransporteFerroviario() { - TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); + DerechoDePaso derecho = new DerechoDePaso(); derecho.setTipoDerechoDePasoId("CDP114"); derecho.setKilometrajePagado(new BigDecimal("100")); - List derechos = new ArrayList<>(); + List derechos = new ArrayList<>(); derechos.add(derecho); - TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); + Carro carro = new Carro(); carro.setTipoCarroId("TC08"); carro.setMatriculaCarro("A00012"); carro.setGuiaCarro("123ASD"); carro.setToneladasNetasCarro(new BigDecimal("10")); - List carros = new ArrayList<>(); + List carros = new ArrayList<>(); carros.add(carro); TransporteFerroviario transporte = new TransporteFerroviario(); @@ -3637,7 +3642,7 @@ private List buildTiposFiguraFerroviario() { List partes = new ArrayList<>(); partes.add(parte); - Domicilio domicilio = new Domicilio(); + TipoFiguraDomicilio domicilio = new TipoFiguraDomicilio(); domicilio.setCalle("calle"); domicilio.setNumeroExterior("211"); domicilio.setColoniaId("0814"); @@ -3661,7 +3666,7 @@ private List buildTiposFiguraFerroviario() { } private List buildUbicacionesFerroviarioComunes() { - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java index 4951de7..b734db6 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java @@ -17,12 +17,17 @@ import com.fiscalapi.models.invoicing.TaxCredential; import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +import com.fiscalapi.models.invoicing.billOfLading.Carro; import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +import com.fiscalapi.models.invoicing.billOfLading.ContenedorMaritimo; +import com.fiscalapi.models.invoicing.billOfLading.DerechoDePaso; import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; -import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +import com.fiscalapi.models.invoicing.billOfLading.UbicacionDomicilio; +import com.fiscalapi.models.invoicing.billOfLading.TipoFiguraDomicilio; import com.fiscalapi.models.invoicing.billOfLading.Mercancia; import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; import com.fiscalapi.models.invoicing.billOfLading.Remolque; +import com.fiscalapi.models.invoicing.billOfLading.RemolqueCCP; import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; @@ -96,7 +101,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { items.add(item); // Ubicacion Origen - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("Calle1"); domicilioOrigen.setNumeroExterior("211"); domicilioOrigen.setNumeroInterior("212"); @@ -117,7 +122,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { origen.setDomicilio(domicilioOrigen); // Ubicacion Destino - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("Calle2"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setNumeroInterior("215"); @@ -189,7 +194,7 @@ private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("Calle1"); domicilioFigura.setNumeroExterior("NumeroExterior1"); domicilioFigura.setNumeroInterior("NumeroInterior1"); @@ -309,7 +314,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings items.add(item); // Ubicacion Origen - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("Calle1"); domicilioOrigen.setNumeroExterior("211"); domicilioOrigen.setNumeroInterior("212"); @@ -330,7 +335,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings origen.setDomicilio(domicilioOrigen); // Ubicacion Destino - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("Calle2"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setNumeroInterior("215"); @@ -402,7 +407,7 @@ private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("Calle1"); domicilioFigura.setNumeroExterior("NumeroExterior1"); domicilioFigura.setNumeroInterior("NumeroInterior1"); @@ -514,7 +519,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (extranjero) - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("ST"); domicilioOrigen.setNumeroExterior("214"); domicilioOrigen.setColoniaId("N/A"); @@ -534,7 +539,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) origen.setDomicilio(domicilioOrigen); // Ubicacion Destino (extranjero) - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("ST"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setColoniaId("N/A"); @@ -607,7 +612,7 @@ private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("ST"); domicilioFigura.setNumeroExterior("214"); domicilioFigura.setColoniaId("N/A"); @@ -721,7 +726,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (extranjero) - Domicilio domicilioOrigen = new Domicilio(); + UbicacionDomicilio domicilioOrigen = new UbicacionDomicilio(); domicilioOrigen.setCalle("ST"); domicilioOrigen.setNumeroExterior("214"); domicilioOrigen.setColoniaId("N/A"); @@ -741,7 +746,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings origen.setDomicilio(domicilioOrigen); // Ubicacion Destino (extranjero) - Domicilio domicilioDestino = new Domicilio(); + UbicacionDomicilio domicilioDestino = new UbicacionDomicilio(); domicilioDestino.setCalle("ST"); domicilioDestino.setNumeroExterior("214"); domicilioDestino.setColoniaId("N/A"); @@ -822,7 +827,7 @@ private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings autotransporte.setRemolques(remolques); // TipoFigura - Domicilio domicilioFigura = new Domicilio(); + TipoFiguraDomicilio domicilioFigura = new TipoFiguraDomicilio(); domicilioFigura.setCalle("ST"); domicilioFigura.setNumeroExterior("214"); domicilioFigura.setColoniaId("N/A"); @@ -890,7 +895,7 @@ private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings setti // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -976,7 +981,7 @@ private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings set // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("ST"); domDest5.setNumeroExterior("1234"); domDest5.setColoniaId("1234"); @@ -1067,7 +1072,7 @@ private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiS // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -1160,7 +1165,7 @@ private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { items.add(buildStandardItem()); // Origen (aeropuerto EA0417, Loreto) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1184,7 +1189,7 @@ private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { origen.setDomicilio(domOrigen); // Destino (aeropuerto EA0418, Los Cabos) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1291,7 +1296,7 @@ private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, COA/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle2"); domOrigen.setNumeroExterior("214"); domOrigen.setNumeroInterior("215"); @@ -1315,7 +1320,7 @@ private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12344"); domDestino.setColoniaId("N/A"); @@ -1414,7 +1419,7 @@ private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSetting regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1438,7 +1443,7 @@ private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSetting origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1540,7 +1545,7 @@ private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings items.add(buildStandardItem()); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1565,7 +1570,7 @@ private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1659,7 +1664,7 @@ private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settin regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1684,7 +1689,7 @@ private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settin origen.setDomicilio(domOrigen); // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12345"); domDestino.setColoniaId("N/A"); @@ -1786,7 +1791,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett regimenAduaneros.add(regimenAduanero2); // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1811,7 +1816,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -1888,7 +1893,7 @@ private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSett mercancias.add(mercancia); // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("Calle1"); domFigura.setNumeroExterior("NumeroExterior1"); domFigura.setNumeroInterior("NumeroInterior1"); @@ -1957,7 +1962,7 @@ private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { items.add(buildStandardItem()); // Ubicacion Origen (no station, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -1978,7 +1983,7 @@ private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { origen.setDomicilio(domOrigen); // Ubicacion Destino (no station, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -2103,7 +2108,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (foreign USA/TX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("ST"); domOrigen.setNumeroExterior("214"); domOrigen.setColoniaId("N/A"); @@ -2123,7 +2128,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Ubicacion Destino (foreign USA/TX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("214"); domDestino.setColoniaId("N/A"); @@ -2196,7 +2201,7 @@ private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) autotransporte.setRemolques(remolques); // TipoFigura with USA domicilio - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("ST"); domFigura.setNumeroExterior("214"); domFigura.setColoniaId("N/A"); @@ -2267,7 +2272,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (foreign USA/TX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("ST"); domOrigen.setNumeroExterior("214"); domOrigen.setColoniaId("N/A"); @@ -2287,7 +2292,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting origen.setDomicilio(domOrigen); // Ubicacion Destino (foreign USA/TX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("214"); domDestino.setColoniaId("N/A"); @@ -2368,7 +2373,7 @@ private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSetting autotransporte.setRemolques(remolques); // TipoFigura with USA domicilio - Domicilio domFigura = new Domicilio(); + TipoFiguraDomicilio domFigura = new TipoFiguraDomicilio(); domFigura.setCalle("ST"); domFigura.setNumeroExterior("214"); domFigura.setColoniaId("N/A"); @@ -2434,7 +2439,7 @@ private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings sett // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -2533,7 +2538,7 @@ private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings se // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("ST"); domDest5.setNumeroExterior("1234"); domDest5.setColoniaId("1234"); @@ -2637,7 +2642,7 @@ private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApi // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) List ubicaciones = buildUbicacionesFerroviarioComunes(); - Domicilio domDest5 = new Domicilio(); + UbicacionDomicilio domDest5 = new UbicacionDomicilio(); domDest5.setCalle("Calle2"); domDest5.setNumeroExterior("214"); domDest5.setNumeroInterior("215"); @@ -2743,7 +2748,7 @@ private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) items.add(buildStandardItem()); // Origen (aeropuerto EA0417, Loreto) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -2767,7 +2772,7 @@ private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) origen.setDomicilio(domOrigen); // Destino (aeropuerto EA0418, Los Cabos) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -2887,7 +2892,7 @@ private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, COA/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle2"); domOrigen.setNumeroExterior("214"); domOrigen.setNumeroInterior("215"); @@ -2911,7 +2916,7 @@ private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12344"); domDestino.setColoniaId("N/A"); @@ -3023,7 +3028,7 @@ private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettin regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3047,7 +3052,7 @@ private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettin origen.setDomicilio(domOrigen); // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3162,7 +3167,7 @@ private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings setting items.add(buildStandardItem()); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3187,7 +3192,7 @@ private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings setting origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3294,7 +3299,7 @@ private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings setti regimenAduaneros.add(regimenAduanero); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3319,7 +3324,7 @@ private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings setti origen.setDomicilio(domOrigen); // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("ST"); domDestino.setNumeroExterior("12345"); domDestino.setColoniaId("N/A"); @@ -3434,7 +3439,7 @@ private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSet regimenAduaneros.add(regimenAduanero2); // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); @@ -3459,7 +3464,7 @@ private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSet origen.setDomicilio(domOrigen); // Ubicacion Destino (PM001 / Rosarito, COA/MEX) - Domicilio domDestino = new Domicilio(); + UbicacionDomicilio domDestino = new UbicacionDomicilio(); domDestino.setCalle("Calle2"); domDestino.setNumeroExterior("214"); domDestino.setNumeroInterior("215"); @@ -3653,19 +3658,19 @@ private TransporteAereo buildTransporteAereoCP() { } private TransporteMaritimo buildTransporteMaritimo() { - TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); + RemolqueCCP remolqueCCP = new RemolqueCCP(); remolqueCCP.setSubTipoRemCCPId("CTR001"); remolqueCCP.setPlacaCCP("JNG7636"); - List remolquesCCP = new ArrayList<>(); + List remolquesCCP = new ArrayList<>(); remolquesCCP.add(remolqueCCP); - TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); + ContenedorMaritimo contenedor = new ContenedorMaritimo(); contenedor.setTipoContenedorId("CM011"); contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); contenedor.setPlacaVMCCP("JNG7683"); contenedor.setFechaCertificacionCCP(OptUtil.parseLocalDateTime("2024-06-20T11:11:00")); contenedor.setRemolquesCCP(remolquesCCP); - List contenedores = new ArrayList<>(); + List contenedores = new ArrayList<>(); contenedores.add(contenedor); TransporteMaritimo maritimo = new TransporteMaritimo(); @@ -3696,18 +3701,18 @@ private TransporteMaritimo buildTransporteMaritimo() { } private TransporteFerroviario buildTransporteFerroviario() { - TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); + DerechoDePaso derecho = new DerechoDePaso(); derecho.setTipoDerechoDePasoId("CDP114"); derecho.setKilometrajePagado(new BigDecimal("100")); - List derechos = new ArrayList<>(); + List derechos = new ArrayList<>(); derechos.add(derecho); - TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); + Carro carro = new Carro(); carro.setTipoCarroId("TC08"); carro.setMatriculaCarro("A00012"); carro.setGuiaCarro("123ASD"); carro.setToneladasNetasCarro(new BigDecimal("10")); - List carros = new ArrayList<>(); + List carros = new ArrayList<>(); carros.add(carro); TransporteFerroviario transporte = new TransporteFerroviario(); @@ -3724,7 +3729,7 @@ private List buildTiposFiguraFerroviario() { List partes = new ArrayList<>(); partes.add(parte); - Domicilio domicilio = new Domicilio(); + TipoFiguraDomicilio domicilio = new TipoFiguraDomicilio(); domicilio.setCalle("calle"); domicilio.setNumeroExterior("211"); domicilio.setColoniaId("0814"); @@ -3748,7 +3753,7 @@ private List buildTiposFiguraFerroviario() { } private List buildUbicacionesFerroviarioComunes() { - Domicilio domOrigen = new Domicilio(); + UbicacionDomicilio domOrigen = new UbicacionDomicilio(); domOrigen.setCalle("Calle1"); domOrigen.setNumeroExterior("211"); domOrigen.setNumeroInterior("212"); diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Carro.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Carro.java new file mode 100644 index 0000000..1df4e1e --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Carro.java @@ -0,0 +1,58 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class Carro { + private String tipoCarroId; + private String matriculaCarro; + private String guiaCarro; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal toneladasNetasCarro; + + private List contenedores; + + public String getTipoCarroId() { + return tipoCarroId; + } + + public void setTipoCarroId(String tipoCarroId) { + this.tipoCarroId = tipoCarroId; + } + + public String getMatriculaCarro() { + return matriculaCarro; + } + + public void setMatriculaCarro(String matriculaCarro) { + this.matriculaCarro = matriculaCarro; + } + + public String getGuiaCarro() { + return guiaCarro; + } + + public void setGuiaCarro(String guiaCarro) { + this.guiaCarro = guiaCarro; + } + + public BigDecimal getToneladasNetasCarro() { + return toneladasNetasCarro; + } + + public void setToneladasNetasCarro(BigDecimal toneladasNetasCarro) { + this.toneladasNetasCarro = toneladasNetasCarro; + } + + public List getContenedores() { + return contenedores; + } + + public void setContenedores(List contenedores) { + this.contenedores = contenedores; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CarroContenedor.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CarroContenedor.java new file mode 100644 index 0000000..83a9b1b --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CarroContenedor.java @@ -0,0 +1,40 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class CarroContenedor { + private String tipoContenedorId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoContenedorVacio; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoMercancia; + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public BigDecimal getPesoContenedorVacio() { + return pesoContenedorVacio; + } + + public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { + this.pesoContenedorVacio = pesoContenedorVacio; + } + + public BigDecimal getPesoNetoMercancia() { + return pesoNetoMercancia; + } + + public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { + this.pesoNetoMercancia = pesoNetoMercancia; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ContenedorMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ContenedorMaritimo.java new file mode 100644 index 0000000..5fa6133 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ContenedorMaritimo.java @@ -0,0 +1,81 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; + +import java.time.LocalDateTime; +import java.util.List; + +public class ContenedorMaritimo { + private String tipoContenedorId; + private String matriculaContenedor; + private String numPrecinto; + private String idCCPRelacionado; + private String placaVMCCP; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaCertificacionCCP; + + private List remolquesCCP; + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public String getMatriculaContenedor() { + return matriculaContenedor; + } + + public void setMatriculaContenedor(String matriculaContenedor) { + this.matriculaContenedor = matriculaContenedor; + } + + public String getNumPrecinto() { + return numPrecinto; + } + + public void setNumPrecinto(String numPrecinto) { + this.numPrecinto = numPrecinto; + } + + public String getIdCCPRelacionado() { + return idCCPRelacionado; + } + + public void setIdCCPRelacionado(String idCCPRelacionado) { + this.idCCPRelacionado = idCCPRelacionado; + } + + public String getPlacaVMCCP() { + return placaVMCCP; + } + + public void setPlacaVMCCP(String placaVMCCP) { + this.placaVMCCP = placaVMCCP; + } + + public LocalDateTime getFechaCertificacionCCP() { + return fechaCertificacionCCP; + } + + public void setFechaCertificacionCCP(LocalDateTime fechaCertificacionCCP) { + this.fechaCertificacionCCP = fechaCertificacionCCP; + } + + public List getRemolquesCCP() { + return remolquesCCP; + } + + public void setRemolquesCCP(List remolquesCCP) { + this.remolquesCCP = remolquesCCP; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DerechoDePaso.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DerechoDePaso.java new file mode 100644 index 0000000..44035b7 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DerechoDePaso.java @@ -0,0 +1,29 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class DerechoDePaso { + private String tipoDerechoDePasoId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal kilometrajePagado; + + public String getTipoDerechoDePasoId() { + return tipoDerechoDePasoId; + } + + public void setTipoDerechoDePasoId(String tipoDerechoDePasoId) { + this.tipoDerechoDePasoId = tipoDerechoDePasoId; + } + + public BigDecimal getKilometrajePagado() { + return kilometrajePagado; + } + + public void setKilometrajePagado(BigDecimal kilometrajePagado) { + this.kilometrajePagado = kilometrajePagado; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RemolqueCCP.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RemolqueCCP.java new file mode 100644 index 0000000..c0ee3ac --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RemolqueCCP.java @@ -0,0 +1,22 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class RemolqueCCP { + private String subTipoRemCCPId; + private String placaCCP; + + public String getSubTipoRemCCPId() { + return subTipoRemCCPId; + } + + public void setSubTipoRemCCPId(String subTipoRemCCPId) { + this.subTipoRemCCPId = subTipoRemCCPId; + } + + public String getPlacaCCP() { + return placaCCP; + } + + public void setPlacaCCP(String placaCCP) { + this.placaCCP = placaCCP; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java index 981a091..61f5739 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java @@ -10,7 +10,7 @@ public class TipoFigura { private String numRegIdTribFigura; private String residenciaFiscalFiguraId; private List partesTransporte; - private Domicilio domicilio; + private TipoFiguraDomicilio domicilio; public String getTipoFiguraId() { return tipoFiguraId; @@ -68,11 +68,11 @@ public void setPartesTransporte(List partesTransporte) { this.partesTransporte = partesTransporte; } - public Domicilio getDomicilio() { + public TipoFiguraDomicilio getDomicilio() { return domicilio; } - public void setDomicilio(Domicilio domicilio) { + public void setDomicilio(TipoFiguraDomicilio domicilio) { this.domicilio = domicilio; } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFiguraDomicilio.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFiguraDomicilio.java new file mode 100644 index 0000000..b6b9473 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFiguraDomicilio.java @@ -0,0 +1,94 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class TipoFiguraDomicilio { + private String calle; + private String numeroExterior; + private String numeroInterior; + private String coloniaId; + private String localidadId; + private String referencia; + private String municipioId; + private String estadoId; + private String paisId; + private String codigoPostalId; + + public String getCalle() { + return calle; + } + + public void setCalle(String calle) { + this.calle = calle; + } + + public String getNumeroExterior() { + return numeroExterior; + } + + public void setNumeroExterior(String numeroExterior) { + this.numeroExterior = numeroExterior; + } + + public String getNumeroInterior() { + return numeroInterior; + } + + public void setNumeroInterior(String numeroInterior) { + this.numeroInterior = numeroInterior; + } + + public String getColoniaId() { + return coloniaId; + } + + public void setColoniaId(String coloniaId) { + this.coloniaId = coloniaId; + } + + public String getLocalidadId() { + return localidadId; + } + + public void setLocalidadId(String localidadId) { + this.localidadId = localidadId; + } + + public String getReferencia() { + return referencia; + } + + public void setReferencia(String referencia) { + this.referencia = referencia; + } + + public String getMunicipioId() { + return municipioId; + } + + public void setMunicipioId(String municipioId) { + this.municipioId = municipioId; + } + + public String getEstadoId() { + return estadoId; + } + + public void setEstadoId(String estadoId) { + this.estadoId = estadoId; + } + + public String getPaisId() { + return paisId; + } + + public void setPaisId(String paisId) { + this.paisId = paisId; + } + + public String getCodigoPostalId() { + return codigoPostalId; + } + + public void setCodigoPostalId(String codigoPostalId) { + this.codigoPostalId = codigoPostalId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java index ff6b568..29ad565 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java @@ -1,9 +1,5 @@ package com.fiscalapi.models.invoicing.billOfLading; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fiscalapi.serialization.BigDecimalSerializer; - -import java.math.BigDecimal; import java.util.List; public class TransporteFerroviario { @@ -61,112 +57,4 @@ public List getCarros() { public void setCarros(List carros) { this.carros = carros; } - - public static class DerechoDePaso { - private String tipoDerechoDePasoId; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal kilometrajePagado; - - public String getTipoDerechoDePasoId() { - return tipoDerechoDePasoId; - } - - public void setTipoDerechoDePasoId(String tipoDerechoDePasoId) { - this.tipoDerechoDePasoId = tipoDerechoDePasoId; - } - - public BigDecimal getKilometrajePagado() { - return kilometrajePagado; - } - - public void setKilometrajePagado(BigDecimal kilometrajePagado) { - this.kilometrajePagado = kilometrajePagado; - } - } - - public static class Carro { - private String tipoCarroId; - private String matriculaCarro; - private String guiaCarro; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal toneladasNetasCarro; - - private List contenedores; - - public String getTipoCarroId() { - return tipoCarroId; - } - - public void setTipoCarroId(String tipoCarroId) { - this.tipoCarroId = tipoCarroId; - } - - public String getMatriculaCarro() { - return matriculaCarro; - } - - public void setMatriculaCarro(String matriculaCarro) { - this.matriculaCarro = matriculaCarro; - } - - public String getGuiaCarro() { - return guiaCarro; - } - - public void setGuiaCarro(String guiaCarro) { - this.guiaCarro = guiaCarro; - } - - public BigDecimal getToneladasNetasCarro() { - return toneladasNetasCarro; - } - - public void setToneladasNetasCarro(BigDecimal toneladasNetasCarro) { - this.toneladasNetasCarro = toneladasNetasCarro; - } - - public List getContenedores() { - return contenedores; - } - - public void setContenedores(List contenedores) { - this.contenedores = contenedores; - } - } - - public static class ContenedorFerroviario { - private String tipoContenedorId; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal pesoContenedorVacio; - - @JsonSerialize(using = BigDecimalSerializer.class) - private BigDecimal pesoNetoMercancia; - - public String getTipoContenedorId() { - return tipoContenedorId; - } - - public void setTipoContenedorId(String tipoContenedorId) { - this.tipoContenedorId = tipoContenedorId; - } - - public BigDecimal getPesoContenedorVacio() { - return pesoContenedorVacio; - } - - public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { - this.pesoContenedorVacio = pesoContenedorVacio; - } - - public BigDecimal getPesoNetoMercancia() { - return pesoNetoMercancia; - } - - public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { - this.pesoNetoMercancia = pesoNetoMercancia; - } - } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java index 62bb097..36fd05b 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java @@ -1,14 +1,9 @@ package com.fiscalapi.models.invoicing.billOfLading; -import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; -import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import com.fiscalapi.serialization.BigDecimalSerializer; import java.math.BigDecimal; -import java.time.LocalDateTime; import java.util.List; public class TransporteMaritimo { @@ -231,96 +226,4 @@ public List getContenedores() { public void setContenedores(List contenedores) { this.contenedores = contenedores; } - - public static class ContenedorMaritimo { - private String tipoContenedorId; - private String matriculaContenedor; - private String numPrecinto; - private String idCCPRelacionado; - private String placaVMCCP; - - @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") - @JsonSerialize(using = LocalDateTimeSerializer.class) - @JsonDeserialize(using = LocalDateTimeDeserializer.class) - private LocalDateTime fechaCertificacionCCP; - - private List remolquesCCP; - - public String getTipoContenedorId() { - return tipoContenedorId; - } - - public void setTipoContenedorId(String tipoContenedorId) { - this.tipoContenedorId = tipoContenedorId; - } - - public String getMatriculaContenedor() { - return matriculaContenedor; - } - - public void setMatriculaContenedor(String matriculaContenedor) { - this.matriculaContenedor = matriculaContenedor; - } - - public String getNumPrecinto() { - return numPrecinto; - } - - public void setNumPrecinto(String numPrecinto) { - this.numPrecinto = numPrecinto; - } - - public String getIdCCPRelacionado() { - return idCCPRelacionado; - } - - public void setIdCCPRelacionado(String idCCPRelacionado) { - this.idCCPRelacionado = idCCPRelacionado; - } - - public String getPlacaVMCCP() { - return placaVMCCP; - } - - public void setPlacaVMCCP(String placaVMCCP) { - this.placaVMCCP = placaVMCCP; - } - - public LocalDateTime getFechaCertificacionCCP() { - return fechaCertificacionCCP; - } - - public void setFechaCertificacionCCP(LocalDateTime fechaCertificacionCCP) { - this.fechaCertificacionCCP = fechaCertificacionCCP; - } - - public List getRemolquesCCP() { - return remolquesCCP; - } - - public void setRemolquesCCP(List remolquesCCP) { - this.remolquesCCP = remolquesCCP; - } - } - - public static class RemolqueCCP { - private String subTipoRemCCPId; - private String placaCCP; - - public String getSubTipoRemCCPId() { - return subTipoRemCCPId; - } - - public void setSubTipoRemCCPId(String subTipoRemCCPId) { - this.subTipoRemCCPId = subTipoRemCCPId; - } - - public String getPlacaCCP() { - return placaCCP; - } - - public void setPlacaCCP(String placaCCP) { - this.placaCCP = placaCCP; - } - } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java index 37bbf53..564583a 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java @@ -30,7 +30,7 @@ public class Ubicacion { @JsonSerialize(using = BigDecimalSerializer.class) private BigDecimal distanciaRecorrida = null; - private Domicilio domicilio; + private UbicacionDomicilio domicilio; public String getTipoUbicacion() { return tipoUbicacion; @@ -128,11 +128,11 @@ public void setDistanciaRecorrida(BigDecimal distanciaRecorrida) { this.distanciaRecorrida = distanciaRecorrida; } - public Domicilio getDomicilio() { + public UbicacionDomicilio getDomicilio() { return domicilio; } - public void setDomicilio(Domicilio domicilio) { + public void setDomicilio(UbicacionDomicilio domicilio) { this.domicilio = domicilio; } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/UbicacionDomicilio.java similarity index 98% rename from src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java rename to src/main/java/com/fiscalapi/models/invoicing/billOfLading/UbicacionDomicilio.java index 261b786..3ee327c 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/UbicacionDomicilio.java @@ -1,6 +1,6 @@ package com.fiscalapi.models.invoicing.billOfLading; -public class Domicilio { +public class UbicacionDomicilio { private String calle; private String numeroExterior; private String numeroInterior; From 8cf94abc2d434a38f8075287342881648c960115 Mon Sep 17 00:00:00 2001 From: Jose Antonio Medina Date: Thu, 30 Apr 2026 20:42:22 -0600 Subject: [PATCH 7/8] Fixed errors with examples Co-authored-by: Copilot --- .../EjemplosCartaPorteReferencias.java | 75 ++++++++++++++++- .../examples/EjemplosCartaPorteValores.java | 81 ++++++++++++++++++- 2 files changed, 151 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java index cf25ce1..3233323 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java @@ -50,13 +50,86 @@ public void main(String[] args) { settings.setApiKey("api_key"); settings.setTenant("tenant_id"); + System.out.println("\n===== Ejemplo 1: Factura ingreso autotransporte nacional (sin impuestos) ====="); facturaIngresoAutoTransporteNacional(settings); + + System.out.println("\n===== Ejemplo 2: Factura ingreso autotransporte nacional con impuestos ====="); + facturaIngresoAutoTransporteNacionalConImpuestos(settings); + + System.out.println("\n===== Ejemplo 3: Factura ingreso autotransporte extranjero (salida) ====="); + facturaIngresoAutoTransporteExtranjero(settings); + + System.out.println("\n===== Ejemplo 4: Factura ingreso autotransporte internacional aduanero (entrada con pedimento) ====="); + facturaIngresoAutoTransporteInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 5: Factura ingreso transporte ferroviario nacional ====="); + facturaIngresoTransporteFerroviarioNacional(settings); + + System.out.println("\n===== Ejemplo 6: Factura ingreso transporte ferroviario extranjero ====="); + facturaIngresoTransporteFerroviarioExtranjero(settings); + + System.out.println("\n===== Ejemplo 7: Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) ====="); + facturaIngresoTransporteFerroviarioInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 8: Factura ingreso transporte aereo nacional ====="); + facturaIngresoTransporteAereoNacional(settings); + + System.out.println("\n===== Ejemplo 9: Factura ingreso transporte aereo extranjero (salida) ====="); + facturaIngresoTransporteAereoExtranjero(settings); + + System.out.println("\n===== Ejemplo 10: Factura ingreso transporte aereo internacional aduanero (entrada, IMD) ====="); + facturaIngresoTransporteAereoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 11: Factura ingreso transporte maritimo nacional ====="); + facturaIngresoTransporteMaritimoNacional(settings); + + System.out.println("\n===== Ejemplo 12: Factura ingreso transporte maritimo extranjero (salida) ====="); + facturaIngresoTransporteMaritimoExtranjero(settings); + + System.out.println("\n===== Ejemplo 13: Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) ====="); + facturaIngresoTransporteMaritimoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 14: Factura traslado autotransporte nacional ====="); + facturaTrasladoAutoTransporteNacional(settings); + + System.out.println("\n===== Ejemplo 15: Factura traslado autotransporte extranjero (salida, EXD) ====="); + facturaTrasladoAutoTransporteExtranjero(settings); + + System.out.println("\n===== Ejemplo 16: Factura traslado autotransporte internacional aduanero (entrada, IMD) ====="); + facturaTrasladoAutoTransporteInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 17: Factura traslado transporte ferroviario nacional ====="); + facturaTrasladoTransporteFerroviarioNacional(settings); + + System.out.println("\n===== Ejemplo 18: Factura traslado transporte ferroviario extranjero ====="); + facturaTrasladoTransporteFerroviarioExtranjero(settings); + + System.out.println("\n===== Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) ====="); + facturaTrasladoTransporteFerroviarioInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 20: Factura traslado transporte aereo nacional ====="); + facturaTrasladoTransporteAereoNacional(settings); + + System.out.println("\n===== Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) ====="); + facturaTrasladoTransporteAereoExtranjero(settings); + + System.out.println("\n===== Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) ====="); + facturaTrasladoTransporteAereoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 23: Factura traslado transporte maritimo nacional ====="); + facturaTrasladoTransporteMaritimoNacional(settings); + + System.out.println("\n===== Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) ====="); + facturaTrasladoTransporteMaritimoExtranjero(settings); + + System.out.println("\n===== Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) ====="); + facturaTrasladoTransporteMaritimoInternacionalAduanero(settings); } // Factura ingreso autotransporte nacional (sin impuestos) private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { FiscalApiClient client = FiscalApiClient.create(settings); - LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + LocalDateTime currentDate = OptUtil.parseLocalDateTime("2026-04-30T19:00:00"); // Issuer InvoiceIssuer issuer = new InvoiceIssuer(); diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java index b734db6..8f34669 100644 --- a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java @@ -45,18 +45,91 @@ public class EjemplosCartaPorteValores { public void main(String[] args) { FiscalApiSettings settings = new FiscalApiSettings(); - settings.setDebugMode(true); + settings.setDebugMode(false); settings.setApiUrl("https://test.fiscalapi.com"); - settings.setApiKey("api_key"); - settings.setTenant("tenant_id"); + settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); + settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); + System.out.println("\n===== Ejemplo 1: Factura ingreso autotransporte nacional (sin impuestos) ====="); facturaIngresoAutoTransporteNacional(settings); + + System.out.println("\n===== Ejemplo 2: Factura ingreso autotransporte nacional con impuestos ====="); + facturaIngresoAutoTransporteNacionalConImpuestos(settings); + + System.out.println("\n===== Ejemplo 3: Factura ingreso autotransporte extranjero (salida) ====="); + facturaIngresoAutoTransporteExtranjero(settings); + + System.out.println("\n===== Ejemplo 4: Factura ingreso autotransporte internacional aduanero (entrada con pedimento) ====="); + facturaIngresoAutoTransporteInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 5: Factura ingreso transporte ferroviario nacional ====="); + facturaIngresoTransporteFerroviarioNacional(settings); + + System.out.println("\n===== Ejemplo 6: Factura ingreso transporte ferroviario extranjero ====="); + facturaIngresoTransporteFerroviarioExtranjero(settings); + + System.out.println("\n===== Ejemplo 7: Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) ====="); + facturaIngresoTransporteFerroviarioInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 8: Factura ingreso transporte aereo nacional ====="); + facturaIngresoTransporteAereoNacional(settings); + + System.out.println("\n===== Ejemplo 9: Factura ingreso transporte aereo extranjero (salida) ====="); + facturaIngresoTransporteAereoExtranjero(settings); + + System.out.println("\n===== Ejemplo 10: Factura ingreso transporte aereo internacional aduanero (entrada, IMD) ====="); + facturaIngresoTransporteAereoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 11: Factura ingreso transporte maritimo nacional ====="); + facturaIngresoTransporteMaritimoNacional(settings); + + System.out.println("\n===== Ejemplo 12: Factura ingreso transporte maritimo extranjero (salida) ====="); + facturaIngresoTransporteMaritimoExtranjero(settings); + + System.out.println("\n===== Ejemplo 13: Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) ====="); + facturaIngresoTransporteMaritimoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 14: Factura traslado autotransporte nacional ====="); + facturaTrasladoAutoTransporteNacional(settings); + + System.out.println("\n===== Ejemplo 15: Factura traslado autotransporte extranjero (salida, EXD) ====="); + facturaTrasladoAutoTransporteExtranjero(settings); + + System.out.println("\n===== Ejemplo 16: Factura traslado autotransporte internacional aduanero (entrada, IMD) ====="); + facturaTrasladoAutoTransporteInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 17: Factura traslado transporte ferroviario nacional ====="); + facturaTrasladoTransporteFerroviarioNacional(settings); + + System.out.println("\n===== Ejemplo 18: Factura traslado transporte ferroviario extranjero ====="); + facturaTrasladoTransporteFerroviarioExtranjero(settings); + + System.out.println("\n===== Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) ====="); + facturaTrasladoTransporteFerroviarioInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 20: Factura traslado transporte aereo nacional ====="); + facturaTrasladoTransporteAereoNacional(settings); + + System.out.println("\n===== Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) ====="); + facturaTrasladoTransporteAereoExtranjero(settings); + + System.out.println("\n===== Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) ====="); + facturaTrasladoTransporteAereoInternacionalAduanero(settings); + + System.out.println("\n===== Ejemplo 23: Factura traslado transporte maritimo nacional ====="); + facturaTrasladoTransporteMaritimoNacional(settings); + + System.out.println("\n===== Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) ====="); + facturaTrasladoTransporteMaritimoExtranjero(settings); + + System.out.println("\n===== Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) ====="); + facturaTrasladoTransporteMaritimoInternacionalAduanero(settings); } // Factura ingreso autotransporte nacional (sin impuestos) private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { FiscalApiClient client = FiscalApiClient.create(settings); - LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + LocalDateTime currentDate = OptUtil.parseLocalDateTime("2026-04-30T19:00:00"); // Tax credentials List taxCredentials = new ArrayList<>(); From 3148963c3980892465281a504f98ea6bbfd168ae Mon Sep 17 00:00:00 2001 From: JesusMendoza Date: Wed, 6 May 2026 19:52:00 -0600 Subject: [PATCH 8/8] v4.0.384 --- .claude/settings.local.json | 5 +++ .gitignore | 3 +- CLAUDE.md | 68 +++++++++++++++++++++++++++---------- pom.xml | 2 +- 4 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 .claude/settings.local.json diff --git a/.claude/settings.local.json b/.claude/settings.local.json new file mode 100644 index 0000000..5473423 --- /dev/null +++ b/.claude/settings.local.json @@ -0,0 +1,5 @@ +{ + "permissions": { + "defaultMode": "bypassPermissions" + } +} diff --git a/.gitignore b/.gitignore index 5ff6309..c27e327 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,5 @@ build/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store +.fake \ No newline at end of file diff --git a/CLAUDE.md b/CLAUDE.md index 3877e65..2f1c175 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,31 +4,36 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -Official Java SDK for FiscalAPI - a Mexican CFDI electronic invoicing service (SAT integration). Provides CFDI 4.0 invoicing, certificate management, mass downloads, payroll, and SAT catalog queries. +Official Java SDK for FiscalAPI - a Mexican CFDI electronic invoicing service (SAT integration). Provides CFDI 4.0 invoicing, certificate management, mass downloads, payroll, and SAT catalog queries. Published to Maven Central as `com.fiscalapi:fiscalapi`. ## Build Commands ```bash mvn clean compile # Compile -mvn test # Run tests mvn package # Create JAR -mvn clean deploy -Prelease # Deploy to Maven Central (requires GPG) +mvn clean deploy -Prelease # Deploy to Maven Central (requires GPG + settings.xml credentials) ``` +No unit tests exist in this project currently. No linting or formatting tools are configured. + ## Architecture ### Entry Point -`FiscalApiClient.create(FiscalApiSettings)` - Factory method creating the main client with all services. +`FiscalApiClient.create(FiscalApiSettings)` - Factory method creating the main client with all 10 services. ### Service Layer Pattern ``` IFiscalApiClient (facade) - ├── getInvoiceService() → IInvoiceService extends IFiscalApiService - ├── getPersonService() → IPersonService extends IFiscalApiService - ├── getProductService() → IProductService extends IFiscalApiService - ├── getTaxFileService() → ITaxFileService extends IFiscalApiService - ├── getCatalogService() → ICatalogService extends IFiscalApiService - └── ... (other services) + ├── getInvoiceService() → IInvoiceService (cancel, status, getPdf, send, getXml) + ├── getPersonService() → IPersonService + ├── getProductService() → IProductService + ├── getTaxFileService() → ITaxFileService (getDefaultReferences, getDefaultValues) + ├── getCatalogService() → ICatalogService (custom search/query) + ├── getApiKeyService() → IApiKeyService + ├── getStampService() → IStampService (transfer, withdraw) + ├── getDownloadCatalogService() → IDownloadCatalogService + ├── getDownloadRuleService() → IDownloadRuleService + └── getDownloadRequestService() → IDownloadRequestService (cancel, retry, delete) ``` ### Generic CRUD Base @@ -43,20 +48,39 @@ Subclasses must implement `getTypeParameterClass()` to return the entity type fo ### DTO Hierarchy ``` -SerializableDto → AuditableDto (createdAt, updatedAt) → BaseDto (id) +SerializableDto (toString() returns pretty-printed JSON) + → AuditableDto (createdAt, updatedAt: LocalDateTime) + → BaseDto (id: String) ``` All models extend `BaseDto`. Responses wrapped in `ApiResponse`. ### HTTP Layer -- `OkHttpClientFactory` - Creates/caches OkHttpClient instances with auth headers (X-API-KEY, X-TENANT-KEY, X-API-VERSION, X-TIMEZONE) -- `FiscalApiHttpClient` - Wraps OkHttp with Jackson, handles request/response logging in debug mode +- `OkHttpClientFactory` - Creates/caches OkHttpClient instances with auth headers (X-API-KEY, X-TENANT-KEY, X-API-VERSION, X-TIMEZONE). Default timezone: America/Mexico_City. +- `FiscalApiHttpClient` - Wraps OkHttp with Jackson. ObjectMapper configured with: + - `JavaTimeModule` (LocalDateTime/ZonedDateTime support) + - `FAIL_ON_UNKNOWN_PROPERTIES = false` + - `WRITE_BIGDECIMAL_AS_PLAIN = true` + - Non-null serialization inclusion + - Custom `BigDecimalSerializer` in `serialization/` (avoids scientific notation) ### Key Packages -- `abstractions/` - Service interfaces -- `common/` - ApiResponse, PagedList, settings +- `abstractions/` - Service interfaces (all prefixed with `I`) +- `common/` - ApiResponse, PagedList, FiscalApiSettings, BaseDto hierarchy - `http/` - HTTP client implementation -- `models/` - All DTOs (invoicing/, downloading/ subpackages) +- `models/` - All DTOs + - `models/invoicing/` - Invoice, InvoiceItem, InvoiceIssuer, InvoiceRecipient, etc. + - `models/invoicing/payroll/` - 13 payroll CFDI types (Payroll, EmployeeData, PayrollEarning, etc.) + - `models/invoicing/paymentComplement/` - Payment complement models + - `models/invoicing/localTaxes/` - Local tax models + - `models/downloading/` - Mass download models - `services/` - Service implementations +- `serialization/` - Custom Jackson serializers +- `examples/` - Usage examples (payroll, local taxes, stamps) + +### Two Modes of Operation +The SDK supports two invoicing modes (see examples/): +- **By references** - Pass entity IDs, server resolves full data +- **By values** - Pass complete entity data inline ## Configuration @@ -65,18 +89,26 @@ FiscalApiSettings settings = new FiscalApiSettings(); settings.setApiUrl("https://test.fiscalapi.com"); // or https://live.fiscalapi.com settings.setApiKey("sk_test_..."); settings.setTenant("..."); -settings.setDebugMode(true); // Logs requests/responses +settings.setDebugMode(true); // Logs requests/responses to console +// settings.setApiVersion("v4"); // default +// settings.setTimeZone("America/Mexico_City"); // default FiscalApiClient client = FiscalApiClient.create(settings); ``` +Spring Boot integration: Use `@Value` properties + `@Bean` registration (see README.md for full pattern). + ## API Endpoint Pattern `{apiUrl}/api/{apiVersion}/{resource}/{id?}/{action?}` Example: `POST api/v4/invoices`, `GET api/v4/invoices/{id}?details=true` +## Deployment + +GitHub Actions workflow (`.github/workflows/deploy.yml`): manual dispatch, builds with Java 8 Temurin, signs with GPG, deploys to Maven Central. + ## Dependencies - OkHttp3 4.12.0 (HTTP) -- Jackson 2.14.2 (JSON) +- Jackson 2.14.2 + JSR310 module (JSON + Java 8 time) - Java 8+ (source/target) diff --git a/pom.xml b/pom.xml index c8bb435..9cede2f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.fiscalapi fiscalapi - 4.0.372 + 4.0.384 ${project.groupId}:${project.artifactId} Genera facturas CFDI válidas ante el SAT consumiendo la API de https://www.fiscalapi.com https://www.fiscalapi.com