W System / EU e-invoice API: validate, create and route EN 16931 invoices

EU e-invoice API: validate, create and route EN 16931 invoices

Short answer: Send the invoice to POST https://api.wsystem.dev/einvoice/validate as the raw body (XML or a ZUGFeRD/Factur-X PDF). You get valid plus every error with its official rule ID (e.g. BR-CO-10), a plain-English message, the XPath and a fix hint. To produce an invoice, post simple JSON to /einvoice/create; to find out whether a customer is on Peppol and what their country requires, call GET /einvoice/route?id=BE0403170701.

Key facts

Examples

Validate a ZUGFeRD / Factur-X PDF

curl -X POST https://api.wsystem.dev/einvoice/validate \
  -H 'Content-Type: application/pdf' --data-binary @invoice.pdf

Validate an XRechnung XML (force XRechnung rules)

curl -X POST 'https://api.wsystem.dev/einvoice/validate?rules=xrechnung' \
  -H 'Content-Type: application/xml' --data-binary @xrechnung.xml

Create an XRechnung from JSON

curl -s https://api.wsystem.dev/einvoice/sample > invoice.json
curl -X POST https://api.wsystem.dev/einvoice/create \
  -H 'Content-Type: application/json' --data @invoice.json

Can I e-invoice this company?

curl 'https://api.wsystem.dev/einvoice/route?id=BE0403170701'

Pricing

ChannelPrice
Free tier20 calls/day per IP across all endpoints, no key
x402 POST /einvoice/validate$0.03 USDC per invoice
x402 POST /einvoice/create$0.08 USDC per invoice
x402 GET /einvoice/route$0.02 USDC per lookup
x402 POST /ddreport$0.49 USDC per report

Questions and answers

Which errors do I get back?

Each failed rule with its official ID (BR-xx, BR-CO-xx, BR-DE-xx, XSD), severity, a plain-English message, the XPath location, the business terms (BT-xx) involved and, for common rules, how to fix it.

Does it check Peppol BIS 3?

Not yet. Peppol BIS 3 invoices are checked against EN 16931 (the core every Peppol invoice must meet), and the response marks PeppolBIS3 as not checked. Peppol-specific rules will be added once licensing is confirmed with OpenPeppol.

Is ZUGFeRD MINIMUM or BASIC WL accepted?

They are parsed, but the response notes that these profiles are not EN 16931 compliant invoices on their own for German or French B2B.

Do you store my invoices?

No. Invoices are processed in memory and not stored; only per-IP call counters are kept for the free tier.

Which rule versions do you use?

CEN EN 16931 artefacts as shipped in the KoSIT XRechnung configuration 3.0.2 (release 2026-08-31). We update when KoSIT and CEN publish new releases.

Related

Facts and competitor details checked 2026-10-17. W System Hungary Kft. is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.