Skip to content

Java library for creating and sending XML files through SOAP - SUNAT

License

Notifications You must be signed in to change notification settings

muglerman/xhandler-java

 
 

Repository files navigation

XHandler Java

License CI

Project Chat Supported JVM Versions

XHandler Java es una suite de herramientas diseñada para facilitar la integración de Facturación Electrónica en Perú (SUNAT) en aplicaciones Java. Este repositorio es un "monorepo" que alberga las librerías XBuilder y XSender, proporcionando una solución integral para crear, firmar y enviar comprobantes de pago electrónicos.

Tip

Si buscas integrar facturación electrónica de manera rápida y estándar, estás en el lugar correcto.


📦 Ecosistema

El proyecto se divide en módulos principales y extensiones para frameworks populares:

Componente Descripción Maven Central
XBuilder Creación y firma de XMLs (UBL 2.1) Maven Central
XSender Envío de comprobantes a SUNAT/OSE Maven Central
Quarkus XBuilder Extensión XBuilder para Quarkus Maven Central
Quarkus XSender Extensión XSender para Quarkus Maven Central
Spring Boot XSender Starter XSender para Spring Boot Maven Central

🛠️ XBuilder

XBuilder abstrae la complejidad de los estándares UBL y XML, permitiéndote construir documentos tributarios válidos escribiendo código Java simple.

Características

  • Simple: No necesitas manipular XML directamente ni conciliar namespaces complejos.
  • Completo: Soporte para Facturas, Boletas, Notas de Crédito/Débito, Guías de Remisión y Percepciones/Retenciones.
  • Validado: Realiza cálculos automáticos y validaciones básicas según normativa SUNAT.

Ejemplo de Uso

// Ejemplo simplificado de creación de factura
Invoice invoice = Invoice.builder()
    .serie("F001")
    .numero(1)
    .proveedor(proveedor)
    .cliente(cliente)
    .detalle(detalle)
    .build();

XMLInvoice xml = new InvoiceXMLBuilder().build(invoice);

Note

Para actualizar los snapshots de prueba en desarrollo local, ejecuta: mvn clean test -Dxbuilder.snapshot.update


🚀 XSender

XSender se encarga de la comunicación con los servicios SOAP de la SUNAT o de los Operadores de Servicios Electrónicos (OSE).

Características

  • Compatible: Soporta los diversos endpoints de SUNAT (Beta/Producción) y OSEs.
  • Resiliente: Gestiona el envío de archivos ZIP y el procesamiento de respuestas (CDR, Tickets).
  • Flexible: Fácil integración con frameworks modernos como Quarkus y Spring Boot.

💻 Ejemplos

Explora la carpeta examples/ para ver implementaciones de referencia:

  • Spring Boot: Ejemplo de integración completa usando Spring Boot.
  • Wildfly: Ejemplo para servidores de aplicaciones Jakarta EE.
  • Tomcat: Ejemplo ligero desplegable en Tomcat.
  • XBuilder/XSender: Ejemplos "standalone" de uso de las librerías.

📚 Documentación

Para guías detalladas, referencia de API y tutoriales, consulta nuestra documentación oficial.


📄 Licencia

Este proyecto se distribuye bajo la licencia Apache 2.0. Consulta el archivo LICENSE para más detalles.

Copyright © Project OpenUBL.

About

Java library for creating and sending XML files through SOAP - SUNAT

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • Java 98.8%
  • Other 1.2%