dk-java.0.1.4.source-code.README.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ef-sdk-java Show documentation
Show all versions of ef-sdk-java Show documentation
Este kit de consumo provee a los integradores de Apis de Java para construir software que consuma los diferentes servicios web publicados por Emite Facturacion
The newest version!
![alt text](https://github.com/emite-mx/ef-sdk-java/blob/master/emite.png "Emite Facturacion")
# EmiteFacturacion [emite.mx](https://www.emite.mx)
## ef-sdk-java-0.1.4
**** Kit de consumo de servicios Emite Facturación
### Instalación Maven
-------------------------------------------------------
Para instalar esta libreria es necesario que agregue el siguiente codigo en su archivo pom.xml
```xml
mx.emite
ef-sdk-java
0.1.4
```
### Requerimientos Técnicos
-------------------------------------------------------
- Java 1.8
## Servicios de Emisor
-------------------------------------------------------
- Timbrado de CFDI 3.2 de Factura y Nómina
- Sellado y Timbrado de CFDI 3.2
- Generación completa de CFDI (Xml + Sellado + Timbrado)
- Cancelación de CFDI 3.2
- Descarga de Xml
- Descarga de Acuses de Cancelación
- Descarga de Pdf
- Descarga de Pdf de Acuse de Cancelación
- Envio de Xml y Pdf por correo
- Descarga Masiva de Xml, Pdf y Acuses de Cancelación
- Validación de CFDI 3.2
### Servicios de Integrador
-------------------------------------------------------
- Generación de Token de Consumo
- Consulta de Tarifa y Timbres Disponibles
- Consulta de Emisores Registrados
- Consulta de Sucursales por Emisor
- Alta de Emisores
- Modificación de Emisores
- Carga de CSD
- Consulta de CSD
- Consulta de Estatus de Emisores
- Alta de Sucursales
- Modificación de Sucursales
- Cambio de nombre a Sucursales
- Servicio de carga de documentación
### Requerimientos de utilización
-------------------------------------------------------
- Contar con registro de Integrador en nuestro portal de Integradores
[Portal de Integradores: https://scot.emite.mx](https://scot.emite.mx)
### Documentación adicional de nuestros servicios
-------------------------------------------------------
- [Documentacion Técnica Api Servicios Web de Emisores: https://proxy.emite.mx/api/](https://proxy.emite.mx/api/)
- [Documentacion Técnica Api Servicios Web de Integradores: https://scot.emite.mx/api/](https://scot.emite.mx/api/)
# Ejemplos de utilización
-------------------------------------------------------
Dentro de la carpeta [ef-sdk-java/src/test/java/mx/emite/sdk/pruebas/ejemplos](https://github.com/emite-mx/ef-sdk-java/tree/master/ef-sdk-java/src/test/java/mx/emite/sdk/pruebas/ejemplos) podrá encontrar ejemplos sobre los servicios que estan soportados por la libreria, para su referencia se muestra a continuación un ejemplo de generación, sellado y timbrado de un CFDI:
## Servicios de Emisor
-------------------------------------------------------
-------------------------------------------------------
### Ejemplo de Timbrado de CFDI 3.2
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final TimbrarRequest request = TimbrarRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.xml(props.getProperty("xml.base64"))
.build();
final TimbrarResponse respuesta = api.timbrador32().ejecuta(request);
```
### Sellado y Timbrado de CFDI 3.2
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final SellarYTimbrarRequest request = SellarYTimbrarRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.xml(props.getProperty("xml.base64"))
.build();
final SellarYTimbrarResponse respuesta = api.selladorytimbrador32().ejecuta(request);
```
### Ejemplo de Generación completa de CFDI (Xml + Sellado + Timbrado)
-------------------------------------------------------
```java
final Comprobante comprobante = Comprobante.builder()
.lugarExpedicion("México, D.F.")
.fecha(LocalDateTime.now())
.folio(1000)
.formaDePago(TipoPago.PAGOENUNASOLAEXHIBICION)
.metodoDePago(MetodosPago.CANCELACION)
.tipoDeComprobante(TipoDeComprobante.INGRESO)
.subTotal(BigDecimal.ZERO)
.total(BigDecimal.ZERO)
.moneda(Monedas.MXN)
.numCtaPago("NO IDENTIFICADO")
.emisor(Emisor.builder()
.nombre(props.getProperty("emisor.nombre"))
.rfc(props.getProperty("emisor.usuario"))
.domicilioFiscal(TUbicacionFiscal.builder()
.calle("CALLE")
.codigoPostal("00000")
.municipio("MUNICIPIO")
.estado(Estados.DISTRITOFEDERAL)
.pais(Paises.MEXICO)
.build())
.regimenFiscal(RegimenFiscal.builder()
.Regimen(RegimenesFiscales.GENERALDELEYPERSONASMORALES)
.build())
.build())
.receptor(Receptor.builder()
.nombre("RECEPTOR SA DE CV")
.rfc("XAXX010101000")
.domicilio(TUbicacion.builder()
.calle("CALLE")
.codigoPostal("00000")
.municipio("MUNICIPIO")
.estado(Estados.DISTRITOFEDERAL)
.pais(Paises.MEXICO)
.build())
.build())
.conceptos(Conceptos.builder()
.concepto(Concepto.builder()
.cantidad(BigDecimal.ONE)
.descripcion("DESCRIPCION")
.importe(BigDecimal.ZERO)
.valorUnitario(BigDecimal.ZERO)
.unidad(UnidadesMedida.SERVICIO)
.build())
.build())
.impuestos(Impuestos.builder()
.totalImpuestosRetenidos(BigDecimal.valueOf(0))
.totalImpuestosTrasladados(BigDecimal.ZERO)
.retenciones(Retenciones.builder()
.retencion(Retencion.builder()
.importe(BigDecimal.ZERO)
.impuesto(TiposImpuesto.ISR)
.build())
.build())
.traslados(Traslados.builder()
.traslado(Traslado.builder()
.tasa(BigDecimal.valueOf(16))
.importe(BigDecimal.ZERO)
.impuesto(TiposImpuesto.IVA)
.build())
.build())
.build())
.build()
;
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final SellarYTimbrarRequest request = SellarYTimbrarRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.comprobante(comprobante)
.build();
final SellarYTimbrarResponse respuesta = api.selladorytimbrador32().ejecuta(request);
```
### Ejemplo de Cancelación de CFDI 3.2
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final CancelarRequest request = CancelarRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
.build()
;
final CancelarResponse respuesta = api.cancelador32().ejecuta(request);
```
### Ejemplo de Descarga de Xml
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final XmlRequest request = XmlRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
.build()
;
final XmlResponse respuesta = api.descargaxml().ejecuta(request);
```
### Ejemplo de Descarga de Acuses de Cancelación
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final XmlRequest request = XmlRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
.build()
;
final XmlResponse respuesta = api.descargaacusexml().ejecuta(request);
```
### Ejemplo de Descarga de Pdf
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final PdfRequest request = PdfRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid(props.getProperty("xml.uuid"))
.plantilla("EMITE")
.build()
;
final PdfResponse respuesta = api.pdf().ejecuta(request);
respuesta.guardaPdf(props.getProperty("pdf.ruta"));
```
### Ejemplo de Descarga de Pdf de Acuse de Cancelación
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final PdfRequest request = PdfRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid(props.getProperty("xml.uuid"))
.build()
;
final PdfResponse respuesta = api.pdfacuse().ejecuta(request);
respuesta.guardaPdf(props.getProperty("pdf.ruta"));
```
### Ejemplo de Envio de Xml y Pdf por correo
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final CorreoRequest request = CorreoRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.uuid(props.getProperty("xml.uuid"))
.plantilla("EMITE")
.recuperarArchivos(true)
.correo(CorreoParametros.builder()
.asunto("asunto")
.para(Correo.builder()
.correo(props.getProperty("destinatario"))
.build())
.build())
.build();
final CorreoResponse respuesta = api.correos().ejecuta(request);
```
### Ejemplo de Descarga Masiva de Xml, Pdf y Acuses de Cancelación
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final ZipRequest request = ZipRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.xml(true)
.filtro(ConsultaFiltro.builder()
.rango(LocalDate.of(2016, 01, 01), LocalDate.of(2016, 01, 31))
.build())
.build()
;
final ZipResponse respuesta = api.descargamasiva().ejecuta(request);
respuesta.guardaZip(props.getProperty("zip.ruta"));
```
### Ejemplo de Validación de CFDI 3.2
-------------------------------------------------------
```java
final EmiteAPI api = new EmiteAPI(Ambiente.PRUEBAS);
final ValidadorRequest request = ValidadorRequest.builder()
.usuario(props.getProperty("emisor.usuario"))
.contrasena(props.getProperty("emisor.contrasena"))
.xml(props.getProperty("xml.base64"))
.build();
final ValidadorResponse respuesta = api.validador32().ejecuta(request);
```
## Servicios de Integrador
-------------------------------------------------------
### Ejemplo de Generación de Token de Consumo
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse respuesta = api.token().ejecuta(tr);
```
### Ejemplo de Consulta de Tarifa y Timbres Disponibles
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final TimbresRequest timbresreq = TimbresRequest.builder()
.token(tokenresp.getToken())
.build();
final TimbresResponse respuesta = api.timbres().ejecuta(timbresreq);
```
### Ejemplo de Consulta de Emisores Registrados
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresRequest timbresreq = EmisoresRequest.builder()
.token(tokenresp.getToken())
.build();
final EmisoresResponse respuesta = api.emisores().ejecuta(timbresreq);
```
### Ejemplo de Consulta de Sucursales por Emisor
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final SucursalesRequest timbresreq = SucursalesRequest.builder()
.token(tokenresp.getToken())
.rfc(props.getProperty("emisor.rfc"))
.build();
final SucursalesResponse respuesta = api.sucursales().ejecuta(timbresreq);
```
### Ejemplo de Alta de Emisores
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresAltaRequest timbresreq = EmisoresAltaRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.tipoEmisor(TipoIntegradorEmisor.POSTPAGO)
.usuario("usuarioWs")
.contrasena("contrasenaWs")
.correo("[email protected]")
.razonSocial("Razon Social")
.calle("calle")
.cp("04300")
.municipio("Benito Juarez")
.idEstado(Estados.DISTRITOFEDERAL )
.idPais(Paises.MEXICO )
.idRegimen(RegimenesFiscales.GENERALDELEYPERSONASMORALES)
.idFormaPago(FormasPago.TRANSFERENCIA)
.cuentapago("1234")
.build();
final EmisoresAltaResponse respuesta = api.emisoresalta().ejecuta(timbresreq);
```
### Ejemplo de Modificación de Emisores
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresModificacionRequest timbresreq = EmisoresModificacionRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.correo("[email protected]")
.razonSocial("Razon Social")
.calle("calle")
.cp("04300")
.municipio("Benito Juarez")
.idEstado(Estados.DISTRITOFEDERAL )
.idPais(Paises.MEXICO )
.idRegimen(RegimenesFiscales.GENERALDELEYPERSONASMORALES)
.idFormaPago(FormasPago.TRANSFERENCIA)
.cuentapago("1234")
.build();
final EmisoresModificacionResponse respuesta = api.emisoresmodificacion().ejecuta(timbresreq);
```
### Ejemplo de Carga de CSD
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresCsdRequest timbresreq = EmisoresCsdRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.cer(props.getProperty("cer"))
.key(props.getProperty("key"))
.contrasenaCsd("contrasenaWs")
.build();
final EmisoresCsdResponse respuesta = api.emisorescsd().ejecuta(timbresreq);
```
### Ejemplo de Consulta de CSD
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresCsdConsultaRequest timbresreq = EmisoresCsdConsultaRequest.builder()
.token(tokenresp.getToken())
.rfc(props.getProperty("emisor.rfc")
.build();
final EmisoresCsdConsultaResponse respuesta = api.emisorescsdconsulta().ejecuta(timbresreq);
```
### Ejemplo de Consulta de Estatus de Emisores
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresEstatusRequest timbresreq = EmisoresEstatusRequest.builder()
.token(tokenresp.getToken())
.rfc(props.getProperty("emisor.rfc")
.build();
final EmisoresEstatusResponse respuesta = api.emisoresestatus().ejecuta(timbresreq);
```
### Ejemplo de Alta de Sucursales
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final SucursalesAltaRequest timbresreq = SucursalesAltaRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.sucursal(SucursalInfo.builder()
.nombre("nombresucursal")
.correo("[email protected]")
.razonSocial("Razon Social")
.calle("calle")
.cp("04300")
.municipio("Benito Juarez")
.idEstado(Estados.DISTRITOFEDERAL )
.idPais(Paises.MEXICO )
.idRegimen(RegimenesFiscales.GENERALDELEYPERSONASMORALES)
.idFormaPago(FormasPago.TRANSFERENCIA)
.cuentapago("1234")
.build())
.build();
final SucursalesAltaResponse respuesta = api.sucursalesalta().ejecuta(timbresreq);
```
### Ejemplo de Modificación de Sucursales
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final SucursalesModificacionRequest timbresreq = SucursalesModificacionRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.sucursal(SucursalInfo.builder()
.nombre("nombresucursal")
.correo("[email protected]")
.razonSocial("Razon Social")
.calle("calle")
.cp("04300")
.municipio("Benito Juarez")
.idEstado(Estados.DISTRITOFEDERAL )
.idPais(Paises.MEXICO )
.idRegimen(RegimenesFiscales.GENERALDELEYPERSONASMORALES)
.idFormaPago(FormasPago.TRANSFERENCIA)
.cuentapago("1234")
.build())
.build();
final SucursalesModificacionResponse respuesta = api.sucursalesmodificacion().ejecuta(timbresreq);
```
### Ejemplo de Cambio de Nombre a Sucursal
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final SucursalesNombreRequest timbresreq = SucursalesNombreRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.nombreAnterior("sucursal")
.nombreNuevo("sucursal 2")
.build();
final SucursalesNombreResponse respuesta = api.sucursalesnombre().ejecuta(timbresreq);
```
### Ejemplo de Servicio de Carga de Documentación
-------------------------------------------------------
```java
final IntegradorAPI api = new IntegradorAPI(Ambiente.PRUEBAS);
final TokenRequest tr = TokenRequest.builder()
.usuario(props.getProperty("integrador.usuario"))
.contrasena(props.getProperty("integrador.contrasena"))
.build();
final TokenResponse tokenresp = api.token().ejecuta(tr);
final EmisoresDocumentosRequest edr = EmisoresDocumentosRequest.builder()
.token(tokenresp.getToken())
.rfc("XAXX010101000")
.pdf("PDFBASE64")
.idTipoDocumento(1)
.build();
final EmisoresDocumentosResponse respuesta = api.emisoresdocumentos().ejecuta(edr);
```