Error Reference
All errors follow a consistent JSON shape. Validation errors also carry line and path so you can surface them directly in your UI without post-processing.
Error object shape
{
"valid": false,
"errors": [
{
"code": "BR-01",
"severity": "error", // "error" | "warning" | "info"
"message": "An Invoice shall have a Specification identifier.",
"path": "/Invoice/CustomizationID",
"line": 3,
"suggestion": "Add <cbc:CustomizationID>urn:cen.eu:en16931...</cbc:CustomizationID>"
}
]
}
HTTP status codes
| Status | Meaning |
| 200 | Request processed. Check valid field for invoice validity. |
| 400 | Malformed request (bad content type, empty body, unsupported format). |
| 401 | Missing or invalid API key. |
| 403 | Valid key but insufficient scope for this endpoint. |
| 413 | File exceeds 10 MB limit. |
| 422 | File is parseable but structurally invalid (not a recognised invoice format). |
| 429 | Rate limit exceeded. Retry after the Retry-After header value (seconds). |
| 500 | Internal server error. Retrying with exponential backoff is safe. |
Common validation error codes
| Code | Rule | Description |
| BR-01 | EN16931 | Missing CustomizationID (specification identifier). |
| BR-02 | EN16931 | Missing Invoice number. |
| BR-03 | EN16931 | Missing Invoice issue date. |
| BR-04 | EN16931 | Missing Invoice type code. |
| BR-10 | EN16931 | Missing Buyer name. |
| BR-11 | EN16931 | Missing Seller name. |
| BR-CO-15 | EN16931 | Invoice total VAT amount must equal the sum of tax subtotals. |
| XR-01 | XRechnung | Buyer reference (Leitweg-ID) is required for public-sector buyers. |
| XR-02 | XRechnung | Invalid Leitweg-ID format. |
| ZF-01 | ZUGFeRD | Embedded XML does not match PDF metadata. |
| ZF-02 | ZUGFeRD | PDF is not PDF/A-3 compliant. |