Skip to content

API reference / Quittio \ Core \ Corrections

PriceReduction

final class in quittio/core

Quittio\Core\Corrections\PriceReduction · Source

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.

It is no cancellation and no correction of the invoice: the invoice stays correct, only the consideration changed (section 14.11 (4) UStAE). In Germany a document is only required for section 17 (4) UStG, and it need not be an e-invoice (section 17.1 (3a) UStAE); a cash discount may as well be booked on receipt of the payment.

The reduction is a percentage of every VAT group, the net amount of an invoice with one VAT group, or net amounts per VAT group keyed "category:rate", e.g. ['S:19' => '50.00', 'S:7' => '5.00'].

Methods#

MethodDescription
::of()

of()#

public static function of(
    InvoiceData $original,
    string $number,
    PriceReductionReason $reason,
    BigDecimal|int|string|null $percent = null,
    BigDecimal|int|string|null $amount = null,
    array<string, BigDecimal|int|string>|null $amounts = null,
    ?Date $issueDate = null,
    ?string $locale = null,
    string|null $title = null,
    ?CorrectionPolicy $policy = null,
    TotalsCalculator $calculator = new \Quittio\Core\Calculation\En16931Calculator(),
): InvoiceBuilder

static

ParameterTypeDescription
$originalInvoiceData
$numberstring
$reasonPriceReductionReason
$percentBrick\Math\BigDecimal|int|string|null = null
$amountBrick\Math\BigDecimal|int|string|null = null
$amountsarray<string, Brick\Math\BigDecimal|int|string>|null = nullnet amount per VAT group, keyed "category:rate" ("S:19", "E:0", "O" for a group without rate)
$issueDate?Date = null
$locale?string = null
$titlestring|null = nulldocument title in the PDF; without it the title "price_reduction" of $policy, otherwise the label "price_reduction_title"
$policy?CorrectionPolicy = null
$calculatorTotalsCalculator = new \Quittio\Core\Calculation\En16931Calculator()
Returns
InvoiceBuilder
Throws
InvalidArgumentException – for a credit note, a self-billed document or an invoice without calculated VAT breakdown, or for amounts that do not fit the original

The open core packages are MIT licensed. The legal wording of the country packs must be confirmed by a tax adviser.