import { Callout } from "zudoku/ui/Callout";

# Dynamic Posting Description

## Business Value

When a payment reconciliation journal is posted, the transaction text supplied by the bank is used as the description of the resulting entries. That text is machine-generated, often abbreviated, and mixes the actual information with technical components. The entries therefore carry a description that is of little use for analysis – even though the posting itself is already fully automated through a reconciliation rule.

With the **dynamic posting description** you define, per reconciliation rule and per split rule line, how the description of the posted entries is composed. The text is assembled from placeholders and filled with the values of the respective bank transaction when the rule is applied.

## Feature Description

Both the **reconciliation rule** and the line of a **bank transaction split rule** have a **Posting Text** field. The text stored there is used as the description of the entries created when the payment reconciliation journal is posted.

If the field is left empty, nothing changes compared to the previous behavior: a reconciliation rule keeps the transaction text of the bank, and a split rule line keeps the matched part of the transaction text.

To compose the text, the **Posting Text** action is available – on the **Reconciliation Rules** list, on the reconciliation rule card, and on the **split rule lines**. It opens an editor that shows the available placeholders and inserts them on click. Alternatively you can edit the **Posting Text** field directly.

Placeholders are written in **curly brackets**, for example:

```
{Sender Name} - {Purpose}
```

### Available placeholders

The placeholders are grouped into four categories:

| Group | Placeholders |
|---|---|
| **Bank Transaction** | `{Purpose}`, `{Sender Name}`, `{Sender IBAN}`, `{Sender Account No.}`, `{Sender Bank Name}`, `{End To End Reference}`, `{Mandate Reference}`, `{Customer Reference}`, `{SEPA Purpose Code}`, `{ZKA Code}`, `{Transaction Amount}`, `{Value Date}`, `{Bank Posting Date}`, `{Bank Transaction Code}` |
| **Bank Statement Line** | `{Transaction Text}`, `{Transaction Date}`, `{Statement Amount}`, `{Related-Party Name}`, `{Related-Party IBAN}`, `{Bank Account No.}`, `{Statement No.}`, `{Statement Line No.}` |
| **Rule** | `{Account No.}`, `{Account Name}`, `{Account Type}` and `{Rule Line No.}` (reconciliation rules only) |
| **Split Rule Line** | `{Label}`, `{Extracted Amount}`, `{Match Fragment}`, `{G/L Account No.}`, `{Percent}`, `{Rule Code}`, `{Rule Description}` (split rules only) |

<Callout type="tip" title="Placeholder names are not translated">
Placeholder names are deliberately not localized and are written in **English** in every language version of the user interface. The editor shows the localized field caption and a sample value for each placeholder, but inserts the English name.
</Callout>

<Callout type="note" title="Unknown placeholders and length">
Placeholders that cannot be resolved remain in the text unchanged – a typo in a name therefore does not cause an error, but a visible placeholder in the entry. The resolved text is truncated to the permitted length; the editor states how many of those characters become the description of the posted entry.
</Callout>

For more information, see [Reconciliation Rules](../../bank-reconciliation-rules.mdx) and [Bank Transaction Split Rules](../../setup/bank-transaction-split-rules.mdx).
