Playground

Break an invoice. Fix it. Generate the XML.

This page runs @attestwire/en16931 0.5.0 — the same MIT engine behind the hosted API — compiled for the browser. Your invoice is validated on this machine. There is no API key, no upload and no request: close the tab and nothing was sent anywhere.

The sample is one field short of conformant

It is a complete XRechnung invoice with buyerReference removed, which is the field BR-DE-15 exists to require. Press Validate to see what the engine says, Fix it to put the field back, then Generate XML.

The buttons need JavaScript, because the engine runs here rather than on a server. Everything below is what the build got when it ran this exact invoice.
Install the library

The output choice sets the invoice's own profile field before generating — that field is what selects the rule sets and the specification identifier.

valid: false — 1 error.

valid: true here means the document data passed every rule Attestwire implements. It is not a promise that a receiver, an access point or a national overlay will accept the document. Read the exact limits →

You got a document. Now put it in your system.

Run it in your own code. The package is MIT, has zero runtime dependencies and needs no account.

JavaScript or TypeScript
npm install @attestwire/en16931

Call it over HTTP instead. Any language, same engine, 100 documents a month free with no card. Create a free API key →

Hand it to an agent. Nine MCP tools, five of which need no key at all. Connect MCP →