Tools
GOBL includes of a set of tools designed to help you build and understand all the different types of business document, alongside helping to convert into and from other formats.
Core
The main libraries and tools for GOBL processing:
- GOBL - the main repository, written in Go, that defines all the structures, databases, validation rules, and algorithms which are used to build complete business documents.
- GOBL CLI - command line interface, streaming server, and WASM binary, that leverage the Go validation and calculation methods to complete GOBL envelopes and payloads.
- GOBL Generator - is used to convert the GOBL JSON Schema into documentation and libraries for other programming languages.
Build
Aside from the main GOBL repository which can be used directly inside your Go projects, the following tools are designed to help construct GOBL files:
- GOBL Builder source - learn and discover how to build GOBL documents from the comfort of your web browser. The editor leverages the GOBL CLI WASM binary so you can run validation and calculation processes directly.
- GOBL for Ruby - Easily build or read GOBL documents in Ruby.
We’d love for GOBL to be available in more languages. If you’d like to contribute, checkout the GOBL Generate mentioned above and open a discussion!
Convert
Each conversion tool can be used as either a Go library or via a CLI interface:
- GOBL to FacturaE (Spain) - convert into the Spanish FacturaE format.
- GOBL to TicketBAI (Spain) - convert into the TicketBAI format used in the north of Spain.
- GOBL to FatturaPA (Italy) - convert into the Italian FatturaPA format.
- GOBL to CFDI (Mexico) - convert into the Mexican CFDI format.
- GOBL to XInvoice - conversion into Factur-X (FR) and XRechnung/ZUGFeRD (DE) formats.
If you have an idea for a new conversion tool, open a discussion to let us know.
Extras
Not strictly part of GOBL, but are key components currently maintained by the same team:
- Go jsonschema - the library we use to convert the Go structs into JSON Schema.
- Go validation - makes it easy to define validation rules.
- Go yaml - converts YAML documents into JSON so that the
json
Go tags can be used universally.