| Always present |
| valid | boolean | Primary flag to branch on. true when compliant with both EN 16931 and the KoSIT German CIUS (BR-DE), false when errors found. |
| detail | string | Human-readable summary, e.g. "Your invoice is XRechnung compliant…" or "Validation failed with 2 error(s)". |
| data.conformanceLevel | string | Conformance label of this endpoint, always XRechnung. |
| data.detectedSyntax | string | Detected XML syntax binding, cii or ubl, read from the document root element. |
| data.schemaValid | boolean | XSD schema check passed for the detected syntax (CII or UBL). |
| data.schematronValid | boolean | Both EN 16931 and KoSIT German CIUS (BR-DE) Schematron checks passed. |
| Findings (errors and warnings) |
| errors | object[] | Flat array of finding objects, one per failed rule. Empty array when the invoice is valid. |
| warnings | object[] | Flat array of finding objects for non-blocking issues. May contain entries even when the invoice is valid. |
| [].rule | string | Rule identifier, e.g. BR-DE-15, BR-CO-14. |
| [].layer | string | Validation layer that fired: en16931 (European standard) or cius (German national rules). |
| [].line | int? | Invoice line item number, or null for document-level findings. |
| [].message | string | Human-readable, friendly description suitable for end users. |
| [].btCodes | string[] | EN 16931 Business Term codes the rule references, e.g. ["BT-10"]. |
| [].fields | string[] | Dotted JSON paths the finding maps to, e.g. ["buyerReference"]. Use them to highlight the exact form input that failed. |
| [].raw | string | Verbatim technical validator output, e.g. "[BR-DE-15] CIUS: raw schematron text (at /*:CrossIndustryInvoice...)". Useful for logging and programmatic handling. |
| Compliance report (always present) |
| report | object[] | One row per EN 16931 Business Term found on the invoice, with its value and a pass/fail flag. null if the report could not be built. |
| report[].code | string | Business Term code, e.g. BT-10. |
| report[].name | string | Human-readable term name, e.g. Buyer reference (Leitweg-ID). |
| report[].section | string | Grouping for display: header, seller, buyer, lines, payment, totals, or tax. |
| report[].path | string | Dotted JSON path to the field, e.g. lines[0].priceDetails.netPrice. |
| report[].value | string? | Current value of the term, or null when absent. |
| report[].isValid | boolean | false when a validation error references this term, otherwise true. |
| report[].errors | string[] | All error messages on this Business Term, empty array when none. |
| report[].warnings | string[] | All warning messages on this Business Term, empty array when none. |