CountryDE
extends AbstractCountryPack
in package
implements
ProvidesReferenceRates
Country pack for Germany.
Table of Contents
Interfaces
- ProvidesReferenceRates
- A country pack whose late payment law has a reference interest rate, so that Dunning\DefaultInterest::forCountry() calculates default interest for it.
Constants
- CODE : string = 'DE'
- TRANSLATION_NAMESPACE : string = 'quittio-de'
Methods
- __construct() : mixed
- addressFormatter() : AddressFormatter
- Default: international address format.
- buyerCountryRules() : array<int, Rule>
- Default: no rules.
- code() : string
- ISO 3166-1 alpha-2 code, e.g. "DE".
- correctionPolicy() : CorrectionPolicy
- Cancellation by credit note, correction by cancel and reissue. To be confirmed with a tax adviser (legal review in the README).
- defaults() : CountryDefaults
- Default: neutral CountryDefaults.
- dunningLaw() : DunningLaw
- Section 288 BGB: base rate plus 9 points (business) or 5 points (consumer), flat rate of 40 EUR for business debtors, consumer default after 30 days with notice.
- errorClassification() : array<string, array<int, ValidationMessage>>
- Groups findings by the error classes of the BMF letter of 15 October 2025.
- exporters() : array<int, Exporter>
- Default: no exporters.
- formatAliases() : array<string, string>
- Default: no aliases.
- formatRules() : array<int, FormatRule>
- Default: no format rules; the generic automatic choice applies.
- formats() : array<int, OutputFormat>
- XRechnung in CII and UBL; "xrechnung" names the CII variant.
- germanDunningLaw() : DunningLaw
- The dunning law of section 288 BGB without an instance of the pack (whose constructor registers the builder macros).
- legalTexts() : LegalTextCatalog
- Default: an empty catalog.
- letterLayouts() : array<string, LetterLayout>
- Default: the free layout only.
- locales() : array<int, string>
- Locales the pack ships translations for (the directories of translationPath()), e.g. ["de", "en"].
- mandatoryOutput() : MandatoryFieldList
- Values the PDF must show in addition to the base fields. Paths with "[*]" apply to every index; paths without a value in the view model are skipped.
- numberingRules() : NumberingRules
- Invoice numbers must be unique and consecutive; gaps must be explainable.
- paymentQr() : PaymentQrGenerator|null
- Default: none; the EPC GiroCode is used for the type "girocode".
- profiles() : array<int, Profile>
- Default: no profiles.
- readers() : array<int, FormatReader>
- Default: no readers.
- referenceRates() : ReferenceRates
- The Basiszinssatz (section 247 BGB): the shipped rates plus those registered with BaseRates.
- registerTranslations() : void
- Makes the pack's translations available to the active translator. Called lazily, so presets work even without a registered Quittio instance.
- retention() : RetentionRule
- Invoices are business records: 8 years from the end of the calendar year of issue (section 14b UStG, section 147 AO as amended in 2025).
- rules() : array<int, Rule>
- Mandatory information according to section 14 (4) and 14a UStG (applies to every format).
- serializers() : array<int, XmlSerializer>
- Default: no serializers; CII and UBL are built in.
- taxPresets() : TaxPresetCollection
- Default: no presets.
- translationPath() : string
- Default: no translations.
Constants
CODE
public
string
CODE
= 'DE'
TRANSLATION_NAMESPACE
public
string
TRANSLATION_NAMESPACE
= 'quittio-de'
Methods
__construct()
public
__construct() : mixed
addressFormatter()
Default: international address format.
public
addressFormatter() : AddressFormatter
Return values
AddressFormatterbuyerCountryRules()
Default: no rules.
public
buyerCountryRules() : array<int, Rule>
Return values
array<int, Rule>code()
ISO 3166-1 alpha-2 code, e.g. "DE".
public
code() : string
Return values
stringcorrectionPolicy()
Cancellation by credit note, correction by cancel and reissue. To be confirmed with a tax adviser (legal review in the README).
public
correctionPolicy() : CorrectionPolicy
Return values
CorrectionPolicydefaults()
Default: neutral CountryDefaults.
public
defaults() : CountryDefaults
Return values
CountryDefaultsdunningLaw()
Section 288 BGB: base rate plus 9 points (business) or 5 points (consumer), flat rate of 40 EUR for business debtors, consumer default after 30 days with notice.
public
dunningLaw() : DunningLaw
Return values
DunningLawerrorClassification()
Groups findings by the error classes of the BMF letter of 15 October 2025.
public
errorClassification(ValidationResult $result) : array<string, array<int, ValidationMessage>>
Parameters
- $result : ValidationResult
Return values
array<string, array<int, ValidationMessage>>exporters()
Default: no exporters.
public
exporters() : array<int, Exporter>
Return values
array<int, Exporter>formatAliases()
Default: no aliases.
public
formatAliases() : array<string, string>
Return values
array<string, string>formatRules()
Default: no format rules; the generic automatic choice applies.
public
formatRules() : array<int, FormatRule>
Return values
array<int, FormatRule>formats()
XRechnung in CII and UBL; "xrechnung" names the CII variant.
public
formats() : array<int, OutputFormat>
Return values
array<int, OutputFormat>germanDunningLaw()
The dunning law of section 288 BGB without an instance of the pack (whose constructor registers the builder macros).
public
static germanDunningLaw() : DunningLaw
Return values
DunningLawlegalTexts()
Default: an empty catalog.
public
legalTexts() : LegalTextCatalog
Return values
LegalTextCatalogletterLayouts()
Default: the free layout only.
public
letterLayouts() : array<string, LetterLayout>
Return values
array<string, LetterLayout>locales()
Locales the pack ships translations for (the directories of translationPath()), e.g. ["de", "en"].
public
static locales() : array<int, string>
Return values
array<int, string>mandatoryOutput()
Values the PDF must show in addition to the base fields. Paths with "[*]" apply to every index; paths without a value in the view model are skipped.
public
mandatoryOutput(InvoiceData $invoice) : MandatoryFieldList
Parameters
- $invoice : InvoiceData
Return values
MandatoryFieldListnumberingRules()
Invoice numbers must be unique and consecutive; gaps must be explainable.
public
numberingRules() : NumberingRules
Return values
NumberingRulespaymentQr()
Default: none; the EPC GiroCode is used for the type "girocode".
public
paymentQr() : PaymentQrGenerator|null
Return values
PaymentQrGenerator|nullprofiles()
Default: no profiles.
public
profiles() : array<int, Profile>
Return values
array<int, Profile>readers()
Default: no readers.
public
readers() : array<int, FormatReader>
Return values
array<int, FormatReader>referenceRates()
The Basiszinssatz (section 247 BGB): the shipped rates plus those registered with BaseRates.
public
referenceRates() : ReferenceRates
Return values
ReferenceRatesregisterTranslations()
Makes the pack's translations available to the active translator. Called lazily, so presets work even without a registered Quittio instance.
public
static registerTranslations() : void
retention()
Invoices are business records: 8 years from the end of the calendar year of issue (section 14b UStG, section 147 AO as amended in 2025).
public
retention() : RetentionRule
Return values
RetentionRulerules()
Mandatory information according to section 14 (4) and 14a UStG (applies to every format).
public
rules() : array<int, Rule>
Return values
array<int, Rule>serializers()
Default: no serializers; CII and UBL are built in.
public
serializers() : array<int, XmlSerializer>
Return values
array<int, XmlSerializer>taxPresets()
Default: no presets.
public
taxPresets() : TaxPresetCollection
Return values
TaxPresetCollectiontranslationPath()
Default: no translations.
public
translationPath() : string