Currency and VAT
Currency and VAT entities provide financial reference data used by billing documents and invoice rendering. These entities define formatting behavior, precision rules, and tax rates used during amount presentation and calculations.
1. Business Meaning
1.1 Currency Governance
Currency controls:
- currency code/name identity,
- symbol and symbol placement,
- decimal precision in GUI and invoice output,
- lifecycle validity and localization.
1.2 VAT Governance
VatRate controls configurable tax rates with validity windows.
It allows project-level VAT changes over time without schema changes in billing document models.
2. Entity Reference: Currency (Currency)
| Field | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | Currency primary key. |
name | String | Yes | No | Currency display name. |
code | String | Yes | No | Currency technical/business code. |
position | CurrencyPosition | No | No | Symbol position (PREFIX or SUFFIX, default SUFFIX). |
symbol | String | Yes | No | Currency symbol shown in UI/invoices. |
precisionGUI | Int | Yes | No | Number of decimal places shown in UI. |
precisionInvoice | Int | Yes | No | Number of decimal places shown on invoice output. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Optional description. |
localizationData | LocalizationData | No | No | Localization payload. |
dataTags | List<String> | No | No | Optional labels/tags. |
config | Map<String, Any?> | No | No | Additional configuration payload. |
3. Entity Reference: VatRate (VatRate)
| Field | Type | Required | Read-only | Description |
|---|---|---|---|---|
id | UUID | No | No | VAT rate primary key. |
code | String | Yes | No | VAT technical code. |
name | String | Yes | No | VAT display name. |
validityFrom | Date | No | No | Validity start. |
validityTo | Date | No | No | Validity end. |
description | String | No | No | Optional VAT description. |
localizationData | LocalizationData | No | No | Localization payload. |
dataTags | List<String> | No | No | Optional labels/tags. |
config | Map<String, Any?> | No | No | Additional configuration payload. |
rate | Double | Yes | No | VAT percentage/rate value. |
4. Enum Reference: CurrencyPosition (CurrencyPosition)
| Value | Meaning |
|---|---|
PREFIX | Display currency symbol before amount (for example $ 10.00). |
SUFFIX | Display currency symbol after amount (for example 10.00 Kč). |