Skip to content

Commit a405b2f

Browse files
authored
Merge pull request #1 from FiscalAPI/feat/AddPayrollSupport
Feat/add payroll support
2 parents 071d163 + 07acde9 commit a405b2f

Some content is hidden

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

59 files changed

+7314
-326
lines changed

CLAUDE.md

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
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.
8+
9+
## Build Commands
10+
11+
```bash
12+
mvn clean compile # Compile
13+
mvn test # Run tests
14+
mvn package # Create JAR
15+
mvn clean deploy -Prelease # Deploy to Maven Central (requires GPG)
16+
```
17+
18+
## Architecture
19+
20+
### Entry Point
21+
`FiscalApiClient.create(FiscalApiSettings)` - Factory method creating the main client with all services.
22+
23+
### Service Layer Pattern
24+
```
25+
IFiscalApiClient (facade)
26+
├── getInvoiceService() → IInvoiceService extends IFiscalApiService<Invoice>
27+
├── getPersonService() → IPersonService extends IFiscalApiService<Person>
28+
├── getProductService() → IProductService extends IFiscalApiService<Product>
29+
├── getTaxFileService() → ITaxFileService extends IFiscalApiService<TaxFile>
30+
├── getCatalogService() → ICatalogService extends IFiscalApiService<CatalogDto>
31+
└── ... (other services)
32+
```
33+
34+
### Generic CRUD Base
35+
All services extend `BaseFiscalApiService<T>` which implements standard CRUD:
36+
- `getList(pageNumber, pageSize)``ApiResponse<PagedList<T>>`
37+
- `getById(id, details)``ApiResponse<T>`
38+
- `create(model)``ApiResponse<T>`
39+
- `update(model)``ApiResponse<T>`
40+
- `delete(id)``ApiResponse<Boolean>`
41+
42+
Subclasses must implement `getTypeParameterClass()` to return the entity type for Jackson deserialization.
43+
44+
### DTO Hierarchy
45+
```
46+
SerializableDto → AuditableDto (createdAt, updatedAt) → BaseDto (id)
47+
```
48+
All models extend `BaseDto`. Responses wrapped in `ApiResponse<T>`.
49+
50+
### HTTP Layer
51+
- `OkHttpClientFactory` - Creates/caches OkHttpClient instances with auth headers (X-API-KEY, X-TENANT-KEY, X-API-VERSION, X-TIMEZONE)
52+
- `FiscalApiHttpClient` - Wraps OkHttp with Jackson, handles request/response logging in debug mode
53+
54+
### Key Packages
55+
- `abstractions/` - Service interfaces
56+
- `common/` - ApiResponse, PagedList, settings
57+
- `http/` - HTTP client implementation
58+
- `models/` - All DTOs (invoicing/, downloading/ subpackages)
59+
- `services/` - Service implementations
60+
61+
## Configuration
62+
63+
```java
64+
FiscalApiSettings settings = new FiscalApiSettings();
65+
settings.setApiUrl("https://test.fiscalapi.com"); // or https://live.fiscalapi.com
66+
settings.setApiKey("sk_test_...");
67+
settings.setTenant("...");
68+
settings.setDebugMode(true); // Logs requests/responses
69+
FiscalApiClient client = FiscalApiClient.create(settings);
70+
```
71+
72+
## API Endpoint Pattern
73+
74+
`{apiUrl}/api/{apiVersion}/{resource}/{id?}/{action?}`
75+
76+
Example: `POST api/v4/invoices`, `GET api/v4/invoices/{id}?details=true`
77+
78+
## Dependencies
79+
80+
- OkHttp3 4.12.0 (HTTP)
81+
- Jackson 2.14.2 (JSON)
82+
- Java 8+ (source/target)

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@
1010
- **Soporte completo para CFDI 4.0** con todas las especificaciones oficiales
1111
- **Timbrado de facturas de ingreso** con validación automática
1212
- **Timbrado de notas de crédito** (facturas de egreso)
13-
- **Timbrado de complementos de pago** en MXN, USD y EUR.
13+
- **Timbrado de complementos de pago** en MXN, USD y EUR
14+
- **Timbrado de facturas de nómina** - Soporte para los 13 tipos de CFDI de nómina
1415
- **Consulta del estatus de facturas** en el SAT en tiempo real
1516
- **Cancelación de facturas**
1617
- **Generación de archivos PDF** de las facturas con formato profesional
1718
- **Personalización de logos y colores** en los PDF generados
1819
- **Envío de facturas por correo electrónico** automatizado
1920
- **Descarga de archivos XML** con estructura completa
20-
- **Almacenamiento y recuperación** de facturas por 5 años.
21+
- **Almacenamiento y recuperación** de facturas por 5 años
2122
- Dos [modos de operación](https://docs.fiscalapi.com/modes-of-operation): **Por valores** o **Por referencias**
2223

2324
## 📥 Descarga Masiva
@@ -32,16 +33,29 @@
3233
- **Administración de personas** (emisores, receptores, clientes, usuarios, etc.)
3334
- **Gestión de certificados CSD y FIEL** (subir archivos .cer y .key a FiscalAPI)
3435
- **Configuración de datos fiscales** (RFC, domicilio fiscal, régimen fiscal)
36+
- **Datos de empleado** (agrega/actualiza/elimina datos de empleado a una persona. CFDI Nómina)
37+
- **Datos de empleador** (agrega/actualiza/elimina datos de empleador a una persona. CFDI Nómina)
38+
39+
## 🎖️ Gestión de Timbres
40+
- **Gestión de folios fiscales** Compra timbres a fiscalapi y transfiere/retira a las personas de tu organizacion segun tus reglas de negocio.
3541

3642
## 🛍️ Gestión de Productos/Servicios
3743
- **Gestión de productos y servicios** con catálogo personalizable
3844
- **Administración de impuestos aplicables** (IVA, ISR, IEPS)
45+
- **Timbres**
46+
Listar transacciones, transferir y retirar timbres entre personas.
3947

4048
## 📚 Consulta de Catálogos SAT
4149
- **Consulta en catálogos oficiales del SAT** actualizados
4250
- **Consulta en catálogos oficiales de Descarga masiva del SAT** actualizados
4351
- **Búsqueda de información** en catálogos del SAT con filtros avanzados
4452
- **Acceso y búsqueda** en catálogos completos
53+
54+
## 🎫 Gestión de Timbres
55+
- **Listar transacciones de timbres** con paginación
56+
- **Consultar transacciones** por ID
57+
- **Transferir timbres** entre personas
58+
- **Retirar timbres** de una persona
4559

4660
## 📖 Recursos Adicionales
4761
- **Cientos de ejemplos de código** disponibles en múltiples lenguajes de programación

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<!-- Coordenadas del proyecto -->
88
<groupId>com.fiscalapi</groupId>
99
<artifactId>fiscalapi</artifactId>
10-
<version>4.0.273</version>
10+
<version>4.0.360</version>
1111
<name>${project.groupId}:${project.artifactId}</name>
1212
<description>Genera facturas CFDI válidas ante el SAT consumiendo la API de https://www.fiscalapi.com</description>
1313
<url>https://www.fiscalapi.com</url>

0 commit comments

Comments
 (0)