All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
ComplementsCatalogsConstantswith Carta Porte/Comercio Exterior catalog enums and Spanish description maps for customs regimes, transport keys, permits, COFEPRIS sectors, pharmaceutical forms, special conditions, material types, customs document types, transport parts/figures, ISTMO registry, loading keys, maritime configs, rail traffic/container/car/service types, traslado motives, incoterms, and customs units.
- Add
organizations.updateDefaultSeriesto set an organization's default series by document type.
- Initial official Java SDK release for Facturapi (
io.facturapi:facturapi-java). - Typed resources for core domains including customers, products, invoices, organizations, receipts, retentions, webhooks, and catalogs.
- Accessor-based root client API (
facturapi.customers(),facturapi.invoices(), etc.) aligned with modern Java SDK style. - Deeply typed complement models for
pago,nomina,carta_porte, andcomercio_exterior. - Java time support with typed date fields (
InstantandLocalDate) using JacksonJavaTimeModule. - Enum coverage for core SAT and document state fields (invoice status/type, payment form/method, cancellation motive/status, tax factor/type, taxability, and related constants).
- Download ergonomics with both byte and stream methods for invoice/retention/receipt files.
- Upload ergonomics with
Fileandbyte[]methods for organization logo and certificate uploads. - Typed
FacturapiExceptionsurface exposing status and structured error fields (statusCode,errorCode,errorPath). - CI workflow for pull requests and pushes to
main(Java 11, 17, 21, and 25). - Maven Central publish workflow gated by semantic version comparison.
- Bilingual consumer docs (
README.mdandREADME.es.md).
- Standardized request auth to
Authorization: Bearer <apiKey>. - Adopted global Jackson
snake_casenaming strategy for consistent API-model mapping. - Unified HTTP transport on OkHttp to support Java server environments and Android-compatible runtimes.