---
title: "KositArtifacts – API-Referenz · Quittio"
description: "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)."
canonical_url: "https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositArtifacts"
locale: de
meta:
  "og:description": "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)."
  "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": "KositArtifacts – API-Referenz · Quittio"
  "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](https://quittio.dev/docs/api/Quittio) \\ [Core](https://quittio.dev/docs/api/Quittio/Core) \\ [Validation](https://quittio.dev/docs/api/Quittio/Core/Validation) \\ [Drivers](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers)

# KositArtifacts

final class in quittio/core

`Quittio\Core\Validation\Drivers\KositArtifacts` · [Source](https://github.com/Quittio/quittio/blob/v0.7.1/packages/core/src/Validation/Drivers/KositArtifacts.php#L17)

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).

## Constants \#

| Constant | Value | Description |
| --- | --- | --- |
| `CONFIGURATION_FILE` | `'xrechnung-3.0.2-validator-configuration-2026-08-31.zip'` | |
| `CONFIGURATION_TAG` | `'v2026-08-31'` | |
| `PEPPOL_TAG` | `'v3.0.20'` | |
| `SCHXSLT_VERSION` | `'1.10.1'` | |
| `SHA256` | `['https://repo1.maven.org/maven2/org/kosit/validator/1.6.3/validator-1.6.3-standalone.jar' => '799e64befca97d4080e03608c80b85dd5a5ecc5f4ae4f35d1116ec2855b9a7c9' …` | SHA-256 of the pinned downloads. The default download checks them, because the validator JAR is run with java and release tags can be moved; update them together with the versions. |
| `VALIDATOR_VERSION` | `'1.6.3'` | |

## Methods \#

| Method | Description |
| --- | --- |
| `->__construct()` | |
| `->compilePeppol()` | Compiles the Peppol Schematron into peppol/PEPPOL-EN16931-UBL.xsl below $target. download() must have run before, because Saxon comes with the validator JAR. |
| `::configurationUrl()` | |
| `->download()` | |
| `::peppolScenarios()` | Scenario file for Peppol BIS Billing 3.0; the repository is the download target. |
| `::peppolUrl()` | |
| `::schxsltUrl()` | |
| `::validatorUrl()` | |

### `__construct()`#

```
public function __construct(
    (Closure(string): string)|null $fetch = null,
    (Closure(list<string>, string, int): array{exitCode: int, stdout: string, stderr: string})|null $run = null,
)
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$fetch` | `(Closure(string): string)\|null` = `null` | returns the body of a URL; the default checks it against SHA256 |
| `$run` | `(Closure(list<string>, string, int): array{exitCode: int, stdout: string, stderr: string})\|null` = `null` | runs a process |

### `compilePeppol()`#

```
public function compilePeppol(
    string $target,
    string $java = 'java',
    bool $force = false,
): array{scenarios: string, repository: string}
```

Compiles the Peppol Schematron into peppol/PEPPOL-EN16931-UBL.xsl below $target. download() must have run before, because Saxon comes with the validator JAR.

| Parameter | Type | Description |
| --- | --- | --- |
| `$target` | `string` | |
| `$java` | `string` = `'java'` | |
| `$force` | `bool` = `false` | |

<dl><dt>Returns</dt>
<dd><code>array{scenarios: string, repository: string}</code></dd>
</dl>

### `configurationUrl()`#

```
public static function configurationUrl(
    string $tag = self::CONFIGURATION_TAG,
    string $file = self::CONFIGURATION_FILE,
): string
```

static

| Parameter | Type | Description |
| --- | --- | --- |
| `$tag` | `string` = `self::CONFIGURATION_TAG` | |
| `$file` | `string` = `self::CONFIGURATION_FILE` | |

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

### `download()`#

```
public function download(
    string $target,
    bool $force = false,
): array{jar: string, scenarios: string, repository: string}
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$target` | `string` | |
| `$force` | `bool` = `false` | |

<dl><dt>Returns</dt>
<dd><code>array{jar: string, scenarios: string, repository: string}</code></dd>
</dl>

### `peppolScenarios()`#

```
public static function peppolScenarios(): string
```

static

Scenario file for Peppol BIS Billing 3.0; the repository is the download target.

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

### `peppolUrl()`#

```
public static function peppolUrl(string $tag = self::PEPPOL_TAG): string
```

static

| Parameter | Type | Description |
| --- | --- | --- |
| `$tag` | `string` = `self::PEPPOL_TAG` | |

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

### `schxsltUrl()`#

```
public static function schxsltUrl(string $version = self::SCHXSLT_VERSION): string
```

static

| Parameter | Type | Description |
| --- | --- | --- |
| `$version` | `string` = `self::SCHXSLT_VERSION` | |

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

### `validatorUrl()`#

```
public static function validatorUrl(string $version = self::VALIDATOR_VERSION): string
```

static

| Parameter | Type | Description |
| --- | --- | --- |
| `$version` | `string` = `self::VALIDATOR_VERSION` | |

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

```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/Drivers/KositArtifacts#webpage","@type":"WebPage","description":"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).","name":"KositArtifacts – API-Referenz","url":"https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositArtifacts","isPartOf":{"@id":"https://quittio.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositArtifacts"]}],"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"}]}
```