#invoice #validation #xml #pdf #cii #ubl

bin+lib einvoice

E-Invoice library with language bindings

2 releases

new 0.1.1 Jan 18, 2025
0.1.0 Jan 17, 2025

#171 in Embedded development

Download history 131/week @ 2025-01-12

133 downloads per month

MIT license

6MB
22K SLoC

Contains (JAR file, 44KB) gradle-wrapper.jar

einvoice-rs

The goal of this project is to implement

  • XML parsing of CII and UBL e-invoices
  • Validation / Parsing of CII and UBL e-invoices
  • Generation of XML for CII and UBL e-invoices
  • visualization of CII and UBL e-invoices
  • generation of PDFs for CII e-invoices (zugferd)
  • parsing of XMls embedded in PDFs (zugferd)
  • provide cross-language and platform bindings for the above

[!CAUTION] Early stage of development, not ready for production use

License

This project is licensed under the terms described in the LICENSE file (MIT).

Features

  • Serialization and Deserialization of CII and UBL XML invoices (EN 16931)
  • Java Binding based on kotlin works for jre 8 and above

Roadmap

  • Implement validation for Invoices
  • Clean-Up generated files according to xsds / use stricter types
  • add more language bindings

Running Tests

To run tests, run the following command

  cargo test  

This will validate that we can deserialize and serialize all tests in the xrechnung testsuite

Examples

Java

import com.schneppe.einvoice.InvoiceStandard;
import com.schneppe.einvoice.EinvoiceKt;

String xml = new String(Files.readAllBytes(path));
InvoiceStandard invoiceStandard = EinvoiceKt.validateInvoice(xml);

Rust

see examples for rust examples

Authors

Dependencies

~21MB
~307K SLoC