---
title: "Documentation · Quittio"
description: "E-invoicing for PHP and Laravel. Quittio creates, validates, reads and renders electronic invoices based on the European standard EN 16931 – ZUGFeRD/Factur-X, XRechnung, UBL and Peppol BIS from one data model."
canonical_url: "https://quittio.dev/en/docs"
locale: en
meta:
  "og:description": "E-invoicing for PHP and Laravel. Quittio creates, validates, reads and renders electronic invoices based on the European standard EN 16931 – ZUGFeRD/Factur-X, XRechnung, UBL and Peppol BIS from one data model."
  "og:image": "https://quittio.dev/og/quittio-en.jpg"
  "og:image:alt": "Quittio: Invoices, settled. E-invoicing for PHP and Laravel, with a validated sample invoice."
  "og:image:height": "630"
  "og:image:type": image/jpeg
  "og:image:width": "1200"
  "og:title": "Documentation · Quittio"
  "twitter:image": "https://quittio.dev/og/quittio-en.jpg"
  "twitter:image:alt": "Quittio: Invoices, settled. E-invoicing for PHP and Laravel, with a validated sample invoice."
---

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

# Quittio

E-invoicing for PHP and Laravel. Quittio creates, validates, reads and renders electronic invoices based on the European standard EN 16931 – ZUGFeRD/Factur-X, XRechnung, UBL and Peppol BIS from one data model. The core runs in any PHP application; the Laravel integration adds facade, configuration and commands.

