API reference / Quittio \ Country \ DE \ Tax
VatPreset
string-backed enum in quittio/country-de · implements DatedTaxPreset, StatesInvoiceNote
Quittio\Country\DE\Tax\VatPreset · Source
Tax presets for Germany.
Standard and Reduced take the rate that holds on the supply date of the line (TaxTables), e.g. 16 % and 5 % for supplies in the second half of 2020; rate() returns the rate of today.
The special schemes of section 14a (6) and (7) UStG and the zero rate for photovoltaic systems add their statement as invoice note (BT-22) as well (invoiceNote()).
The note texts and legal references were confirmed by a tax adviser in October 2026 (legal review in the README).
Cases#
| Case | Value | Description |
|---|---|---|
Standard | 'de.standard' | Standard rate (section 12 (1) UStG) of the supply date, today 19 %. |
Reduced | 'de.reduced' | Reduced rate (section 12 (2) UStG) of the supply date, today 7 %. |
Standard19 | 'de.standard_19' | |
Reduced7 | 'de.reduced_7' | |
ZeroRatedPv | 'de.zero_rated_pv' | |
SmallBusiness | 'de.small_business' | |
ReverseChargeDomestic | 'de.reverse_charge_domestic' | |
ReverseChargeEu | 'de.reverse_charge_eu' | |
IntraCommunitySupply | 'de.intra_community_supply' | |
TriangularTransaction | 'de.triangular_transaction' | |
Export | 'de.export' | |
NotTaxableInGermany | 'de.not_taxable' | |
BusinessTransfer | 'de.business_transfer' | Transfer of a business as a whole (Geschäftsveräußerung im Ganzen, section 1 (1a) UStG): not subject to VAT (category O). EN 16931 allows no VAT identifiers with category O (BR-O-02): state the tax numbers (BT-32) instead. |
MarginSecondHand | 'de.margin_second_hand' | |
MarginArt | 'de.margin_art' | |
MarginAntiques | 'de.margin_antiques' | |
TravelAgency | 'de.travel_agency' |
Methods#
| Method | Description |
|---|---|
->canonical() | The preset without a rate in its name: Standard for Standard19, Reduced for Reduced7. |
->category() | |
::exempt() | Tax exemption with a specific legal reference, e.g. VatPreset::exempt('§ 4 Nr. 14 UStG'). The text ("de.exempt" in tax.php) defaults to German like the cases. |
->exemptionReason() | |
->exemptionReasonCode() | |
::fromKey() | The case of a key, e.g. of LineVat::$presetKey; null for keys of other presets. |
->invoiceNote() | The statement of the special schemes as invoice note (BT-22): the texts of section 14a (6) UStG (margin schemes, travel agencies) and (7) UStG (triangular transactions), which the mapping table of KoSIT and FeRD assigns to the invoice note (BG-1), and the reference of the zero rate for photovoltaic systems (section 12 (3) UStG), which category Z cannot carry as exemption reason (BR-Z-10). |
->key() | |
->on() | The preset with the rate of the date; presets without a dated rate return themselves. |
->rate() |
canonical()#
public function canonical(): selfThe preset without a rate in its name: Standard for Standard19, Reduced for Reduced7.
- Returns
self
category()#
public function category(): VatCategory- Returns
VatCategory
exempt()#
public static function exempt(
string $paragraph,
VatExemptionReasonCode|RawCode|string|null $code = null,
): TaxPresetTax exemption with a specific legal reference, e.g. VatPreset::exempt('§ 4 Nr. 14 UStG'). The text ("de.exempt" in tax.php) defaults to German like the cases.
| Parameter | Type | Description |
|---|---|---|
$paragraph | string | |
$code | VatExemptionReasonCode|RawCode|string|null = null |
- Returns
TaxPreset
exemptionReason()#
public function exemptionReason(?string $locale = null): ?string| Parameter | Type | Description |
|---|---|---|
$locale | ?string = null |
- Returns
?string
exemptionReasonCode()#
public function exemptionReasonCode(): ?VatExemptionReasonCode- Returns
?VatExemptionReasonCode
fromKey()#
public static function fromKey(string $key): ?selfThe case of a key, e.g. of LineVat::$presetKey; null for keys of other presets.
| Parameter | Type | Description |
|---|---|---|
$key | string |
- Returns
?self
invoiceNote()#
public function invoiceNote(?string $locale = null): ?stringThe statement of the special schemes as invoice note (BT-22): the texts of section 14a (6) UStG (margin schemes, travel agencies) and (7) UStG (triangular transactions), which the mapping table of KoSIT and FeRD assigns to the invoice note (BG-1), and the reference of the zero rate for photovoltaic systems (section 12 (3) UStG), which category Z cannot carry as exemption reason (BR-Z-10).
| Parameter | Type | Description |
|---|---|---|
$locale | ?string = null |
- Returns
?string
key()#
public function key(): string- Returns
string
on()#
public function on(Date $date): TaxPresetThe preset with the rate of the date; presets without a dated rate return themselves.
| Parameter | Type | Description |
|---|---|---|
$date | Date |
- Returns
TaxPreset
rate()#
public function rate(): ?BigDecimal- Returns
?Brick\Math\BigDecimal