Zum Inhalt springen

API reference

Quittio\Country\DE

quittio/country-de#

Quittio\Country\DE

Quittio\Country\DE\Builder

  • GermanInvoiceGerman special cases of an invoice, reached with the builder macro de():
  • GermanInvoiceMacrosRegisters the builder macro de() of the German pack, which leads to the German special cases (GermanInvoice):

Quittio\Country\DE\Dunning

  • BaseRatesBase 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.
  • BaseRateTableBasiszinssatz 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).
  • BundesbankBaseRatesFetches 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.
  • DefaultInterestDefault 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

  • GermanFormatRuleFormats that German law prescribes:
  • XRechnungFormatsThe 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

  • GermanyServiceProviderLaravel 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

  • Din5008DIN 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

  • XRechnung30XRechnung 3.0 (German CIUS of EN 16931), syntax CII or UBL.
  • XRechnung30CvdXRechnung 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.
  • XRechnung30ExtensionXRechnung 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

  • BmfErrorClass enumError classes of the BMF letter of 15 October 2025.
  • UstgRulesMandatory 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.
  • XRechnungRulesBusiness 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

  • FlagsMeta flags (InvoiceData::$meta->flags) understood by the German country pack.
  • LeitwegIdLeitweg-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.
  • TaxNumberGerman 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

  • CustomVatPresetAd-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.
  • TaxTablesGerman tax values that changed over time, each valid from its date on.
  • VatPreset enumTax presets for Germany.

Quittio\Country\DE\Texts

  • LegalTextsMandatory and informational texts for German invoices.

Die Open-Core-Pakete stehen unter der MIT-Lizenz. Die rechtlichen Formulierungen der Länderpakete sind mit einer Steuerberatung abzustimmen.