[Get started](https://quittio.dev/docs/getting-started) [Formats and profiles](https://quittio.dev/docs/formats)

---

Germany is the first market; everything country-specific (VAT rates, legal texts, XRechnung) lives in country packs, so the core stays country-neutral.

> **Status:** released, before version 1.0.0. APIs may still change until version 1.0.0. The legal wording of the country pack Germany was reviewed by a tax adviser in October 2026; Quittio is no tax or legal advice (see the legal review and the disclaimer in the README).

## Packages \#

| Package | Purpose |
| --- | --- |
| `quittio/core` | Country-neutral core: EN 16931 data model, calculation, profiles, CII and UBL writers/readers, ZUGFeRD/Factur-X PDF/A-3, validation. Usable without Laravel. |
| `quittio/laravel` | Laravel integration: facade, configuration, Blade templates, commands, testing helpers. |
| `quittio/country-de` | Country pack for Germany: UStG mandatory fields, tax presets, XRechnung profiles and BR-DE rules, DIN 5008 letter layouts. |
| `quittio/country-at`, `quittio/country-be`, `quittio/country-ch`, `quittio/country-fr` | Country packs for Austria, Belgium, Switzerland and France, not reviewed by a tax adviser yet: see [Austria](https://quittio.dev/docs/country-at), [Belgium](https://quittio.dev/docs/country-be), [Switzerland](https://quittio.dev/docs/country-ch) and [France](https://quittio.dev/docs/country-fr). |
| `quittio/quittio` | Everything in one package: core, Laravel integration and the country pack Germany. |
| `quittio/managed` | Managed layer (commercial licence, not released yet): issuer profiles, drafts, gapless numbering, archive with hashes, cancellations and corrections, mail delivery, audit log, retention. |
| |

## Requirements \#

- PHP 8.3 or newer with `ctype`, `dom`, `gd`, `libxml`, `mbstring`, `xmlwriter`, `zlib`; `intl` recommended, `zip` for `quittio:schemas:download`
- Laravel 13 (only for `quittio/laravel`)
- Optional: Java 11+ for the KoSIT validator, veraPDF or Docker for PDF/A checks, `opis/json-schema` for JSON input validation

## Supported formats \#

| Format | Content |
| --- | --- |
| `zugferd` / `factur-x` | PDF/A-3 with embedded CII XML (profiles MINIMUM to EXTENDED, XRECHNUNG) |
| `xrechnung-cii`, `xrechnung-ubl` | XRechnung 3.0 as plain XML |
| `cii`, `ubl` | Plain CII or UBL 2.1 XML in any profile |
| `peppol` | UBL according to Peppol BIS Billing 3.0 |
| `pdf`, `html`, `json` | PDF without XML, HTML preview, normalised data model |

## Quick example \#

php

```
use Quittio\Core\Builder\Party;
use Quittio\Core\Enums\UnitCode;
use Quittio\Laravel\Facades\Quittio;

$result = Quittio::invoice()                                     // seller and bank account from config/quittio.php
    ->number('RE-2026-0042')
    ->deliveryDate('2026-09-30')
    ->buyer(Party::make('Kunde AG')                               // or a model: ->buyer($customer)
        ->vatId('DE987654321')
        ->address('Bahnhofstraße 5', '54321', 'Beispielstadt', 'DE'))
    ->line('Web development', netPrice: '95.00', quantity: 24, unit: UnitCode::Hour)
    ->line('Hosting', netPrice: '49.00')                          // quantity 1, VAT 19 % by default
    ->dueInDays(14)
    ->render();                                                   // ZUGFeRD: PDF/A-3 with embedded XML

$result->pdf();
$result->save('invoices', '2026/');
$result->cancel('ST-2026-0001', reason: 'Charged twice');        // the cancellation, rendered
```

## Documentation \#

New to Quittio? Follow [Getting started](https://quittio.dev/docs/getting-started); new to e-invoicing? Read [E-invoicing basics](https://quittio.dev/docs/concepts) first.

| Topic | Content |
| --- | --- |
| [Getting started](https://quittio.dev/docs/getting-started) | Installation, your company in the configuration, a first invoice, rendering, cancellation, use without Laravel |
| [E-invoicing basics](https://quittio.dev/docs/concepts) | EN 16931, CII and UBL, ZUGFeRD, XRechnung, Peppol, profiles, rule codes, which format you need, German terms |
| [Examples](https://quittio.dev/docs/examples) | Complete examples: service invoices, VAT rates, online shops, small businesses, XRechnung, customers abroad, final invoices, cancellations, orders, drafts, reminders, incoming invoices |
| [Building invoices](https://quittio.dev/docs/building-invoices) | Every builder method: parties, lines, VAT, payment, references, calculation, cancellations, data model |
| [Formats and profiles](https://quittio.dev/docs/formats) | Output formats, the automatic format choice, embedded files and XMP |
| [Validation](https://quittio.dev/docs/validation) | What is checked (levels L1 to L7), error messages, KoSIT and veraPDF |
| [Templates and design](https://quittio.dev/docs/templates) | Logo, colours, texts, partials, own templates, view model, letter layouts, fonts |
| [Quotes and other documents](https://quittio.dev/docs/documents) | Quotes, order confirmations, delivery notes, proforma invoices, reminders, statements |
| [Reading incoming invoices](https://quittio.dev/docs/reading) | XML and PDF input, findings, limits |
| [Laravel integration](https://quittio.dev/docs/laravel) | Facade, rendering, storage, queue, events, mail, Blade templates, preview |
| [Configuration](https://quittio.dev/docs/configuration) | Every key of `config/quittio.php` |
| [Artisan commands](https://quittio.dev/docs/commands) | All commands and publish tags |
| [Testing](https://quittio.dev/docs/testing) | Fake, assertions, factories, scenarios |
| [Country packs](https://quittio.dev/docs/country-packs) | The German pack: tax presets, rules, XRechnung, reminders; writing a pack |
| [Austria](https://quittio.dev/docs/country-at), [Belgium](https://quittio.dev/docs/country-be), [Switzerland](https://quittio.dev/docs/country-ch), [France](https://quittio.dev/docs/country-fr) | The other country packs: presets, rules, formats, payment QR codes, default interest |
| [Managed layer](https://quittio.dev/docs/managed) | Preview of the unreleased package: issuer profiles, customers, numbering, archive, cancellations and corrections, delivery, audit log, immutability, retention |
| [Troubleshooting](https://quittio.dev/docs/troubleshooting) | Common errors with cause and fix |
| [FAQ](https://quittio.dev/docs/faq) | Sending, the German e-invoicing obligation, Java, temporary files, queued invoices |
| [Field reference](https://quittio.dev/docs/field-reference) | Every field of the data model with BT, cardinality and XML paths (generated) |
| [API reference](https://quittio.dev/docs/api) | Every public class and method with its parameters and doc comment (generated) |
| [AI assistants](https://quittio.dev/docs/ai) | llms.txt, the MCP server of this documentation, Laravel Boost guidelines and skill |

## Licence \#

Open core: `quittio/core`, `quittio/laravel`, the country packs `quittio/country-de`, `-at`, `-be`, `-ch`, `-fr` and `quittio/quittio` are released under the MIT licence. The Managed layer `quittio/managed` will be commercially licensed; it is not released yet.

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://quittio.dev/en#website","@type":"WebSite","description":"E-invoicing for PHP and Laravel: create, validate, read and archive ZUGFeRD, XRechnung and Peppol invoices.","inLanguage":"en","name":"Quittio","url":"https://quittio.dev/en","publisher":{"@id":"https://quittio.dev/#identity"},"translationOfWork":{"@id":"https://quittio.dev/#website"}},{"@id":"https://quittio.dev/en/docs#webpage","@type":"WebPage","description":"E-invoicing for PHP and Laravel. Quittio creates, validates, reads and renders electronic invoices based on the European standard EN 16931 – ZUGFeRD/Factur-X, XRechnung, UBL and Peppol BIS from one data model.","name":"Documentation","url":"https://quittio.dev/en/docs","isPartOf":{"@id":"https://quittio.dev/en#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/en/docs"]}],"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":"en","url":"https://quittio.dev/logo.png"}]}
```