---
title: "Quittio\\Core\\Validation – API-Referenz"
description: "The public classes in Quittio\\Core\\Validation."
canonical_url: "https://quittio.dev/docs/api/Quittio/Core/Validation"
locale: de
meta:
  "og:description": "The public classes in Quittio\\Core\\Validation."
  "og:image": "https://quittio.dev/og/quittio-de.jpg"
  "og:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
  "og:image:height": "630"
  "og:image:type": image/jpeg
  "og:image:width": "1200"
  "og:title": "Quittio\\Core\\Validation – API-Referenz"
  "twitter:image": "https://quittio.dev/og/quittio-de.jpg"
  "twitter:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
---

> Index of every page on this site: [llms.txt](https://quittio.dev/llms.txt)

[API reference](https://quittio.dev/docs/api)

# Quittio\\Core\\Validation

## quittio/core \#

### [Quittio\\Core\\Validation](https://quittio.dev/docs/api/Quittio/Core/Validation)

- [`InvoiceValidator`](https://quittio.dev/docs/api/Quittio/Core/Validation/InvoiceValidator)Runs all configured validation drivers and merges their results.
- [`Messages`](https://quittio.dev/docs/api/Quittio/Core/Validation/Messages)Creates validation messages from the message catalog.
- [`Rule`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rule) interfaceA business or plausibility rule checked in PHP (levels L1 to L3 and L7).
- [`RuleOverrides`](https://quittio.dev/docs/api/Quittio/Core/Validation/RuleOverrides)Changes to the PHP rules by rule code: rules switched off, findings with another severity and rules replaced by own implementations. Codes match exactly or, with a trailing "\*", by prefix (e.g. "DE-USTG-\*"). The overrides apply to the PHP rules only; the findings of the XSD schema, KoSIT and veraPDF are never changed.
- [`Severity`](https://quittio.dev/docs/api/Quittio/Core/Validation/Severity) enum
- [`ValidationContext`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationContext)Information available to rules while validating an invoice.
- [`ValidationDriver`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationDriver) interfaceA validation driver checks one or more levels (PHP rules, XSD, KoSIT, veraPDF, …).
- [`ValidationException`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationException)Thrown when an invoice does not pass validation. The full result is attached.
- [`ValidationLevel`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationLevel) enumValidation levels.
- [`ValidationMessage`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationMessage)A single validation finding.
- [`ValidationResult`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationResult)Result of a validation run.
- [`ValidationSubject`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationSubject)What is validated: the calculated data and, where available, the generated XML and PDF.

### [Quittio\\Core\\Validation\\Drivers](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers)

- [`KositArtifacts`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositArtifacts)Downloads the KoSIT validator and the XRechnung validator configuration (level L5) and compiles the Peppol BIS Billing 3.0 Schematron to XSLT with the Saxon bundled in the validator (requires Java).
- [`KositReportParser`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositReportParser)Converts a KoSIT validator report (VARL) into validation messages.
- [`KositValidator`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositValidator)Official Schematron validation (level L5) with the KoSIT validator.
- [`PhpRulesDriver`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/PhpRulesDriver)Built-in PHP rules: levels L1 (structure), L2 (profile), L3 (business rules) and L7 (plausibility).
- [`VeraPdfValidator`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/VeraPdfValidator)PDF/A conformance check (level L6) with veraPDF.
- [`XsdValidator`](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/XsdValidator)XML schema validation (level L4) with the bundled CII D16B and UBL 2.1 schemas. XML of another syntax read by the reader of a country pack (e.g. ebInterface) is not checked here: the reader checks its structure.

### [Quittio\\Core\\Validation\\Plausibility](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility)

- [`Iban`](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility/Iban)IBAN check digit validation (ISO 13616, mod 97-10) without extensions.
- [`VatIdFormat`](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility/VatIdFormat)Format of VAT identification numbers by country prefix (structure only, no check digits).
- [`VatIdVerification`](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility/VatIdVerification)Result of an online VAT identifier check. $valid is null if no statement is possible: the service was not reachable or answered with an error, or it does not cover the identifier ($supported = false).
- [`VatIdVerifier`](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility/VatIdVerifier) interfaceOnline check of VAT identifiers (e.g. EU VIES). Implementations must never throw because a service is unavailable; they return a result with $valid = null instead.
- [`ViesVerifier`](https://quittio.dev/docs/api/Quittio/Core/Validation/Plausibility/ViesVerifier)VAT identifier check via the REST interface of the EU VIES service.

### [Quittio\\Core\\Validation\\Rules](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules)

- [`CallbackRule`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/CallbackRule)A rule defined by a closure. The closure receives the invoice and a reporter.
- [`CodeListRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/CodeListRules)Code list rules of EN 16931 (BR-CL-…), based on the official code lists.
- [`En16931Rules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/En16931Rules)EN 16931 business rules (BR-…) and conditions (BR-CO-…) checked on the data model.
- [`FieldMatrixRule`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/FieldMatrixRule)Mandatory and allowed fields of the selected profile (level L2), derived from the mapping attributes of the data model and the profile's additional requirements.
- [`Inspect`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/Inspect)Helpers shared by the rule sets.
- [`PeppolRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/PeppolRules)The Peppol BIS Billing 3.0 rules (PEPPOL-EN16931-…, PEPPOL-COMMON-…) that the data of an invoice can violate, with readable messages. Rules that the UBL writer always satisfies and rules covered by an identical EN 16931 rule are not repeated (docs/validation.md lists them). The complete rule set is checked with the official artifacts (level L5).
- [`PlausibilityRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/PlausibilityRules)Plausibility checks (level L7): IBAN check digits, BIC and VAT identifier formats, e-mail addresses, date logic and the VAT category against the destination country. The VIES check is added only if a verifier is given.
- [`QuittioRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/QuittioRules)Package rules (QUITTIO-…) that go beyond EN 16931.
- [`RuleReporter`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/RuleReporter)Collects the findings of one rule.
- [`StructureRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/StructureRules)Structure and data format checks of the data model (level L1).
- [`VatCategoryRules`](https://quittio.dev/docs/api/Quittio/Core/Validation/Rules/VatCategoryRules)VAT category rules of EN 16931 (BR-S, BR-Z, BR-E, BR-AE, BR-IC, BR-G, BR-O, BR-AF, BR-AG, BR-B).

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://quittio.dev/#website","@type":"WebSite","description":"E-Rechnungen für PHP und Laravel: ZUGFeRD, XRechnung und Peppol erstellen, prüfen, lesen und archivieren.","inLanguage":"de-DE","name":"Quittio","url":"https://quittio.dev/","publisher":{"@id":"https://quittio.dev/#identity"},"workTranslation":{"@id":"https://quittio.dev/en#website"}},{"@id":"https://quittio.dev/docs/api/Quittio/Core/Validation#webpage","@type":"WebPage","description":"The public classes in Quittio\\Core\\Validation.","name":"Quittio\\Core\\Validation – API-Referenz","url":"https://quittio.dev/docs/api/Quittio/Core/Validation","isPartOf":{"@id":"https://quittio.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/docs/api/Quittio/Core/Validation"]}],"primaryImageOfPage":{"@id":"https://quittio.dev/#logo"}},{"@id":"https://quittio.dev/#identity","@type":"Organization","description":"Open-Source-Bibliothek für E-Rechnungen in PHP und Laravel (ZUGFeRD, XRechnung, Peppol) und Quittio Managed.","email":"kontakt@niklasforst.de","legalName":"Niklas Forst – Softwareentwicklung","name":"Quittio","url":"https://quittio.dev","founder":{"@type":"Person","name":"Niklas Forst","url":"https://quittio.dev/ueber"},"logo":{"@id":"https://quittio.dev/#logo"},"sameAs":["https://github.com/Quittio/quittio","https://packagist.org/packages/quittio/quittio"]},{"@id":"https://quittio.dev/#logo","@type":"ImageObject","caption":"Quittio","contentUrl":"https://quittio.dev/logo.png","inLanguage":"de-DE","url":"https://quittio.dev/logo.png"}]}
```