invoice lets you quickly and intuitively exchange invoice file(s) with the
Italian Servizio di Interscambio (SDI) from the command line. It leverages the Invoicetronic API.
You don't need to learn the Invoicetronic API or any programming language to send and receive invoices (SDKs for common programming languages are also available).
Sending an invoice can be as simple as issuing this command:
invoice send file1.xmlSay you have many files to upload, you can use wildcards:
invoice send *.xml --delete
invoice send file1.xml file2.xml file3.xmlIn the first line above, we're also deleting files from the disk once successfully uploaded.
Receiving files is also super simple:
invoice receive --unreadThe above will download all new invoices and store them in the current directory.
See the Installation guide.
Quickstart and context available at the Invoicetronic website.
- Go 1.23+
- An Invoicetronic API key (for manual/integration testing)
go buildgo test ./...Run with the race detector:
go test -race ./...Tests use the standard library only (testing + net/http/httptest), with no external dependencies. API calls are mocked via httptest.NewServer; filesystem tests use t.TempDir().
Requires PACKAGE_VERSION to be set:
PACKAGE_VERSION=1.0.0 make allTarget a single platform with make windows, make linux, or make macos.