gdk/fin e-invoicing
Open-source e-invoicing for Go
An open Go engine for EN 16931 e-invoices: one semantic model, CII and UBL, PDF/A-3 hybrids, and a rule engine that explains every finding.
Open source (MIT). Money, bank, e-invoice, PDF/A-3 and payment are implemented; the first release is in preparation.
inv := &einvoice.Invoice{
Profile: einvoice.ProfileEN16931,
Number: "INV-0001",
Currency: "EUR",
// seller, buyer, lines, VAT breakdown, totals
}
engine := rules.NewEngine(rules.CoreArithmeticDomain)
report, _ := engine.Validate(ctx, inv)
fmt.Println("valid:", report.Valid())
fmt.Println("findings:", len(report.Findings))valid: true
findings: 0How it works
- Money with exact decimals and ISO 4217 rounding.
- One EN 16931 semantic invoice model, with CII and UBL bindings.
- PDF/A-3 hybrids: the XML embedded in the PDF, and extracted again.
- A rule engine for arithmetic and Peppol rules that reports every finding.
Where it runs
- Inside your own Go software; each kit needs only the standard library and the money kit
What we offer
Free to use under the MIT licence. We build e-invoicing into your systems on request.