Skip to content

Validation and parsing

Validate before issuing

POST /invoices/validate takes the same body as issuing and returns the calculated totals and every finding, without storing anything. Use it in your software's preview. It counts as a validation in your usage (not in the sandbox).

Check received e-invoices

POST /inbound/parse reads an e-invoice you received: XRechnung (UBL or CII XML) or ZUGFeRD/Factur-X (PDF). Send the file as the raw body with Content-Type application/xml, text/xml, application/pdf or application/octet-stream.

curl -s -X POST $BASE/inbound/parse -H "Authorization: Bearer $KEY" \
  -H 'Content-Type: application/pdf' -H 'Accept-Language: en' --data-binary @rechnung.pdf

The answer contains the detected format, a plain-language summary, the invoice data (numbers, parties, totals, lines), all findings with rule codes and a readable HTML view. Accept-Language: en gives English, anything else German. Nothing is stored.

POST /inbound/render turns the same file into a readable PDF for your bookkeeping.

Limits

Files up to 20 MB (2 MB on the current instance size), otherwise 413 document.too-large; other content types 415. XML is parsed with external entities disabled. Busy: 503 inbound.busy with Retry-After.