bin/setup-schemas: use$(pwd)/vendorinstead of path relative to script locationbin/setup-schemas: fix UBL ZIP extraction path (xsd/*instead ofos-UBL-2.1/xsd/*)bin/setup-schemas: download CII D16B XSD from GitHub release asset (unece.org blocked by Cloudflare)bin/setup-schemas: flatten deeply nested CII XSD files after extractionbin/setup-schemas: fix XRechnung Schematron release tag (v2.5.0instead ofrelease-2.5.0)
- Set browser User-Agent on all curl requests in
bin/setup-schemasto avoid throttling
- Remove
spec.executables—bin/setup-schemasis a project-local bash script, not a gem executable
bin/setup-schemasis now included in the gem as an executable
- Missing
require "zugpferd/validation"in Rakefilevalidatetask
- PDF/A-3 embedding via Ghostscript (
Zugpferd::PDF::Embedder) — create ZUGFeRD / Factur-X hybrid invoices - Support for ZUGFeRD versions 1.0, 2.0 and 2.1 with all conformance levels
- XSD and Schematron validation included in gem (
require "zugpferd/validation") — optional, requires Java + Saxon - Actual delivery date (BT-72) support in data model, UBL and CII readers/writers
- veraPDF validation wrapper (
Zugpferd::Validation::PdfValidator) for PDF/A-3 compliance checks - Mustangproject validation wrapper (
Zugpferd::Validation::MustangValidator) for full ZUGFeRD validation - Docker setup for veraPDF (REST API) and Mustangproject (CLI)
bin/setup-schemasdownloads Saxon HE, XSD schemas, CEN/XRechnung Schematron,zugferd.psanddefault_rgb.icc
BillingDocumentmodule with shared attributes and initialization logic- Dedicated classes for each document type:
Model::CreditNote(type code 381)Model::CorrectedInvoice(type code 384)Model::SelfBilledInvoice(type code 389)Model::PartialInvoice(type code 326)Model::PrepaymentInvoice(type code 386)
Model::Invoicenow includesBillingDocumentinstead of defining attributes directly- UBL Reader returns
Model::CreditNotefor Credit Note documents - CII Reader maps type codes to the appropriate model class
- Writer parameter renamed from
invoicetodocument
- UBL Reader now returns
Model::CreditNote(instead ofModel::Invoice) for type code 381 - CII Reader returns type-specific classes based on the document's type code
- Syntax-agnostic EN 16931 data model with all mandatory and common optional fields
- UBL 2.1 Reader and Writer (Invoice and Credit Note)
- UN/CEFACT CII Reader and Writer
- Document-level allowances and charges (BG-20/BG-21)
- XRechnung CIUS support (BT-10, BT-34/BT-49 electronic addresses)
- Payment types: credit transfer, direct debit, payment card
- VitePress documentation site