---
title: "API reference · Quittio"
description: "The public classes of the Quittio packages with their methods and parameters."
canonical_url: "https://quittio.dev/en/docs/api"
locale: en
meta:
  "og:description": "The public classes of the Quittio packages with their methods and parameters."
  "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": "API reference · 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)

# API reference

Every public class, interface, trait and enum of the Quittio packages with its methods, parameters and doc comments, generated from the code of this version. Classes marked `@internal` are left out.

## quittio/core \#

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

- [`Config`](https://quittio.dev/docs/api/Quittio/Core/Config)Configuration of the core without Laravel. The Laravel package translates config/quittio.php into it (Quittio\\Laravel\\Support\\ConfigMapper), whose layout differs from the keys of fromArray().
- [`Quittio`](https://quittio.dev/docs/api/Quittio/Core/Quittio)Entry point without Laravel:

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

- [`InvoiceBuilder`](https://quittio.dev/docs/api/Quittio/Core/Builder/InvoiceBuilder)Fluent builder for InvoiceData.
- [`Line`](https://quittio.dev/docs/api/Quittio/Core/Builder/Line)Starts an invoice line for InvoiceBuilder::line() and lines() without a callback: ->line(Line::make('Consulting', netPrice: '120.00')->sellerId('C-1')). Simple lines need no builder: ->line('Consulting', netPrice: '120.00', quantity: 4, unit: UnitCode::Hour).
- [`LineBuilder`](https://quittio.dev/docs/api/Quittio/Core/Builder/LineBuilder)Fluent builder for an invoice line (BG-25).
- [`Party`](https://quittio.dev/docs/api/Quittio/Core/Builder/Party)Starts a seller or buyer for InvoiceBuilder::seller() and buyer() without a callback: ->buyer(Party::make('Kunde AG')->vatId('DE987654321')->address('Weg 1', '54321', 'Beispielstadt', 'DE')).
- [`PartyBuilder`](https://quittio.dev/docs/api/Quittio/Core/Builder/PartyBuilder)Fluent builder for the seller (BG-4), the buyer (BG-7) and the payee (BG-10).
- [`PaymentTermsBuilder`](https://quittio.dev/docs/api/Quittio/Core/Builder/PaymentTermsBuilder)Fluent builder for structured payment terms (BT-20, BT-9).

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

- [`BuildsAllowancesAndCharges`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsAllowancesAndCharges) traitDocument level allowances and charges (BG-20, BG-21) and discounts split over the VAT rates.
- [`BuildsDelivery`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsDelivery) traitDelivery information (BG-13) and the invoicing period (BG-14).
- [`BuildsExtensions`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsExtensions) traitData of the EXTENDED profile and of the XRechnung extension.
- [`BuildsHeader`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsHeader) traitInvoice number, dates, type, currencies, business process and standard version.
- [`BuildsLines`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsLines) traitInvoice lines (BG-25) and their groups.
- [`BuildsNotesAndAttachments`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsNotesAndAttachments) traitInvoice notes (BG-1) and supporting documents (BG-24).
- [`BuildsParties`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsParties) traitSeller, buyer, payee and tax representative (BG-4, BG-7, BG-10, BG-11).
- [`BuildsPayment`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsPayment) traitPayment instructions (BG-16 to BG-19), payment terms and the prepaid and rounding amounts (BT-113, BT-114).
- [`BuildsPresentationAndMeta`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsPresentationAndMeta) traitPresentation, locale, time zone, custom values, flags and the source of the invoice.
- [`BuildsReferences`](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsReferences) traitDocument references (BT-10 to BT-19, BG-3) and the invoiced object.

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

- [`AllowanceSplitter`](https://quittio.dev/docs/api/Quittio/Core/Calculation/AllowanceSplitter)Splits a document discount over several VAT groups.
- [`CalculationException`](https://quittio.dev/docs/api/Quittio/Core/Calculation/CalculationException)
- [`CalculationPolicy`](https://quittio.dev/docs/api/Quittio/Core/Calculation/CalculationPolicy)Decisions of the calculator that are not fixed by EN 16931. The policy is configuration of the run and not stored with the invoice: the same data calculated under another policy can give other amounts.
- [`DeclaredAmounts`](https://quittio.dev/docs/api/Quittio/Core/Calculation/DeclaredAmounts)Declared amounts of an existing document (Meta::FLAG\_DECLARED\_AMOUNTS): whether they are needed at all, and the fingerprint of the amount inputs they belong to.
- [`DeclaredAmountsMode`](https://quittio.dev/docs/api/Quittio/Core/Calculation/DeclaredAmountsMode) enumWhat the calculator does with the declared amounts of an existing document (line net amounts BT-131 and VAT breakdown BT-116, BT-117 that another system rounded differently, see Meta::FLAG\_DECLARED\_AMOUNTS).
- [`En16931Calculator`](https://quittio.dev/docs/api/Quittio/Core/Calculation/En16931Calculator)Calculation according to EN 16931.
- [`GrossPriceConverter`](https://quittio.dev/docs/api/Quittio/Core/Calculation/GrossPriceConverter)Gross price mode for B2C and shops.
- [`LargestRemainder`](https://quittio.dev/docs/api/Quittio/Core/Calculation/LargestRemainder)Distributes an amount over weights so that the rounded parts add up exactly (largest remainder method).
- [`LineCalculator`](https://quittio.dev/docs/api/Quittio/Core/Calculation/LineCalculator)Calculates the invoice line net amount (BT-131):
- [`TotalsCalculator`](https://quittio.dev/docs/api/Quittio/Core/Calculation/TotalsCalculator) interfaceCalculates line amounts, allowances and charges, the VAT breakdown and totals.

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

- [`CodeList`](https://quittio.dev/docs/api/Quittio/Core/Codes/CodeList)Access to the official code lists generated from the EN 16931 rules and, for Peppol, the Peppol BIS rules (resources/codelists/\*.json, see tools/codelists/update.php).
- [`CodeListGenerator`](https://quittio.dev/docs/api/Quittio/Core/Codes/CodeListGenerator)Generates the code list files (resources/codelists/\*.json) from the official EN 16931 Schematron rules (BR-CL-\*), as shipped with the KoSIT validator configuration, and the narrower Peppol lists from the Peppol BIS Schematron.
- [`RawCode`](https://quittio.dev/docs/api/Quittio/Core/Codes/RawCode)A code that is not (yet) part of the code list enums shipped with the package.

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

- [`ProvidesInvoiceData`](https://quittio.dev/docs/api/Quittio/Core/Contracts/ProvidesInvoiceData) interfaceImplemented by application models that can be turned into an invoice (e.g. an order).
- [`ProvidesInvoiceLine`](https://quittio.dev/docs/api/Quittio/Core/Contracts/ProvidesInvoiceLine) interfaceImplemented by application models that describe an invoice line (e.g. an order item).
- [`ProvidesParty`](https://quittio.dev/docs/api/Quittio/Core/Contracts/ProvidesParty) interfaceImplemented by application models that describe a trade party (e.g. a customer).

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

- [`Cancellation`](https://quittio.dev/docs/api/Quittio/Core/Corrections/Cancellation)Full cancellation of an issued invoice: a new invoice with its own number that reverses the original and refers to it (BG-3).
- [`CancellationHistory`](https://quittio.dev/docs/api/Quittio/Core/Corrections/CancellationHistory)What the earlier partial cancellations of an invoice cancelled per VAT group (category and rate), so that the VAT of the next partial cancellation is rounded cumulatively.
- [`Correction`](https://quittio.dev/docs/api/Quittio/Core/Corrections/Correction)Corrected invoice (type code 384) that replaces an issued invoice: a copy of the original with its own number, the reference to the original (BG-3) and the note "Diese Rechnung berichtigt und ersetzt die Rechnung … vom …" (BT-22), so that it states by a specific and unambiguous reference that it corrects the original (section 31 (5) UStDV, section 15.2a (7) UStAE). Change what was wrong on the returned builder.
- [`PriceReduction`](https://quittio.dev/docs/api/Quittio/Core/Corrections/PriceReduction)Document on a reduction of the consideration of an issued invoice (section 17 UStG), e.g. a cash discount taken, a reduction because of a complaint about defects or a bonus: a credit note (type code 381, positive amounts) with one line per VAT group of the original, the reference to the original (BG-3) and a note that names the reduction of the net amount and of the VAT per rate (BT-22), titled "Entgeltminderung" in Germany.
- [`PriceReductionReason`](https://quittio.dev/docs/api/Quittio/Core/Corrections/PriceReductionReason) enumWhy the consideration of an invoice was reduced (PriceReduction); the note names it.

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

- [`AbstractCountryPack`](https://quittio.dev/docs/api/Quittio/Core/Countries/AbstractCountryPack)Base class with neutral defaults, so that country packs only override what differs.
- [`CorrectionPolicy`](https://quittio.dev/docs/api/Quittio/Core/Countries/CorrectionPolicy)Default handling of cancellations and corrections in a country, and the titles of these documents. Quittio::cancellation() takes the cancellation strategy and the titles "cancellation" and "cancellation\_self\_billed"; Quittio::correction() the title "correction", Quittio::priceReduction() the title "price\_reduction"; the title "self\_billed" is the title of self-billed invoices in PDF and HTML (InvoiceTitle::policyTitle()); the Managed layer takes the correction strategy.
- [`CountryDefaults`](https://quittio.dev/docs/api/Quittio/Core/Countries/CountryDefaults)Defaults of a country.
- [`CountryGeneric`](https://quittio.dev/docs/api/Quittio/Core/Countries/CountryGeneric)Neutral pack for countries without an installed country pack: EN 16931 rules only and international formatting. A warning is issued when an invoice is validated with this pack.
- [`CountryPack`](https://quittio.dev/docs/api/Quittio/Core/Countries/CountryPack) interfaceEverything that differs between countries.
- [`CountryRegistry`](https://quittio.dev/docs/api/Quittio/Core/Countries/CountryRegistry)Installed country packs.
- [`CountryResolver`](https://quittio.dev/docs/api/Quittio/Core/Countries/CountryResolver) interfaceSelects the country packs for an invoice.
- [`DefaultCountryResolver`](https://quittio.dev/docs/api/Quittio/Core/Countries/DefaultCountryResolver)The seller's country (BT-40) determines the leading pack. The buyer's country (BT-55) adds rules for cross-border invoices. A country without a pack of its own takes the pack of the country whose VAT territory it belongs to (VatTerritory::vatCountry(): Monaco the French, Liechtenstein the Swiss pack). Without an installed pack, a generic pack is used.
- [`DunningLaw`](https://quittio.dev/docs/api/Quittio/Core/Countries/DunningLaw)Statutory late payment rules (EU late payment directive plus national law). Amounts and percentage points are decimal strings.
- [`Exporter`](https://quittio.dev/docs/api/Quittio/Core/Countries/Exporter) interfaceCountry specific export format (e.g. DATEV for Germany, FEC for France). Country packs only declare which exporters they provide (CountryPack::exporters()); Quittio runs none of them, applications may.
- [`LegalTextCatalog`](https://quittio.dev/docs/api/Quittio/Core/Countries/LegalTextCatalog)Legal and informational texts of a country pack per locale.
- [`MandatoryField`](https://quittio.dev/docs/api/Quittio/Core/Countries/MandatoryField)A value that must appear in the PDF (checked by the mandatory field guard).
- [`MandatoryFieldList`](https://quittio.dev/docs/api/Quittio/Core/Countries/MandatoryFieldList)Values that must be output in the PDF for one invoice.
- [`NumberingRules`](https://quittio.dev/docs/api/Quittio/Core/Countries/NumberingRules)Requirements for invoice numbering in a country. The Managed layer applies the default pattern, the default reset and the allowed resets.
- [`ResolvedCountries`](https://quittio.dev/docs/api/Quittio/Core/Countries/ResolvedCountries)Leading pack (seller side) and, for cross-border invoices, the buyer's pack.
- [`RetentionRule`](https://quittio.dev/docs/api/Quittio/Core/Countries/RetentionRule)Retention period for invoices.
- [`VatTerritory`](https://quittio.dev/docs/api/Quittio/Core/Countries/VatTerritory)The EU VAT territory (Art. 5 to 7 of Directive 2006/112/EC) as far as it can be told from a country code and a postcode.

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

- [`CompletesInvoices`](https://quittio.dev/docs/api/Quittio/Core/Countries/Capabilities/CompletesInvoices) interfaceA country pack that completes an invoice before it is calculated, validated and rendered, e.g. with a notice the law of the country expects for some buyers. The render pipeline calls it for the leading pack of the invoice; what it adds is part of the rendered data.
- [`ProvidesFormats`](https://quittio.dev/docs/api/Quittio/Core/Countries/Capabilities/ProvidesFormats) interfaceA country pack that brings output formats, e.g. a national e-invoice format, with their aliases and the serializers of their syntaxes. Quittio::registerCountry() registers them. AbstractCountryPack implements it with empty defaults.
- [`ProvidesReferenceRates`](https://quittio.dev/docs/api/Quittio/Core/Countries/Capabilities/ProvidesReferenceRates) interfaceA country pack whose late payment law has a reference interest rate, so that Dunning\\DefaultInterest::forCountry() calculates default interest for it.

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

- [`Identifier`](https://quittio.dev/docs/api/Quittio/Core/Data/Identifier)Identifier with an optional scheme (ISO/IEC 6523 ICD or another code list depending on the field).
- [`InvoiceData`](https://quittio.dev/docs/api/Quittio/Core/Data/InvoiceData)Root of the semantic invoice model (EN 16931, superset of the 2017 and 2026 versions).
- [`Meta`](https://quittio.dev/docs/api/Quittio/Core/Data/Meta)Package-internal metadata: locale, time zone, exchange rate, free data for templates and flags for country packs.
- [`Note`](https://quittio.dev/docs/api/Quittio/Core/Data/Note)Invoice note (BG-1).

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

- [`DocumentAllowance`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/DocumentAllowance)Document level allowance (BG-20). An allowance has exactly one VAT category and rate.
- [`DocumentAllowanceCharge`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/DocumentAllowanceCharge)Common structure of document level allowances (BG-20) and charges (BG-21).
- [`DocumentCharge`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/DocumentCharge)Document level charge (BG-21).
- [`LineAllowance`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/LineAllowance)Invoice line allowance (BG-27).
- [`LineAllowanceCharge`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/LineAllowanceCharge)Common structure of invoice line allowances (BG-27) and charges (BG-28). Line allowances and charges have no VAT category of their own; they inherit the line's category.
- [`LineCharge`](https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/LineCharge)Invoice line charge (BG-28).

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

- [`Attachment`](https://quittio.dev/docs/api/Quittio/Core/Data/Attachments/Attachment)Additional supporting document (BG-24).

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

- [`Immutable`](https://quittio.dev/docs/api/Quittio/Core/Data/Concerns/Immutable) traitGeneric copy-on-write helper for readonly DTOs whose properties are all promoted constructor parameters.

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

- [`Delivery`](https://quittio.dev/docs/api/Quittio/Core/Data/Delivery/Delivery)Delivery information (BG-13).
- [`Period`](https://quittio.dev/docs/api/Quittio/Core/Data/Delivery/Period)Invoicing period (BG-14: BT-73, BT-74) or invoice line period (BG-26: BT-134, BT-135). At least one of start or end must be set; the end must not lie before the start.

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

- [`ExtendedData`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/ExtendedData)Document level data that exists only in the Factur-X/ZUGFeRD EXTENDED profile. The selection covers the practically relevant elements.
- [`ExtendedParty`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/ExtendedParty)Additional trade party of profile EXTENDED (invoicer, invoicee, ultimate customer, ship-from, line ship-to).
- [`IncludedProduct`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/IncludedProduct)Component of a set or bundle (profile EXTENDED).
- [`Installment`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/Installment)One of several payment terms with its own due date (profile EXTENDED), e.g. instalments.
- [`LineExtendedData`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/LineExtendedData)Line level data that exists only in the Factur-X/ZUGFeRD EXTENDED profile.
- [`ThirdPartyPayment`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/ThirdPartyPayment)Amount collected on behalf of a third party (XRechnung extension, group BG-DEX-09). It is added to the amount due (BR-DEX-09).
- [`XRechnungExtensionData`](https://quittio.dev/docs/api/Quittio/Core/Data/Extensions/XRechnungExtensionData)Data of the XRechnung extension. Sub invoice lines are modelled via InvoiceLine::$subLines.

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

- [`Classification`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/Classification)Item classification identifier (BT-158) with scheme (BT-158-1) and scheme version (BT-158-2), e.g. eCl@ss, UNSPSC, CPV or customs tariff numbers.
- [`InvoiceLine`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/InvoiceLine)Invoice line (BG-25).
- [`Item`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/Item)Item information (BG-31).
- [`ItemAttribute`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/ItemAttribute)Item attribute (BG-32), e.g. colour, size, vehicle identification number.
- [`LineVat`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/LineVat)Line VAT information (BG-30).
- [`Price`](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/Price)Price details (BG-29). Prices may have more than two decimals.

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

- [`Address`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/Address)Postal address (BG-5 seller, BG-8 buyer, BG-12 tax representative, BG-15 deliver to).
- [`BuyerParty`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/BuyerParty)Buyer (BG-7).
- [`Contact`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/Contact)Contact (BG-6 seller: BT-41/42/43, BG-9 buyer: BT-56/57/58).
- [`ElectronicAddress`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/ElectronicAddress)Electronic address (BT-34 seller, BT-49 buyer) with its EAS scheme. For Peppol, the electronic address is also the participant identifier.
- [`PayeeParty`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/PayeeParty)Payee (BG-10), only when different from the seller (factoring, collection, group company).
- [`SellerParty`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/SellerParty)Seller (BG-4).
- [`TaxRepresentativeParty`](https://quittio.dev/docs/api/Quittio/Core/Data/Party/TaxRepresentativeParty)Seller tax representative (BG-11).

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

- [`CashDiscount`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/CashDiscount)Cash discount ("Skonto") granted for payment within $days days.
- [`CreditTransfer`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/CreditTransfer)Credit transfer (BG-17).
- [`DirectDebit`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/DirectDebit)Direct debit (BG-19).
- [`PaymentCard`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/PaymentCard)Payment card information (BG-18). Only the last 4 to 6 digits of the card number may be stored.
- [`PaymentInstructions`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/PaymentInstructions)Payment instructions (BG-16).
- [`PaymentTerms`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/PaymentTerms)Structured payment terms. Serialised into BT-20 text (and structured elements where the profile allows).
- [`PenaltyTerms`](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/PenaltyTerms)Late payment terms. Structured only in profile EXTENDED, otherwise rendered as text.

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

- [`Colors`](https://quittio.dev/docs/api/Quittio/Core/Data/Presentation/Colors)Colours used by the PDF template.
- [`LineGroup`](https://quittio.dev/docs/api/Quittio/Core/Data/Presentation/LineGroup)Group of invoice lines with an optional subtotal. Presentation only.
- [`LinePresentation`](https://quittio.dev/docs/api/Quittio/Core/Data/Presentation/LinePresentation)PDF-only presentation hints for an invoice line. Never written to XML.
- [`Presentation`](https://quittio.dev/docs/api/Quittio/Core/Data/Presentation/Presentation)Data used only for the PDF. Never written to XML.

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

- [`DocumentReference`](https://quittio.dev/docs/api/Quittio/Core/Data/References/DocumentReference)Reference to a related document on line level or as additional reference (profile EXTENDED), e.g. delivery note, order, contract or receiving advice.
- [`PrecedingInvoiceReference`](https://quittio.dev/docs/api/Quittio/Core/Data/References/PrecedingInvoiceReference)Preceding invoice reference (BG-3), used for cancellations, corrections and final invoices.
- [`ProjectReference`](https://quittio.dev/docs/api/Quittio/Core/Data/References/ProjectReference)Project reference (BT-11). CII requires a name in addition to the identifier.

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

- [`Totals`](https://quittio.dev/docs/api/Quittio/Core/Data/Totals/Totals)Document totals (BG-22), calculated by the calculator.
- [`VatBreakdown`](https://quittio.dev/docs/api/Quittio/Core/Data/Totals/VatBreakdown)VAT breakdown (BG-23), one entry per combination of VAT category and rate.

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

- [`AccountStatement`](https://quittio.dev/docs/api/Quittio/Core/Documents/AccountStatement)Account statement for a customer: open and paid invoices of a period.
- [`BonusStatement`](https://quittio.dev/docs/api/Quittio/Core/Documents/BonusStatement)Data of a bonus statement: a reduction of the consideration of all supplies of a period, e.g. an annual bonus, documented in one statement instead of one document per invoice (in Germany section 17 (4) UStG). The reduction per VAT rate is in the lines of the document.
- [`DocumentBuilder`](https://quittio.dev/docs/api/Quittio/Core/Documents/DocumentBuilder)Fluent builder for documents. Parties, lines, notes, discounts and payment data work exactly like in the {@see InvoiceBuilder}.
- [`DocumentCalculator`](https://quittio.dev/docs/api/Quittio/Core/Documents/DocumentCalculator)Calculates documents with the invoice calculator. Optional and alternative lines get their line amounts but are excluded from the totals.
- [`DocumentData`](https://quittio.dev/docs/api/Quittio/Core/Documents/DocumentData)Quote, order confirmation, delivery note, proforma invoice, payment reminder, account statement or bonus statement. Shares parties, lines and calculation with {@see InvoiceData}, but never produces e-invoice XML. Payment reminders and account statements have no lines: their amount comes from {@see Dunning} and {@see AccountStatement}.
- [`DocumentLineOptions`](https://quittio.dev/docs/api/Quittio/Core/Documents/DocumentLineOptions)Document specific line details, keyed by line identifier in {@see DocumentData}.
- [`DocumentType`](https://quittio.dev/docs/api/Quittio/Core/Documents/DocumentType) enumCommercial documents that share templates and calculation with invoices but carry no e-invoice XML.
- [`Dunning`](https://quittio.dev/docs/api/Quittio/Core/Documents/Dunning)Data of a payment reminder: open items, fees, interest and the new deadline.
- [`DunningFee`](https://quittio.dev/docs/api/Quittio/Core/Documents/DunningFee)Fee of a payment reminder (e.g. costs of the reminder, flat rate according to national law).
- [`DunningFeeKind`](https://quittio.dev/docs/api/Quittio/Core/Documents/DunningFeeKind) enumWhat a fee of a payment reminder is.
- [`InterestCharge`](https://quittio.dev/docs/api/Quittio/Core/Documents/InterestCharge)Default interest on an open amount for a period (simple interest).
- [`OpenItem`](https://quittio.dev/docs/api/Quittio/Core/Documents/OpenItem)An invoice in a payment reminder or account statement.
- [`Package`](https://quittio.dev/docs/api/Quittio/Core/Documents/Package)Package of a delivery note.

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

- [`DefaultInterest`](https://quittio.dev/docs/api/Quittio/Core/Dunning/DefaultInterest)Default interest of a late payment law: the reference rate plus the points of the DunningLaw (business or consumer debtors), split at every change of the reference rate, with the day count basis of the law; a fixed rate of the law for businesses or consumers instead, if it has one. The result goes into DocumentBuilder::interestCharge().
- [`ReferenceRates`](https://quittio.dev/docs/api/Quittio/Core/Dunning/ReferenceRates) interfaceThe reference interest rate of a country's late payment law, e.g. the German Basiszinssatz (section 247 BGB) or the ECB main refinancing rate. Default interest is the reference rate plus the points of the DunningLaw.

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

- [`AllowanceReasonCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/AllowanceReasonCode) enumAllowance reason code (BT-98, BT-140), UNTDID 5189 subset.
- [`ChargeReasonCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/ChargeReasonCode) enumCharge reason code (BT-105, BT-145), UNTDID 7161 subset. Further codes can be used as RawCode.
- [`DocumentReferenceTypeCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/DocumentReferenceTypeCode) enumDocument type code for additional supporting documents (BG-24), UNTDID 1001 subset.
- [`ElectronicAddressScheme`](https://quittio.dev/docs/api/Quittio/Core/Enums/ElectronicAddressScheme) enumElectronic address scheme (BT-34-1, BT-49-1), CEF EAS code list. Further codes can be used as RawCode.
- [`IdentifierScheme`](https://quittio.dev/docs/api/Quittio/Core/Enums/IdentifierScheme) enumIdentifier scheme (ISO/IEC 6523 ICD), e.g. for BT-29, BT-46, BT-157. Further codes can be used as RawCode.
- [`InvoiceTypeCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/InvoiceTypeCode) enumDocument type code (BT-3), UNTDID 1001 subset allowed by EN 16931.
- [`ItemClassificationScheme`](https://quittio.dev/docs/api/Quittio/Core/Enums/ItemClassificationScheme) enumItem classification scheme (BT-158-1), UNTDID 7143 subset. Further codes can be used as RawCode.
- [`MimeType`](https://quittio.dev/docs/api/Quittio/Core/Enums/MimeType) enumMIME code of an attached document (BT-125-1). Xml (application/xml) is not part of the EN 16931 code list (BR-CL-24); only the XRechnung extension allows it (BR-DEX-01).
- [`NoteSubjectCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/NoteSubjectCode) enumInvoice note subject code (BT-21), UNTDID 4451 subset. Further codes can be used as RawCode.
- [`PaymentMeansCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/PaymentMeansCode) enumPayment means type code (BT-81), UNTDID 4461. Further codes can be used as RawCode.
- [`TaxPointDateCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/TaxPointDateCode) enumValue added tax point date code (BT-8).
- [`UnitCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/UnitCode) enumUnit of measure (BT-130, BT-150), UN/ECE Recommendation 20 and 21. Further codes can be used as RawCode.
- [`VatCategory`](https://quittio.dev/docs/api/Quittio/Core/Enums/VatCategory) enumVAT category code (BT-95, BT-102, BT-118, BT-151), UNTDID 5305 subset.
- [`VatExemptionReasonCode`](https://quittio.dev/docs/api/Quittio/Core/Enums/VatExemptionReasonCode) enumVAT exemption reason code (BT-121), VATEX code list. Further codes can be used as RawCode.

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

- [`HasLabel`](https://quittio.dev/docs/api/Quittio/Core/Enums/Concerns/HasLabel) traitTranslated labels for code list enums, e.g. "Stunde" for HUR.

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

- [`ConfigurationException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/ConfigurationException)Invalid configuration or an unsupported combination of format and profile.
- [`HydrationException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/HydrationException)Array or JSON input does not match the invoice data model.
- [`InvalidArgumentException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/InvalidArgumentException)\\InvalidArgumentException thrown by Quittio; catch QuittioException for every error of the library.
- [`InvalidInvoiceData`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/InvalidInvoiceData)Builder or data input is structurally incomplete.
- [`LogicException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/LogicException)\\LogicException thrown by Quittio; catch QuittioException for every error of the library.
- [`QuittioException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/QuittioException) interfaceMarker interface for all exceptions thrown by Quittio.
- [`RuntimeException`](https://quittio.dev/docs/api/Quittio/Core/Exceptions/RuntimeException)\\RuntimeException thrown by Quittio; catch QuittioException for every error of the library.

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

- [`DefaultFormatResolver`](https://quittio.dev/docs/api/Quittio/Core/Formats/DefaultFormatResolver)Format resolution in this order:
- [`ExtendedFeatures`](https://quittio.dev/docs/api/Quittio/Core/Formats/ExtendedFeatures)Detects data that only the profile EXTENDED can carry (sub lines, EXTENDED-only fields).
- [`FormatChoice`](https://quittio.dev/docs/api/Quittio/Core/Formats/FormatChoice)Result of the format resolution: output format key and profile key.
- [`FormatRegistry`](https://quittio.dev/docs/api/Quittio/Core/Formats/FormatRegistry)Known output formats. Country and network packages can register national formats.
- [`FormatResolver`](https://quittio.dev/docs/api/Quittio/Core/Formats/FormatResolver) interfaceChooses format and profile when none is given.
- [`FormatRule`](https://quittio.dev/docs/api/Quittio/Core/Formats/FormatRule) interfaceA rule of a country pack that decides the output format of an invoice.
- [`OutputFormat`](https://quittio.dev/docs/api/Quittio/Core/Formats/OutputFormat)Definition of an output format.

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

- [`ArrayTranslator`](https://quittio.dev/docs/api/Quittio/Core/I18n/ArrayTranslator)Translator backed by PHP array files: {path}/{locale}/{group}.php.
- [`Translations`](https://quittio.dev/docs/api/Quittio/Core/I18n/Translations)Holds the translator used for code labels and validation messages.
- [`Translator`](https://quittio.dev/docs/api/Quittio/Core/I18n/Translator) interfaceMinimal translator contract so that the core works without Laravel. Keys use the form "group.key" (e.g. "labels.due\_date", "rules.BR-CO-25.message").

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

- [`FieldDefinition`](https://quittio.dev/docs/api/Quittio/Core/Mapping/FieldDefinition)Metadata of one DTO field, read from its mapping attributes.
- [`FieldMatrix`](https://quittio.dev/docs/api/Quittio/Core/Mapping/FieldMatrix)Field metadata of all DTOs, derived from the mapping attributes (single source for profile validation, documentation and coverage reports).
- [`FieldReference`](https://quittio.dev/docs/api/Quittio/Core/Mapping/FieldReference)Generates docs/field-reference.md from the mapping attributes of the data model.

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

- [`Binary`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Binary)Binary string; arrays and JSON carry it base64 encoded.
- [`Bt`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Bt)Business term or business group identifier from EN 16931 (e.g. BT-1, BG-25).
- [`Cardinality`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Cardinality)Cardinality according to EN 16931: 1, 0..1, 0..n or 1..n.
- [`Cii`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Cii)Location of the field in UN/CEFACT CII, relative to the parent element (informative).
- [`Computed`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Computed)The value is set by the calculator and is not a user input.
- [`ExtendedOnly`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/ExtendedOnly)The value exists only in the Factur-X/ZUGFeRD EXTENDED profile.
- [`InputFor`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/InputFor)Marks a user input that the calculator copies into the given business term.
- [`Internal`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Internal)Package-internal value without an EN 16931 business term (not written to XML).
- [`Level`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Level)Lowest Factur-X/ZUGFeRD profile level in which the field may be used. Fields without this attribute are available from level EN 16931 on.
- [`ListOf`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/ListOf)Element type of an array property, used for hydration and schema generation.
- [`MapOf`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/MapOf)Value type of an array property keyed by strings, e.g. line options keyed by line identifier; the hydrator keeps the keys.
- [`PdfOnly`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/PdfOnly)The value is used for the PDF only and never written to XML.
- [`RequiredIn`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/RequiredIn)Profile keys in which an optional EN 16931 field becomes mandatory (e.g. "xrechnung").
- [`Since`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Since)The field exists from the given version of EN 16931 on.
- [`TaxCurrency`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/TaxCurrency)Monetary value expressed in the VAT accounting currency (BT-6) instead of the invoice currency.
- [`Ubl`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Ubl)Location of the field in UBL 2.1, relative to the parent element (informative).
- [`Until`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/Until)The field exists up to and including the given version of EN 16931.
- [`XRechnungExtensionOnly`](https://quittio.dev/docs/api/Quittio/Core/Mapping/Attributes/XRechnungExtensionOnly)The value exists only in the XRechnung extension.

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

- [`EmbeddedXml`](https://quittio.dev/docs/api/Quittio/Core/Pdf/EmbeddedXml)Invoice XML to be embedded into a PDF/A-3 (ZUGFeRD/Factur-X, XRechnung in PDF).
- [`LogoCache`](https://quittio.dev/docs/api/Quittio/Core/Pdf/LogoCache)Prepares logos for the PDF and caches the result.
- [`PdfEmbeddedFileExtractor`](https://quittio.dev/docs/api/Quittio/Core/Pdf/PdfEmbeddedFileExtractor)Extracts the embedded invoice XML from PDF files (ZUGFeRD 2.x, Factur-X, XRechnung in PDF).
- [`PdfException`](https://quittio.dev/docs/api/Quittio/Core/Pdf/PdfException)
- [`PdfRenderer`](https://quittio.dev/docs/api/Quittio/Core/Pdf/PdfRenderer) interfaceTurns HTML (from the template) into a PDF, embedding the invoice XML if requested.
- [`RemoteImageFetcher`](https://quittio.dev/docs/api/Quittio/Core/Pdf/RemoteImageFetcher)Downloads remote logos without server-side request forgery: only http and https, only hosts whose every resolved address (IPv4 and IPv6) is publicly routable, the connection pinned to the checked address (no second DNS lookup) and every redirect checked again.
- [`RenderRequest`](https://quittio.dev/docs/api/Quittio/Core/Pdf/RenderRequest)Input for a PDF renderer.

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

- [`MpdfPostProcessor`](https://quittio.dev/docs/api/Quittio/Core/Pdf/PostProcessing/MpdfPostProcessor)Imports the pages of an existing PDF (FPDI via mPDF), embeds the XML and writes PDF/A-3 metadata and output intent.
- [`PdfPostProcessor`](https://quittio.dev/docs/api/Quittio/Core/Pdf/PostProcessing/PdfPostProcessor) interfaceTurns an existing PDF into PDF/A-3 with embedded invoice XML (for callback and passthrough renderers).

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

- [`EpcGiroCodeGenerator`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Qr/EpcGiroCodeGenerator)EPC QR code ("GiroCode") for SEPA credit transfers, guideline EPC069-12 version 002.
- [`PaymentQrGenerator`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Qr/PaymentQrGenerator) interfaceCreates the payload of a payment QR code (GiroCode, Swiss QR bill, …).
- [`PaymentSlip`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Qr/PaymentSlip)The texts of a payment slip with receipt (ProvidesPaymentSlip), laid out by the templates after the Swiss QR bill: receipt (62 mm) and payment part (148 mm) in a strip of 210 × 105 mm at the bottom of the page, with the code at 46 × 46 mm.
- [`ProvidesPaymentSlip`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Qr/ProvidesPaymentSlip) interfaceA payment QR code generator whose code belongs on a payment slip of its own, e.g. the payment part and receipt of the Swiss QR bill. The default templates then print the slip at the bottom of a page of its own instead of the small code next to the bank details.
- [`QrImage`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Qr/QrImage)Renders QR codes as SVG data URIs for templates (no further dependency besides mpdf/qrcode).

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

- [`CallbackRenderer`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Renderers/CallbackRenderer)Own rendering function (e.g. Browsershot, Gotenberg) that returns PDF binary data. PDF/A and the embedded XML are added by the post processor.
- [`DenyingHttpClient`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Renderers/DenyingHttpClient)mPDF HTTP client that refuses every request (defence in depth).
- [`MpdfRenderer`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Renderers/MpdfRenderer)Default renderer: HTML/CSS to PDF/A-3b with mPDF, in pure PHP.
- [`PassthroughRenderer`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Renderers/PassthroughRenderer)Uses a finished PDF supplied by the application; only PDF/A and the XML are added.

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

- [`FacturXXmp`](https://quittio.dev/docs/api/Quittio/Core/Pdf/Xmp/FacturXXmp)XMP metadata for Factur-X/ZUGFeRD: the fx description and the PDF/A extension schema. Without the extension schema the PDF is readable, but not valid PDF/A.

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

- [`AbstractProfile`](https://quittio.dev/docs/api/Quittio/Core/Profiles/AbstractProfile)Defaults shared by all profiles. Profiles override what differs.
- [`Basic`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Basic)Factur-X/ZUGFeRD BASIC: a subset of EN 16931 with lines.
- [`BasicWl`](https://quittio.dev/docs/api/Quittio/Core/Profiles/BasicWl)Factur-X/ZUGFeRD BASIC WL (without lines). Not an e-invoice in the sense of EN 16931.
- [`En16931`](https://quittio.dev/docs/api/Quittio/Core/Profiles/En16931)EN 16931 core invoice (Factur-X/ZUGFeRD profile EN 16931, also as plain CII or UBL).
- [`Extended`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Extended)Factur-X/ZUGFeRD EXTENDED: EN 16931 plus additional elements.
- [`Minimum`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Minimum)Factur-X/ZUGFeRD MINIMUM. Not an e-invoice in the sense of EN 16931; booking aid only.
- [`PeppolBis3`](https://quittio.dev/docs/api/Quittio/Core/Profiles/PeppolBis3)Peppol BIS Billing 3.0, a UBL based CIUS of EN 16931.
- [`Profile`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Profile) interfaceAn e-invoice profile (CIUS or extension): which fields are allowed or mandatory, which identifier goes into BT-24 and which additional rules apply.
- [`ProfileLevel`](https://quittio.dev/docs/api/Quittio/Core/Profiles/ProfileLevel) enumOrdered Factur-X/ZUGFeRD profile levels. Each level contains all fields of the lower levels.
- [`ProfileRegistry`](https://quittio.dev/docs/api/Quittio/Core/Profiles/ProfileRegistry)Known profiles by key. Country packs and network packages register further profiles.
- [`Syntax`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Syntax) enumXML syntax of an e-invoice.

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

- [`DescribesEmbeddedXml`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/DescribesEmbeddedXml) interfaceFor profiles whose XML is embedded in a PDF/A-3 with other XMP metadata than Factur-X ("Factur-X/ZUGFeRD Invoice", fx:Version "1.0"), e.g. XRechnung in ZUGFeRD.
- [`ExtendsCodeLists`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/ExtendsCodeLists) interfaceProfiles that accept additional codes on top of the EN 16931 code lists, e.g. the identifier schemes XR01 to XR03 of the XRechnung extension.
- [`ReplacesRules`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/ReplacesRules) interfaceProfiles that replace built-in rules with own rules under other codes, as the official validator configuration does, e.g. the XRechnung extension: BR-CO-16 by BR-DEX-09. The PHP rules driver does not run the replaced rules for this profile, so a violation is reported once.
- [`RequiresVatBreakdownRate`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/RequiresVatBreakdownRate) interfaceMarker for profiles that require the VAT category rate (BT-119) in every VAT breakdown, including category "O" (written as 0). Example: XRechnung (BR-DE-14).
- [`StructuredCashDiscountText`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/StructuredCashDiscountText) interfaceMarker for profiles that expect cash discounts as structured lines in BT-20, e.g. XRechnung: "#SKONTO#TAGE=14#PROZENT=2.00#".
- [`SupportsExtensionFields`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/SupportsExtensionFields) interfaceProfiles that transmit the fields of extensions of EN 16931, e.g. "xrechnung" for the fields marked with Mapping\\Attributes\\XRechnungExtensionOnly.
- [`SupportsSubLines`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/SupportsSubLines) interfaceProfiles that transmit sub lines (BG-DEX-01 of the XRechnung extension, the line hierarchy of EXTENDED). Invoices with sub lines are not upgraded to EXTENDED when they use such a profile.
- [`SupportsThirdPartyPayments`](https://quittio.dev/docs/api/Quittio/Core/Profiles/Capabilities/SupportsThirdPartyPayments) interfaceProfiles whose UBL invoices transmit third party payments (BG-DEX-09 of the XRechnung extension) without contradicting BR-CO-16.

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

- [`DeclaredExemptionReasons`](https://quittio.dev/docs/api/Quittio/Core/Reading/DeclaredExemptionReasons)EN 16931 carries the VAT exemption reason (BT-120, BT-121) only on the VAT breakdown, the data model takes it from the lines (LineVat) and document allowances and charges. Readers copy the declared reasons back, so that a recalculation keeps them.
- [`DiagnosingXmlExtractor`](https://quittio.dev/docs/api/Quittio/Core/Reading/DiagnosingXmlExtractor) interfaceAn extractor that also reports where the XML came from and what it noticed on the way.
- [`EmbeddedXmlExtractor`](https://quittio.dev/docs/api/Quittio/Core/Reading/EmbeddedXmlExtractor) interfaceExtracts the embedded invoice XML from a hybrid PDF (ZUGFeRD/Factur-X, XRechnung in PDF).
- [`ExtractedXml`](https://quittio.dev/docs/api/Quittio/Core/Reading/ExtractedXml)The invoice XML found in a hybrid PDF, with the file specification it came from.
- [`FormatReader`](https://quittio.dev/docs/api/Quittio/Core/Reading/FormatReader) interfaceReads one XML invoice format into the data model.
- [`InvoiceReader`](https://quittio.dev/docs/api/Quittio/Core/Reading/InvoiceReader)Reads e-invoices from XML or PDF.
- [`ReadResult`](https://quittio.dev/docs/api/Quittio/Core/Reading/ReadResult)Result of reading an e-invoice: the parsed data, the totals declared in the document (kept unchanged for comparison), findings and the raw input.
- [`UnreadableInvoiceException`](https://quittio.dev/docs/api/Quittio/Core/Reading/UnreadableInvoiceException)The input is not a supported e-invoice.

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

- [`PendingDocument`](https://quittio.dev/docs/api/Quittio/Core/Rendering/PendingDocument)Fluent render call for documents: Quittio::document($quote)->locale('de')->render().
- [`PendingInvoice`](https://quittio.dev/docs/api/Quittio/Core/Rendering/PendingInvoice)Fluent render call: Quittio::make($data)->profile()->format()->locale()->render().
- [`PreparedInvoice`](https://quittio.dev/docs/api/Quittio/Core/Rendering/PreparedInvoice)Calculated and validated invoice data plus the decisions a render run would take (format, profile, country pack, locale), without rendering anything. The XML of every format (also the one "pdf" embeds with b2cEmbedXml) is generated for the validation only. Used by the Managed layer to freeze an invoice before its documents are rendered; the validation always runs, whatever the validation mode.
- [`RenderedDocument`](https://quittio.dev/docs/api/Quittio/Core/Rendering/RenderedDocument)Rendered quote, delivery note, reminder or other document (PDF and HTML, never XML).
- [`RenderedInvoice`](https://quittio.dev/docs/api/Quittio/Core/Rendering/RenderedInvoice)Result of a render run. With several formats, every format is reachable via {@see self::as()}; all share the same calculation.
- [`RenderOptions`](https://quittio.dev/docs/api/Quittio/Core/Rendering/RenderOptions)Per call options of a render run; unset values fall back to the configuration.

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

- [`ArrayHydrator`](https://quittio.dev/docs/api/Quittio/Core/Serialization/ArrayHydrator)Builds DTOs from plain arrays (the inverse of ArrayNormalizer).
- [`ArrayNormalizer`](https://quittio.dev/docs/api/Quittio/Core/Serialization/ArrayNormalizer)Converts DTOs into plain arrays (scalars only) for JSON, storage and APIs.
- [`JsonSchemaGenerator`](https://quittio.dev/docs/api/Quittio/Core/Serialization/JsonSchemaGenerator)Generates the JSON Schema (draft 2020-12) of InvoiceData::toArray() from the constructor signatures and mapping attributes, so that the schema never drifts from the model.
- [`JsonSchemaValidator`](https://quittio.dev/docs/api/Quittio/Core/Serialization/JsonSchemaValidator)Validates JSON input against the shipped invoice schema before hydration (requires the optional package opis/json-schema).

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

- [`SnapshotUpcaster`](https://quittio.dev/docs/api/Quittio/Core/Serialization/Snapshots/SnapshotUpcaster) interfaceMigrates a stored invoice snapshot from one version to the next one.
- [`SnapshotUpcasterChain`](https://quittio.dev/docs/api/Quittio/Core/Serialization/Snapshots/SnapshotUpcasterChain)Brings stored snapshots step by step to the current version (v1 → v2 → … → current).
- [`SnapshotVersionException`](https://quittio.dev/docs/api/Quittio/Core/Serialization/Snapshots/SnapshotVersionException)A snapshot cannot be brought to the current version: an upcaster is missing, or the snapshot was written by a newer version of the package.

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

- [`StandardVersion`](https://quittio.dev/docs/api/Quittio/Core/Standards/StandardVersion) enumVersion of the semantic standard EN 16931-1.

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

- [`Amount`](https://quittio.dev/docs/api/Quittio/Core/Support/Amount)Factory for monetary amounts.
- [`Date`](https://quittio.dev/docs/api/Quittio/Core/Support/Date)Calendar date without time of day.
- [`DatedValues`](https://quittio.dev/docs/api/Quittio/Core/Support/DatedValues)Values that change on dates, e.g. tax rates or reference interest rates: every value holds from its date until the next change.
- [`Decimal`](https://quittio.dev/docs/api/Quittio/Core/Support/Decimal)Helpers for exact decimal arithmetic. Floats are rejected on purpose, see rejectFloat().
- [`Macroable`](https://quittio.dev/docs/api/Quittio/Core/Support/Macroable) traitLightweight macro support without a dependency on Laravel. Country packs use it to add helpers such as smallAmount() to the invoice builder.
- [`Process`](https://quittio.dev/docs/api/Quittio/Core/Support/Process)Minimal external process runner with stdin, timeout and captured output.

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

- [`CountryDefaultVat`](https://quittio.dev/docs/api/Quittio/Core/Tax/CountryDefaultVat)Default VAT of lines without VAT treatment, for InvoiceBuilder::useDefaultVat():
- [`CustomTaxPreset`](https://quittio.dev/docs/api/Quittio/Core/Tax/CustomTaxPreset)Ad-hoc tax preset, e.g. for an exemption with a specific legal reference.
- [`DatedTaxPreset`](https://quittio.dev/docs/api/Quittio/Core/Tax/DatedTaxPreset) interfaceA preset whose rate depends on the date of the supply, e.g. a standard rate that was lowered for half a year. The builder resolves it with the supply date of each line (SupplyDate); rate() returns the rate of today.
- [`StatesInvoiceNote`](https://quittio.dev/docs/api/Quittio/Core/Tax/StatesInvoiceNote) interfaceA preset that requires a note on the invoice, e.g. a statement the law prescribes for the special scheme of the preset. The builder adds the note once (BT-22, subject REG) when a line uses the preset, unless the invoice has a note with the same text already.
- [`SupplyDate`](https://quittio.dev/docs/api/Quittio/Core/Tax/SupplyDate)The date that decides the VAT rate of a line: the end of the line period (BT-135), its start (BT-134), the VAT point date (BT-7), the actual delivery date (BT-72), the end of the invoicing period (BT-74) and finally the issue date (BT-2), in this order.
- [`TaxPreset`](https://quittio.dev/docs/api/Quittio/Core/Tax/TaxPreset) interfaceA named VAT treatment provided by a country pack, e.g. "standard rate 19 %" or "small business exemption". Presets set category, rate, VATEX code and legal note text.
- [`TaxPresetCollection`](https://quittio.dev/docs/api/Quittio/Core/Tax/TaxPresetCollection)

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

- [`PhpTemplateEngine`](https://quittio.dev/docs/api/Quittio/Core/Templates/PhpTemplateEngine)Plain PHP templates for use without Laravel.
- [`TemplateEngine`](https://quittio.dev/docs/api/Quittio/Core/Templates/TemplateEngine) interfaceTurns the view model into HTML for the PDF renderer (Blade, plain PHP, Twig …).

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

- [`InvoiceFactory`](https://quittio.dev/docs/api/Quittio/Core/Testing/InvoiceFactory)Test data factory: InvoiceData::factory()->reverseCharge()->withLines(5)->make().
- [`Scenarios`](https://quittio.dev/docs/api/Quittio/Core/Testing/Scenarios)Example invoices for previews, tests and the official validation runs.

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

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

- [`AccessLog`](https://quittio.dev/docs/api/Quittio/Core/View/AccessLog)Records which view model fields a template read (for the mandatory field guard).
- [`AddressFormatter`](https://quittio.dev/docs/api/Quittio/Core/View/AddressFormatter) interfaceFormats postal addresses according to the conventions of a country.
- [`CountryNames`](https://quittio.dev/docs/api/Quittio/Core/View/CountryNames)Country names from ext-intl with the ISO code as fallback.
- [`FormattedValue`](https://quittio.dev/docs/api/Quittio/Core/View/FormattedValue)A value for templates: formatted for display and available in raw form. Casting to string returns the formatted value, so {{ $value }} prints it.
- [`Formatter`](https://quittio.dev/docs/api/Quittio/Core/View/Formatter) interfaceFormats values for display according to a locale.
- [`InternationalAddressFormatter`](https://quittio.dev/docs/api/Quittio/Core/View/InternationalAddressFormatter)Fallback address format: street lines, "postcode city", subdivision and, for foreign recipients, the country name in upper case as the last line.
- [`IntlFormatter`](https://quittio.dev/docs/api/Quittio/Core/View/IntlFormatter)Locale aware formatting with ext-intl and a fallback for German and English conventions.
- [`InvoiceTitle`](https://quittio.dev/docs/api/Quittio/Core/View/InvoiceTitle)Label key of the document title for a type code (BT-3).
- [`InvoiceViewModel`](https://quittio.dev/docs/api/Quittio/Core/View/InvoiceViewModel)The only object templates receive. Every value is available formatted ($value->formatted or {{ $value }}) and raw ($value->raw).
- [`LetterLayout`](https://quittio.dev/docs/api/Quittio/Core/View/LetterLayout)Position of the address field and marks on the first page, in millimetres from the top left corner (e.g. DIN 5008 form A/B in the German country pack).
- [`MandatoryFieldGuard`](https://quittio.dev/docs/api/Quittio/Core/View/MandatoryFieldGuard)Checks after rendering that the template printed all mandatory values.
- [`MandatoryFieldMissing`](https://quittio.dev/docs/api/Quittio/Core/View/MandatoryFieldMissing)A template omitted mandatory invoice information.
- [`Markdown`](https://quittio.dev/docs/api/Quittio/Core/View/Markdown)Safe Markdown subset for texts: paragraphs, lists, bold and italic. HTML in the input is shown as text, links keep only their text.
- [`ResolvedLogo`](https://quittio.dev/docs/api/Quittio/Core/View/ResolvedLogo)A logo of the presentation as the renderer gets it: a local file or a checked data URI (Pdf\\LogoCache), resolved before the view model is built, so that the view layer does no I/O.
- [`ViewContext`](https://quittio.dev/docs/api/Quittio/Core/View/ViewContext)Everything the view model factory needs besides the invoice data.
- [`ViewModelFactory`](https://quittio.dev/docs/api/Quittio/Core/View/ViewModelFactory)Builds the template view model from calculated invoice data.
- [`ViewNode`](https://quittio.dev/docs/api/Quittio/Core/View/ViewNode)Read-only node of the invoice view model with recorded property access.

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

- [`AccountView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/AccountView)A credit transfer account (BG-17).
- [`AddressView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/AddressView)A postal address.
- [`AllowanceChargeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/AllowanceChargeView)An allowance or charge on document level (BG-20, BG-21).
- [`AttachmentView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/AttachmentView)An attached document (BG-24).
- [`AttributeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/AttributeView)An item attribute (BG-32).
- [`CardView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/CardView)A payment card (BG-18).
- [`ContactView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/ContactView)Contact details of a party.
- [`DeliveryView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DeliveryView)Delivery information (BG-13).
- [`DescribedAmountView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DescribedAmountView)An amount with its description: a third party payment or a reminder fee.
- [`DescriptionView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DescriptionView)The item description of a line.
- [`DesignView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DesignView)The design values: colours, font, logo, letter layout, sender line and footer.
- [`DirectDebitView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DirectDebitView)A direct debit (BG-19).
- [`DiscountView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DiscountView)A cash discount of the payment terms.
- [`DocumentInfoView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DocumentInfoView)Information of documents (quotes, delivery notes, reminders, statements …).
- [`DocumentView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DocumentView)The "document" node: type and kind of the invoice or document.
- [`DunningView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/DunningView)A payment reminder.
- [`InterestView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/InterestView)An interest charge of a reminder.
- [`LineAllowanceChargeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/LineAllowanceChargeView)An allowance or charge of a line (BG-27, BG-28).
- [`LineGroupView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/LineGroupView)A group of lines for display.
- [`LineOptionsView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/LineOptionsView)The options of a document line.
- [`LineView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/LineView)An invoice line (BG-25), also a sub line.
- [`MetaView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/MetaView)Locale, custom values and source of the invoice.
- [`NoteView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/NoteView)A note (BG-1) other than the legal notes.
- [`OpenItemView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/OpenItemView)An open invoice of a reminder or statement.
- [`PackageView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PackageView)A package of a delivery note.
- [`PartyView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PartyView)A party: "seller" and "buyer", and "issuer" and "recipient", which stand for one of them.
- [`PayeeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PayeeView)The payee (BG-10).
- [`PaymentSlipSectionView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PaymentSlipSectionView)One heading of a payment slip with its lines; without lines an empty field to fill in by hand.
- [`PaymentSlipView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PaymentSlipView)The payment slip of a payment QR code, e.g. the payment part and receipt of the Swiss QR bill.
- [`PaymentTermsView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PaymentTermsView)The payment terms (BT-20) with due date and cash discounts.
- [`PaymentView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PaymentView)The payment instructions (BG-16).
- [`PrecedingInvoiceView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/PrecedingInvoiceView)A preceding invoice reference (BG-3).
- [`QrCodeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/QrCodeView)The payment QR code.
- [`ReferenceView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/ReferenceView)A filled document reference, e.g. the purchase order.
- [`StatementView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/StatementView)An account statement.
- [`TaxRepresentativeView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/TaxRepresentativeView)The seller tax representative (BG-11).
- [`TextsView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/TextsView)The texts of the presentation.
- [`TotalsView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/TotalsView)The document totals (BG-22).
- [`UnitView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/UnitView)The unit of measure of a line.
- [`VatRowView`](https://quittio.dev/docs/api/Quittio/Core/View/Model/VatRowView)A row of the VAT breakdown (BG-23).
- [`ViewList`](https://quittio.dev/docs/api/Quittio/Core/View/Model/ViewList)A list (or a map, such as "labels") of the view model whose entries have one type, e.g. ViewList\<LineView> for "lines" or ViewList\<string> for "legalNotes".

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

- [`Format`](https://quittio.dev/docs/api/Quittio/Core/Xml/Format)Number formats for XML: dot as decimal separator, no grouping, no exponent.
- [`PaymentTermsText`](https://quittio.dev/docs/api/Quittio/Core/Xml/PaymentTermsText)Builds the payment terms text (BT-20) from structured payment terms.
- [`SerializationOptions`](https://quittio.dev/docs/api/Quittio/Core/Xml/SerializationOptions)Options for XML serialisation.
- [`UnsafeXmlException`](https://quittio.dev/docs/api/Quittio/Core/Xml/UnsafeXmlException)Rejected XML input (DOCTYPE, too large, not well-formed).
- [`XmlSecurity`](https://quittio.dev/docs/api/Quittio/Core/Xml/XmlSecurity)Safe XML loading for untrusted input.
- [`XmlSerializer`](https://quittio.dev/docs/api/Quittio/Core/Xml/XmlSerializer) interfaceWrites calculated invoice data as XML in one syntax.

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

- [`CiiReader`](https://quittio.dev/docs/api/Quittio/Core/Xml/Cii/CiiReader)Reads UN/CEFACT Cross Industry Invoices (Factur-X/ZUGFeRD, XRechnung CII) into the data model.
- [`CiiWriter`](https://quittio.dev/docs/api/Quittio/Core/Xml/Cii/CiiWriter)Writes UN/CEFACT Cross Industry Invoice (D16B) according to the EN 16931 binding (CEN/TS 16931-3-3) and the Factur-X/ZUGFeRD profiles.

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

- [`UblReader`](https://quittio.dev/docs/api/Quittio/Core/Xml/Ubl/UblReader)Reads UBL 2.1 Invoice and CreditNote documents (EN 16931, XRechnung UBL, Peppol BIS) into the data model.
- [`UblWriter`](https://quittio.dev/docs/api/Quittio/Core/Xml/Ubl/UblWriter)Writes OASIS UBL 2.1 Invoice and CreditNote documents according to the EN 16931 binding (CEN/TS 16931-3-2). Credit note type codes produce a CreditNote document.

## quittio/laravel \#

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

- [`QuittioManager`](https://quittio.dev/docs/api/Quittio/Laravel/QuittioManager)Root of the Quittio facade: builds the core from the Laravel configuration, adds events, Blade templates, storage and extension points.
- [`QuittioServiceProvider`](https://quittio.dev/docs/api/Quittio/Laravel/QuittioServiceProvider)Registers the Quittio manager, configuration, views, translations, commands and the local preview route.
- [`Seller`](https://quittio.dev/docs/api/Quittio/Laravel/Seller)Seller from config/quittio.php (when the Managed layer is not in use).

### [Quittio\\Laravel\\Builder](https://quittio.dev/docs/api/Quittio/Laravel/Builder)

- [`ConfigInvoiceDefaults`](https://quittio.dev/docs/api/Quittio/Laravel/Builder/ConfigInvoiceDefaults)The seller, its first bank account and the small business flag of config/quittio.php.
- [`RenderableDocumentBuilder`](https://quittio.dev/docs/api/Quittio/Laravel/Builder/RenderableDocumentBuilder)The document builder of Quittio::quote(), deliveryNote(), paymentReminder() …: renders itself at the end of the chain.
- [`RenderableInvoiceBuilder`](https://quittio.dev/docs/api/Quittio/Laravel/Builder/RenderableInvoiceBuilder)The invoice builder of Quittio::invoice(): renders (or checks) itself at the end of the chain.

### [Quittio\\Laravel\\Contracts](https://quittio.dev/docs/api/Quittio/Laravel/Contracts)

- [`InvoiceDefaults`](https://quittio.dev/docs/api/Quittio/Laravel/Contracts/InvoiceDefaults) interfaceSets the seller and its defaults (bank account, small business flag …) on the builders of Quittio::invoice() and of the document methods (Quittio::quote() …). The default binding takes them from config/quittio.php (ConfigInvoiceDefaults, Seller::apply()); quittio/managed binds the current issuer.
- [`ManagedInstaller`](https://quittio.dev/docs/api/Quittio/Laravel/Contracts/ManagedInstaller) interfaceImplemented by quittio/managed: runs "quittio:install --managed" (migrations, first issuer).
- [`ManagedInvoiceRenderer`](https://quittio.dev/docs/api/Quittio/Laravel/Contracts/ManagedInvoiceRenderer) interfaceImplemented by quittio/managed: renders a stored invoice again ("quittio:render {invoice}").

### [Quittio\\Laravel\\Events](https://quittio.dev/docs/api/Quittio/Laravel/Events)

- [`DocumentRendered`](https://quittio.dev/docs/api/Quittio/Laravel/Events/DocumentRendered)Dispatched after a document (quote, reminder, …) was rendered.
- [`DocumentRendering`](https://quittio.dev/docs/api/Quittio/Laravel/Events/DocumentRendering)Dispatched before a quote, order confirmation, delivery note, proforma invoice, payment reminder or account statement is calculated and rendered.
- [`InvoiceRendered`](https://quittio.dev/docs/api/Quittio/Laravel/Events/InvoiceRendered)Dispatched after all requested formats were produced.
- [`InvoiceRendering`](https://quittio.dev/docs/api/Quittio/Laravel/Events/InvoiceRendering)Dispatched before an invoice is calculated, validated and rendered.
- [`InvoiceValidated`](https://quittio.dev/docs/api/Quittio/Laravel/Events/InvoiceValidated)Dispatched after a render run whose validation did not block it, before InvoiceRendered. $result is the validation of the main (first) format: in mode "error" it has no errors (warnings may be present unless validation.block\_on\_warnings), in mode "warn" it may contain errors, so check $result->isValid(). Not dispatched in mode "off" (nothing was validated) and not when validation blocked the run (see InvoiceValidationFailed).
- [`InvoiceValidationFailed`](https://quittio.dev/docs/api/Quittio/Laravel/Events/InvoiceValidationFailed)Dispatched when validation blocked rendering.
- [`MandatoryFieldMissing`](https://quittio.dev/docs/api/Quittio/Laravel/Events/MandatoryFieldMissing)Dispatched when a template omitted mandatory values.
- [`QueuedDocumentFailed`](https://quittio.dev/docs/api/Quittio/Laravel/Events/QueuedDocumentFailed)Dispatched when a queued RenderDocument job failed for good: after its last attempt, or at once for errors that another attempt cannot fix. $job->data() returns the document.
- [`QueuedDocumentStored`](https://quittio.dev/docs/api/Quittio/Laravel/Events/QueuedDocumentStored)Dispatched by a queued RenderDocument job after it stored the document. DocumentRendered precedes it.
- [`QueuedInvoiceFailed`](https://quittio.dev/docs/api/Quittio/Laravel/Events/QueuedInvoiceFailed)Dispatched when a queued RenderInvoice job failed for good: after its last attempt, or at once for errors that another attempt cannot fix (validation, invalid data, configuration). $job->data() returns the invoice.
- [`QueuedInvoiceStored`](https://quittio.dev/docs/api/Quittio/Laravel/Events/QueuedInvoiceStored)Dispatched by a queued RenderInvoice job after it stored the main output, e.g. to link the stored file to an order. InvoiceRendered precedes it.

### [Quittio\\Laravel\\Facades](https://quittio.dev/docs/api/Quittio/Laravel/Facades)

- [`Quittio`](https://quittio.dev/docs/api/Quittio/Laravel/Facades/Quittio)

### [Quittio\\Laravel\\Jobs](https://quittio.dev/docs/api/Quittio/Laravel/Jobs)

- [`RenderDocument`](https://quittio.dev/docs/api/Quittio/Laravel/Jobs/RenderDocument)Renders a quote, delivery note, reminder or other document in the queue and stores it on a disk. The document travels as versioned JSON snapshot (DocumentData::toSnapshot(), brought up to date by quittio.snapshots.document\_upcasters), the render options as versioned JSON. Errors that another attempt cannot fix fail the job at once; others are retried.
- [`RenderInvoice`](https://quittio.dev/docs/api/Quittio/Laravel/Jobs/RenderInvoice)Renders an invoice in the queue and stores the main output on a disk.

### [Quittio\\Laravel\\Rendering](https://quittio.dev/docs/api/Quittio/Laravel/Rendering)

- [`DeliversFile`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/DeliversFile) traitDownload, inline display, mail attachment and storage for rendered files.
- [`PendingDocument`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/PendingDocument)Fluent render call for documents: Quittio::document($quote)->locale('de')->render().
- [`PendingInvoice`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/PendingInvoice)Fluent render call: Quittio::make($order)->profile('en16931')->format('zugferd')->locale('de')->render().
- [`QueuedDocument`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/QueuedDocument)Pending queued render of a document; dispatching happens on save().
- [`QueuedInvoice`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/QueuedInvoice)Pending queued render; dispatching happens on save().
- [`RenderedDocument`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/RenderedDocument)Rendered quote, delivery note, reminder or statement for Laravel.
- [`RenderedInvoice`](https://quittio.dev/docs/api/Quittio/Laravel/Rendering/RenderedInvoice)Rendered invoice for Laravel: usable as mail attachment and as HTTP response, storable on any filesystem disk.

### [Quittio\\Laravel\\Support](https://quittio.dev/docs/api/Quittio/Laravel/Support)

- [`Settings`](https://quittio.dev/docs/api/Quittio/Laravel/Support/Settings)Typed read access to a configuration array ("quittio" by default) with dot notation.

### [Quittio\\Laravel\\Templates](https://quittio.dev/docs/api/Quittio/Laravel/Templates)

- [`BladeTemplateEngine`](https://quittio.dev/docs/api/Quittio/Laravel/Templates/BladeTemplateEngine)Renders Blade views with the invoice view model as $invoice. The name "default" maps to the configured template. Template names may come from invoice data, so only these views can be selected: the configured template (quittio.pdf.template), the shipped views under "quittio::templates." (no partials) and the views of quittio.pdf.templates ("invoices.\*" or "namespace::\*" allows every view below a prefix). Names that are no Blade view fall back to the plain PHP templates, which resolve names inside their template directories only (never file paths).

### [Quittio\\Laravel\\Testing](https://quittio.dev/docs/api/Quittio/Laravel/Testing)

- [`EInvoiceAssertions`](https://quittio.dev/docs/api/Quittio/Laravel/Testing/EInvoiceAssertions)The assertions of {@see InteractsWithQuittio} outside a test case class, e.g. in Pest helper functions: (new EInvoiceAssertions)->assertValidEInvoice($pdf, 'xrechnung').
- [`InteractsWithQuittio`](https://quittio.dev/docs/api/Quittio/Laravel/Testing/InteractsWithQuittio) traitAssertions for feature tests.
- [`QuittioFake`](https://quittio.dev/docs/api/Quittio/Laravel/Testing/QuittioFake)Calculates invoices and chooses formats and profiles like a real run (requested formats, defaults.format, the automatic choice, profile keys and objects, defaults.profile), but skips validation, XML, template and PDF. Records every render call and every queued render, and dispatches the events of a real run (InvoiceRendering, InvoiceValidated with an empty result unless validation is off, InvoiceRendered).

## quittio/country-de \#

### [Quittio\\Country\\DE](https://quittio.dev/docs/api/Quittio/Country/DE)

- [`CountryDE`](https://quittio.dev/docs/api/Quittio/Country/DE/CountryDE)Country pack for Germany.

### [Quittio\\Country\\DE\\Builder](https://quittio.dev/docs/api/Quittio/Country/DE/Builder)

- [`GermanInvoice`](https://quittio.dev/docs/api/Quittio/Country/DE/Builder/GermanInvoice)German special cases of an invoice, reached with the builder macro de():
- [`GermanInvoiceMacros`](https://quittio.dev/docs/api/Quittio/Country/DE/Builder/GermanInvoiceMacros)Registers the builder macro de() of the German pack, which leads to the German special cases (GermanInvoice):

### [Quittio\\Country\\DE\\Dunning](https://quittio.dev/docs/api/Quittio/Country/DE/Dunning)

- [`BaseRates`](https://quittio.dev/docs/api/Quittio/Country/DE/Dunning/BaseRates)Base rates (section 247 BGB) of the application in addition to the table shipped with Quittio, e.g. rates published after the release or fetched with BundesbankBaseRates. DefaultInterest uses table() unless it is given a table of its own. In Laravel the GermanyServiceProvider registers the configured and the fetched rates.
- [`BaseRateTable`](https://quittio.dev/docs/api/Quittio/Country/DE/Dunning/BaseRateTable)Basiszinssatz according to section 247 BGB, published by the Deutsche Bundesbank and changed on 1 January and 1 July. Rates after the last entry are added with withRate(), BaseRates::register() or, in Laravel, the configuration quittio.countries.de.base\_rates and the command quittio:base-rate:update (BundesbankBaseRates).
- [`BundesbankBaseRates`](https://quittio.dev/docs/api/Quittio/Country/DE/Dunning/BundesbankBaseRates)Fetches the base rate according to section 247 BGB from the statistics API of the Deutsche Bundesbank (time series BBIN1.M.DE.BBK.BBKBAS2.EUR.ME, formerly SU0115). The series has a value per month; the rate changes on 1 January and 1 July, so the values of January and July are the table entries. A new rate appears once the Bundesbank has published the value of that month.
- [`DefaultInterest`](https://quittio.dev/docs/api/Quittio/Country/DE/Dunning/DefaultInterest)Default interest according to section 288 BGB: base rate plus 9 points (business) or 5 points (consumer), split at every change of the base rate. Points, flat rate and day count basis come from the dunning law, by default CountryDE::germanDunningLaw(); the calculation is that of Quittio\\Core\\Dunning\\DefaultInterest. The base rates are those shipped with Quittio plus the rates registered with BaseRates (configured or fetched from the Bundesbank), unless a table is given.

### [Quittio\\Country\\DE\\Formats](https://quittio.dev/docs/api/Quittio/Country/DE/Formats)

- [`GermanFormatRule`](https://quittio.dev/docs/api/Quittio/Country/DE/Formats/GermanFormatRule)Formats that German law prescribes:
- [`XRechnungFormats`](https://quittio.dev/docs/api/Quittio/Country/DE/Formats/XRechnungFormats)The XRechnung formats of the German pack: XRechnung in CII (default) and in UBL, each with the profiles XRechnung, XRechnung extension and XRechnung CVD.

### [Quittio\\Country\\DE\\Laravel](https://quittio.dev/docs/api/Quittio/Country/DE/Laravel)

- [`GermanyServiceProvider`](https://quittio.dev/docs/api/Quittio/Country/DE/Laravel/GermanyServiceProvider)Laravel integration of the German country pack (discovered automatically): the base rates of quittio.countries.de.base\_rates and of the file written by quittio:base-rate:update are registered with BaseRates, so that DefaultInterest uses them.

### [Quittio\\Country\\DE\\Layouts](https://quittio.dev/docs/api/Quittio/Country/DE/Layouts)

- [`Din5008`](https://quittio.dev/docs/api/Quittio/Country/DE/Layouts/Din5008)DIN 5008 business letter layouts: the address field of 85 × 45 mm starts 27 mm (form A) or 45 mm (form B) from the top edge and 20 mm from the left edge. In both forms it holds the Zusatz- und Vermerkzone (17.7 mm, five lines filled from the bottom; without further notes its last line is the Rücksendeangabe) and the Anschriftzone (27.3 mm, six lines), which starts 44.7 mm (A) or 62.7 mm (B) from the top edge. Fold marks at 87/192 mm (A) or 105/210 mm (B), punch mark at 148.5 mm.

### [Quittio\\Country\\DE\\Profiles\\XRechnung](https://quittio.dev/docs/api/Quittio/Country/DE/Profiles/XRechnung)

- [`XRechnung30`](https://quittio.dev/docs/api/Quittio/Country/DE/Profiles/XRechnung/XRechnung30)XRechnung 3.0 (German CIUS of EN 16931), syntax CII or UBL.
- [`XRechnung30Cvd`](https://quittio.dev/docs/api/Quittio/Country/DE/Profiles/XRechnung/XRechnung30Cvd)XRechnung CVD 0.9: XRechnung 3.0 for the procurement of road vehicles under the Clean Vehicles Directive (EU) 2019/1161. It requires the contract (BT-12) and tender or lot reference (BT-17) and at least one line that states the vehicle category as item classification (BT-158, scheme CVD) and the vehicle type as item attribute "cva" (BT-160, BT-161), see BR-DE-CVD-01 to 06-b. Choose it explicitly with ->profile('xrechnung-cvd'); the automatic format choice never does.
- [`XRechnung30Extension`](https://quittio.dev/docs/api/Quittio/Country/DE/Profiles/XRechnung/XRechnung30Extension)XRechnung 3.0 extension: adds sub invoice lines (UBL only) and third party payments. Choose it explicitly with ->profile('xrechnung-extension'): neither the automatic format choice nor the profile xrechnung switch to it when extension data is used; with xrechnung such data is reported as an error.

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

- [`BmfErrorClass`](https://quittio.dev/docs/api/Quittio/Country/DE/Rules/BmfErrorClass) enumError classes of the BMF letter of 15 October 2025.
- [`UstgRules`](https://quittio.dev/docs/api/Quittio/Country/DE/Rules/UstgRules)Mandatory invoice information according to the German VAT act: section 14 (4) and 14a UStG, section 33 UStDV for small amount invoices and section 34a UStDV for small business invoices.
- [`XRechnungRules`](https://quittio.dev/docs/api/Quittio/Country/DE/Rules/XRechnungRules)Business rules of the CIUS XRechnung 3.0 (BR-DE-…), its extension (BR-DEX-…) and XRechnung CVD (BR-DE-CVD-…), checked on the data model.

### [Quittio\\Country\\DE\\Support](https://quittio.dev/docs/api/Quittio/Country/DE/Support)

- [`Flags`](https://quittio.dev/docs/api/Quittio/Country/DE/Support/Flags)Meta flags (InvoiceData::$meta->flags) understood by the German country pack.
- [`LeitwegId`](https://quittio.dev/docs/api/Quittio/Country/DE/Support/LeitwegId)Leitweg-ID of public buyers in Germany (BT-10 for XRechnung): coarse address (2–12 digits), optional fine address (up to 30 characters) and check digits according to ISO 7064 Mod 97-10.
- [`TaxNumber`](https://quittio.dev/docs/api/Quittio/Country/DE/Support/TaxNumber)German tax number (Steuernummer, BT-32) as described in "Prüfung der Steuer- und Steueridentifikationsnummer" of the Bayerisches Landesamt für Steuern (ELSTER, as of 2 September 2026): the 13-digit ELSTER format FFFF0BBBUUUUP (NRW: FFFF0BBBBUUUP), the 12-digit federal format without the 0, and the notation of the federal states on tax notices (e.g. 181/815/08155 in Bavaria, 133/8150/8159 in NRW).

### [Quittio\\Country\\DE\\Tax](https://quittio.dev/docs/api/Quittio/Country/DE/Tax)

- [`CustomVatPreset`](https://quittio.dev/docs/api/Quittio/Country/DE/Tax/CustomVatPreset)Ad-hoc preset of the German pack, e.g. from VatPreset::exempt(). Like the VatPreset cases, its text defaults to German when the invoice has no locale; other locales without a text fall back to English.
- [`TaxTables`](https://quittio.dev/docs/api/Quittio/Country/DE/Tax/TaxTables)German tax values that changed over time, each valid from its date on.
- [`VatPreset`](https://quittio.dev/docs/api/Quittio/Country/DE/Tax/VatPreset) enumTax presets for Germany.

### [Quittio\\Country\\DE\\Texts](https://quittio.dev/docs/api/Quittio/Country/DE/Texts)

- [`LegalTexts`](https://quittio.dev/docs/api/Quittio/Country/DE/Texts/LegalTexts)Mandatory and informational texts for German invoices.

## quittio/country-at \#

### [Quittio\\Country\\AT](https://quittio.dev/docs/api/Quittio/Country/AT)

- [`CountryAT`](https://quittio.dev/docs/api/Quittio/Country/AT/CountryAT)Country pack for Austria.

### [Quittio\\Country\\AT\\Dunning](https://quittio.dev/docs/api/Quittio/Country/AT/Dunning)

- [`BaseRateTable`](https://quittio.dev/docs/api/Quittio/Country/AT/Dunning/BaseRateTable)Basiszinssatz of the Oesterreichische Nationalbank for default interest between businesses (section 456 UGB): the rate on the first day of a half-year applies to the whole half-year. Rates after the last entry are added with withRate().
- [`DefaultInterest`](https://quittio.dev/docs/api/Quittio/Country/AT/Dunning/DefaultInterest)Austrian default interest: the base rate of the OeNB plus 9.2 points between businesses (section 456 UGB), split at every change of the base rate, and 4 % for consumers (section 1000 (1) ABGB). The calculation is that of Quittio\\Core\\Dunning\\DefaultInterest.

### [Quittio\\Country\\AT\\EbInterface](https://quittio.dev/docs/api/Quittio/Country/AT/EbInterface)

- [`EbInterfaceReader`](https://quittio.dev/docs/api/Quittio/Country/AT/EbInterface/EbInterfaceReader)Reads ebInterface 6.0 and 6.1 invoices into the data model; CountryAT::readers() registers it, so that Quittio::read() and validateFile() accept them. The mapping is that of EbInterfaceWriter in reverse; the result has the syntax "ebinterface" and no profile.
- [`EbInterfaceWriter`](https://quittio.dev/docs/api/Quittio/Country/AT/EbInterface/EbInterfaceWriter)Writes a calculated invoice as ebInterface 6.1, the Austrian XML invoice format of AUSTRIAPRO that e-Rechnung.gv.at accepts besides UBL.

### [Quittio\\Country\\AT\\Formats](https://quittio.dev/docs/api/Quittio/Country/AT/Formats)

- [`AustrianFormatRule`](https://quittio.dev/docs/api/Quittio/Country/AT/Formats/AustrianFormatRule)Formats for Austrian public buyers: a buyer with an Austrian organisation number (electronic address scheme 9915, e.g. "b" for the federal government on Peppol) receives UBL in the CIUS of e-Rechnung.gv.at (CIUS-AT-GOV).

### [Quittio\\Country\\AT\\Profiles](https://quittio.dev/docs/api/Quittio/Country/AT/Profiles)

- [`CiusAtGov`](https://quittio.dev/docs/api/Quittio/Country/AT/Profiles/CiusAtGov)CIUS-AT-GOV 1.1.0, the CIUS of e-Rechnung.gv.at for invoices to the Austrian federal government: the rules of CIUS-AT-NAT and its own, syntax CII or UBL.
- [`CiusAtNat`](https://quittio.dev/docs/api/Quittio/Country/AT/Profiles/CiusAtNat)CIUS-AT-NAT 1.0.0, the Austrian national CIUS of EN 16931 with the statutory rules, syntax CII or UBL.

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

- [`CiusAtRules`](https://quittio.dev/docs/api/Quittio/Country/AT/Rules/CiusAtRules)Rules of the Austrian CIUS of EN 16931: CIUS-AT-NAT 1.0.0 (statutory rules, AT-NAT-…) and CIUS-AT-GOV 1.1.0 (rules of e-Rechnung.gv.at for the federal government, AT-GOV-…), as published by the BRZ for the BMF (e-rechnung.gv.at/go/cius\_at\_nat, /go/cius\_at\_gov).
- [`UstgRules`](https://quittio.dev/docs/api/Quittio/Country/AT/Rules/UstgRules)Mandatory invoice information according to the Austrian VAT act (section 11 UStG 1994), with the simplified invoice of section 11 (6) UStG up to 400 EUR and for small businesses.

### [Quittio\\Country\\AT\\Tax](https://quittio.dev/docs/api/Quittio/Country/AT/Tax)

- [`CustomVatPreset`](https://quittio.dev/docs/api/Quittio/Country/AT/Tax/CustomVatPreset)Ad-hoc preset of the Austrian pack, e.g. from VatPreset::exempt(). Like the VatPreset cases, its text defaults to German when the invoice has no locale; other locales without a text fall back to English.
- [`TaxTables`](https://quittio.dev/docs/api/Quittio/Country/AT/Tax/TaxTables)Austrian tax values, each valid from its date on.
- [`VatPreset`](https://quittio.dev/docs/api/Quittio/Country/AT/Tax/VatPreset) enumTax presets for Austria (UStG 1994).

### [Quittio\\Country\\AT\\Texts](https://quittio.dev/docs/api/Quittio/Country/AT/Texts)

- [`LegalTexts`](https://quittio.dev/docs/api/Quittio/Country/AT/Texts/LegalTexts)Mandatory and informational texts for Austrian invoices.

## quittio/country-be \#

### [Quittio\\Country\\BE](https://quittio.dev/docs/api/Quittio/Country/BE)

- [`CountryBE`](https://quittio.dev/docs/api/Quittio/Country/BE/CountryBE)Country pack for Belgium.

### [Quittio\\Country\\BE\\Dunning](https://quittio.dev/docs/api/Quittio/Country/BE/Dunning)

- [`ReferenceRateTable`](https://quittio.dev/docs/api/Quittio/Country/BE/Dunning/ReferenceRateTable)The reference rate of the late payment law of 2 August 2002: the main refinancing rate of the ECB on the first day of the half-year, which with the 8 points of the law gives the published rate rounded up to the next half point. The table holds the rates the points are added to, so that the sum is the rate published by the FPS Finance (e.g. 2.50 + 8 = 10.50 % for 2026).

### [Quittio\\Country\\BE\\Formats](https://quittio.dev/docs/api/Quittio/Country/BE/Formats)

- [`BelgianFormatRule`](https://quittio.dev/docs/api/Quittio/Country/BE/Formats/BelgianFormatRule)Since 1 January 2026 invoices between businesses established in Belgium are structured e-invoices, by default Peppol BIS Billing 3.0 (law of 6 February 2024): domestic invoices to businesses get the format "peppol". Not for consumers and not for businesses that only perform exempt supplies without input tax deduction (Art. 44 VAT Code).

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

- [`VatCodeRules`](https://quittio.dev/docs/api/Quittio/Country/BE/Rules/VatCodeRules)Mentions of a Belgian invoice: Art. 53 § 2 of the VAT Code and Art. 5 of Royal Decree No. 1, and the use of languages in the Dutch, French and German language regions.

### [Quittio\\Country\\BE\\Support](https://quittio.dev/docs/api/Quittio/Country/BE/Support)

- [`EnterpriseNumber`](https://quittio.dev/docs/api/Quittio/Country/BE/Support/EnterpriseNumber)The Belgian enterprise number (ondernemingsnummer, numéro d'entreprise) of the Crossroads Bank for Enterprises: ten digits, the last two 97 minus the first eight modulo 97. The VAT number is "BE" and the enterprise number; Peppol uses it with scheme 0208.
- [`LanguageRegion`](https://quittio.dev/docs/api/Quittio/Country/BE/Support/LanguageRegion)The language region of a Belgian address by its post code: the Dutch language region (Flanders), the French language region (Wallonia without the German-speaking municipalities), the German language region and the bilingual region Brussels-Capital.

### [Quittio\\Country\\BE\\Tax](https://quittio.dev/docs/api/Quittio/Country/BE/Tax)

- [`CustomVatPreset`](https://quittio.dev/docs/api/Quittio/Country/BE/Tax/CustomVatPreset)Ad-hoc preset of the Belgian pack, e.g. from VatPreset::exempt(). Like the VatPreset cases, its text defaults to Dutch when the invoice has no locale; other locales without a text fall back to English.
- [`TaxTables`](https://quittio.dev/docs/api/Quittio/Country/BE/Tax/TaxTables)Belgian VAT rates (Royal Decree No. 20), each valid from its date on.
- [`VatPreset`](https://quittio.dev/docs/api/Quittio/Country/BE/Tax/VatPreset) enumTax presets for Belgium (VAT Code, Royal Decree No. 20 on the rates).

## quittio/country-ch \#

### [Quittio\\Country\\CH](https://quittio.dev/docs/api/Quittio/Country/CH)

- [`CountryCH`](https://quittio.dev/docs/api/Quittio/Country/CH/CountryCH)Country pack for Switzerland.

### [Quittio\\Country\\CH\\QrBill](https://quittio.dev/docs/api/Quittio/Country/CH/QrBill)

- [`CreditorReference`](https://quittio.dev/docs/api/Quittio/Country/CH/QrBill/CreditorReference)The Creditor Reference of ISO 11649: "RF", two check digits (modulo 97-10) and up to 21 letters and digits. It goes with an ordinary IBAN in the Swiss QR bill.
- [`QrReference`](https://quittio.dev/docs/api/Quittio/Country/CH/QrBill/QrReference)The QR reference of the Swiss QR bill: 27 digits, the last a check digit after modulo 10 recursive (Swiss Implementation Guidelines QR-bill, annex B). It goes with a QR-IBAN only.
- [`SwissCross`](https://quittio.dev/docs/api/Quittio/Country/CH/QrBill/SwissCross)The Swiss cross printed in the middle of the Swiss QR Code (7 × 7 mm, guidelines 6.4.2): a black square with a white border and the white cross, as PNG (PDF/A allows no SVG of mPDF).
- [`SwissQrBillGenerator`](https://quittio.dev/docs/api/Quittio/Country/CH/QrBill/SwissQrBillGenerator)The Swiss QR bill: the Swiss QR Code (Swiss Payments Code "SPC", version 0200) and its payment part with receipt, after the Swiss Implementation Guidelines QR-bill 2.3 of SIX.

### [Quittio\\Country\\CH\\Rounding](https://quittio.dev/docs/api/Quittio/Country/CH/Rounding)

- [`CashRounding`](https://quittio.dev/docs/api/Quittio/Country/CH/Rounding/CashRounding)Rounding of the amount due to 5 Rappen, as usual in Switzerland: the difference is the rounding amount (BT-114), never a change of the VAT or the line amounts.

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

- [`MwstgRules`](https://quittio.dev/docs/api/Quittio/Country/CH/Rules/MwstgRules)Elements of an invoice according to the Swiss VAT act (Art. 26 (2) MWSTG), with the till receipt of Art. 57 MWSTV up to CHF 400 that needs no recipient.

### [Quittio\\Country\\CH\\Tax](https://quittio.dev/docs/api/Quittio/Country/CH/Tax)

- [`CustomVatPreset`](https://quittio.dev/docs/api/Quittio/Country/CH/Tax/CustomVatPreset)Ad-hoc preset of the Swiss pack, e.g. from VatPreset::exempt(). Like the VatPreset cases, its text defaults to German when the invoice has no locale; other locales without a text fall back to English.
- [`TaxTables`](https://quittio.dev/docs/api/Quittio/Country/CH/Tax/TaxTables)Swiss VAT rates (Art. 25 MWSTG), each valid from its date on.
- [`VatPreset`](https://quittio.dev/docs/api/Quittio/Country/CH/Tax/VatPreset) enumTax presets for Switzerland (MWSTG).

## quittio/country-fr \#

### [Quittio\\Country\\FR](https://quittio.dev/docs/api/Quittio/Country/FR)

- [`CountryFR`](https://quittio.dev/docs/api/Quittio/Country/FR/CountryFR)Country pack for France (metropolitan France and Monaco).

### [Quittio\\Country\\FR\\Dunning](https://quittio.dev/docs/api/Quittio/Country/FR/Dunning)

- [`EcbRateTable`](https://quittio.dev/docs/api/Quittio/Country/FR/Dunning/EcbRateTable)The rate of the main refinancing operations of the ECB on the first day of the half-year, the reference of the late payment penalties between businesses (art. L441-10 Code de commerce: ECB rate plus 10 points, e.g. 12.40 % in the second half of 2026).

### [Quittio\\Country\\FR\\Formats](https://quittio.dev/docs/api/Quittio/Country/FR/Formats)

- [`FrenchFormatRule`](https://quittio.dev/docs/api/Quittio/Country/FR/Formats/FrenchFormatRule)Invoices between businesses established in France are e-invoices in Factur-X, UBL or CII, exchanged through an approved platform (plateforme agréée): large and mid-sized businesses issue them from 1 September 2026, all from 1 September 2027; all receive them from 2026. Domestic invoices to businesses get Factur-X (the format "zugferd", profile EN 16931). Sending through a platform is not part of this pack.

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

- [`FrenchRules`](https://quittio.dev/docs/api/Quittio/Country/FR/Rules/FrenchRules)Mentions of a French invoice: art. 242 nonies A of annex II to the CGI (with the mentions of the e-invoicing reform from 1 September 2026) and art. L441-9 of the Code de commerce for invoices between businesses.

### [Quittio\\Country\\FR\\Support](https://quittio.dev/docs/api/Quittio/Country/FR/Support)

- [`Siren`](https://quittio.dev/docs/api/Quittio/Country/FR/Support/Siren)SIREN (nine digits) and SIRET (fourteen digits) of the French business register, both with a Luhn check digit; SIRET numbers of La Poste (SIREN 356000000) use a sum of digits instead.

### [Quittio\\Country\\FR\\Tax](https://quittio.dev/docs/api/Quittio/Country/FR/Tax)

- [`CustomVatPreset`](https://quittio.dev/docs/api/Quittio/Country/FR/Tax/CustomVatPreset)Ad-hoc preset of the French pack, e.g. from VatPreset::exempt(). Like the VatPreset cases, its text defaults to French when the invoice has no locale; other locales without a text fall back to English.
- [`VatPreset`](https://quittio.dev/docs/api/Quittio/Country/FR/Tax/VatPreset) enumTax presets for metropolitan France (CGI, from 1 January 2027 recodified in the CIBS; the references to the CGI remain accepted until 30 June 2028). exemptionReason() cites the CGI, exemptionReasonOn() the CIBS for invoices issued from 1 January 2027.

### [Quittio\\Country\\FR\\Texts](https://quittio.dev/docs/api/Quittio/Country/FR/Texts)

- [`LegalTexts`](https://quittio.dev/docs/api/Quittio/Country/FR/Texts/LegalTexts)Legal mentions of French invoices, from the pack's language files (resources/lang/{locale}/legal.php).

```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/api#webpage","@type":"WebPage","description":"The public classes of the Quittio packages with their methods and parameters.","name":"API reference","url":"https://quittio.dev/en/docs/api","isPartOf":{"@id":"https://quittio.dev/en#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/en/docs/api"]}],"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"}]}
```