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

project-openubl/xhandler-java

XHandler Java

LicenseCI

Project ChatSupported 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:

ComponenteDescripciónMaven Central
XBuilderCreación y firma de XMLs (UBL 2.1)Maven Central
XSenderEnvío de comprobantes a SUNAT/OSEMaven Central
Quarkus XBuilderExtensión XBuilder para QuarkusMaven Central
Quarkus XSenderExtensión XSender para QuarkusMaven Central
Spring Boot XSenderStarter XSender para Spring BootMaven 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 facturaInvoiceinvoice = Invoice.builder() .serie("F001") .numero(1) .proveedor(proveedor) .cliente(cliente) .detalle(detalle) .build(); XMLInvoicexml = newInvoiceXMLBuilder().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.

Sponsor this project

 

Packages

No packages published

Contributors 6

Languages