---
title: "BuildsPayment – API-Referenz · Quittio"
description: "Payment instructions (BG-16 to BG-19), payment terms and the prepaid and rounding amounts (BT-113, BT-114)."
canonical_url: "https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsPayment"
locale: de
meta:
  "og:description": "Payment instructions (BG-16 to BG-19), payment terms and the prepaid and rounding amounts (BT-113, BT-114)."
  "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": "BuildsPayment – 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) \\ [Builder](https://quittio.dev/docs/api/Quittio/Core/Builder) \\ [Concerns](https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns)

# BuildsPayment

trait in quittio/core

`Quittio\Core\Builder\Concerns\BuildsPayment` · [Source](https://github.com/Quittio/quittio/blob/v0.7.1/packages/core/src/Builder/Concerns/BuildsPayment.php#L28)

Payment instructions (BG-16 to BG-19), payment terms and the prepaid and rounding amounts (BT-113, BT-114).

Part of `InvoiceBuilder`, which holds the state; use the builder, not the trait.

## Methods \#

| Method | Description |
| --- | --- |
| `->addPrepaid()` | Adds to the amount already paid (BT-113), e.g. one of several advance payments. |
| `->cashDiscount()` | Cash discount ("Skonto") of $percent for payment within $days days after the issue date, optionally on a base amount; repeatable for several tiers. Continues the payment terms. |
| `->creditTransfer()` | Adds a further bank account (BG-17). |
| `->directDebit()` | SEPA direct debit (BG-19): mandate reference (BT-89), creditor identifier (BT-90) and the debited IBAN (BT-91, spaces removed). Without payment instructions it starts them with SepaDirectDebit (59). |
| `->dueInDays()` | Payment target: the due date (BT-9) is the issue date plus $days unless dueDate() is set, and the payment terms say "Payable within … days without deduction." Continues the payment terms set before. |
| `->lateFee()` | Late payment terms: days, percentage and text. Continues the payment terms. |
| `->payment()` | Payment instructions (BG-16) with an optional credit transfer account (BG-17). |
| `->paymentCard()` | Payment card (BG-18): the last 4 to 6 digits of the card number (BT-87) and the holder (BT-88). Without payment instructions it starts them with BankCard (48). |
| `->paymentTerms()` | Payment terms (BT-20): a PaymentTerms object or a text replace earlier terms; a callable receives a PaymentTermsBuilder that continues the earlier terms, also those of a PaymentTerms object or of from(), like seller() and buyer(). |
| `->prepaid()` | Amount already paid (BT-113), e.g. received advance payments. |
| `->rounding()` | Rounding amount (BT-114), e.g. cash rounding. Never use it to fix wrong totals. |

### `addPrepaid()`#

```
public function addPrepaid(BigDecimal|int|float|string $amount): static
```

Adds to the amount already paid (BT-113), e.g. one of several advance payments.

| Parameter | Type | Description |
| --- | --- | --- |
| `$amount` | `Brick\Math\BigDecimal\|int\|float\|string` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `cashDiscount()`#

```
public function cashDiscount(
    int $days,
    string $percent,
    ?string $baseAmount = null,
): static
```

Cash discount ("Skonto") of $percent for payment within $days days after the issue date, optionally on a base amount; repeatable for several tiers. Continues the payment terms.

| Parameter | Type | Description |
| --- | --- | --- |
| `$days` | `int` | |
| `$percent` | `string` | |
| `$baseAmount` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `creditTransfer()`#

```
public function creditTransfer(
    string $accountId,
    ?string $bic = null,
    ?string $accountName = null,
): static
```

Adds a further bank account (BG-17).

| Parameter | Type | Description |
| --- | --- | --- |
| `$accountId` | `string` | |
| `$bic` | `?string` = `null` | |
| `$accountName` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `directDebit()`#

```
public function directDebit(
    ?string $mandateReference,
    ?string $creditorId = null,
    ?string $debitedIban = null,
): static
```

SEPA direct debit (BG-19): mandate reference (BT-89), creditor identifier (BT-90) and the debited IBAN (BT-91, spaces removed). Without payment instructions it starts them with SepaDirectDebit (59).

| Parameter | Type | Description |
| --- | --- | --- |
| `$mandateReference` | `?string` | |
| `$creditorId` | `?string` = `null` | |
| `$debitedIban` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `dueInDays()`#

```
public function dueInDays(int $days): static
```

Payment target: the due date (BT-9) is the issue date plus $days unless dueDate() is set, and the payment terms say "Payable within … days without deduction." Continues the payment terms set before.

| Parameter | Type | Description |
| --- | --- | --- |
| `$days` | `int` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `lateFee()`#

```
public function lateFee(
    ?int $days = null,
    ?string $percent = null,
    ?string $text = null,
): static
```

Late payment terms: days, percentage and text. Continues the payment terms.

| Parameter | Type | Description |
| --- | --- | --- |
| `$days` | `?int` = `null` | |
| `$percent` | `?string` = `null` | |
| `$text` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `payment()`#

```
public function payment(
    PaymentMeansCode|RawCode|string $means,
    ?string $iban = null,
    ?string $bic = null,
    ?string $accountName = null,
    ?string $remittanceInformation = null,
    ?string $meansText = null,
): static
```

Payment instructions (BG-16) with an optional credit transfer account (BG-17).

A second call replaces the payment instructions: an account given here replaces the accounts, and data of other payment means is dropped (e.g. bank accounts when switching to direct debit). Without an account, existing accounts are kept for credit transfers (e.g. a seller default account); likewise card (BG-18) and direct debit (BG-19) data for card payments and direct debits. The remittance information (BT-83) is kept unless a new one is given. Further accounts are added with creditTransfer().

| Parameter | Type | Description |
| --- | --- | --- |
| `$means` | `[PaymentMeansCode](https://quittio.dev/docs/api/Quittio/Core/Enums/PaymentMeansCode)\| [RawCode](https://quittio.dev/docs/api/Quittio/Core/Codes/RawCode)\|string` | |
| `$iban` | `?string` = `null` | |
| `$bic` | `?string` = `null` | |
| `$accountName` | `?string` = `null` | |
| `$remittanceInformation` | `?string` = `null` | |
| `$meansText` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `paymentCard()`#

```
public function paymentCard(string $lastDigits, ?string $holderName = null): static
```

Payment card (BG-18): the last 4 to 6 digits of the card number (BT-87) and the holder (BT-88). Without payment instructions it starts them with BankCard (48).

| Parameter | Type | Description |
| --- | --- | --- |
| `$lastDigits` | `string` | |
| `$holderName` | `?string` = `null` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
<dt>Throws</dt>
<dd><code><a href="https://quittio.dev/docs/api/Quittio/Core/Exceptions/InvalidArgumentException">InvalidArgumentException</a></code> – for more or fewer digits</dd></dl>

### `paymentTerms()`#

```
public function paymentTerms(PaymentTerms|string|callable $terms): static
```

Payment terms (BT-20): a PaymentTerms object or a text replace earlier terms; a callable receives a PaymentTermsBuilder that continues the earlier terms, also those of a PaymentTerms object or of from(), like seller() and buyer().

| Parameter | Type | Description |
| --- | --- | --- |
| `$terms` | `[PaymentTerms](https://quittio.dev/docs/api/Quittio/Core/Data/Payment/PaymentTerms)\|string\|callable` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `prepaid()`#

```
public function prepaid(BigDecimal|int|float|string $amount): static
```

Amount already paid (BT-113), e.g. received advance payments.

| Parameter | Type | Description |
| --- | --- | --- |
| `$amount` | `Brick\Math\BigDecimal\|int\|float\|string` | |

<dl><dt>Returns</dt>
<dd><code>static</code></dd>
</dl>

### `rounding()`#

```
public function rounding(BigDecimal|int|float|string $amount): static
```

Rounding amount (BT-114), e.g. cash rounding. Never use it to fix wrong totals.

| Parameter | Type | Description |
| --- | --- | --- |
| `$amount` | `Brick\Math\BigDecimal\|int\|float\|string` | |

<dl><dt>Returns</dt>
<dd><code>static</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/Builder/Concerns/BuildsPayment#webpage","@type":"WebPage","description":"Payment instructions (BG-16 to BG-19), payment terms and the prepaid and rounding amounts (BT-113, BT-114).","name":"BuildsPayment – API-Referenz","url":"https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsPayment","isPartOf":{"@id":"https://quittio.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/docs/api/Quittio/Core/Builder/Concerns/BuildsPayment"]}],"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"}]}
```