API reference / Quittio \ Country \ DE \ Rules
UstgRules
final class in quittio/country-de
Quittio\Country\DE\Rules\UstgRules · Source
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.
These rules apply to every invoice of a German seller, independent of the format.
Methods#
| Method | Description |
|---|---|
::all() | |
::hasServiceDate() | Whether the invoice states the date of the supply (section 14 (4) no. 6 UStG): a delivery date, an invoicing period or a period on every line. |
::isSmallAmountInvoice() | Small amount invoice according to section 33 UStDV whose simplifications apply: not for supplies under sections 6a and 13b UStG (section 33 sentence 3 UStDV). Possible distance sales (section 3c UStG) keep the simplifications and get a DE-USTG-12 warning. |
::isSmallBusinessInvoice() | Invoice of a small business (section 19 UStG, invoice according to section 34a UStDV): the small business flag is set or a line uses VatPreset::SmallBusiness. |
::issuingDeadline() | The 15th day of the month after the supply (section 14a (1) sentence 2 and (3) sentence 1 UStG), see supplyDate(); null without a supply date (see DE-USTG-03). |
::plausibility() | Plausibility of the Leitweg-ID (level L7). For public buyers (XRechnung or a Leitweg-ID endpoint, BT-49 scheme 0204) wrong check digits are a warning. Other business buyers in Germany get an info for a buyer reference shaped like a Leitweg-ID with wrong check digits: it may be a mistyped Leitweg-ID, which does not lead to XRechnung, or an ordinary order number. |
::supplyDate() | The date of the supply that the invoice states: the latest of the delivery date, the end of the invoicing period and the ends of the line periods; null without any of them. |
all()#
public static function all(): list<Rule>- Returns
list<Rule>
hasServiceDate()#
public static function hasServiceDate(InvoiceData $invoice): boolWhether the invoice states the date of the supply (section 14 (4) no. 6 UStG): a delivery date, an invoicing period or a period on every line.
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
bool
isSmallAmountInvoice()#
public static function isSmallAmountInvoice(InvoiceData $invoice): boolSmall amount invoice according to section 33 UStDV whose simplifications apply: not for supplies under sections 6a and 13b UStG (section 33 sentence 3 UStDV). Possible distance sales (section 3c UStG) keep the simplifications and get a DE-USTG-12 warning.
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
bool
isSmallBusinessInvoice()#
public static function isSmallBusinessInvoice(InvoiceData $invoice): boolInvoice of a small business (section 19 UStG, invoice according to section 34a UStDV): the small business flag is set or a line uses VatPreset::SmallBusiness.
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
bool
issuingDeadline()#
public static function issuingDeadline(InvoiceData $invoice): ?DateThe 15th day of the month after the supply (section 14a (1) sentence 2 and (3) sentence 1 UStG), see supplyDate(); null without a supply date (see DE-USTG-03).
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
?Date
plausibility()#
public static function plausibility(): list<Rule>Plausibility of the Leitweg-ID (level L7). For public buyers (XRechnung or a Leitweg-ID endpoint, BT-49 scheme 0204) wrong check digits are a warning. Other business buyers in Germany get an info for a buyer reference shaped like a Leitweg-ID with wrong check digits: it may be a mistyped Leitweg-ID, which does not lead to XRechnung, or an ordinary order number.
- Returns
list<Rule>
supplyDate()#
public static function supplyDate(InvoiceData $invoice): ?DateThe date of the supply that the invoice states: the latest of the delivery date, the end of the invoicing period and the ends of the line periods; null without any of them.
| Parameter | Type | Description |
|---|---|---|
$invoice | InvoiceData |
- Returns
?Date