Skip to content

Commit 2cf7198

Browse files
feat: Mejora de documentación, refactorización de templates y nuevos ejemplos (#210)
Signed-off-by: Edwin Luis Barboza Pinedo <ibarboza27498@gmail.com> Signed-off-by: Carlos Feria <2582866+carlosthe19916@users.noreply.github.com> Co-authored-by: Carlos Feria <2582866+carlosthe19916@users.noreply.github.com>
1 parent 9dea32a commit 2cf7198

File tree

48 files changed

+2670
-134
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+2670
-134
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,5 @@ target
5454
*dependency-reduced-pom.xml
5555

5656
/lsp/
57-
bin/
57+
bin/
58+
.vscode/*

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

README.md

Lines changed: 75 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,96 @@
1+
# XHandler Java
2+
13
[![License](https://img.shields.io/github/license/project-openubl/xhandler?logo=apache)](https://www.apache.org/licenses/LICENSE-2.0)
24
[![CI](https://github.com/project-openubl/xhandler/actions/workflows/ci.yml/badge.svg)](https://github.com/project-openubl/xhandler/actions/workflows/ci.yml)
35

46
[![Project Chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg?style=for-the-badge&logo=zulip)](https://projectopenubl.zulipchat.com/)
57
[![Supported JVM Versions](https://img.shields.io/badge/JVM--17-brightgreen.svg?style=for-the-badge&logo=Java)](https://github.com/project-openubl/xhandler/actions/)
68

7-
| Artifact | Version |
8-
|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
9-
| XBuilder | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/xbuilder/) |
10-
| XBuilder Quarkus extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xbuilder/) |
11-
| XSender | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xsender)](https://search.maven.org/artifact/io.github.project-openubl/xsender/) |
12-
| XSender Quarkus extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xsender)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xsender/) |
13-
| XSender Spring Boot extension | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/spring-boot-xsender)](https://search.maven.org/artifact/io.github.project-openubl/spring-boot-xsender/) |
9+
**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.
10+
11+
> [!TIP]
12+
> Si buscas integrar facturación electrónica de manera rápida y estándar, estás en el lugar correcto.
13+
14+
---
15+
16+
## 📦 Ecosistema
1417

15-
# XBuilder
18+
El proyecto se divide en módulos principales y extensiones para frameworks populares:
1619

17-
Librería Java para crear XMLs basados en UBL y los estándares de la SUNAT respecto a la facturación electrónica.
20+
| Componente | Descripción | Maven Central |
21+
|------------|-------------|---------------|
22+
| **XBuilder** | Creación y firma de XMLs (UBL 2.1) | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/xbuilder/) |
23+
| **XSender** | Envío de comprobantes a SUNAT/OSE | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/xsender)](https://search.maven.org/artifact/io.github.project-openubl/xsender/) |
24+
| **Quarkus XBuilder** | Extensión XBuilder para Quarkus | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xbuilder)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xbuilder/) |
25+
| **Quarkus XSender** | Extensión XSender para Quarkus | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/quarkus-xsender)](https://search.maven.org/artifact/io.github.project-openubl/quarkus-xsender/) |
26+
| **Spring Boot XSender** | Starter XSender para Spring Boot | [![Maven Central](https://img.shields.io/maven-central/v/io.github.project-openubl/spring-boot-xsender)](https://search.maven.org/artifact/io.github.project-openubl/spring-boot-xsender/) |
1827

19-
XBuilder esta diseñado para que puedas crear XMLs fácilmente.
28+
---
2029

21-
- Crea XMLs sin que necesites conocer nada sobre manejo de archivos XMLs.
22-
- Hace cálculos internos por ti.
23-
- Requiere solamente datos mínimos.
30+
## 🛠️ XBuilder
2431

25-
## ¿Qué puedes hacer con XBuilder?
32+
XBuilder abstrae la complejidad de los estándares UBL y XML, permitiéndote construir documentos tributarios válidos escribiendo código Java simple.
2633

27-
- Crear XMLs
28-
- Firmar XMLs
34+
### Características
35+
- **Simple**: No necesitas manipular XML directamente ni conciliar namespaces complejos.
36+
- **Completo**: Soporte para Facturas, Boletas, Notas de Crédito/Débito, Guías de Remisión y Percepciones/Retenciones.
37+
- **Validado**: Realiza cálculos automáticos y validaciones básicas según normativa SUNAT.
2938

30-
### Update snapshots
39+
### Ejemplo de Uso
3140

32-
```shell
33-
mvn clean test -Dxbuilder.snapshot.update
41+
```java
42+
// Ejemplo simplificado de creación de factura
43+
Invoice invoice = Invoice.builder()
44+
.serie("F001")
45+
.numero(1)
46+
.proveedor(proveedor)
47+
.cliente(cliente)
48+
.detalle(detalle)
49+
.build();
50+
51+
XMLInvoice xml = new InvoiceXMLBuilder().build(invoice);
3452
```
3553

36-
# XSender
54+
> [!NOTE]
55+
> Para actualizar los snapshots de prueba en desarrollo local, ejecuta:
56+
> `mvn clean test -Dxbuilder.snapshot.update`
57+
58+
---
59+
60+
## 🚀 XSender
61+
62+
XSender se encarga de la comunicación con los servicios SOAP de la SUNAT o de los Operadores de Servicios Electrónicos (OSE).
63+
64+
### Características
65+
- **Compatible**: Soporta los diversos endpoints de SUNAT (Beta/Producción) y OSEs.
66+
- **Resiliente**: Gestiona el envío de archivos ZIP y el procesamiento de respuestas (CDR, Tickets).
67+
- **Flexible**: Fácil integración con frameworks modernos como Quarkus y Spring Boot.
68+
69+
---
70+
71+
## 💻 Ejemplos
72+
73+
Explora la carpeta `examples/` para ver implementaciones de referencia:
74+
75+
- [**Spring Boot**](./examples/springbot): Ejemplo de integración completa usando Spring Boot.
76+
- [**Wildfly**](./examples/wildfly): Ejemplo para servidores de aplicaciones Jakarta EE.
77+
- [**Tomcat**](./examples/tomcat): Ejemplo ligero desplegable en Tomcat.
78+
- [**XBuilder/XSender**](./examples): Ejemplos "standalone" de uso de las librerías.
79+
80+
---
81+
82+
## 📚 Documentación
83+
84+
Para guías detalladas, referencia de API y tutoriales, consulta nuestra documentación oficial.
3785

38-
Libreria para realizar envíos de comprobantes electrónicos a los servicios web de la SUNAT y/o OSCE de acuerdo a lo
39-
especificado por la SUNAT.
86+
- 📖 **Sitio Web**: [project-openubl.github.io](https://project-openubl.github.io)
87+
- 💬 **Comunidad**: [Únete al chat en Zulip](https://projectopenubl.zulipchat.com/)
88+
- 🐛 **Soporte**: [Reportar un problema o discutir mejoras](https://github.com/project-openubl/xsender/discussions)
4089

41-
# Getting started
90+
---
4291

43-
- [Documentación](https://project-openubl.github.io)
44-
- [Discusiones](https://github.com/project-openubl/xsender/discussions)
92+
## 📄 Licencia
4593

46-
## License
94+
Este proyecto se distribuye bajo la licencia **Apache 2.0**. Consulta el archivo [LICENSE](LICENSE) para más detalles.
4795

48-
- [Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)
96+
Copyright © Project OpenUBL.

0 commit comments

Comments
 (0)