---
title: "AllowanceSplitter – API-Referenz · Quittio"
description: "Splits a document discount over several VAT groups."
canonical_url: "https://quittio.dev/docs/api/Quittio/Core/Calculation/AllowanceSplitter"
locale: de
meta:
  "og:description": "Splits a document discount over several VAT groups."
  "og:image": "https://quittio.dev/og/quittio-de.jpg"
  "og:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
  "og:image:height": "630"
  "og:image:type": image/jpeg
  "og:image:width": "1200"
  "og:title": "AllowanceSplitter – API-Referenz · Quittio"
  "twitter:image": "https://quittio.dev/og/quittio-de.jpg"
  "twitter:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
---

> Index of every page on this site: [llms.txt](https://quittio.dev/llms.txt)

[API reference](https://quittio.dev/docs/api) / [Quittio](https://quittio.dev/docs/api/Quittio) \\ [Core](https://quittio.dev/docs/api/Quittio/Core) \\ [Calculation](https://quittio.dev/docs/api/Quittio/Core/Calculation)

# AllowanceSplitter

final class in quittio/core

`Quittio\Core\Calculation\AllowanceSplitter` · [Source](https://github.com/Quittio/quittio/blob/v0.7.1/packages/core/src/Calculation/AllowanceSplitter.php#L30)

Splits a document discount over several VAT groups.

A document allowance has exactly one VAT category and rate. A discount on all lines is therefore split into one allowance per VAT group, in proportion to the signed line sum of the group. Rounding differences are distributed with the largest remainder method, so that the parts add up exactly to the total discount. A group with a negative sum (returns) receives a negative part.

For percentage discounts, base amount and percentage are kept on a part only if the part equals round2(base × percent / 100); otherwise only the amount is written, because validators check that formula (e.g. PEPPOL-EN16931-R040).

## Methods \#

| Method | Description |
| --- | --- |
| `->__construct()` | |
| `->splitAllowance()` | |

### `__construct()`#

```
public function __construct(
    LineCalculator $lineCalculator = new \Quittio\Core\Calculation\LineCalculator(),
)
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$lineCalculator` | `[LineCalculator](https://quittio.dev/docs/api/Quittio/Core/Calculation/LineCalculator)` = `new \Quittio\Core\Calculation\LineCalculator()` | |

### `splitAllowance()`#

```
public function splitAllowance(
    list<InvoiceLine> $lines,
    string $currency,
    ?BigDecimal $percent,
    ?Money $amount,
    ?string $reason = null,
    AllowanceReasonCode|RawCode|null $reasonCode = null,
): list<DocumentAllowance>
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$lines` | `list< [InvoiceLine](https://quittio.dev/docs/api/Quittio/Core/Data/Lines/InvoiceLine)>` | |
| `$currency` | `string` | |
| `$percent` | `?Brick\Math\BigDecimal` | |
| `$amount` | `?Brick\Money\Money` | |
| `$reason` | `?string` = `null` | |
| `$reasonCode` | `[AllowanceReasonCode](https://quittio.dev/docs/api/Quittio/Core/Enums/AllowanceReasonCode)\| [RawCode](https://quittio.dev/docs/api/Quittio/Core/Codes/RawCode)\|null` = `null` | |

<dl><dt>Returns</dt>
<dd><code>list&lt;<a href="https://quittio.dev/docs/api/Quittio/Core/Data/AllowanceCharge/DocumentAllowance">DocumentAllowance</a>&gt;</code></dd>
</dl>

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://quittio.dev/#website","@type":"WebSite","description":"E-Rechnungen für PHP und Laravel: ZUGFeRD, XRechnung und Peppol erstellen, prüfen, lesen und archivieren.","inLanguage":"de-DE","name":"Quittio","url":"https://quittio.dev/","publisher":{"@id":"https://quittio.dev/#identity"},"workTranslation":{"@id":"https://quittio.dev/en#website"}},{"@id":"https://quittio.dev/docs/api/Quittio/Core/Calculation/AllowanceSplitter#webpage","@type":"WebPage","description":"Splits a document discount over several VAT groups.","name":"AllowanceSplitter – API-Referenz","url":"https://quittio.dev/docs/api/Quittio/Core/Calculation/AllowanceSplitter","isPartOf":{"@id":"https://quittio.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/docs/api/Quittio/Core/Calculation/AllowanceSplitter"]}],"primaryImageOfPage":{"@id":"https://quittio.dev/#logo"}},{"@id":"https://quittio.dev/#identity","@type":"Organization","description":"Open-Source-Bibliothek für E-Rechnungen in PHP und Laravel (ZUGFeRD, XRechnung, Peppol) und Quittio Managed.","email":"kontakt@niklasforst.de","legalName":"Niklas Forst – Softwareentwicklung","name":"Quittio","url":"https://quittio.dev","founder":{"@type":"Person","name":"Niklas Forst","url":"https://quittio.dev/ueber"},"logo":{"@id":"https://quittio.dev/#logo"},"sameAs":["https://github.com/Quittio/quittio","https://packagist.org/packages/quittio/quittio"]},{"@id":"https://quittio.dev/#logo","@type":"ImageObject","caption":"Quittio","contentUrl":"https://quittio.dev/logo.png","inLanguage":"de-DE","url":"https://quittio.dev/logo.png"}]}
```