From b7f904c93e01a9de65a133e82844a5b1326d5531 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:41:56 +0000 Subject: [PATCH 01/34] docs: add v0 to PosSystem API (v2) migration guide and cross-links Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/b1475a47-bd10-46a5-bdc9-dcc1fc252b0a Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/communication/communication.md | 6 + .../function-structures.md | 6 + .../general/migration/v0-to-possystemapi.md | 162 ++++++++++++++++++ .../middleware-at-rksv/appendix-at-rksv.md | 6 + .../appendix-fr-boi-tva-decla-30-10-30.md | 6 + poscreators/toc.js | 9 + .../middleware/helper-possystemapi.md | 6 + 7 files changed, 201 insertions(+) create mode 100644 poscreators/middleware-doc/general/migration/v0-to-possystemapi.md diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index ab51961..63cfb60 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -5,6 +5,12 @@ title: Communication # Communication +:::info Migrating to PosSystem API (v2)? + +If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). + +::: + The fiskaltrust.Middleware supports different communication protocols, effectively giving our users the possibility to use it on all currently available platforms and implement the interface in all state-of-the-art programming languages. This enables our users to choose the communication type that suits their scenario best. The communication protocol is specified by setting the respective URL in the package configuration of the fiskaltrust.Portal. The buttons to the right of the URL field can be used to quickly insert the respective URL: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index f541748..6c9c389 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -5,6 +5,12 @@ title: Function Structures # Function Structures +:::info Migrating to PosSystem API (v2)? + +If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). + +::: + ## iPOS Interface This interface is a communication channel for interacting with the fiskaltrust.Middleware. It provides three basic functions: "echo", "sign", and "journal". The functions "echo" and "sign" return bare-objects, the function "journal" returns a wrapped-object. diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md new file mode 100644 index 0000000..1b3ff2e --- /dev/null +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -0,0 +1,162 @@ +--- +slug: /poscreators/middleware-doc/general/migration/v0-to-possystemapi +title: Migrating from v0 to PosSystem API (v2) +--- + +# Migrating from v0 to PosSystem API (v2) + +:::info summary + +After reading this guide, you will understand the differences between the legacy `ifPOS.v0` interface and the new PosSystem API (v2), and be able to migrate your integration to the v2 stack. + +::: + +## Why migrate? + +The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. + +Migrating to v2 gives you: + +- Access to e-invoicing features and all future compliance capabilities +- A modern, standard HTTP/REST API that works with any programming language or framework +- PIN-based pairing for simpler, more secure authentication setup +- Active support and ongoing development + +## Prerequisites + +Before starting the migration, ensure you have: + +- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes +- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0 +- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) + +:::caution Market availability + +The PosSystem API via Launcher 2.0 has market-specific constraints: + +- **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. +- **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. + +::: + +## Architecture overview + +The following table summarises the key architectural differences between the two integration approaches: + +| Aspect | v0 (legacy) | v2 — PosSystem API | +|-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| +| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | +| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | +| **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | +| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | +| **Authentication** | CashboxID + AccessToken (per request / in service binding) | CashboxID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client; official devkit available | +| **New feature support** | None — no new features planned | All new features (e-invoicing, etc.) | + +**v0 data flow:** + +``` +POS System → WCF or REST (/v0/) → fiskaltrust Queue +``` + +**v2 data flow:** + +``` +POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue +``` + +## Configuration steps + +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: + +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal +2. Configuring the Helper URL +3. Assigning the Helper to the relevant CashBox +4. Rebuilding the CashBox configuration +5. Downloading and running Launcher 2.0 + +## API changes + +### Method mapping + +The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: + +| v0 call | v2 HTTP endpoint | Notes | +|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request/response body is a JSON object `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | + +#### Authentication + +All v2 requests must include the following HTTP headers: + +``` +cashboxid: +accesstoken: +``` + +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). + +### ReceiptRequest changes + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + +### ReceiptResponse changes + +The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: + +- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations +- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states + +### Timestamps + +The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: + +``` +// v0 example +proxy.Journal(ftJournalType, 0, DateTime.UtcNow.Ticks); +``` + +The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: + +```json +{ + "ftJournalType": 8301034833876213761, + "from": "2020-01-01T00:00:00Z", + "to": "2024-12-31T23:59:59Z" +} +``` + +If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). + +## Testing the migration + +The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developer.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. + +For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. + +## Cutover considerations + +:::caution No parallel operation + +Running the v0 and v2 interfaces in parallel on the same CashBox is not recommended. Perform the migration as a **clean cutover** per CashBox: reconfigure the CashBox with the LocalPosSystemApi Helper, rebuild it, deploy the new Launcher 2.0 package, then switch your POS system to use the new v2 endpoint. Ensure any buffered or in-flight v0 receipts are processed and closed before switching. + +::: + +A recommended cutover sequence: + +1. Complete all open transactions / close the current business day in the POS system +2. Reconfigure the CashBox in the Portal (add Helper, rebuild) +3. Deploy Launcher 2.0 to the POS terminal +4. Update the POS system to call the v2 endpoint +5. Send a test Echo request to confirm connectivity before going live diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index 716816f..ae70f99 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -17,4 +17,10 @@ https://www.lindeverlag.at/onlineprodukt/handbuch-registrierkassen-und-belegerte Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungspflicht, 2. Auflage 2019, Linde Verlag Wien. ISBN: 9783707335910 +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. + +::: + diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index bc27bd8..8ebacda 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -23,4 +23,10 @@ The technical specification of the data interface described in this document pro The interface specification is provided by fiskaltrust.Interface NuGet package, which can be found at https://www.nuget.org/packages/fiskaltrust.interface. +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. + +::: + diff --git a/poscreators/toc.js b/poscreators/toc.js index 079bc64..d1aa723 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -370,6 +370,15 @@ module.exports = [ }, ], }, + + { + type: "category", + label: "Migration Guides", + collapsed: true, + items: [ + "poscreators/middleware-doc/general/migration/v0-to-possystemapi", + ], + }, ], }, { diff --git a/posdealers/technical-operations/middleware/helper-possystemapi.md b/posdealers/technical-operations/middleware/helper-possystemapi.md index 9403573..1f9fb48 100644 --- a/posdealers/technical-operations/middleware/helper-possystemapi.md +++ b/posdealers/technical-operations/middleware/helper-possystemapi.md @@ -16,6 +16,12 @@ After reading this, you can set up and configure the local PosSystem API Helper ::: +:::info Migrating from v0? + +If your POS system currently uses the v0 interface (WCF/REST) and you are migrating to the PosSystem API, see the [v0 → PosSystem API migration guide](../../../poscreators/middleware-doc/general/migration/v0-to-possystemapi.md) for a full overview of API and data model changes. + +::: + ## Introduction The local PosSystem API Helper is a Middleware component that exposes a local endpoint through which the POS System communicates with the fiskaltrust Middleware. It acts as a bridge between the POS System and the underlying Queue, and is required for Launcher 2.0 deployments. From 210db98b71fa286093b21ec89941c62c61317355 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:45:35 +0000 Subject: [PATCH 02/34] docs: address review feedback - echo example and toc indentation Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/b1475a47-bd10-46a5-bdc9-dcc1fc252b0a Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/migration/v0-to-possystemapi.md | 21 ++++++++++++++++++- poscreators/toc.js | 1 - 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 1b3ff2e..cc594e2 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -83,7 +83,7 @@ The three core operations map directly from v0 to v2, but the calling convention | v0 call | v2 HTTP endpoint | Notes | |--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request/response body is a JSON object `{"message": "..."}` | +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | | `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | | `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | @@ -98,6 +98,25 @@ accesstoken: Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +#### Echo example + +**Request:** + +```json +POST /api/v2/echo +{ + "message": "test" +} +``` + +**Response:** + +```json +{ + "message": "test" +} +``` + ### ReceiptRequest changes The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: diff --git a/poscreators/toc.js b/poscreators/toc.js index d1aa723..71e8ecb 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -370,7 +370,6 @@ module.exports = [ }, ], }, - { type: "category", label: "Migration Guides", From 632e4f6d62272515ec66eb7b26cb8eccf6b832dc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:45:38 +0000 Subject: [PATCH 03/34] =?UTF-8?q?docs:=20add=20cloud=20URL,=20case=20value?= =?UTF-8?q?s,=20and=20ftReceiptCaseData=20format=20sections=20to=20v0?= =?UTF-8?q?=E2=86=92v2=20migration=20guide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/a565d3f7-633c-43cc-96d2-170582c3c307 Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/migration/v0-to-possystemapi.md | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index cc594e2..97b8b96 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -65,6 +65,29 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` +## Cloud CashBox: base URL change + +If your integration targets a **cloud CashBox** (i.e. your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: + +| Environment | v0 base URL | v2 base URL | +|-------------|----------------------------------------------------------|------------------------------------------------------| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | + +Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. + +The path structure changes accordingly: + +| Operation | v0 path | v2 path | +|-----------|--------------------------------------------|--------------------------| +| Sign | `/[json|xml]/v0/sign` | `/api/v2/sign` | +| Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | +| Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | + ## Configuration steps The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: @@ -130,6 +153,53 @@ The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +### Case value changes + +The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. **Updating these values is the most substantial part of the migration.** Each receipt and item type has a corresponding v2 value, and sending v0 values to the v2 endpoint will result in incorrect processing. + +:::info Developer Portal + +The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. + +::: + +A systematic approach to updating case values: + +1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration +2. For each value, find the corresponding business case in the Developer Portal for your market +3. Replace the v0 value with the v2 value shown in the portal example +4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts) + +### `ftReceiptCaseData` format change + +The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. + +**v0 format** — the entire value is a JSON string embedded as a string field: + +```json +{ + "ftReceiptCase": "...", + "ftReceiptCaseData": "{\"Code\":\"20\", \"Message\":\"Archivage fiscal de période\", \"Information\":\"\"}" +} +``` + +**v2 format** — the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string: + +```json +{ + "ftReceiptCase": "...", + "ftReceiptCaseData": { + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" + } +} +``` + +Key points: +- The outer field is now a **JSON object**, not a string +- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload +- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`) +- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely + ### ReceiptResponse changes The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: @@ -160,7 +230,7 @@ If you need to convert existing .NET Tick values, use the formulas from the [Fun ## Testing the migration -The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developer.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. +The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. From 1c1ace05c597cc253270bb0fcb19f22c67534aba Mon Sep 17 00:00:00 2001 From: deboragracio Date: Tue, 5 May 2026 16:25:02 +0200 Subject: [PATCH 04/34] Created draft (in progress) https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 363 ++++++++++++++---- 1 file changed, 286 insertions(+), 77 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 97b8b96..09abcd9 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -1,34 +1,35 @@ --- slug: /poscreators/middleware-doc/general/migration/v0-to-possystemapi -title: Migrating from v0 to PosSystem API (v2) +title: Migrating from API v0 to PosSystem API (v2) --- -# Migrating from v0 to PosSystem API (v2) +# Migrating from API v0 to PosSystem API (v2) -:::info summary - -After reading this guide, you will understand the differences between the legacy `ifPOS.v0` interface and the new PosSystem API (v2), and be able to migrate your integration to the v2 stack. - -::: - -## Why migrate? +## Introduction The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. Migrating to v2 gives you: -- Access to e-invoicing features and all future compliance capabilities -- A modern, standard HTTP/REST API that works with any programming language or framework -- PIN-based pairing for simpler, more secure authentication setup -- Active support and ongoing development +- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities +- **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. +- **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. +- **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. +- **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +This guide is primarily targeted at POS Creators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. + ## Prerequisites Before starting the migration, ensure you have: -- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes -- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0 -- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) +- An active **fiskaltrust account** (sandbox and/or production). +- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes. +- An existing integration that successfully produces receipts against the v0 SignatureCloud API. +- Access to a **sandbox cashbox** for testing your migrated integration before going live. +- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. +- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md). +- Familiarity with the **POSSystemAPI business case examples**, which serve as the reference for the new request format: [https://developers.fiskaltrust.eu/#/pos-system](https://developers.fiskaltrust.eu/#/pos-system) :::caution Market availability @@ -65,9 +66,9 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` -## Cloud CashBox: base URL change +## Step 1: Cloud CashBox - Change the base URL -If your integration targets a **cloud CashBox** (i.e. your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: +If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: | Environment | v0 base URL | v2 base URL | |-------------|----------------------------------------------------------|------------------------------------------------------| @@ -78,8 +79,16 @@ If your integration targets a **cloud CashBox** (i.e. your POS system calls the | Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | | Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | +:::info + +The new endpoint is **market-agnostic** — the same base URL is used for AT, FR, and DE. The market is determined by the `ftCashBoxID` and queue configuration, not the URL. + Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. +::: + +Replace all occurrences of the per-market v0 base URL in your integration with the single new URL above. Make sure to append `/v2` to the path. + The path structure changes accordingly: | Operation | v0 path | v2 path | @@ -88,89 +97,218 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Configuration steps +## Step 2: Change Case Values -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: +The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. -1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal -2. Configuring the Helper URL -3. Assigning the Helper to the relevant CashBox -4. Rebuilding the CashBox configuration -5. Downloading and running Launcher 2.0 +:::info Developer Portal -## API changes +The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. -### Method mapping +::: -The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: +A systematic approach to updating case values: -| v0 call | v2 HTTP endpoint | Notes | -|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. +2. For each value, find the corresponding business case in the Developer Portal for your market. +3. Replace the v0 value with the v2 value shown in the portal example. +4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -#### Authentication +### ftReceiptCase Mapping -All v2 requests must include the following HTTP headers: +
+Austria (AT) -``` -cashboxid: -accesstoken: -``` +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4154000000000001` | TODO | +| Zero receipt | `0x4154000000000002` | TODO | +| Initial operation / start receipt | `0x4154000000000003` | TODO | +| Out of operation / stop receipt | `0x4154000000000004` | TODO | +| Monthly closing | `0x4154000000000005` | TODO | +| Yearly closing | `0x4154000000000006` | TODO | -Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +:::caution TODO -#### Echo example +The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. -**Request:** +::: -```json -POST /api/v2/echo -{ - "message": "test" -} -``` +
-**Response:** +
+France (FR) -```json -{ - "message": "test" -} -``` +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4652000000000001` | TODO | +| Zero receipt | `0x465200000000000F` | TODO | +| Initial operation / start receipt | `0x4652000000000010` | TODO | +| Out of operation / stop receipt | `0x4652000000000011` | TODO | +| Daily closing | `0x4652000000000005` | TODO | +| Monthly closing | `0x4652000000000006` | TODO | +| Yearly closing | `0x4652000000000007` | TODO | +| Archives / fiscal period archive | `0x4652000000000015` | TODO | -### ReceiptRequest changes +:::caution TODO -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: +The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +::: -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +
-### Case value changes +
+Germany (DE) -The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. **Updating these values is the most substantial part of the migration.** Each receipt and item type has a corresponding v2 value, and sending v0 values to the v2 endpoint will result in incorrect processing. +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4445000100000001` | TODO | +| Zero receipt | `0x4445000000000002` | TODO | +| Initial operation / start receipt | `0x4445000000000003` | TODO | +| Out of operation / stop receipt | `0x4445000000000004` | TODO | +| Daily closing | `0x4445000000000007` | TODO | +| Start-transaction receipt | `0x4445000000000008` | TODO | +| Update-transaction receipt | `0x4445000000000009` | TODO | +| Fail-transaction receipt (single) | `0x444500000000000B` | TODO | +| Initiate SCU switch | `0x4445000000000017` | TODO | +| Finish SCU switch | `0x4445000000000018` | TODO | -:::info Developer Portal +:::caution TODO -The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. ::: -A systematic approach to updating case values: +
+ +--- + +### ftChargeItemCase Mapping + +
+Austria (AT) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4154000000000003` | TODO | +| Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | +| Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+France (FR) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4652000000000003` | TODO | +| Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | +| Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+Germany (DE) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | +| Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +### ftPayItemCase Mapping + +
+Austria (AT) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4154000000000001` | TODO | +| Cash payment — foreign currency | `0x4154000000000002` | TODO | +| Crossed cheque | `0x4154000000000003` | TODO | +| Debit card payment | `0x4154000000000004` | TODO | +| Credit card payment | `0x4154000000000005` | TODO | +| Online payment | `0x4154000000000007` | TODO | +| Customer card payment | `0x4154000000000008` | TODO | +| SEPA transfer | `0x415400000000000C` | TODO | +| Internal material consumption | `0x4154000000000011` | TODO | -1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration -2. For each value, find the corresponding business case in the Developer Portal for your market -3. Replace the v0 value with the v2 value shown in the portal example -4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts) +:::caution TODO -### `ftReceiptCaseData` format change +The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+France (FR) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4652000000000001` | TODO | +| Cash payment — foreign currency | `0x4652000000000002` | TODO | +| Crossed cheque | `0x4652000000000003` | TODO | +| Debit card payment | `0x4652000000000004` | TODO | +| Credit card payment | `0x4652000000000005` | TODO | +| Online payment | `0x4652000000000007` | TODO | +| Customer card payment | `0x4652000000000008` | TODO | +| SEPA transfer | `0x465200000000000C` | TODO | +| Internal material consumption | `0x4652000000000011` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+Germany (DE) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4445000000000001` | TODO | +| Cash payment — foreign currency | `0x4445000000000002` | TODO | +| Crossed cheque | `0x4445000000000003` | TODO | +| Debit card payment | `0x4445000000000004` | TODO | +| Credit card payment | `0x4445000000000005` | TODO | +| Online payment | `0x4445000000000006` | TODO | +| Customer card payment | `0x4445000000000007` | TODO | +| SEPA transfer | `0x4445000000000008` | TODO | +| Internal material consumption | `0x444500000000000A` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for DE `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ + +### ftReceiptCaseData format change The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. @@ -195,10 +333,10 @@ The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a ``` Key points: -- The outer field is now a **JSON object**, not a string -- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload -- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`) -- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely +- The outer field is now a **JSON object**, not a string. +- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload. +- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). +- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. ### ReceiptResponse changes @@ -249,3 +387,74 @@ A recommended cutover sequence: 3. Deploy Launcher 2.0 to the POS terminal 4. Update the POS system to call the v2 endpoint 5. Send a test Echo request to confirm connectivity before going live + + + + + + +## Configuration steps + +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: + +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal +2. Configuring the Helper URL +3. Assigning the Helper to the relevant CashBox +4. Rebuilding the CashBox configuration +5. Downloading and running Launcher 2.0 + +## API changes + +### Method mapping + +The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: + +| v0 call | v2 HTTP endpoint | Notes | +|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | + +#### Authentication + +All v2 requests must include the following HTTP headers: + +``` +cashboxid: +accesstoken: +``` + +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). + +#### Echo example + +**Request:** + +```json +POST /api/v2/echo +{ + "message": "test" +} +``` + +**Response:** + +```json +{ + "message": "test" +} +``` + +### ReceiptRequest changes + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + From b974faeb21ae5bb0166440a8ad19d422d2761089 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 6 May 2026 16:59:45 +0200 Subject: [PATCH 05/34] Updated draft https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 179 ++++++++---------- 1 file changed, 83 insertions(+), 96 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 09abcd9..4f2f2d2 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -7,7 +7,7 @@ title: Migrating from API v0 to PosSystem API (v2) ## Introduction -The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. +The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API - primarily used in Austria (AT) and France (FR) - remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. Migrating to v2 gives you: @@ -17,7 +17,7 @@ Migrating to v2 gives you: - **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. - **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. -This guide is primarily targeted at POS Creators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. +This guide is primarily targeted at PosCreators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. ## Prerequisites @@ -40,7 +40,7 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: ::: -## Architecture overview +## Architecture Overview The following table summarises the key architectural differences between the two integration approaches: @@ -66,7 +66,7 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` -## Step 1: Cloud CashBox - Change the base URL +## Cloud CashBox (base URL change) If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: @@ -97,13 +97,13 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Step 2: Change Case Values +## Case Values The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. :::info Developer Portal -The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the [fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: @@ -114,7 +114,7 @@ A systematic approach to updating case values: 3. Replace the v0 value with the v2 value shown in the portal example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -### ftReceiptCase Mapping +### ftReceiptCase
Austria (AT) @@ -130,7 +130,7 @@ A systematic approach to updating case values: :::caution TODO -The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. +The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. ::: @@ -152,7 +152,7 @@ The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integr :::caution TODO -The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. +The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified. ::: @@ -174,17 +174,9 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integr | Initiate SCU switch | `0x4445000000000017` | TODO | | Finish SCU switch | `0x4445000000000018` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
---- - -### ftChargeItemCase Mapping +### ftChargeItemCase
Austria (AT) @@ -195,12 +187,6 @@ The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integr | Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | | Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -212,12 +198,6 @@ The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the int | Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | | Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -228,15 +208,9 @@ The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the int | Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | | Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
-### ftPayItemCase Mapping +### ftPayItemCase
Austria (AT) @@ -253,12 +227,6 @@ The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the int | SEPA transfer | `0x415400000000000C` | TODO | | Internal material consumption | `0x4154000000000011` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -276,12 +244,6 @@ The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integr | SEPA transfer | `0x465200000000000C` | TODO | | Internal material consumption | `0x4652000000000011` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -299,16 +261,14 @@ The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integr | SEPA transfer | `0x4445000000000008` | TODO | | Internal material consumption | `0x444500000000000A` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
+Key differences highlighted: +1. The base URL changes (see Step 1). +2. All `*Case` numeric values must be remapped (see mapping tables above). +3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string (see the section below). -### ftReceiptCaseData format change +### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. @@ -338,7 +298,50 @@ Key points: - Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). - If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. -### ReceiptResponse changes +#### Examples by Market + +**Austria (AT)** + +```json +"ftReceiptCaseData": { + "AT": "{\"Code\": \"20\", \"Message\": \"Jahresbeleg\", \"Information\": \"\"}" +} +``` + +**France (FR)** + +```json +"ftReceiptCaseData": { + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" +} +``` + +**Germany (DE)** + +```json +"ftReceiptCaseData": { + "DE": "{\"Code\": \"20\", \"Message\": \"Jahresabschluss\", \"Information\": \"\"}" +} +``` + +**Multi-market (combined)** + +```json +"ftReceiptCaseData": { + "AT": "{\"Code\": \"20\", \"Message\": \"Jahresbeleg\", \"Information\": \"\"}", + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" +} +``` + +:::warning + +If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. **Do not pass a bare empty string (`""`)** as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. + +The inner string value for a given market key **may** be an empty string (`""`) when no additional case data is required for that market. + +::: + +### ReceiptResponse The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: @@ -366,42 +369,40 @@ The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). -## Testing the migration - -The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. - -For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. - -## Cutover considerations - -:::caution No parallel operation - -Running the v0 and v2 interfaces in parallel on the same CashBox is not recommended. Perform the migration as a **clean cutover** per CashBox: reconfigure the CashBox with the LocalPosSystemApi Helper, rebuild it, deploy the new Launcher 2.0 package, then switch your POS system to use the new v2 endpoint. Ensure any buffered or in-flight v0 receipts are processed and closed before switching. - -::: +### ReceiptRequest -A recommended cutover sequence: +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: -1. Complete all open transactions / close the current business day in the POS system -2. Reconfigure the CashBox in the Portal (add Helper, rebuild) -3. Deploy Launcher 2.0 to the POS terminal -4. Update the POS system to call the v2 endpoint -5. Send a test Echo request to confirm connectivity before going live +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +## Local CashBox +:::note Sandbox/admin access only +Local cashbox migration requires additional configuration steps that are currently only supported in sandbox environments under guidance from the fiskaltrust team. -## Configuration steps +::: The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: -1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal -2. Configuring the Helper URL -3. Assigning the Helper to the relevant CashBox -4. Rebuilding the CashBox configuration -5. Downloading and running Launcher 2.0 +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. +2. Configuring the Helper URL. +3. Assigning the Helper to the relevant CashBox. +4. Rebuilding the CashBox configuration. +5. Downloading and running Launcher 2.0. + +For reference documentation on local cashbox configuration, see the country-specific middleware appendixes: +- [Austria - Middleware Documentation](/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv) +- [France - Middleware Documentation](/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30) +- [Germany - Middleware Documentation](/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv) ## API changes @@ -444,17 +445,3 @@ POST /api/v2/echo "message": "test" } ``` - -### ReceiptRequest changes - -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: - -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | - -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. - From 0c0bb30655a3705737f9043966c54535f01447cf Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 14:48:24 +0200 Subject: [PATCH 06/34] Updated draft structure/other pages https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/communication/communication.md | 4 +- .../function-structures.md | 4 +- .../general/migration/v0-to-possystemapi.md | 122 ++++++++---------- .../middleware-at-rksv/appendix-at-rksv.md | 2 +- .../appendix-de-kassensichv.md | 6 + .../appendix-fr-boi-tva-decla-30-10-30.md | 2 +- poscreators/toc.js | 10 +- 7 files changed, 65 insertions(+), 85 deletions(-) diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index 63cfb60..452513f 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -5,9 +5,9 @@ title: Communication # Communication -:::info Migrating to PosSystem API (v2)? +:::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). +If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. ::: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index 6c9c389..c98dd5d 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -5,9 +5,9 @@ title: Function Structures # Function Structures -:::info Migrating to PosSystem API (v2)? +:::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). +If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. ::: diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 4f2f2d2..755c45d 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -11,13 +11,17 @@ The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern Migrating to v2 gives you: -- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities +- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities. - **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. - **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. - **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. - **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +:::info + This guide is primarily targeted at PosCreators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. + +::: ## Prerequisites @@ -28,8 +32,6 @@ Before starting the migration, ensure you have: - An existing integration that successfully produces receipts against the v0 SignatureCloud API. - Access to a **sandbox cashbox** for testing your migrated integration before going live. - **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. -- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md). -- Familiarity with the **POSSystemAPI business case examples**, which serve as the reference for the new request format: [https://developers.fiskaltrust.eu/#/pos-system](https://developers.fiskaltrust.eu/#/pos-system) :::caution Market availability @@ -37,6 +39,7 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: - **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. - **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. +- **Germany (DE):** TBD ::: @@ -44,23 +47,23 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: The following table summarises the key architectural differences between the two integration approaches: -| Aspect | v0 (legacy) | v2 — PosSystem API | +| Aspect | v0 (legacy) | v2 - PosSystem API | |-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| | **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | | **Communication style** | Synchronous (blocking) | Modern REST (JSON) | | **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | | **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | CashboxID + AccessToken (per request / in service binding) | CashboxID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client; official devkit available | -| **New feature support** | None — no new features planned | All new features (e-invoicing, etc.) | +| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client +| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | -**v0 data flow:** +- **v0 data flow:** ``` POS System → WCF or REST (/v0/) → fiskaltrust Queue ``` -**v2 data flow:** +- **v2 data flow:** ``` POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue @@ -81,9 +84,7 @@ If your integration targets a **Cloud CashBox** (for example, your POS system ca :::info -The new endpoint is **market-agnostic** — the same base URL is used for AT, FR, and DE. The market is determined by the `ftCashBoxID` and queue configuration, not the URL. - -Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. +The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID` / `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. ::: @@ -97,24 +98,24 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Case Values +### Case Values The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. -:::info Developer Portal +:::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the [fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the Developer Portal for your market. -3. Replace the v0 value with the v2 value shown in the portal example. +2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/#/pos-system) for your market. +3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -### ftReceiptCase +#### ftReceiptCase
Austria (AT) @@ -128,12 +129,6 @@ A systematic approach to updating case values: | Monthly closing | `0x4154000000000005` | TODO | | Yearly closing | `0x4154000000000006` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. - -::: -
@@ -150,12 +145,6 @@ The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. | Yearly closing | `0x4652000000000007` | TODO | | Archives / fiscal period archive | `0x4652000000000015` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified. - -::: -
@@ -176,7 +165,7 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
-### ftChargeItemCase +#### ftChargeItemCase
Austria (AT) @@ -210,7 +199,7 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
-### ftPayItemCase +#### ftPayItemCase
Austria (AT) @@ -264,15 +253,15 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
Key differences highlighted: -1. The base URL changes (see Step 1). -2. All `*Case` numeric values must be remapped (see mapping tables above). -3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string (see the section below). +1. The base URL changes. +2. All case numeric values must be remapped. +3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string. -### ftReceiptCaseData Format +#### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. -**v0 format** — the entire value is a JSON string embedded as a string field: +- **v0 format**: the entire value is a JSON string embedded as a string field. ```json { @@ -281,7 +270,7 @@ The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a } ``` -**v2 format** — the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string: +- **v2 format**: the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string. ```json { @@ -296,9 +285,8 @@ Key points: - The outer field is now a **JSON object**, not a string. - The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload. - Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). -- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. -#### Examples by Market +##### Examples by Market **Austria (AT)** @@ -335,20 +323,33 @@ Key points: :::warning -If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. **Do not pass a bare empty string (`""`)** as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. +If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. Do not pass a bare empty string (`""`) as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. -The inner string value for a given market key **may** be an empty string (`""`) when no additional case data is required for that market. +The inner string value for a given market key may be an empty string (`""`) when no additional case data is required for that market. ::: -### ReceiptResponse +#### ReceiptRequest + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable. The key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + +#### ReceiptResponse The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: -- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations -- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states +- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations. +- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states. -### Timestamps +#### Timestamps The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: @@ -369,20 +370,6 @@ The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). -### ReceiptRequest - -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: - -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | - -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. - - ## Local CashBox :::note Sandbox/admin access only @@ -391,7 +378,7 @@ Local cashbox migration requires additional configuration steps that are current ::: -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: 1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. 2. Configuring the Helper URL. @@ -399,14 +386,9 @@ The portal-side configuration requires adding a **LocalPosSystemApi Helper** to 4. Rebuilding the CashBox configuration. 5. Downloading and running Launcher 2.0. -For reference documentation on local cashbox configuration, see the country-specific middleware appendixes: -- [Austria - Middleware Documentation](/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv) -- [France - Middleware Documentation](/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30) -- [Germany - Middleware Documentation](/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv) - -## API changes +### API changes -### Method mapping +#### Method mapping The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: @@ -416,7 +398,7 @@ The three core operations map directly from v0 to v2, but the calling convention | `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | | `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | -#### Authentication +##### Authentication All v2 requests must include the following HTTP headers: @@ -427,7 +409,7 @@ accesstoken: Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). -#### Echo example +##### Echo example **Request:** diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index ae70f99..5715160 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -19,7 +19,7 @@ Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungs :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. ::: diff --git a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md index 212dacd..da9e099 100644 --- a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md +++ b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md @@ -7,4 +7,10 @@ title: Introduction This appendix expands on the General Part's information by adding details specific to the German market. This additional information is provided only where applicable. The remaining chapters, for which there is no further information required, were omitted. +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. + +::: + diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index 8ebacda..9236df1 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -25,7 +25,7 @@ The interface specification is provided by fiskaltrust.Interface NuGet package, :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. ::: diff --git a/poscreators/toc.js b/poscreators/toc.js index 71e8ecb..fbc3e11 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -370,15 +370,7 @@ module.exports = [ }, ], }, - { - type: "category", - label: "Migration Guides", - collapsed: true, - items: [ - "poscreators/middleware-doc/general/migration/v0-to-possystemapi", - ], - }, - ], + ], }, { type: "category", From 656786a1f59f1f05e6a1e2f46c101edc53bf5d7b Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:11:14 +0200 Subject: [PATCH 07/34] fixed link --- .../middleware-doc/general/migration/v0-to-possystemapi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 755c45d..138f035 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -104,14 +104,14 @@ The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemC :::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/#/pos-system) for your market. +2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/pos-system#/pos-system) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). From 5c88f964f5ecccbdfa10f3c5d352065dd4832b3b Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:15:22 +0200 Subject: [PATCH 08/34] fixed links --- .../middleware-doc/general/migration/v0-to-possystemapi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 138f035..7701a11 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -104,14 +104,14 @@ The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemC :::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developer.fiskaltrust.eu/). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/pos-system#/pos-system) for your market. +2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). From 858d2818b5afc129091cbf658ff9b53d9fe48224 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:47:19 +0200 Subject: [PATCH 09/34] minor changes https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 7701a11..4ccacdb 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -7,15 +7,15 @@ title: Migrating from API v0 to PosSystem API (v2) ## Introduction -The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API - primarily used in Austria (AT) and France (FR) - remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. +The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API — primarily used in Austria (AT) and France (FR) — remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. Migrating to v2 gives you: -- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities. +- **E-invoicing support** — Access to e-invoicing features and all future compliance capabilities. - **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. - **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. -- **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. -- **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +- **Simpler authentication** — PIN-based pairing for simpler, more secure authentication setup. +- **Modern and flexible API design** — A modern, standard HTTP/REST API that works with any programming language or framework. :::info @@ -84,7 +84,7 @@ If your integration targets a **Cloud CashBox** (for example, your POS system ca :::info -The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID` / `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. +The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID`, `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. ::: @@ -407,7 +407,7 @@ cashboxid: accesstoken: ``` -Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal. For more information, see how to [Test the PosSystem API Helper](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper). ##### Echo example From 2e655e70f835c6648ce520f18fd9c323ee003bb7 Mon Sep 17 00:00:00 2001 From: Arnaud Chentil Date: Thu, 21 May 2026 11:58:57 +0200 Subject: [PATCH 10/34] Add business cases changes for ftReceiptCase (fr market) --- .../general/migration/v0-to-possystemapi.md | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 4ccacdb..bf341d8 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -114,6 +114,8 @@ A systematic approach to updating case values: 2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). +5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. +6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. #### ftReceiptCase @@ -134,16 +136,38 @@ A systematic approach to updating case values:
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4652000000000001` | TODO | -| Zero receipt | `0x465200000000000F` | TODO | -| Initial operation / start receipt | `0x4652000000000010` | TODO | -| Out of operation / stop receipt | `0x4652000000000011` | TODO | -| Daily closing | `0x4652000000000005` | TODO | -| Monthly closing | `0x4652000000000006` | TODO | -| Yearly closing | `0x4652000000000007` | TODO | -| Archives / fiscal period archive | `0x4652000000000015` | TODO | +| Business Case | v0 Value | POSSystemAPI v2 Value | Comment | +|---------------|----------|-----------------------|---------| +| Foreign sales | `0x465200000000000E` | `0x4652200008000000` | Unknown receipt type. Use this as a fallback; it is handled the same way as a point-of-sale receipt. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000001` | Point-of-sale receipt type. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000002` | Payment transfer receipt type. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000003` | Point-of-sale receipt without fiscalization obligation or with exceptions to fiscalization regulations. | +| Payment transfer | `0x465200000000000A` or `0x465200000000000B` or `0x465200000000000C` | `0x4652200000000002` | All payment transfer receipt types ; conditional. pay-in to drawer/till, pay-out from drawer/till | +| Point-of-sale receipt type without fiskalisation obligation or with exemption | `0x465200000000000E` | `0x4652200000000003` | | +| E-commerce receipt type | `0x465200000000000E` | `0x4652200000000004` | | +| Delivery note receipt type | `0x4652000000000009` | `0x4652200000000005` | | +| Bill receipt type | `0x4652000000000008` | `0x4652200000000006` | | +| Proforma invoice receipt type | `0x4652000000000008` | `0x4652200000000007` | | +| Unknown invoice type | `0x4652000000000003` | `0x4652200000001000` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2C invoice type | `0x4652000000000003` | `0x4652200000001001` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2B invoice type | `0x4652000000000003` | `0x4652200000001002` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2G invoice type | `0x4652000000000003` | `0x4652200000001003` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| Zero receipt dailyoperation type | `0x465200000000000F` | `0x4652200000002000` | | +| Shift closing dailyoperation type | `0x4652000000000004` | `0x4652200000002010` | | +| Daily closing dailyoperation type | `0x4652000000000005` | `0x4652200000002011` | | +| Monthly closing dailyoperation type | `0x4652000000000006` | `0x4652200000002012` | | +| Yearly closing dailyoperation type | `0x4652000000000007` | `0x4652200000002013` | | +| Unknown/unspecified protocol type | `0x4652000000000014` | `0x4652200000003000` | | +| Technical event protocol type | `0x4652000000000012` | `0x4652200000003001` | | +| Audit event / accounting event protocol type | `0x4652000000000013` | `0x4652200000003002` | | +| Internal usage / material consumption protocol type | `0x465200000000000D` | `0x4652200000003003` | | +| Order protocol type | `0x4652000000000008` | `0x4652200000003004` | | +| Pay protocol type | `0x4652000000000002` | `0x4652200000003005` | Payment prove | +| Copy receipt / re-print existing receipt protocol type | `0x4652000000000016` | `0x4652200000003010` | | +| Archive receipt / archive all previous data protocol type | `0x4652000000000015` | `0x4652200000003011` | | +| Start-receipt lifecycle type | `0x4652000000000010` | `0x4652200000004001` | | +| Stop-receipt lifecycle type | `0x4652000000000011` | `0x4652200000004002` | | +| IsReturn/IsRefund | `0x4652000000040000` | `0x4652200001000000` | Full return/refund receipt. If one or more charge items are returned/refunded, please use the appropriate receipt type and the corresponding ChargeItemCase tag. |
From 09ee3f5bc2c7c1437d10a7853645eba010252f58 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Tue, 16 Jun 2026 16:49:58 +0200 Subject: [PATCH 11/34] Updated mapping tables --- .../general/migration/v0-to-possystemapi.md | 792 +++++++++++++++--- 1 file changed, 660 insertions(+), 132 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index bf341d8..b599051 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -47,15 +47,15 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: The following table summarises the key architectural differences between the two integration approaches: -| Aspect | v0 (legacy) | v2 - PosSystem API | -|-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| -| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | -| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | -| **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | -| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client -| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | +| Aspect | v0 (legacy) | v2 - PosSystem API | +| ------ | ----------- | ------------------ | +| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | +| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | +| **Middleware component** | Queue package directly | LocalPosSystemApi Helper in front of the Queue | +| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | +| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client | +| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | - **v0 data flow:** @@ -73,14 +73,14 @@ POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiska If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: -| Environment | v0 base URL | v2 base URL | -|-------------|----------------------------------------------------------|------------------------------------------------------| -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | +| Environment | v0 base URL | v2 base URL | +| ----------- | ----------- | ----------- | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | :::info @@ -92,11 +92,9 @@ Replace all occurrences of the per-market v0 base URL in your integration with t The path structure changes accordingly: -| Operation | v0 path | v2 path | -|-----------|--------------------------------------------|--------------------------| -| Sign | `/[json|xml]/v0/sign` | `/api/v2/sign` | -| Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | -| Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | +- Sign - **v0 path:** `/[json|xml]/v0/sign`; **v2 path:** `/api/v2/sign` +- Echo - **v0 path:** `/[json|xml]/v0/echo`; **v2 path:** `/api/v2/echo` +- Journal - **v0 path:** `/[json|xml]/v0/journal`; **v2 path:** `/api/v2/journal` ### Case Values @@ -122,70 +120,204 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4154000000000001` | TODO | -| Zero receipt | `0x4154000000000002` | TODO | -| Initial operation / start receipt | `0x4154000000000003` | TODO | -| Out of operation / stop receipt | `0x4154000000000004` | TODO | -| Monthly closing | `0x4154000000000005` | TODO | -| Yearly closing | `0x4154000000000006` | TODO | +**Fixed Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | + +**Dynamics Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x4154_2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x4154_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4154_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4154_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4154_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x4154_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4154_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4154_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4154_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4154_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4154_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4154_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4154_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4154_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | Comment | -|---------------|----------|-----------------------|---------| -| Foreign sales | `0x465200000000000E` | `0x4652200008000000` | Unknown receipt type. Use this as a fallback; it is handled the same way as a point-of-sale receipt. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000001` | Point-of-sale receipt type. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000002` | Payment transfer receipt type. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000003` | Point-of-sale receipt without fiscalization obligation or with exceptions to fiscalization regulations. | -| Payment transfer | `0x465200000000000A` or `0x465200000000000B` or `0x465200000000000C` | `0x4652200000000002` | All payment transfer receipt types ; conditional. pay-in to drawer/till, pay-out from drawer/till | -| Point-of-sale receipt type without fiskalisation obligation or with exemption | `0x465200000000000E` | `0x4652200000000003` | | -| E-commerce receipt type | `0x465200000000000E` | `0x4652200000000004` | | -| Delivery note receipt type | `0x4652000000000009` | `0x4652200000000005` | | -| Bill receipt type | `0x4652000000000008` | `0x4652200000000006` | | -| Proforma invoice receipt type | `0x4652000000000008` | `0x4652200000000007` | | -| Unknown invoice type | `0x4652000000000003` | `0x4652200000001000` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2C invoice type | `0x4652000000000003` | `0x4652200000001001` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2B invoice type | `0x4652000000000003` | `0x4652200000001002` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2G invoice type | `0x4652000000000003` | `0x4652200000001003` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| Zero receipt dailyoperation type | `0x465200000000000F` | `0x4652200000002000` | | -| Shift closing dailyoperation type | `0x4652000000000004` | `0x4652200000002010` | | -| Daily closing dailyoperation type | `0x4652000000000005` | `0x4652200000002011` | | -| Monthly closing dailyoperation type | `0x4652000000000006` | `0x4652200000002012` | | -| Yearly closing dailyoperation type | `0x4652000000000007` | `0x4652200000002013` | | -| Unknown/unspecified protocol type | `0x4652000000000014` | `0x4652200000003000` | | -| Technical event protocol type | `0x4652000000000012` | `0x4652200000003001` | | -| Audit event / accounting event protocol type | `0x4652000000000013` | `0x4652200000003002` | | -| Internal usage / material consumption protocol type | `0x465200000000000D` | `0x4652200000003003` | | -| Order protocol type | `0x4652000000000008` | `0x4652200000003004` | | -| Pay protocol type | `0x4652000000000002` | `0x4652200000003005` | Payment prove | -| Copy receipt / re-print existing receipt protocol type | `0x4652000000000016` | `0x4652200000003010` | | -| Archive receipt / archive all previous data protocol type | `0x4652000000000015` | `0x4652200000003011` | | -| Start-receipt lifecycle type | `0x4652000000000010` | `0x4652200000004001` | | -| Stop-receipt lifecycle type | `0x4652000000000011` | `0x4652200000004002` | | -| IsReturn/IsRefund | `0x4652000000040000` | `0x4652200001000000` | Full return/refund receipt. If one or more charge items are returned/refunded, please use the appropriate receipt type and the corresponding ChargeItemCase tag. | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | +| `0x4652_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4652_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4652_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4652_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x4652_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4652_2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x4652_2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x4652_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x4652_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4652_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4445000100000001` | TODO | -| Zero receipt | `0x4445000000000002` | TODO | -| Initial operation / start receipt | `0x4445000000000003` | TODO | -| Out of operation / stop receipt | `0x4445000000000004` | TODO | -| Daily closing | `0x4445000000000007` | TODO | -| Start-transaction receipt | `0x4445000000000008` | TODO | -| Update-transaction receipt | `0x4445000000000009` | TODO | -| Fail-transaction receipt (single) | `0x444500000000000B` | TODO | -| Initiate SCU switch | `0x4445000000000017` | TODO | -| Finish SCU switch | `0x4445000000000018` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x4445_2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | +| `0x4445_2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x4445_2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x4445_2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x4445_2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | +| `0x4445_2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x4445_2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | +| `0x4445_2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | +| `0x4445_2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | +| `0x4445_2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | +| `0x4445_2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | +| `0x4445_2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | +| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4445_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4445_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4445_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4445_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4445_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4445_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4445_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -194,32 +326,387 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4154000000000003` | TODO | -| Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | -| Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4154_2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4154_2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4154_2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4154_2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4154_2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4154_2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4154_2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4154_2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4154_2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4154_2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4154_2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4154_2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4154_2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4154_2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4154_2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4154_2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4154_2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4154_2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4154_2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4154_2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4154_2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4154_2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4154_2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4154_2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x4154_2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4154_2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4154_2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4154_2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4154_2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4154_2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4154_2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4154_2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4154_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4154_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4652000000000003` | TODO | -| Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | -| Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4652_2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4652_2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4652_2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4652_2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4652_2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4652_2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4652_2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4652_2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4652_2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4652_2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4652_2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4652_2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4652_2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4652_2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4652_2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4652_2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4652_2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4652_2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4652_2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4652_2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4652_2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4652_2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4652_2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4652_2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x4652_2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4652_2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4652_2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4652_2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4652_2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4652_2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4652_2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4652_2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4652_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4652_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | -| Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x4445_2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x4445_2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x4445_2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x4445_2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x4445_2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x4445_2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x4445_2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x4445_2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x4445_2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x4445_2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x4445_2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x4445_2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x4445_2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x4445_2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x4445_2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x4445_2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x4445_2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x4445_2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x4445_2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x4445_2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x4445_2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x4445_2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4445_2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x4445_2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x4445_2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x4445_2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x4445_2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | +| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4445_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 |
@@ -228,51 +715,92 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4154000000000001` | TODO | -| Cash payment — foreign currency | `0x4154000000000002` | TODO | -| Crossed cheque | `0x4154000000000003` | TODO | -| Debit card payment | `0x4154000000000004` | TODO | -| Credit card payment | `0x4154000000000005` | TODO | -| Online payment | `0x4154000000000007` | TODO | -| Customer card payment | `0x4154000000000008` | TODO | -| SEPA transfer | `0x415400000000000C` | TODO | -| Internal material consumption | `0x4154000000000011` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | +| `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | +| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x4154_2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x4154_2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x4154_2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4154_2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x4154_2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4154_2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4154_2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4154_2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4154_2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4652000000000001` | TODO | -| Cash payment — foreign currency | `0x4652000000000002` | TODO | -| Crossed cheque | `0x4652000000000003` | TODO | -| Debit card payment | `0x4652000000000004` | TODO | -| Credit card payment | `0x4652000000000005` | TODO | -| Online payment | `0x4652000000000007` | TODO | -| Customer card payment | `0x4652000000000008` | TODO | -| SEPA transfer | `0x465200000000000C` | TODO | -| Internal material consumption | `0x4652000000000011` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | +| `0x4652_2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | +| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x4652_2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x4652_2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x4652_2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4652_2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x4652_2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4652_2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4652_2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4652_2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4652_2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4445000000000001` | TODO | -| Cash payment — foreign currency | `0x4445000000000002` | TODO | -| Crossed cheque | `0x4445000000000003` | TODO | -| Debit card payment | `0x4445000000000004` | TODO | -| Credit card payment | `0x4445000000000005` | TODO | -| Online payment | `0x4445000000000006` | TODO | -| Customer card payment | `0x4445000000000007` | TODO | -| SEPA transfer | `0x4445000000000008` | TODO | -| Internal material consumption | `0x444500000000000A` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | +| `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | +| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x4445_2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x4445_2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x4445_2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x4445_2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x4445_2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x4445_2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4445_2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x4445_2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x4445_2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x4445_2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee |
@@ -357,12 +885,12 @@ The inner string value for a given market key may be an empty string (`""`) when The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable. The key differences are: -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +| Field | v0 | v2 | +| ----- | -- | ---| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier` | Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. @@ -416,11 +944,11 @@ The portal-side configuration requires adding a **LocalPosSystemApi Helper** to The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: -| v0 call | v2 HTTP endpoint | Notes | -|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +| v0 call | v2 HTTP endpoint | Notes | +| -------- | ---------------- |------ | +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | ##### Authentication From b6a933b15822c795fa532b1829c0d44881b64939 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 17 Jun 2026 14:30:09 +0200 Subject: [PATCH 12/34] Added flag sections --- .../general/migration/v0-to-possystemapi.md | 689 ++++++++++++++++++ 1 file changed, 689 insertions(+) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index b599051..641b09d 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -321,6 +321,212 @@ A systematic approach to updating case values: +##### ftReceiptCaseFlag + +
+Austria (AT) + +**Fixed Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | + +**Dynamics Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x4154_2000_0800_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x4154_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4154_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4154_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4154_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | +| `0x4154_2000_0010_4000` | `0x0000_0000_0000_0000` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4154_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4154_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4154_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4154_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4154_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4154_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4154_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4154_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4154_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4154_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4154_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4652_2000_0800_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / signing certificate information (type2) | +| `0x4652_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4652_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4652_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4652_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | +| `0x4652_2000_0010_4000` | `0x0000_0000_0000_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4652_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4652_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4652_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4652_2000_0008_0000` | `0x0000_0000_0000_0000` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x4652_2000_0040_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x4652_2000_0080_0000` | `0x0000_0000_0000_0000` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x4652_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x4652_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4652_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4445_2000_0800_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0100_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x4445_2000_0010_2000` | `0x0000_0001_0080_0000` | Request additional SCU information / TSE (type2) | +| `0x4445_2000_0020_2000` | `0x0000_0001_0200_0000` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x4445_2000_0040_2000` | `0x0000_0001_0400_0000` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x4445_2000_0080_2000` | `0x0000_0001_0100_0000` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x4445_2000_0100_2000` | `0x0000_0001_0800_0000` | Request masterdata update (type2) | +| `0x4445_2000_0010_4000` | `0x0000_0001_0100_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x4445_2000_0000_0000` | `0x0000_0001_0000_0000` | Implicit flow for receipt type | +| `0x4445_2000_0000_1000` | `0x0000_0001_0000_0000` | Implicit flow for invoice type | +| `0x4445_2000_0000_3000` | `0x0000_0001_0000_0000` | Implicit flow for log type | +| `0x4445_2000_0000_0000` | `0x0000_0000_0000_0000` | Explicit flow for receipt type , no effect , information only | +| `0x4445_2000_0000_1000` | `0x0000_0000_0000_0000` | Explicit flow for invoice type , no effect , information only | +| `0x4445_2000_0000_3000` | `0x0000_0000_0000_0000` | Explicit flow for log type , no effect , information only | +| `0x4445_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4445_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4445_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4445_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4445_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4445_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4445_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4445_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4445_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4445_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4445_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ #### ftChargeItemCase
@@ -710,6 +916,395 @@ A systematic approach to updating case values:
+##### ftChargeItemCaseFlag + +
+Austria (AT) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_5008` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4154_2000_0000_0011` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_0000_0012` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_0000_0013` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4154_2000_0000_0014` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0015` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0016` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0017` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4154_2000_0000_0018` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0021` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4154_2000_0000_0022` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4154_2000_0000_0023` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4154_2000_0000_0024` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0025` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0026` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0027` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4154_2000_0000_0028` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0031` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4154_2000_0000_0032` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4154_2000_0000_0033` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4154_2000_0000_0034` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0035` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0036` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4154_2000_0000_0037` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4154_2000_0000_0038` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4154_2000_0000_0041` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4154_2000_0000_0042` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4154_2000_0000_0043` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4154_2000_0000_0044` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0045` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0046` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4154_2000_0000_0047` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4154_2000_0000_0048` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4154_2000_0000_0051` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4154_2000_0000_0052` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4154_2000_0000_0053` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4154_2000_0000_0054` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0055` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0056` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4154_2000_0000_0057` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4154_2000_0000_0058` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4154_2000_0000_0061` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4154_2000_0000_0062` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4154_2000_0000_0063` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4154_2000_0000_0064` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0065` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0066` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4154_2000_0000_0067` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4154_2000_0000_0068` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4154_2000_0000_0071` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4154_2000_0000_0072` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4154_2000_0000_0073` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4154_2000_0000_0074` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0075` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0076` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4154_2000_0000_0077` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4154_2000_0000_0078` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4154_2000_0000_0081` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4154_2000_0000_0082` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4154_2000_0000_0083` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4154_2000_0000_0084` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0085` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0086` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4154_2000_0000_0087` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4154_2000_0000_0088` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4154_2000_0000_0098` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4154_2000_0000_00A8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x4154_2000_0008_0000` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4154_2000_0008_0001` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4154_2000_0008_0002` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4154_2000_0008_0003` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4154_2000_0008_0004` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0005` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0006` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0007` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4154_2000_0008_0008` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0011` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_0008_0012` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_0008_0013` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4154_2000_0008_0014` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0015` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0016` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0017` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4154_2000_0008_0018` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0021` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4154_2000_0008_0022` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4154_2000_0008_0023` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4154_2000_0008_0024` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0025` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0026` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0027` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4154_2000_0008_0028` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4154_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4154_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4154_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4154_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_5008` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4652_2000_0000_0011` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_0000_0012` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_0000_0013` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4652_2000_0000_0014` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0015` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0016` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0017` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4652_2000_0000_0018` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0021` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4652_2000_0000_0022` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4652_2000_0000_0023` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4652_2000_0000_0024` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0025` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0026` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0027` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4652_2000_0000_0028` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0031` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4652_2000_0000_0032` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4652_2000_0000_0033` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4652_2000_0000_0034` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0035` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0036` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4652_2000_0000_0037` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4652_2000_0000_0038` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4652_2000_0000_0041` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4652_2000_0000_0042` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4652_2000_0000_0043` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4652_2000_0000_0044` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0045` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0046` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4652_2000_0000_0047` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4652_2000_0000_0048` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4652_2000_0000_0051` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4652_2000_0000_0052` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4652_2000_0000_0053` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4652_2000_0000_0054` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0055` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0056` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4652_2000_0000_0057` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4652_2000_0000_0058` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4652_2000_0000_0061` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4652_2000_0000_0062` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4652_2000_0000_0063` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4652_2000_0000_0064` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0065` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0066` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4652_2000_0000_0067` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4652_2000_0000_0068` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4652_2000_0000_0071` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4652_2000_0000_0072` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4652_2000_0000_0073` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4652_2000_0000_0074` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0075` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0076` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4652_2000_0000_0077` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4652_2000_0000_0078` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4652_2000_0000_0081` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4652_2000_0000_0082` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4652_2000_0000_0083` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4652_2000_0000_0084` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0085` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0086` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4652_2000_0000_0087` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4652_2000_0000_0088` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4652_2000_0000_0098` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4652_2000_0000_00A8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x4652_2000_0008_0000` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4652_2000_0008_0001` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4652_2000_0008_0002` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4652_2000_0008_0003` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4652_2000_0008_0004` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0005` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0006` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0007` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4652_2000_0008_0008` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0011` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_0008_0012` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_0008_0013` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4652_2000_0008_0014` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0015` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0016` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0017` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4652_2000_0008_0018` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0021` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4652_2000_0008_0022` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4652_2000_0008_0023` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4652_2000_0008_0024` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0025` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0026` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0027` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4652_2000_0008_0028` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4652_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4652_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0006` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x4445_2000_0000_0011` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x4445_2000_0000_0012` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0013` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x4445_2000_0000_0014` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0015` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0016` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0017` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x4445_2000_0000_0018` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x4445_2000_0000_0021` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x4445_2000_0000_0022` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0023` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x4445_2000_0000_0024` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0025` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0026` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0027` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x4445_2000_0000_0028` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x4445_2000_0010_0002` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0010_0003` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x4445_2000_0010_0004` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x4445_2000_0010_0005` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x4445_2000_0010_0006` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0010_0007` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x4445_2000_0010_0008` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x4445_2000_0012_0001` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x4445_2000_0012_0002` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0012_0003` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x4445_2000_0012_0004` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x4445_2000_0012_0005` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x4445_2000_0012_0006` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0012_0007` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x4445_2000_0012_0008` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x4445_2000_0004_0001` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_0004_0002` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0004_0004` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0004_0005` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0007` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0004_0008` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0004_0001` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0004_0002` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0004_0004` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0004_0005` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0007` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0004_0008` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0081` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0082` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0083` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x4445_2000_0000_0084` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0085` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0086` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0087` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x4445_2000_0000_0088` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x4445_2000_0000_0031` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x4445_2000_0000_0032` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0033` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x4445_2000_0000_0034` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0035` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0036` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0037` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x4445_2000_0000_0038` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x4445_2000_0000_0041` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0042` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0000_0044` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0045` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0046` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0047` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0041` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0042` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0000_0044` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0045` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0046` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0047` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0091` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x4445_2000_0000_0092` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x4445_2000_0000_0094` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x4445_2000_0000_0095` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x4445_2000_0000_0096` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0097` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x4445_2000_0000_0098` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x4445_2000_0000_0091` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x4445_2000_0000_0092` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x4445_2000_0000_0094` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x4445_2000_0000_0095` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x4445_2000_0000_0096` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0097` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x4445_2000_0000_0098` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x4445_2000_0008_0001` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_0008_0002` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0008_0004` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0008_0005` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0007` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0008_0008` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0008_0001` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0008_0002` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0008_0004` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0008_0005` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0007` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0008_0008` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_00A8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x4445_2000_0000_5008` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4445_2000_0000_0061` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x4445_2000_0000_0062` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x4445_2000_0000_0063` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x4445_2000_0000_0064` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0065` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0066` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x4445_2000_0000_0067` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x4445_2000_0000_0051` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0052` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0053` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0054` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0055` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0056` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0057` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0058` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0071` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0072` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0073` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0074` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0075` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0076` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0077` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0078` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x4445_2000_0020_0000` | `0x0000_0000_0001_0000` | v2 Take Away | +| `0x4445_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4445_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4445_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4445_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | + +
+ #### ftPayItemCase
@@ -804,6 +1399,100 @@ A systematic approach to updating case values:
+##### ftPayItemCaseFlag + +
+Austria (AT) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Cash payment | +| `0x4154_2000_0010_0001` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0007` | Online payment | +| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x4154_2000_0000_0009` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x4154_2000_0000_000A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x4154_2000_0000_000B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4154_2000_0000_000D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x4154_2000_0000_000E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4154_2000_0000_000F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4154_2000_0008_0009` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4154_2000_0020_0001` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4154_2000_0040_0001` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Cash payment | +| `0x4652_2000_0010_0001` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0007` | Online payment | +| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x4652_2000_0000_0009` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x4652_2000_0000_000A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x4652_2000_0000_000B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4652_2000_0000_000D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x4652_2000_0000_000E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4652_2000_0000_000F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4652_2000_0008_0009` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4652_2000_0020_0001` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4652_2000_0040_0001` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Cash payment | +| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x4445_2000_0000_0006` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Online payment | +| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x4445_2000_0000_0009` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x4445_2000_0000_000A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x4445_2000_0000_000B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x4445_2000_0000_000D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x4445_2000_0000_000E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x4445_2000_0000_000F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4445_2000_0008_0009` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x4445_2000_0020_0001` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x4445_2000_0030_0001` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x4445_2000_0040_0001` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | + +
+ Key differences highlighted: 1. The base URL changes. 2. All case numeric values must be remapped. From cee8ad9fcc41c2262453ceca33333a6d30f466d7 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 17 Jun 2026 16:01:10 +0200 Subject: [PATCH 13/34] Replaced tables with a note --- .../general/migration/v0-to-possystemapi.md | 735 +----------------- 1 file changed, 27 insertions(+), 708 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 641b09d..6ae4183 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -122,8 +122,8 @@ A systematic approach to updating case values: **Fixed Mappings** -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | | `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | @@ -156,8 +156,8 @@ A systematic approach to updating case values: **Dynamics Mappings** -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | @@ -188,8 +188,8 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | | `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | @@ -251,8 +251,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | | `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | @@ -321,219 +321,13 @@ A systematic approach to updating case values:
-##### ftReceiptCaseFlag - -
-Austria (AT) - -**Fixed Mappings** - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | -| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | -| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | -| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | -| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | -| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | -| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | -| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | -| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | -| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | -| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | -| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | -| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | -| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | -| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | -| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | -| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | -| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | -| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | -| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | -| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | -| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | - -**Dynamics Mappings** - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | -| `0x4154_2000_0800_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / RKSV signing certificate information (type2) | -| `0x4154_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4154_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4154_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4154_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | -| `0x4154_2000_0010_4000` | `0x0000_0000_0000_0000` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4154_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4154_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4154_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4154_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4154_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4154_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4154_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4154_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4154_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4154_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4154_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4652_2000_0800_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | -| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | -| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | -| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | -| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | -| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | -| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | -| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | -| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | -| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | -| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | -| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | -| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | -| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | -| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | -| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | -| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | -| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | -| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | -| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | -| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | -| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / signing certificate information (type2) | -| `0x4652_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4652_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4652_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4652_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | -| `0x4652_2000_0010_4000` | `0x0000_0000_0000_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4652_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4652_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4652_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4652_2000_0008_0000` | `0x0000_0000_0000_0000` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | -| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | -| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | -| `0x4652_2000_0040_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | -| `0x4652_2000_0080_0000` | `0x0000_0000_0000_0000` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | -| `0x4652_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | -| `0x4652_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4652_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4445_2000_0800_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0100_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | -| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | -| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | -| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | -| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | -| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | -| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | -| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | -| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | -| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | -| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | -| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | -| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | -| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | -| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | -| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | -| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | -| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | -| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | -| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | -| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | -| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | -| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | -| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | -| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | -| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | -| `0x4445_2000_0010_2000` | `0x0000_0001_0080_0000` | Request additional SCU information / TSE (type2) | -| `0x4445_2000_0020_2000` | `0x0000_0001_0200_0000` | Request download of SCU journal / force TSE-TAR file download (type2) | -| `0x4445_2000_0040_2000` | `0x0000_0001_0400_0000` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | -| `0x4445_2000_0080_2000` | `0x0000_0001_0100_0000` | Request execute SCU self-test / execute TSE self-test (type2) | -| `0x4445_2000_0100_2000` | `0x0000_0001_0800_0000` | Request masterdata update (type2) | -| `0x4445_2000_0010_4000` | `0x0000_0001_0100_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | -| `0x4445_2000_0000_0000` | `0x0000_0001_0000_0000` | Implicit flow for receipt type | -| `0x4445_2000_0000_1000` | `0x0000_0001_0000_0000` | Implicit flow for invoice type | -| `0x4445_2000_0000_3000` | `0x0000_0001_0000_0000` | Implicit flow for log type | -| `0x4445_2000_0000_0000` | `0x0000_0000_0000_0000` | Explicit flow for receipt type , no effect , information only | -| `0x4445_2000_0000_1000` | `0x0000_0000_0000_0000` | Explicit flow for invoice type , no effect , information only | -| `0x4445_2000_0000_3000` | `0x0000_0000_0000_0000` | Explicit flow for log type , no effect , information only | -| `0x4445_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4445_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4445_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4445_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4445_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4445_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4445_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4445_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4445_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4445_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4445_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- #### ftChargeItemCase
Austria (AT) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | | `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | @@ -646,8 +440,8 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | | `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | @@ -760,8 +554,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | | `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | @@ -916,402 +710,13 @@ A systematic approach to updating case values:
-##### ftChargeItemCaseFlag - -
-Austria (AT) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_5008` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4154_2000_0000_0011` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_0000_0012` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_0000_0013` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4154_2000_0000_0014` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0015` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0016` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0017` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4154_2000_0000_0018` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0021` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4154_2000_0000_0022` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4154_2000_0000_0023` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4154_2000_0000_0024` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0025` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0026` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0027` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4154_2000_0000_0028` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0031` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4154_2000_0000_0032` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4154_2000_0000_0033` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4154_2000_0000_0034` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0035` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0036` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4154_2000_0000_0037` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4154_2000_0000_0038` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4154_2000_0000_0041` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4154_2000_0000_0042` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4154_2000_0000_0043` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4154_2000_0000_0044` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0045` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0046` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4154_2000_0000_0047` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4154_2000_0000_0048` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4154_2000_0000_0051` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4154_2000_0000_0052` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4154_2000_0000_0053` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4154_2000_0000_0054` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0055` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0056` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4154_2000_0000_0057` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4154_2000_0000_0058` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4154_2000_0000_0061` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4154_2000_0000_0062` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4154_2000_0000_0063` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4154_2000_0000_0064` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0065` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0066` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4154_2000_0000_0067` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4154_2000_0000_0068` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4154_2000_0000_0071` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4154_2000_0000_0072` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4154_2000_0000_0073` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4154_2000_0000_0074` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0075` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0076` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4154_2000_0000_0077` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4154_2000_0000_0078` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4154_2000_0000_0081` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4154_2000_0000_0082` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4154_2000_0000_0083` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4154_2000_0000_0084` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0085` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0086` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4154_2000_0000_0087` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4154_2000_0000_0088` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4154_2000_0000_0098` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4154_2000_0000_00A8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | -| `0x4154_2000_0008_0000` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4154_2000_0008_0001` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4154_2000_0008_0002` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4154_2000_0008_0003` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4154_2000_0008_0004` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0005` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0006` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0007` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4154_2000_0008_0008` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0011` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_0008_0012` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_0008_0013` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4154_2000_0008_0014` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0015` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0016` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0017` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4154_2000_0008_0018` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0021` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4154_2000_0008_0022` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4154_2000_0008_0023` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4154_2000_0008_0024` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0025` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0026` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0027` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4154_2000_0008_0028` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4154_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4154_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4154_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4154_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_5008` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4652_2000_0000_0011` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_0000_0012` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_0000_0013` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4652_2000_0000_0014` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0015` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0016` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0017` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4652_2000_0000_0018` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0021` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4652_2000_0000_0022` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4652_2000_0000_0023` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4652_2000_0000_0024` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0025` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0026` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0027` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4652_2000_0000_0028` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0031` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4652_2000_0000_0032` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4652_2000_0000_0033` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4652_2000_0000_0034` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0035` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0036` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4652_2000_0000_0037` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4652_2000_0000_0038` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4652_2000_0000_0041` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4652_2000_0000_0042` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4652_2000_0000_0043` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4652_2000_0000_0044` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0045` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0046` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4652_2000_0000_0047` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4652_2000_0000_0048` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4652_2000_0000_0051` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4652_2000_0000_0052` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4652_2000_0000_0053` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4652_2000_0000_0054` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0055` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0056` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4652_2000_0000_0057` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4652_2000_0000_0058` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4652_2000_0000_0061` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4652_2000_0000_0062` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4652_2000_0000_0063` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4652_2000_0000_0064` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0065` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0066` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4652_2000_0000_0067` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4652_2000_0000_0068` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4652_2000_0000_0071` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4652_2000_0000_0072` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4652_2000_0000_0073` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4652_2000_0000_0074` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0075` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0076` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4652_2000_0000_0077` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4652_2000_0000_0078` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4652_2000_0000_0081` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4652_2000_0000_0082` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4652_2000_0000_0083` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4652_2000_0000_0084` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0085` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0086` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4652_2000_0000_0087` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4652_2000_0000_0088` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4652_2000_0000_0098` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4652_2000_0000_00A8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | -| `0x4652_2000_0008_0000` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4652_2000_0008_0001` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4652_2000_0008_0002` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4652_2000_0008_0003` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4652_2000_0008_0004` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0005` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0006` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0007` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4652_2000_0008_0008` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0011` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_0008_0012` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_0008_0013` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4652_2000_0008_0014` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0015` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0016` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0017` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4652_2000_0008_0018` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0021` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4652_2000_0008_0022` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4652_2000_0008_0023` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4652_2000_0008_0024` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0025` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0026` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0027` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4652_2000_0008_0028` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4652_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4652_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0006` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | -| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | -| `0x4445_2000_0000_0011` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | -| `0x4445_2000_0000_0012` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0013` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | -| `0x4445_2000_0000_0014` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0015` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0016` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0017` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | -| `0x4445_2000_0000_0018` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | -| `0x4445_2000_0000_0021` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | -| `0x4445_2000_0000_0022` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0023` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | -| `0x4445_2000_0000_0024` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0025` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0026` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0027` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | -| `0x4445_2000_0000_0028` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | -| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | -| `0x4445_2000_0010_0002` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0010_0003` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | -| `0x4445_2000_0010_0004` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | -| `0x4445_2000_0010_0005` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | -| `0x4445_2000_0010_0006` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0010_0007` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | -| `0x4445_2000_0010_0008` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | -| `0x4445_2000_0012_0001` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | -| `0x4445_2000_0012_0002` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0012_0003` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | -| `0x4445_2000_0012_0004` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | -| `0x4445_2000_0012_0005` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | -| `0x4445_2000_0012_0006` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0012_0007` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | -| `0x4445_2000_0012_0008` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | -| `0x4445_2000_0004_0001` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_0004_0002` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0004_0004` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0004_0005` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0007` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0004_0008` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0004_0001` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0004_0002` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0004_0004` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0004_0005` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0007` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0004_0008` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0081` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0082` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0083` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | -| `0x4445_2000_0000_0084` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0085` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0086` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0087` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | -| `0x4445_2000_0000_0088` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | -| `0x4445_2000_0000_0031` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | -| `0x4445_2000_0000_0032` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0033` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | -| `0x4445_2000_0000_0034` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0035` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0036` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0037` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | -| `0x4445_2000_0000_0038` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | -| `0x4445_2000_0000_0041` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0042` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0000_0044` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0045` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0046` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0047` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0041` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0042` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0000_0044` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0045` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0046` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0047` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0091` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | -| `0x4445_2000_0000_0092` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | -| `0x4445_2000_0000_0094` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | -| `0x4445_2000_0000_0095` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | -| `0x4445_2000_0000_0096` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0097` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | -| `0x4445_2000_0000_0098` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | -| `0x4445_2000_0000_0091` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | -| `0x4445_2000_0000_0092` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | -| `0x4445_2000_0000_0094` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | -| `0x4445_2000_0000_0095` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | -| `0x4445_2000_0000_0096` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0097` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | -| `0x4445_2000_0000_0098` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | -| `0x4445_2000_0008_0001` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_0008_0002` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0008_0004` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0008_0005` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0007` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0008_0008` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0008_0001` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0008_0002` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0008_0004` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0008_0005` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0007` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0008_0008` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_00A8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | -| `0x4445_2000_0000_5008` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4445_2000_0000_0061` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | -| `0x4445_2000_0000_0062` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | -| `0x4445_2000_0000_0063` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | -| `0x4445_2000_0000_0064` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0065` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0066` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | -| `0x4445_2000_0000_0067` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | -| `0x4445_2000_0000_0051` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0052` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0053` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0054` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0055` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0056` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0057` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0058` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0071` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0072` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0073` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0074` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0075` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0076` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0077` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0078` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | -| `0x4445_2000_0020_0000` | `0x0000_0000_0001_0000` | v2 Take Away | -| `0x4445_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4445_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4445_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4445_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | - -
- #### ftPayItemCase
Austria (AT) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | | `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | | `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | @@ -1339,7 +744,7 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | +| **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | ----------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | | `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | @@ -1368,8 +773,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | | `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | | `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | @@ -1399,105 +804,19 @@ A systematic approach to updating case values:
-##### ftPayItemCaseFlag - -
-Austria (AT) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Cash payment | -| `0x4154_2000_0010_0001` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Crossed check payment | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Debit card payment | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Credit card payment | -| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0006` | Voucher payment | -| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0007` | Online payment | -| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | -| `0x4154_2000_0000_0009` | `0x4154_0000_0000_000B` | Accounts receiveable | -| `0x4154_2000_0000_000A` | `0x4154_0000_0000_000C` | Sepa wire transfer | -| `0x4154_2000_0000_000B` | `0x4154_0000_0000_000D` | Other wire/bank transer | -| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4154_2000_0000_000D` | `0x4154_0000_0000_0011` | Internal / material consumption | -| `0x4154_2000_0000_000E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4154_2000_0000_000F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4154_2000_0008_0009` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4154_2000_0020_0001` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4154_2000_0040_0001` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Cash payment | -| `0x4652_2000_0010_0001` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Crossed check payment | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Debit card payment | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Credit card payment | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0006` | Voucher payment | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0007` | Online payment | -| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | -| `0x4652_2000_0000_0009` | `0x4652_0000_0000_000B` | Accounts receiveable | -| `0x4652_2000_0000_000A` | `0x4652_0000_0000_000C` | Sepa wire transfer | -| `0x4652_2000_0000_000B` | `0x4652_0000_0000_000D` | Other wire/bank transer | -| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4652_2000_0000_000D` | `0x4652_0000_0000_0011` | Internal / material consumption | -| `0x4652_2000_0000_000E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4652_2000_0000_000F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4652_2000_0008_0009` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4652_2000_0020_0001` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4652_2000_0040_0001` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Cash payment | -| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0003` | Crossed check payment | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0004` | Debit card payment | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0005` | Credit card payment | -| `0x4445_2000_0000_0006` | `0x4445_0000_0000_000D` | Voucher payment | -| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Online payment | -| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | -| `0x4445_2000_0000_0009` | `0x4445_0000_0000_000E` | Accounts receiveable | -| `0x4445_2000_0000_000A` | `0x4445_0000_0000_0008` | Sepa wire transfer | -| `0x4445_2000_0000_000B` | `0x4445_0000_0000_0009` | Other wire/bank transer | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | -| `0x4445_2000_0000_000D` | `0x4445_0000_0000_000A` | Internal / material consumption | -| `0x4445_2000_0000_000E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | -| `0x4445_2000_0000_000F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4445_2000_0008_0009` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | -| `0x4445_2000_0020_0001` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | -| `0x4445_2000_0030_0001` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | -| `0x4445_2000_0040_0001` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | - -
- Key differences highlighted: 1. The base URL changes. 2. All case numeric values must be remapped. 3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string. +:::info Important + +For the `ftReceiptCaseFlag`, `ftChargeItemCaseFlag`, and `ftPayItemCaseFlag` fields, replace every lowercase letter `o` in flag values with the digit `0` (zero). Examples: +- `0x4154_2oo0_oo8o_2ooo` → `0x4154_2000_0080_2000` +- `0xoooo_oooo_oooo_oooo` → `0x0000_0000_0000_0000` + +::: + #### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. From 2c8d31fca0bee1022c09431e31042d9c1e6d3896 Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 18 Jun 2026 14:56:46 +0200 Subject: [PATCH 14/34] Revise migration guide for PosSystem API updates Updated migration documentation for the PosSystem API, including changes to Launcher requirements, market-specific constraints, and data flow. Revised API endpoint paths and authentication headers. --- .../general/migration/v0-to-possystemapi.md | 71 ++++--------------- 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 6ae4183..2e9dbba 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -31,44 +31,17 @@ Before starting the migration, ensure you have: - Access to the **fiskaltrust.Portal** to reconfigure CashBoxes. - An existing integration that successfully produces receipts against the v0 SignatureCloud API. - Access to a **sandbox cashbox** for testing your migrated integration before going live. -- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. -:::caution Market availability +:::caution Market availability for local setups The PosSystem API via Launcher 2.0 has market-specific constraints: - **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. -- **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. +- **France (FR):** Launcher 2.0 is not yet supported. The workaround is setting 2 cashboxes, one with the queue and one with the POSSystemAPI helper without a queue. French customers should contact fiskaltrust for more instructions if needed. - **Germany (DE):** TBD ::: -## Architecture Overview - -The following table summarises the key architectural differences between the two integration approaches: - -| Aspect | v0 (legacy) | v2 - PosSystem API | -| ------ | ----------- | ------------------ | -| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | -| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | -| **Middleware component** | Queue package directly | LocalPosSystemApi Helper in front of the Queue | -| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client | -| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | - -- **v0 data flow:** - -``` -POS System → WCF or REST (/v0/) → fiskaltrust Queue -``` - -- **v2 data flow:** - -``` -POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue -``` - ## Cloud CashBox (base URL change) If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: @@ -92,9 +65,9 @@ Replace all occurrences of the per-market v0 base URL in your integration with t The path structure changes accordingly: -- Sign - **v0 path:** `/[json|xml]/v0/sign`; **v2 path:** `/api/v2/sign` -- Echo - **v0 path:** `/[json|xml]/v0/echo`; **v2 path:** `/api/v2/echo` -- Journal - **v0 path:** `/[json|xml]/v0/journal`; **v2 path:** `/api/v2/journal` +- Sign - **v0 path:** `/[json|xml]/sign`; **v2 path:** `/sign` +- Echo - **v0 path:** `/[json|xml]/echo`; **v2 path:** `/echo` +- Journal - **v0 path:** `/[json|xml]/journal`; **v2 path:** `/journal` ### Case Values @@ -909,27 +882,6 @@ The `ReceiptResponse` structure is largely compatible. Verify that your receipt - `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations. - `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states. -#### Timestamps - -The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: - -``` -// v0 example -proxy.Journal(ftJournalType, 0, DateTime.UtcNow.Ticks); -``` - -The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: - -```json -{ - "ftJournalType": 8301034833876213761, - "from": "2020-01-01T00:00:00Z", - "to": "2024-12-31T23:59:59Z" -} -``` - -If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). - ## Local CashBox :::note Sandbox/admin access only @@ -954,17 +906,18 @@ The three core operations map directly from v0 to v2, but the calling convention | v0 call | v2 HTTP endpoint | Notes | | -------- | ---------------- |------ | -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +| `proxy.Echo("message")` | `POST /v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | ##### Authentication All v2 requests must include the following HTTP headers: ``` -cashboxid: -accesstoken: +x-cashbox-id : +x-cashbox-accesstoken : +x-operation-id : a UUID randomly generated on your side ``` Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal. For more information, see how to [Test the PosSystem API Helper](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper). @@ -974,7 +927,7 @@ Both values are available on the CashBox page in the fiskaltrust.Portal. On firs **Request:** ```json -POST /api/v2/echo +POST /v2/echo { "message": "test" } From 61011fa27c4d367cebe25afa57350adef4f77e0f Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 18 Jun 2026 15:01:11 +0200 Subject: [PATCH 15/34] Remove country codes Country codes are depreciated in the POSSystemAPI and not needed anymore --- .../general/migration/v0-to-possystemapi.md | 1212 ++++++++--------- 1 file changed, 606 insertions(+), 606 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 2e9dbba..6aa6016 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -83,7 +83,7 @@ A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. 2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. -3. Replace the v0 value with the v2 value shown in the platform example. +3. Replace the v0 value with the v2 value shown in the platform example. Remove the country code (4154 for AT, 4445 for DE and 4652 for FR) which is not needed anymore. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). 5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. 6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. @@ -97,64 +97,64 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | -| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | -| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | -| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | -| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | -| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | -| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | -| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | -| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | -| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | -| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | -| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | -| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | -| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | -| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | -| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | -| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | -| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | -| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | -| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | -| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | -| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | **Dynamics Mappings** | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | -| `0x4154_2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | -| `0x4154_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4154_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4154_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4154_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | -| `0x4154_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4154_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4154_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4154_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4154_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4154_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4154_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4154_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4154_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -163,61 +163,61 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | -| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | -| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | -| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | -| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | -| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | -| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | -| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | -| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | -| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | -| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | -| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | -| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | -| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | -| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | -| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | -| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | -| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | -| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | -| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | -| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | -| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | -| `0x4652_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4652_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4652_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4652_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | -| `0x4652_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4652_2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | -| `0x4652_2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | -| `0x4652_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | -| `0x4652_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4652_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -226,71 +226,71 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | -| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | -| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | -| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | -| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | -| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | -| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | -| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | -| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | -| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | -| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | -| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | -| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | -| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | -| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | -| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | -| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | -| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | -| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | -| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | -| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | -| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | -| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | -| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | -| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | -| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | -| `0x4445_2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | -| `0x4445_2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | -| `0x4445_2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | -| `0x4445_2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | -| `0x4445_2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | -| `0x4445_2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | -| `0x4445_2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | -| `0x4445_2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | -| `0x4445_2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | -| `0x4445_2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | -| `0x4445_2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | -| `0x4445_2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | -| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4445_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4445_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4445_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4445_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4445_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4445_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4445_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | +| `0x2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | +| `0x2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | +| `0x2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | +| `0x2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | +| `0x2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -301,112 +301,112 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4154_2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4154_2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4154_2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4154_2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4154_2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4154_2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4154_2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4154_2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4154_2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4154_2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4154_2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4154_2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4154_2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4154_2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4154_2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4154_2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4154_2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4154_2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4154_2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4154_2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4154_2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4154_2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4154_2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4154_2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | -| `0x4154_2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4154_2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4154_2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4154_2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4154_2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4154_2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4154_2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4154_2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4154_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4154_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
@@ -415,112 +415,112 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4652_2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4652_2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4652_2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4652_2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4652_2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4652_2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4652_2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4652_2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4652_2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4652_2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4652_2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4652_2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4652_2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4652_2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4652_2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4652_2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4652_2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4652_2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4652_2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4652_2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4652_2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4652_2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4652_2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4652_2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | -| `0x4652_2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4652_2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4652_2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4652_2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4652_2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4652_2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4652_2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4652_2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4652_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4652_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
@@ -529,157 +529,157 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | -| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | -| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | -| `0x4445_2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | -| `0x4445_2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | -| `0x4445_2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | -| `0x4445_2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | -| `0x4445_2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | -| `0x4445_2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | -| `0x4445_2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | -| `0x4445_2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | -| `0x4445_2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | -| `0x4445_2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | -| `0x4445_2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | -| `0x4445_2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | -| `0x4445_2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | -| `0x4445_2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | -| `0x4445_2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | -| `0x4445_2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | -| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | -| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | -| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | -| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | -| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | -| `0x4445_2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | -| `0x4445_2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | -| `0x4445_2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | -| `0x4445_2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | -| `0x4445_2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | -| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | -| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | -| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | -| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | -| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | -| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | -| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | -| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | -| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | -| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | -| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | -| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | -| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | -| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | -| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | -| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | -| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | -| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | -| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | -| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | -| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | -| `0x4445_2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4445_2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | -| `0x4445_2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | -| `0x4445_2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | -| `0x4445_2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | -| `0x4445_2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | -| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | -| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4445_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | @@ -690,27 +690,27 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | -| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | -| `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | -| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | -| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | -| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | -| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | -| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | -| `0x4154_2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | -| `0x4154_2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | -| `0x4154_2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | -| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4154_2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | -| `0x4154_2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4154_2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4154_2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4154_2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4154_2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | +| `0x2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | @@ -719,27 +719,27 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | -| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | -| `0x4652_2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | -| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | -| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | -| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | -| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | -| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | -| `0x4652_2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | -| `0x4652_2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | -| `0x4652_2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | -| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4652_2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | -| `0x4652_2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4652_2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4652_2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4652_2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4652_2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | +| `0x2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | @@ -748,32 +748,32 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | -| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | -| `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | -| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | -| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | -| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | -| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | -| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | -| `0x4445_2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | -| `0x4445_2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | -| `0x4445_2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | -| `0x4445_2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | -| `0x4445_2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | -| `0x4445_2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4445_2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | -| `0x4445_2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | -| `0x4445_2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | -| `0x4445_2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | +| `0x2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | @@ -785,7 +785,7 @@ Key differences highlighted: :::info Important For the `ftReceiptCaseFlag`, `ftChargeItemCaseFlag`, and `ftPayItemCaseFlag` fields, replace every lowercase letter `o` in flag values with the digit `0` (zero). Examples: -- `0x4154_2oo0_oo8o_2ooo` → `0x4154_2000_0080_2000` +- `0x2oo0_oo8o_2ooo` → `0x2000_0080_2000` - `0xoooo_oooo_oooo_oooo` → `0x0000_0000_0000_0000` ::: From 1b37bf10c34c93e35e96c9a8cb5803fbb0351096 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:41:56 +0000 Subject: [PATCH 16/34] docs: add v0 to PosSystem API (v2) migration guide and cross-links Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/b1475a47-bd10-46a5-bdc9-dcc1fc252b0a Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/communication/communication.md | 6 + .../function-structures.md | 6 + .../general/migration/v0-to-possystemapi.md | 162 ++++++++++++++++++ .../middleware-at-rksv/appendix-at-rksv.md | 6 + .../appendix-fr-boi-tva-decla-30-10-30.md | 6 + poscreators/toc.js | 9 + .../middleware/helper-possystemapi.md | 6 + 7 files changed, 201 insertions(+) create mode 100644 poscreators/middleware-doc/general/migration/v0-to-possystemapi.md diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index ab51961..63cfb60 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -5,6 +5,12 @@ title: Communication # Communication +:::info Migrating to PosSystem API (v2)? + +If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). + +::: + The fiskaltrust.Middleware supports different communication protocols, effectively giving our users the possibility to use it on all currently available platforms and implement the interface in all state-of-the-art programming languages. This enables our users to choose the communication type that suits their scenario best. The communication protocol is specified by setting the respective URL in the package configuration of the fiskaltrust.Portal. The buttons to the right of the URL field can be used to quickly insert the respective URL: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index f541748..6c9c389 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -5,6 +5,12 @@ title: Function Structures # Function Structures +:::info Migrating to PosSystem API (v2)? + +If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). + +::: + ## iPOS Interface This interface is a communication channel for interacting with the fiskaltrust.Middleware. It provides three basic functions: "echo", "sign", and "journal". The functions "echo" and "sign" return bare-objects, the function "journal" returns a wrapped-object. diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md new file mode 100644 index 0000000..1b3ff2e --- /dev/null +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -0,0 +1,162 @@ +--- +slug: /poscreators/middleware-doc/general/migration/v0-to-possystemapi +title: Migrating from v0 to PosSystem API (v2) +--- + +# Migrating from v0 to PosSystem API (v2) + +:::info summary + +After reading this guide, you will understand the differences between the legacy `ifPOS.v0` interface and the new PosSystem API (v2), and be able to migrate your integration to the v2 stack. + +::: + +## Why migrate? + +The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. + +Migrating to v2 gives you: + +- Access to e-invoicing features and all future compliance capabilities +- A modern, standard HTTP/REST API that works with any programming language or framework +- PIN-based pairing for simpler, more secure authentication setup +- Active support and ongoing development + +## Prerequisites + +Before starting the migration, ensure you have: + +- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes +- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0 +- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) + +:::caution Market availability + +The PosSystem API via Launcher 2.0 has market-specific constraints: + +- **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. +- **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. + +::: + +## Architecture overview + +The following table summarises the key architectural differences between the two integration approaches: + +| Aspect | v0 (legacy) | v2 — PosSystem API | +|-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| +| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | +| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | +| **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | +| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | +| **Authentication** | CashboxID + AccessToken (per request / in service binding) | CashboxID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client; official devkit available | +| **New feature support** | None — no new features planned | All new features (e-invoicing, etc.) | + +**v0 data flow:** + +``` +POS System → WCF or REST (/v0/) → fiskaltrust Queue +``` + +**v2 data flow:** + +``` +POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue +``` + +## Configuration steps + +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: + +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal +2. Configuring the Helper URL +3. Assigning the Helper to the relevant CashBox +4. Rebuilding the CashBox configuration +5. Downloading and running Launcher 2.0 + +## API changes + +### Method mapping + +The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: + +| v0 call | v2 HTTP endpoint | Notes | +|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request/response body is a JSON object `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | + +#### Authentication + +All v2 requests must include the following HTTP headers: + +``` +cashboxid: +accesstoken: +``` + +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). + +### ReceiptRequest changes + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + +### ReceiptResponse changes + +The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: + +- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations +- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states + +### Timestamps + +The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: + +``` +// v0 example +proxy.Journal(ftJournalType, 0, DateTime.UtcNow.Ticks); +``` + +The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: + +```json +{ + "ftJournalType": 8301034833876213761, + "from": "2020-01-01T00:00:00Z", + "to": "2024-12-31T23:59:59Z" +} +``` + +If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). + +## Testing the migration + +The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developer.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. + +For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. + +## Cutover considerations + +:::caution No parallel operation + +Running the v0 and v2 interfaces in parallel on the same CashBox is not recommended. Perform the migration as a **clean cutover** per CashBox: reconfigure the CashBox with the LocalPosSystemApi Helper, rebuild it, deploy the new Launcher 2.0 package, then switch your POS system to use the new v2 endpoint. Ensure any buffered or in-flight v0 receipts are processed and closed before switching. + +::: + +A recommended cutover sequence: + +1. Complete all open transactions / close the current business day in the POS system +2. Reconfigure the CashBox in the Portal (add Helper, rebuild) +3. Deploy Launcher 2.0 to the POS terminal +4. Update the POS system to call the v2 endpoint +5. Send a test Echo request to confirm connectivity before going live diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index 716816f..ae70f99 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -17,4 +17,10 @@ https://www.lindeverlag.at/onlineprodukt/handbuch-registrierkassen-und-belegerte Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungspflicht, 2. Auflage 2019, Linde Verlag Wien. ISBN: 9783707335910 +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. + +::: + diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index bc27bd8..8ebacda 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -23,4 +23,10 @@ The technical specification of the data interface described in this document pro The interface specification is provided by fiskaltrust.Interface NuGet package, which can be found at https://www.nuget.org/packages/fiskaltrust.interface. +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. + +::: + diff --git a/poscreators/toc.js b/poscreators/toc.js index e3be2b6..9e4a451 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -377,6 +377,15 @@ module.exports = [ }, ], }, + + { + type: "category", + label: "Migration Guides", + collapsed: true, + items: [ + "poscreators/middleware-doc/general/migration/v0-to-possystemapi", + ], + }, ], }, { diff --git a/posdealers/technical-operations/middleware/helper-possystemapi.md b/posdealers/technical-operations/middleware/helper-possystemapi.md index 9403573..1f9fb48 100644 --- a/posdealers/technical-operations/middleware/helper-possystemapi.md +++ b/posdealers/technical-operations/middleware/helper-possystemapi.md @@ -16,6 +16,12 @@ After reading this, you can set up and configure the local PosSystem API Helper ::: +:::info Migrating from v0? + +If your POS system currently uses the v0 interface (WCF/REST) and you are migrating to the PosSystem API, see the [v0 → PosSystem API migration guide](../../../poscreators/middleware-doc/general/migration/v0-to-possystemapi.md) for a full overview of API and data model changes. + +::: + ## Introduction The local PosSystem API Helper is a Middleware component that exposes a local endpoint through which the POS System communicates with the fiskaltrust Middleware. It acts as a bridge between the POS System and the underlying Queue, and is required for Launcher 2.0 deployments. From b5f982ce2b60a7564bb996105a7a4ea1eb38c173 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 08:45:35 +0000 Subject: [PATCH 17/34] docs: address review feedback - echo example and toc indentation Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/b1475a47-bd10-46a5-bdc9-dcc1fc252b0a Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/migration/v0-to-possystemapi.md | 21 ++++++++++++++++++- poscreators/toc.js | 1 - 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 1b3ff2e..cc594e2 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -83,7 +83,7 @@ The three core operations map directly from v0 to v2, but the calling convention | v0 call | v2 HTTP endpoint | Notes | |--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request/response body is a JSON object `{"message": "..."}` | +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | | `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | | `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | @@ -98,6 +98,25 @@ accesstoken: Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +#### Echo example + +**Request:** + +```json +POST /api/v2/echo +{ + "message": "test" +} +``` + +**Response:** + +```json +{ + "message": "test" +} +``` + ### ReceiptRequest changes The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: diff --git a/poscreators/toc.js b/poscreators/toc.js index 9e4a451..6eb039b 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -377,7 +377,6 @@ module.exports = [ }, ], }, - { type: "category", label: "Migration Guides", From 618421266de46e9b8f5f4e08973483238ebdea1d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 30 Apr 2026 15:45:38 +0000 Subject: [PATCH 18/34] =?UTF-8?q?docs:=20add=20cloud=20URL,=20case=20value?= =?UTF-8?q?s,=20and=20ftReceiptCaseData=20format=20sections=20to=20v0?= =?UTF-8?q?=E2=86=92v2=20migration=20guide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Agent-Logs-Url: https://github.com/fiskaltrust/docs/sessions/a565d3f7-633c-43cc-96d2-170582c3c307 Co-authored-by: deboragracio <63159404+deboragracio@users.noreply.github.com> --- .../general/migration/v0-to-possystemapi.md | 72 ++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index cc594e2..97b8b96 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -65,6 +65,29 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` +## Cloud CashBox: base URL change + +If your integration targets a **cloud CashBox** (i.e. your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: + +| Environment | v0 base URL | v2 base URL | +|-------------|----------------------------------------------------------|------------------------------------------------------| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | + +Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. + +The path structure changes accordingly: + +| Operation | v0 path | v2 path | +|-----------|--------------------------------------------|--------------------------| +| Sign | `/[json|xml]/v0/sign` | `/api/v2/sign` | +| Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | +| Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | + ## Configuration steps The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: @@ -130,6 +153,53 @@ The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +### Case value changes + +The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. **Updating these values is the most substantial part of the migration.** Each receipt and item type has a corresponding v2 value, and sending v0 values to the v2 endpoint will result in incorrect processing. + +:::info Developer Portal + +The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. + +::: + +A systematic approach to updating case values: + +1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration +2. For each value, find the corresponding business case in the Developer Portal for your market +3. Replace the v0 value with the v2 value shown in the portal example +4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts) + +### `ftReceiptCaseData` format change + +The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. + +**v0 format** — the entire value is a JSON string embedded as a string field: + +```json +{ + "ftReceiptCase": "...", + "ftReceiptCaseData": "{\"Code\":\"20\", \"Message\":\"Archivage fiscal de période\", \"Information\":\"\"}" +} +``` + +**v2 format** — the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string: + +```json +{ + "ftReceiptCase": "...", + "ftReceiptCaseData": { + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" + } +} +``` + +Key points: +- The outer field is now a **JSON object**, not a string +- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload +- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`) +- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely + ### ReceiptResponse changes The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: @@ -160,7 +230,7 @@ If you need to convert existing .NET Tick values, use the formulas from the [Fun ## Testing the migration -The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developer.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. +The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. From 416b82919eea8c4702d8deef1c6de51209980d6a Mon Sep 17 00:00:00 2001 From: deboragracio Date: Tue, 5 May 2026 16:25:02 +0200 Subject: [PATCH 19/34] Created draft (in progress) https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 363 ++++++++++++++---- 1 file changed, 286 insertions(+), 77 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 97b8b96..09abcd9 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -1,34 +1,35 @@ --- slug: /poscreators/middleware-doc/general/migration/v0-to-possystemapi -title: Migrating from v0 to PosSystem API (v2) +title: Migrating from API v0 to PosSystem API (v2) --- -# Migrating from v0 to PosSystem API (v2) +# Migrating from API v0 to PosSystem API (v2) -:::info summary - -After reading this guide, you will understand the differences between the legacy `ifPOS.v0` interface and the new PosSystem API (v2), and be able to migrate your integration to the v2 stack. - -::: - -## Why migrate? +## Introduction The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. Migrating to v2 gives you: -- Access to e-invoicing features and all future compliance capabilities -- A modern, standard HTTP/REST API that works with any programming language or framework -- PIN-based pairing for simpler, more secure authentication setup -- Active support and ongoing development +- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities +- **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. +- **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. +- **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. +- **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +This guide is primarily targeted at POS Creators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. + ## Prerequisites Before starting the migration, ensure you have: -- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes -- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0 -- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) +- An active **fiskaltrust account** (sandbox and/or production). +- Access to the **fiskaltrust.Portal** to reconfigure CashBoxes. +- An existing integration that successfully produces receipts against the v0 SignatureCloud API. +- Access to a **sandbox cashbox** for testing your migrated integration before going live. +- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. +- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md). +- Familiarity with the **POSSystemAPI business case examples**, which serve as the reference for the new request format: [https://developers.fiskaltrust.eu/#/pos-system](https://developers.fiskaltrust.eu/#/pos-system) :::caution Market availability @@ -65,9 +66,9 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` -## Cloud CashBox: base URL change +## Step 1: Cloud CashBox - Change the base URL -If your integration targets a **cloud CashBox** (i.e. your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: +If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: | Environment | v0 base URL | v2 base URL | |-------------|----------------------------------------------------------|------------------------------------------------------| @@ -78,8 +79,16 @@ If your integration targets a **cloud CashBox** (i.e. your POS system calls the | Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | | Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | +:::info + +The new endpoint is **market-agnostic** — the same base URL is used for AT, FR, and DE. The market is determined by the `ftCashBoxID` and queue configuration, not the URL. + Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. +::: + +Replace all occurrences of the per-market v0 base URL in your integration with the single new URL above. Make sure to append `/v2` to the path. + The path structure changes accordingly: | Operation | v0 path | v2 path | @@ -88,89 +97,218 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Configuration steps +## Step 2: Change Case Values -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: +The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. -1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal -2. Configuring the Helper URL -3. Assigning the Helper to the relevant CashBox -4. Rebuilding the CashBox configuration -5. Downloading and running Launcher 2.0 +:::info Developer Portal -## API changes +The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. -### Method mapping +::: -The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: +A systematic approach to updating case values: -| v0 call | v2 HTTP endpoint | Notes | -|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. +2. For each value, find the corresponding business case in the Developer Portal for your market. +3. Replace the v0 value with the v2 value shown in the portal example. +4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -#### Authentication +### ftReceiptCase Mapping -All v2 requests must include the following HTTP headers: +
+Austria (AT) -``` -cashboxid: -accesstoken: -``` +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4154000000000001` | TODO | +| Zero receipt | `0x4154000000000002` | TODO | +| Initial operation / start receipt | `0x4154000000000003` | TODO | +| Out of operation / stop receipt | `0x4154000000000004` | TODO | +| Monthly closing | `0x4154000000000005` | TODO | +| Yearly closing | `0x4154000000000006` | TODO | -Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +:::caution TODO -#### Echo example +The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. -**Request:** +::: -```json -POST /api/v2/echo -{ - "message": "test" -} -``` +
-**Response:** +
+France (FR) -```json -{ - "message": "test" -} -``` +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4652000000000001` | TODO | +| Zero receipt | `0x465200000000000F` | TODO | +| Initial operation / start receipt | `0x4652000000000010` | TODO | +| Out of operation / stop receipt | `0x4652000000000011` | TODO | +| Daily closing | `0x4652000000000005` | TODO | +| Monthly closing | `0x4652000000000006` | TODO | +| Yearly closing | `0x4652000000000007` | TODO | +| Archives / fiscal period archive | `0x4652000000000015` | TODO | -### ReceiptRequest changes +:::caution TODO -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: +The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +::: -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +
-### Case value changes +
+Germany (DE) -The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. **Updating these values is the most substantial part of the migration.** Each receipt and item type has a corresponding v2 value, and sending v0 values to the v2 endpoint will result in incorrect processing. +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash sales / POS receipt | `0x4445000100000001` | TODO | +| Zero receipt | `0x4445000000000002` | TODO | +| Initial operation / start receipt | `0x4445000000000003` | TODO | +| Out of operation / stop receipt | `0x4445000000000004` | TODO | +| Daily closing | `0x4445000000000007` | TODO | +| Start-transaction receipt | `0x4445000000000008` | TODO | +| Update-transaction receipt | `0x4445000000000009` | TODO | +| Fail-transaction receipt (single) | `0x444500000000000B` | TODO | +| Initiate SCU switch | `0x4445000000000017` | TODO | +| Finish SCU switch | `0x4445000000000018` | TODO | -:::info Developer Portal +:::caution TODO -The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. ::: -A systematic approach to updating case values: +
+ +--- + +### ftChargeItemCase Mapping + +
+Austria (AT) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4154000000000003` | TODO | +| Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | +| Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+France (FR) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4652000000000003` | TODO | +| Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | +| Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+Germany (DE) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | +| Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +### ftPayItemCase Mapping + +
+Austria (AT) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4154000000000001` | TODO | +| Cash payment — foreign currency | `0x4154000000000002` | TODO | +| Crossed cheque | `0x4154000000000003` | TODO | +| Debit card payment | `0x4154000000000004` | TODO | +| Credit card payment | `0x4154000000000005` | TODO | +| Online payment | `0x4154000000000007` | TODO | +| Customer card payment | `0x4154000000000008` | TODO | +| SEPA transfer | `0x415400000000000C` | TODO | +| Internal material consumption | `0x4154000000000011` | TODO | -1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration -2. For each value, find the corresponding business case in the Developer Portal for your market -3. Replace the v0 value with the v2 value shown in the portal example -4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts) +:::caution TODO -### `ftReceiptCaseData` format change +The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+France (FR) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4652000000000001` | TODO | +| Cash payment — foreign currency | `0x4652000000000002` | TODO | +| Crossed cheque | `0x4652000000000003` | TODO | +| Debit card payment | `0x4652000000000004` | TODO | +| Credit card payment | `0x4652000000000005` | TODO | +| Online payment | `0x4652000000000007` | TODO | +| Customer card payment | `0x4652000000000008` | TODO | +| SEPA transfer | `0x465200000000000C` | TODO | +| Internal material consumption | `0x4652000000000011` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ +
+Germany (DE) + +| Business Case | v0 Value | POSSystemAPI v2 Value | +|---------------|----------|-----------------------| +| Cash payment — national currency | `0x4445000000000001` | TODO | +| Cash payment — foreign currency | `0x4445000000000002` | TODO | +| Crossed cheque | `0x4445000000000003` | TODO | +| Debit card payment | `0x4445000000000004` | TODO | +| Credit card payment | `0x4445000000000005` | TODO | +| Online payment | `0x4445000000000006` | TODO | +| Customer card payment | `0x4445000000000007` | TODO | +| SEPA transfer | `0x4445000000000008` | TODO | +| Internal material consumption | `0x444500000000000A` | TODO | + +:::caution TODO + +The POSSystemAPI v2 values for DE `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. + +::: + +
+ + +### ftReceiptCaseData format change The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. @@ -195,10 +333,10 @@ The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a ``` Key points: -- The outer field is now a **JSON object**, not a string -- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload -- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`) -- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely +- The outer field is now a **JSON object**, not a string. +- The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload. +- Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). +- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. ### ReceiptResponse changes @@ -249,3 +387,74 @@ A recommended cutover sequence: 3. Deploy Launcher 2.0 to the POS terminal 4. Update the POS system to call the v2 endpoint 5. Send a test Echo request to confirm connectivity before going live + + + + + + +## Configuration steps + +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: + +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal +2. Configuring the Helper URL +3. Assigning the Helper to the relevant CashBox +4. Rebuilding the CashBox configuration +5. Downloading and running Launcher 2.0 + +## API changes + +### Method mapping + +The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: + +| v0 call | v2 HTTP endpoint | Notes | +|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | + +#### Authentication + +All v2 requests must include the following HTTP headers: + +``` +cashboxid: +accesstoken: +``` + +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). + +#### Echo example + +**Request:** + +```json +POST /api/v2/echo +{ + "message": "test" +} +``` + +**Response:** + +```json +{ + "message": "test" +} +``` + +### ReceiptRequest changes + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + From a7ddbc10198ebe13f23cfdc78f04cfd74c482e8e Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 6 May 2026 16:59:45 +0200 Subject: [PATCH 20/34] Updated draft https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 179 ++++++++---------- 1 file changed, 83 insertions(+), 96 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 09abcd9..4f2f2d2 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -7,7 +7,7 @@ title: Migrating from API v0 to PosSystem API (v2) ## Introduction -The `ifPOS.v0` interface is the original, synchronous fiskaltrust.Middleware API used primarily in Austria (AT) and France (FR). While it remains functional, **it will not receive new features**. All current and future development — including e-invoicing support and upcoming compliance features — is available exclusively through the **PosSystem API (v2)**. +The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API - primarily used in Austria (AT) and France (FR) - remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. Migrating to v2 gives you: @@ -17,7 +17,7 @@ Migrating to v2 gives you: - **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. - **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. -This guide is primarily targeted at POS Creators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. +This guide is primarily targeted at PosCreators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. ## Prerequisites @@ -40,7 +40,7 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: ::: -## Architecture overview +## Architecture Overview The following table summarises the key architectural differences between the two integration approaches: @@ -66,7 +66,7 @@ POS System → WCF or REST (/v0/) → fiskaltrust Queue POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue ``` -## Step 1: Cloud CashBox - Change the base URL +## Cloud CashBox (base URL change) If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: @@ -97,13 +97,13 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Step 2: Change Case Values +## Case Values The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. :::info Developer Portal -The authoritative source for v2 case values and their mapping to v0 cases is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system)**. It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the [fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: @@ -114,7 +114,7 @@ A systematic approach to updating case values: 3. Replace the v0 value with the v2 value shown in the portal example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -### ftReceiptCase Mapping +### ftReceiptCase
Austria (AT) @@ -130,7 +130,7 @@ A systematic approach to updating case values: :::caution TODO -The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. +The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. ::: @@ -152,7 +152,7 @@ The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified by the integr :::caution TODO -The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. +The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified. ::: @@ -174,17 +174,9 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified by the integr | Initiate SCU switch | `0x4445000000000017` | TODO | | Finish SCU switch | `0x4445000000000018` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
---- - -### ftChargeItemCase Mapping +### ftChargeItemCase
Austria (AT) @@ -195,12 +187,6 @@ The POSSystemAPI v2 values for DE `ftReceiptCase` must be verified by the integr | Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | | Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -212,12 +198,6 @@ The POSSystemAPI v2 values for AT `ftChargeItemCase` must be verified by the int | Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | | Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -228,15 +208,9 @@ The POSSystemAPI v2 values for FR `ftChargeItemCase` must be verified by the int | Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | | Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
-### ftPayItemCase Mapping +### ftPayItemCase
Austria (AT) @@ -253,12 +227,6 @@ The POSSystemAPI v2 values for DE `ftChargeItemCase` must be verified by the int | SEPA transfer | `0x415400000000000C` | TODO | | Internal material consumption | `0x4154000000000011` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -276,12 +244,6 @@ The POSSystemAPI v2 values for AT `ftPayItemCase` must be verified by the integr | SEPA transfer | `0x465200000000000C` | TODO | | Internal material consumption | `0x4652000000000011` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
@@ -299,16 +261,14 @@ The POSSystemAPI v2 values for FR `ftPayItemCase` must be verified by the integr | SEPA transfer | `0x4445000000000008` | TODO | | Internal material consumption | `0x444500000000000A` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for DE `ftPayItemCase` must be verified by the integration owners (Paul / Leila) against the internal mapping document. - -::: -
+Key differences highlighted: +1. The base URL changes (see Step 1). +2. All `*Case` numeric values must be remapped (see mapping tables above). +3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string (see the section below). -### ftReceiptCaseData format change +### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. @@ -338,7 +298,50 @@ Key points: - Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). - If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. -### ReceiptResponse changes +#### Examples by Market + +**Austria (AT)** + +```json +"ftReceiptCaseData": { + "AT": "{\"Code\": \"20\", \"Message\": \"Jahresbeleg\", \"Information\": \"\"}" +} +``` + +**France (FR)** + +```json +"ftReceiptCaseData": { + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" +} +``` + +**Germany (DE)** + +```json +"ftReceiptCaseData": { + "DE": "{\"Code\": \"20\", \"Message\": \"Jahresabschluss\", \"Information\": \"\"}" +} +``` + +**Multi-market (combined)** + +```json +"ftReceiptCaseData": { + "AT": "{\"Code\": \"20\", \"Message\": \"Jahresbeleg\", \"Information\": \"\"}", + "FR": "{\"Code\": \"20\", \"Message\": \"Archivage fiscal de période\", \"Information\": \"\"}" +} +``` + +:::warning + +If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. **Do not pass a bare empty string (`""`)** as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. + +The inner string value for a given market key **may** be an empty string (`""`) when no additional case data is required for that market. + +::: + +### ReceiptResponse The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: @@ -366,42 +369,40 @@ The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). -## Testing the migration - -The easiest way to validate your v2 integration is the **[fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/)**, which provides an interactive interface for sending requests to a running Middleware instance. - -For code samples and a full API reference, see the **[PosSystem API Development Kit](https://github.com/fiskaltrust/possystemapi-devkit)** on GitHub. - -## Cutover considerations - -:::caution No parallel operation - -Running the v0 and v2 interfaces in parallel on the same CashBox is not recommended. Perform the migration as a **clean cutover** per CashBox: reconfigure the CashBox with the LocalPosSystemApi Helper, rebuild it, deploy the new Launcher 2.0 package, then switch your POS system to use the new v2 endpoint. Ensure any buffered or in-flight v0 receipts are processed and closed before switching. - -::: +### ReceiptRequest -A recommended cutover sequence: +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: -1. Complete all open transactions / close the current business day in the POS system -2. Reconfigure the CashBox in the Portal (add Helper, rebuild) -3. Deploy Launcher 2.0 to the POS terminal -4. Update the POS system to call the v2 endpoint -5. Send a test Echo request to confirm connectivity before going live +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. +## Local CashBox +:::note Sandbox/admin access only +Local cashbox migration requires additional configuration steps that are currently only supported in sandbox environments under guidance from the fiskaltrust team. -## Configuration steps +::: The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: -1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal -2. Configuring the Helper URL -3. Assigning the Helper to the relevant CashBox -4. Rebuilding the CashBox configuration -5. Downloading and running Launcher 2.0 +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. +2. Configuring the Helper URL. +3. Assigning the Helper to the relevant CashBox. +4. Rebuilding the CashBox configuration. +5. Downloading and running Launcher 2.0. + +For reference documentation on local cashbox configuration, see the country-specific middleware appendixes: +- [Austria - Middleware Documentation](/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv) +- [France - Middleware Documentation](/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30) +- [Germany - Middleware Documentation](/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv) ## API changes @@ -444,17 +445,3 @@ POST /api/v2/echo "message": "test" } ``` - -### ReceiptRequest changes - -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: - -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | - -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. - From 3fe833f087be984a86e0187806c193f1b519b22f Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 14:48:24 +0200 Subject: [PATCH 21/34] Updated draft structure/other pages https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/communication/communication.md | 4 +- .../function-structures.md | 4 +- .../general/migration/v0-to-possystemapi.md | 122 ++++++++---------- .../middleware-at-rksv/appendix-at-rksv.md | 2 +- .../appendix-de-kassensichv.md | 6 + .../appendix-fr-boi-tva-decla-30-10-30.md | 2 +- poscreators/toc.js | 10 +- 7 files changed, 65 insertions(+), 85 deletions(-) diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index 63cfb60..452513f 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -5,9 +5,9 @@ title: Communication # Communication -:::info Migrating to PosSystem API (v2)? +:::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). +If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. ::: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index 6c9c389..c98dd5d 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -5,9 +5,9 @@ title: Function Structures # Function Structures -:::info Migrating to PosSystem API (v2)? +:::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [v0 → PosSystem API migration guide](../migration/v0-to-possystemapi.md). +If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. ::: diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 4f2f2d2..755c45d 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -11,13 +11,17 @@ The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern Migrating to v2 gives you: -- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities +- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities. - **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. - **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. - **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. - **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +:::info + This guide is primarily targeted at PosCreators integrating **cloud cashboxes** in the **AT, FR, and DE** markets. + +::: ## Prerequisites @@ -28,8 +32,6 @@ Before starting the migration, ensure you have: - An existing integration that successfully produces receipts against the v0 SignatureCloud API. - Access to a **sandbox cashbox** for testing your migrated integration before going live. - **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. -- Familiarity with the [Local PosSystem API Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md). -- Familiarity with the **POSSystemAPI business case examples**, which serve as the reference for the new request format: [https://developers.fiskaltrust.eu/#/pos-system](https://developers.fiskaltrust.eu/#/pos-system) :::caution Market availability @@ -37,6 +39,7 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: - **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. - **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. +- **Germany (DE):** TBD ::: @@ -44,23 +47,23 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: The following table summarises the key architectural differences between the two integration approaches: -| Aspect | v0 (legacy) | v2 — PosSystem API | +| Aspect | v0 (legacy) | v2 - PosSystem API | |-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| | **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | | **Communication style** | Synchronous (blocking) | Modern REST (JSON) | | **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | | **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | CashboxID + AccessToken (per request / in service binding) | CashboxID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client; official devkit available | -| **New feature support** | None — no new features planned | All new features (e-invoicing, etc.) | +| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client +| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | -**v0 data flow:** +- **v0 data flow:** ``` POS System → WCF or REST (/v0/) → fiskaltrust Queue ``` -**v2 data flow:** +- **v2 data flow:** ``` POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue @@ -81,9 +84,7 @@ If your integration targets a **Cloud CashBox** (for example, your POS system ca :::info -The new endpoint is **market-agnostic** — the same base URL is used for AT, FR, and DE. The market is determined by the `ftCashBoxID` and queue configuration, not the URL. - -Note that the v2 cloud endpoint is a **single, market-agnostic URL** — the market is determined by the `ftReceiptCase` value and your CashBox configuration, not the host. +The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID` / `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. ::: @@ -97,24 +98,24 @@ The path structure changes accordingly: | Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | | Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | -## Case Values +### Case Values The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. -:::info Developer Portal +:::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the [fiskaltrust Developer Portal](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the Developer Portal for your market. -3. Replace the v0 value with the v2 value shown in the portal example. +2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/#/pos-system) for your market. +3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). -### ftReceiptCase +#### ftReceiptCase
Austria (AT) @@ -128,12 +129,6 @@ A systematic approach to updating case values: | Monthly closing | `0x4154000000000005` | TODO | | Yearly closing | `0x4154000000000006` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. - -::: -
@@ -150,12 +145,6 @@ The POSSystemAPI v2 values for AT `ftReceiptCase` must be verified. | Yearly closing | `0x4652000000000007` | TODO | | Archives / fiscal period archive | `0x4652000000000015` | TODO | -:::caution TODO - -The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified. - -::: -
@@ -176,7 +165,7 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
-### ftChargeItemCase +#### ftChargeItemCase
Austria (AT) @@ -210,7 +199,7 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
-### ftPayItemCase +#### ftPayItemCase
Austria (AT) @@ -264,15 +253,15 @@ The POSSystemAPI v2 values for FR `ftReceiptCase` must be verified.
Key differences highlighted: -1. The base URL changes (see Step 1). -2. All `*Case` numeric values must be remapped (see mapping tables above). -3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string (see the section below). +1. The base URL changes. +2. All case numeric values must be remapped. +3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string. -### ftReceiptCaseData Format +#### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. -**v0 format** — the entire value is a JSON string embedded as a string field: +- **v0 format**: the entire value is a JSON string embedded as a string field. ```json { @@ -281,7 +270,7 @@ The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a } ``` -**v2 format** — the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string: +- **v2 format**: the value is a plain JSON object with a market key (`"FR"`, `"AT"`, `"DE"`) whose value is a JSON-encoded string. ```json { @@ -296,9 +285,8 @@ Key points: - The outer field is now a **JSON object**, not a string. - The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload. - Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). -- If `ftReceiptCaseData` is not needed for a particular receipt type, the field can be omitted entirely. -#### Examples by Market +##### Examples by Market **Austria (AT)** @@ -335,20 +323,33 @@ Key points: :::warning -If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. **Do not pass a bare empty string (`""`)** as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. +If `ftReceiptCaseData` is not needed for a particular receipt, pass an empty object (`{}`) or omit the field entirely. Do not pass a bare empty string (`""`) as the top-level value — that was valid in v0 but is no longer accepted at the outer level in v2. -The inner string value for a given market key **may** be an empty string (`""`) when no additional case data is required for that market. +The inner string value for a given market key may be an empty string (`""`) when no additional case data is required for that market. ::: -### ReceiptResponse +#### ReceiptRequest + +The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable. The key differences are: + +| Field | v0 | v2 | +|-----------------------------|-------------------------------------|-------------------------------------------------------| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | + +All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. + +#### ReceiptResponse The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: -- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations -- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states +- `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations. +- `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states. -### Timestamps +#### Timestamps The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: @@ -369,20 +370,6 @@ The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). -### ReceiptRequest - -The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable; the key differences are: - -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | - -All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. - - ## Local CashBox :::note Sandbox/admin access only @@ -391,7 +378,7 @@ Local cashbox migration requires additional configuration steps that are current ::: -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [Local PosSystem API Helper guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md), which covers: +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: 1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. 2. Configuring the Helper URL. @@ -399,14 +386,9 @@ The portal-side configuration requires adding a **LocalPosSystemApi Helper** to 4. Rebuilding the CashBox configuration. 5. Downloading and running Launcher 2.0. -For reference documentation on local cashbox configuration, see the country-specific middleware appendixes: -- [Austria - Middleware Documentation](/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv) -- [France - Middleware Documentation](/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30) -- [Germany - Middleware Documentation](/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv) - -## API changes +### API changes -### Method mapping +#### Method mapping The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: @@ -416,7 +398,7 @@ The three core operations map directly from v0 to v2, but the calling convention | `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | | `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | -#### Authentication +##### Authentication All v2 requests must include the following HTTP headers: @@ -427,7 +409,7 @@ accesstoken: Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). -#### Echo example +##### Echo example **Request:** diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index ae70f99..5715160 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -19,7 +19,7 @@ Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungs :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. ::: diff --git a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md index 212dacd..da9e099 100644 --- a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md +++ b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md @@ -7,4 +7,10 @@ title: Introduction This appendix expands on the General Part's information by adding details specific to the German market. This additional information is provided only where applicable. The remaining chapters, for which there is no further information required, were omitted. +:::info Upgrading to PosSystem API (v2) + +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. + +::: + diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index 8ebacda..9236df1 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -25,7 +25,7 @@ The interface specification is provided by fiskaltrust.Interface NuGet package, :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [v0 → PosSystem API migration guide](../general/migration/v0-to-possystemapi.md) for step-by-step instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. ::: diff --git a/poscreators/toc.js b/poscreators/toc.js index 6eb039b..090d29e 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -377,15 +377,7 @@ module.exports = [ }, ], }, - { - type: "category", - label: "Migration Guides", - collapsed: true, - items: [ - "poscreators/middleware-doc/general/migration/v0-to-possystemapi", - ], - }, - ], + ], }, { type: "category", From 53c0e8d8f2d84b1180879c91b9dda705966bd3b3 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:11:14 +0200 Subject: [PATCH 22/34] fixed link --- .../middleware-doc/general/migration/v0-to-possystemapi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 755c45d..138f035 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -104,14 +104,14 @@ The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemC :::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/#/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/#/pos-system) for your market. +2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/pos-system#/pos-system) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). From 52c1b875677dc04ebee708f32039486fad167623 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:15:22 +0200 Subject: [PATCH 23/34] fixed links --- .../middleware-doc/general/migration/v0-to-possystemapi.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 138f035..7701a11 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -104,14 +104,14 @@ The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemC :::info Development Plataform -The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developers.fiskaltrust.eu/pos-system). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. +The authoritative source for v2 case values and their mapping to v0 cases is the **fiskaltrust** [Development Platform](https://developer.fiskaltrust.eu/). It provides market-specific business case examples (AT, FR, DE) with the correct v2 `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` values for each scenario. Use these examples as your reference when updating your integration. ::: A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. -2. For each value, find the corresponding business case in the [Development Platform](https://developers.fiskaltrust.eu/pos-system#/pos-system) for your market. +2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). From fe175557bcf717175ade700cf893f7c5295403f2 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 7 May 2026 15:47:19 +0200 Subject: [PATCH 24/34] minor changes https://github.com/fiskaltrust/engineering/issues/1116 --- .../general/migration/v0-to-possystemapi.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 7701a11..4ccacdb 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -7,15 +7,15 @@ title: Migrating from API v0 to PosSystem API (v2) ## Introduction -The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API - primarily used in Austria (AT) and France (FR) - remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. +The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API — primarily used in Austria (AT) and France (FR) — remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. Migrating to v2 gives you: -- **E-invoicing support** - Access to e-invoicing features and all future compliance capabilities. +- **E-invoicing support** — Access to e-invoicing features and all future compliance capabilities. - **Alignment with fiskaltrust Middleware v2** — the POSSystemAPI interface is designed to remain largely stable when the middleware transitions from v1.2 to v2, making this migration valuable preparation. - **Long-term supportability** — v0 is considered deprecated; customers are encouraged to migrate as soon as possible. -- **Simpler authentication** - PIN-based pairing for simpler, more secure authentication setup. -- **Modern and flexible API design** - A modern, standard HTTP/REST API that works with any programming language or framework. +- **Simpler authentication** — PIN-based pairing for simpler, more secure authentication setup. +- **Modern and flexible API design** — A modern, standard HTTP/REST API that works with any programming language or framework. :::info @@ -84,7 +84,7 @@ If your integration targets a **Cloud CashBox** (for example, your POS system ca :::info -The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID` / `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. +The v2 cloud endpoint uses a single, market-agnostic base URL for all markets (AT, FR, DE), with the actual market determined by values such as the `ftCashBoxID`, `ftReceiptCase` and your **CashBox and queue configuration**, not by the URL or host. ::: @@ -407,7 +407,7 @@ cashboxid: accesstoken: ``` -Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal (see the [Helper setup guide](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper)). +Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal. For more information, see how to [Test the PosSystem API Helper](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper). ##### Echo example From f93222c8b62e1b57e776f51615bf5d39033f2532 Mon Sep 17 00:00:00 2001 From: Arnaud Chentil Date: Thu, 21 May 2026 11:58:57 +0200 Subject: [PATCH 25/34] Add business cases changes for ftReceiptCase (fr market) --- .../general/migration/v0-to-possystemapi.md | 44 ++++++++++++++----- 1 file changed, 34 insertions(+), 10 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 4ccacdb..bf341d8 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -114,6 +114,8 @@ A systematic approach to updating case values: 2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. 3. Replace the v0 value with the v2 value shown in the platform example. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). +5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. +6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. #### ftReceiptCase @@ -134,16 +136,38 @@ A systematic approach to updating case values:
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4652000000000001` | TODO | -| Zero receipt | `0x465200000000000F` | TODO | -| Initial operation / start receipt | `0x4652000000000010` | TODO | -| Out of operation / stop receipt | `0x4652000000000011` | TODO | -| Daily closing | `0x4652000000000005` | TODO | -| Monthly closing | `0x4652000000000006` | TODO | -| Yearly closing | `0x4652000000000007` | TODO | -| Archives / fiscal period archive | `0x4652000000000015` | TODO | +| Business Case | v0 Value | POSSystemAPI v2 Value | Comment | +|---------------|----------|-----------------------|---------| +| Foreign sales | `0x465200000000000E` | `0x4652200008000000` | Unknown receipt type. Use this as a fallback; it is handled the same way as a point-of-sale receipt. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000001` | Point-of-sale receipt type. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000002` | Payment transfer receipt type. | +| Foreign sales | `0x465200000000000E` | `0x4652200008000003` | Point-of-sale receipt without fiscalization obligation or with exceptions to fiscalization regulations. | +| Payment transfer | `0x465200000000000A` or `0x465200000000000B` or `0x465200000000000C` | `0x4652200000000002` | All payment transfer receipt types ; conditional. pay-in to drawer/till, pay-out from drawer/till | +| Point-of-sale receipt type without fiskalisation obligation or with exemption | `0x465200000000000E` | `0x4652200000000003` | | +| E-commerce receipt type | `0x465200000000000E` | `0x4652200000000004` | | +| Delivery note receipt type | `0x4652000000000009` | `0x4652200000000005` | | +| Bill receipt type | `0x4652000000000008` | `0x4652200000000006` | | +| Proforma invoice receipt type | `0x4652000000000008` | `0x4652200000000007` | | +| Unknown invoice type | `0x4652000000000003` | `0x4652200000001000` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2C invoice type | `0x4652000000000003` | `0x4652200000001001` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2B invoice type | `0x4652000000000003` | `0x4652200000001002` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| B2G invoice type | `0x4652000000000003` | `0x4652200000001003` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | +| Zero receipt dailyoperation type | `0x465200000000000F` | `0x4652200000002000` | | +| Shift closing dailyoperation type | `0x4652000000000004` | `0x4652200000002010` | | +| Daily closing dailyoperation type | `0x4652000000000005` | `0x4652200000002011` | | +| Monthly closing dailyoperation type | `0x4652000000000006` | `0x4652200000002012` | | +| Yearly closing dailyoperation type | `0x4652000000000007` | `0x4652200000002013` | | +| Unknown/unspecified protocol type | `0x4652000000000014` | `0x4652200000003000` | | +| Technical event protocol type | `0x4652000000000012` | `0x4652200000003001` | | +| Audit event / accounting event protocol type | `0x4652000000000013` | `0x4652200000003002` | | +| Internal usage / material consumption protocol type | `0x465200000000000D` | `0x4652200000003003` | | +| Order protocol type | `0x4652000000000008` | `0x4652200000003004` | | +| Pay protocol type | `0x4652000000000002` | `0x4652200000003005` | Payment prove | +| Copy receipt / re-print existing receipt protocol type | `0x4652000000000016` | `0x4652200000003010` | | +| Archive receipt / archive all previous data protocol type | `0x4652000000000015` | `0x4652200000003011` | | +| Start-receipt lifecycle type | `0x4652000000000010` | `0x4652200000004001` | | +| Stop-receipt lifecycle type | `0x4652000000000011` | `0x4652200000004002` | | +| IsReturn/IsRefund | `0x4652000000040000` | `0x4652200001000000` | Full return/refund receipt. If one or more charge items are returned/refunded, please use the appropriate receipt type and the corresponding ChargeItemCase tag. |
From 9eb1779022b34949ae54929b98c196a9f72f3503 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Tue, 16 Jun 2026 16:49:58 +0200 Subject: [PATCH 26/34] Updated mapping tables --- .../general/migration/v0-to-possystemapi.md | 792 +++++++++++++++--- 1 file changed, 660 insertions(+), 132 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index bf341d8..b599051 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -47,15 +47,15 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: The following table summarises the key architectural differences between the two integration approaches: -| Aspect | v0 (legacy) | v2 - PosSystem API | -|-------------------------|-------------------------------------------------------------------|------------------------------------------------------------------| -| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | -| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | -| **Middleware component**| Queue package directly | LocalPosSystemApi Helper in front of the Queue | -| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client -| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | +| Aspect | v0 (legacy) | v2 - PosSystem API | +| ------ | ----------- | ------------------ | +| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | +| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | +| **Middleware component** | Queue package directly | LocalPosSystemApi Helper in front of the Queue | +| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | +| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | +| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client | +| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | - **v0 data flow:** @@ -73,14 +73,14 @@ POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiska If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: -| Environment | v0 base URL | v2 base URL | -|-------------|----------------------------------------------------------|------------------------------------------------------| -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | -| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | +| Environment | v0 base URL | v2 base URL | +| ----------- | ----------- | ----------- | +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.fr` (FR) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.at` (AT) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Sandbox | `https://signaturcloud-sandbox.fiskaltrust.de` (DE) | `https://possystem-api-sandbox.fiskaltrust.eu/v2`| +| Production | `https://signaturcloud.fiskaltrust.fr` (FR) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.at` (AT) | `https://possystem-api.fiskaltrust.eu/v2` | +| Production | `https://signaturcloud.fiskaltrust.de` (DE) | `https://possystem-api.fiskaltrust.eu/v2` | :::info @@ -92,11 +92,9 @@ Replace all occurrences of the per-market v0 base URL in your integration with t The path structure changes accordingly: -| Operation | v0 path | v2 path | -|-----------|--------------------------------------------|--------------------------| -| Sign | `/[json|xml]/v0/sign` | `/api/v2/sign` | -| Echo | `/[json|xml]/v0/echo` | `/api/v2/echo` | -| Journal | `/[json|xml]/v0/journal` | `/api/v2/journal` | +- Sign - **v0 path:** `/[json|xml]/v0/sign`; **v2 path:** `/api/v2/sign` +- Echo - **v0 path:** `/[json|xml]/v0/echo`; **v2 path:** `/api/v2/echo` +- Journal - **v0 path:** `/[json|xml]/v0/journal`; **v2 path:** `/api/v2/journal` ### Case Values @@ -122,70 +120,204 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4154000000000001` | TODO | -| Zero receipt | `0x4154000000000002` | TODO | -| Initial operation / start receipt | `0x4154000000000003` | TODO | -| Out of operation / stop receipt | `0x4154000000000004` | TODO | -| Monthly closing | `0x4154000000000005` | TODO | -| Yearly closing | `0x4154000000000006` | TODO | +**Fixed Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | + +**Dynamics Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x4154_2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x4154_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4154_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4154_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4154_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x4154_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4154_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4154_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4154_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4154_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4154_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4154_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4154_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4154_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | Comment | -|---------------|----------|-----------------------|---------| -| Foreign sales | `0x465200000000000E` | `0x4652200008000000` | Unknown receipt type. Use this as a fallback; it is handled the same way as a point-of-sale receipt. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000001` | Point-of-sale receipt type. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000002` | Payment transfer receipt type. | -| Foreign sales | `0x465200000000000E` | `0x4652200008000003` | Point-of-sale receipt without fiscalization obligation or with exceptions to fiscalization regulations. | -| Payment transfer | `0x465200000000000A` or `0x465200000000000B` or `0x465200000000000C` | `0x4652200000000002` | All payment transfer receipt types ; conditional. pay-in to drawer/till, pay-out from drawer/till | -| Point-of-sale receipt type without fiskalisation obligation or with exemption | `0x465200000000000E` | `0x4652200000000003` | | -| E-commerce receipt type | `0x465200000000000E` | `0x4652200000000004` | | -| Delivery note receipt type | `0x4652000000000009` | `0x4652200000000005` | | -| Bill receipt type | `0x4652000000000008` | `0x4652200000000006` | | -| Proforma invoice receipt type | `0x4652000000000008` | `0x4652200000000007` | | -| Unknown invoice type | `0x4652000000000003` | `0x4652200000001000` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2C invoice type | `0x4652000000000003` | `0x4652200000001001` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2B invoice type | `0x4652000000000003` | `0x4652200000001002` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| B2G invoice type | `0x4652000000000003` | `0x4652200000001003` | Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. | -| Zero receipt dailyoperation type | `0x465200000000000F` | `0x4652200000002000` | | -| Shift closing dailyoperation type | `0x4652000000000004` | `0x4652200000002010` | | -| Daily closing dailyoperation type | `0x4652000000000005` | `0x4652200000002011` | | -| Monthly closing dailyoperation type | `0x4652000000000006` | `0x4652200000002012` | | -| Yearly closing dailyoperation type | `0x4652000000000007` | `0x4652200000002013` | | -| Unknown/unspecified protocol type | `0x4652000000000014` | `0x4652200000003000` | | -| Technical event protocol type | `0x4652000000000012` | `0x4652200000003001` | | -| Audit event / accounting event protocol type | `0x4652000000000013` | `0x4652200000003002` | | -| Internal usage / material consumption protocol type | `0x465200000000000D` | `0x4652200000003003` | | -| Order protocol type | `0x4652000000000008` | `0x4652200000003004` | | -| Pay protocol type | `0x4652000000000002` | `0x4652200000003005` | Payment prove | -| Copy receipt / re-print existing receipt protocol type | `0x4652000000000016` | `0x4652200000003010` | | -| Archive receipt / archive all previous data protocol type | `0x4652000000000015` | `0x4652200000003011` | | -| Start-receipt lifecycle type | `0x4652000000000010` | `0x4652200000004001` | | -| Stop-receipt lifecycle type | `0x4652000000000011` | `0x4652200000004002` | | -| IsReturn/IsRefund | `0x4652000000040000` | `0x4652200001000000` | Full return/refund receipt. If one or more charge items are returned/refunded, please use the appropriate receipt type and the corresponding ChargeItemCase tag. | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | +| `0x4652_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4652_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4652_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4652_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x4652_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4652_2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x4652_2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x4652_2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x4652_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x4652_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4652_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash sales / POS receipt | `0x4445000100000001` | TODO | -| Zero receipt | `0x4445000000000002` | TODO | -| Initial operation / start receipt | `0x4445000000000003` | TODO | -| Out of operation / stop receipt | `0x4445000000000004` | TODO | -| Daily closing | `0x4445000000000007` | TODO | -| Start-transaction receipt | `0x4445000000000008` | TODO | -| Update-transaction receipt | `0x4445000000000009` | TODO | -| Fail-transaction receipt (single) | `0x444500000000000B` | TODO | -| Initiate SCU switch | `0x4445000000000017` | TODO | -| Finish SCU switch | `0x4445000000000018` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x4445_2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | +| `0x4445_2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x4445_2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x4445_2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x4445_2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | +| `0x4445_2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x4445_2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | +| `0x4445_2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | +| `0x4445_2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | +| `0x4445_2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | +| `0x4445_2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | +| `0x4445_2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | +| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4445_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4445_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4445_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4445_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4445_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4445_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x4445_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -194,32 +326,387 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4154000000000003` | TODO | -| Unknown type of service/product — discounted-1 | `0x4154000000000001` | TODO | -| Unknown type of service/product — discounted-2 | `0x4154000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4154_2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4154_2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4154_2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4154_2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4154_2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4154_2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4154_2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4154_2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4154_2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4154_2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4154_2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4154_2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4154_2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4154_2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4154_2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4154_2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4154_2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4154_2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4154_2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4154_2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4154_2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4154_2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4154_2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4154_2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4154_2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4154_2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4154_2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4154_2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4154_2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x4154_2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4154_2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4154_2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4154_2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4154_2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4154_2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4154_2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4154_2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4154_2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4154_2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4154_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4154_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4652000000000003` | TODO | -| Unknown type of service/product — discounted-1 | `0x4652000000000001` | TODO | -| Unknown type of service/product — discounted-2 | `0x4652000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4652_2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4652_2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4652_2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4652_2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4652_2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4652_2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4652_2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4652_2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4652_2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4652_2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4652_2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4652_2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4652_2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4652_2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4652_2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4652_2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4652_2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4652_2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4652_2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4652_2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4652_2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4652_2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4652_2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4652_2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4652_2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4652_2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4652_2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4652_2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4652_2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x4652_2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4652_2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4652_2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4652_2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4652_2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4652_2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4652_2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4652_2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4652_2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4652_2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4652_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4652_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Unknown type of service/product — normal rate | `0x4445000000000001` | TODO | -| Unknown type of service/product — discounted-1 | `0x4445000000000002` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x4445_2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x4445_2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x4445_2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x4445_2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x4445_2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x4445_2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x4445_2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x4445_2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x4445_2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x4445_2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x4445_2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x4445_2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x4445_2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x4445_2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x4445_2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x4445_2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x4445_2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x4445_2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x4445_2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x4445_2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x4445_2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x4445_2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4445_2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x4445_2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x4445_2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x4445_2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x4445_2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x4445_2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x4445_2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x4445_2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x4445_2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x4445_2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | +| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4445_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 |
@@ -228,51 +715,92 @@ A systematic approach to updating case values:
Austria (AT) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4154000000000001` | TODO | -| Cash payment — foreign currency | `0x4154000000000002` | TODO | -| Crossed cheque | `0x4154000000000003` | TODO | -| Debit card payment | `0x4154000000000004` | TODO | -| Credit card payment | `0x4154000000000005` | TODO | -| Online payment | `0x4154000000000007` | TODO | -| Customer card payment | `0x4154000000000008` | TODO | -| SEPA transfer | `0x415400000000000C` | TODO | -| Internal material consumption | `0x4154000000000011` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | +| `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | +| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x4154_2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x4154_2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x4154_2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4154_2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x4154_2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4154_2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4154_2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4154_2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4154_2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip |
France (FR) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4652000000000001` | TODO | -| Cash payment — foreign currency | `0x4652000000000002` | TODO | -| Crossed cheque | `0x4652000000000003` | TODO | -| Debit card payment | `0x4652000000000004` | TODO | -| Credit card payment | `0x4652000000000005` | TODO | -| Online payment | `0x4652000000000007` | TODO | -| Customer card payment | `0x4652000000000008` | TODO | -| SEPA transfer | `0x465200000000000C` | TODO | -| Internal material consumption | `0x4652000000000011` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | +| `0x4652_2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | +| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x4652_2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x4652_2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x4652_2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4652_2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x4652_2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4652_2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4652_2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4652_2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4652_2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip |
Germany (DE) -| Business Case | v0 Value | POSSystemAPI v2 Value | -|---------------|----------|-----------------------| -| Cash payment — national currency | `0x4445000000000001` | TODO | -| Cash payment — foreign currency | `0x4445000000000002` | TODO | -| Crossed cheque | `0x4445000000000003` | TODO | -| Debit card payment | `0x4445000000000004` | TODO | -| Credit card payment | `0x4445000000000005` | TODO | -| Online payment | `0x4445000000000006` | TODO | -| Customer card payment | `0x4445000000000007` | TODO | -| SEPA transfer | `0x4445000000000008` | TODO | -| Internal material consumption | `0x444500000000000A` | TODO | +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | +| `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | +| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x4445_2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x4445_2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x4445_2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x4445_2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x4445_2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x4445_2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4445_2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x4445_2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x4445_2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x4445_2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee |
@@ -357,12 +885,12 @@ The inner string value for a given market key may be an empty string (`""`) when The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable. The key differences are: -| Field | v0 | v2 | -|-----------------------------|-------------------------------------|-------------------------------------------------------| -| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | -| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | -| `DecimalPrecisionMultiplier`| Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | -| `ftPosSystemID` | Optional | Recommended — identifies your POS software | +| Field | v0 | v2 | +| ----- | -- | ---| +| `cbReceiptReference` | Optional in some flows | **Required** — must be a unique string per request | +| `Currency` | Not present | Added — ISO 4217 currency code (default: `EUR`) | +| `DecimalPrecisionMultiplier` | Not present | Added — controls integer vs. floating-point amounts (default: `1`, i.e. floating-point) | +| `ftPosSystemID` | Optional | Recommended — identifies your POS software | All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. @@ -416,11 +944,11 @@ The portal-side configuration requires adding a **LocalPosSystemApi Helper** to The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: -| v0 call | v2 HTTP endpoint | Notes | -|--------------------------------------------------|-----------------------------------|-----------------------------------------------------------------------| -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +| v0 call | v2 HTTP endpoint | Notes | +| -------- | ---------------- |------ | +| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | ##### Authentication From ea3ecb83000345381135c9e714a1b2c25bf10056 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 17 Jun 2026 14:30:09 +0200 Subject: [PATCH 27/34] Added flag sections --- .../general/migration/v0-to-possystemapi.md | 689 ++++++++++++++++++ 1 file changed, 689 insertions(+) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index b599051..641b09d 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -321,6 +321,212 @@ A systematic approach to updating case values: +##### ftReceiptCaseFlag + +
+Austria (AT) + +**Fixed Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | + +**Dynamics Mappings** + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x4154_2000_0800_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0800_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4154_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x4154_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4154_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4154_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4154_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | +| `0x4154_2000_0010_4000` | `0x0000_0000_0000_0000` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4154_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4154_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4154_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4154_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4154_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4154_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4154_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4154_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4154_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4154_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4154_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4652_2000_0800_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0800_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x4652_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / signing certificate information (type2) | +| `0x4652_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x4652_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x4652_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x4652_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | +| `0x4652_2000_0010_4000` | `0x0000_0000_0000_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x4652_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4652_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4652_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4652_2000_0008_0000` | `0x0000_0000_0000_0000` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x4652_2000_0040_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x4652_2000_0080_0000` | `0x0000_0000_0000_0000` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x4652_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x4652_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4652_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x4445_2000_0800_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0800_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x4445_2000_0100_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x4445_2000_0010_2000` | `0x0000_0001_0080_0000` | Request additional SCU information / TSE (type2) | +| `0x4445_2000_0020_2000` | `0x0000_0001_0200_0000` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x4445_2000_0040_2000` | `0x0000_0001_0400_0000` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x4445_2000_0080_2000` | `0x0000_0001_0100_0000` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x4445_2000_0100_2000` | `0x0000_0001_0800_0000` | Request masterdata update (type2) | +| `0x4445_2000_0010_4000` | `0x0000_0001_0100_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x4445_2000_0000_0000` | `0x0000_0001_0000_0000` | Implicit flow for receipt type | +| `0x4445_2000_0000_1000` | `0x0000_0001_0000_0000` | Implicit flow for invoice type | +| `0x4445_2000_0000_3000` | `0x0000_0001_0000_0000` | Implicit flow for log type | +| `0x4445_2000_0000_0000` | `0x0000_0000_0000_0000` | Explicit flow for receipt type , no effect , information only | +| `0x4445_2000_0000_1000` | `0x0000_0000_0000_0000` | Explicit flow for invoice type , no effect , information only | +| `0x4445_2000_0000_3000` | `0x0000_0000_0000_0000` | Explicit flow for log type , no effect , information only | +| `0x4445_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x4445_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x4445_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x4445_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x4445_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x4445_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x4445_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x4445_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x4445_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x4445_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | +| `0x4445_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | + +
+ #### ftChargeItemCase
@@ -710,6 +916,395 @@ A systematic approach to updating case values:
+##### ftChargeItemCaseFlag + +
+Austria (AT) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_5008` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4154_2000_0000_0011` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_0000_0012` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_0000_0013` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4154_2000_0000_0014` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0015` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0016` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0017` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4154_2000_0000_0018` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0021` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4154_2000_0000_0022` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4154_2000_0000_0023` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4154_2000_0000_0024` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0025` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0026` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0027` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4154_2000_0000_0028` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0000_0031` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4154_2000_0000_0032` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4154_2000_0000_0033` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4154_2000_0000_0034` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0035` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0036` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4154_2000_0000_0037` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4154_2000_0000_0038` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4154_2000_0000_0041` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4154_2000_0000_0042` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4154_2000_0000_0043` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4154_2000_0000_0044` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0045` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0046` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4154_2000_0000_0047` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4154_2000_0000_0048` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4154_2000_0000_0051` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4154_2000_0000_0052` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4154_2000_0000_0053` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4154_2000_0000_0054` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0055` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0056` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4154_2000_0000_0057` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4154_2000_0000_0058` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4154_2000_0000_0061` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4154_2000_0000_0062` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4154_2000_0000_0063` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4154_2000_0000_0064` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0065` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0066` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4154_2000_0000_0067` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4154_2000_0000_0068` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4154_2000_0000_0071` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4154_2000_0000_0072` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4154_2000_0000_0073` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4154_2000_0000_0074` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0075` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0076` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4154_2000_0000_0077` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4154_2000_0000_0078` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4154_2000_0000_0081` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4154_2000_0000_0082` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4154_2000_0000_0083` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4154_2000_0000_0084` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4154_2000_0000_0085` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4154_2000_0000_0086` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4154_2000_0000_0087` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4154_2000_0000_0088` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4154_2000_0000_0098` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4154_2000_0000_00A8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x4154_2000_0008_0000` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4154_2000_0008_0001` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4154_2000_0008_0002` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4154_2000_0008_0003` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4154_2000_0008_0004` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0005` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0006` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0007` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4154_2000_0008_0008` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0011` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4154_2000_0008_0012` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4154_2000_0008_0013` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4154_2000_0008_0014` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0015` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0016` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0017` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4154_2000_0008_0018` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0021` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4154_2000_0008_0022` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4154_2000_0008_0023` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4154_2000_0008_0024` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4154_2000_0008_0025` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0026` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4154_2000_0008_0027` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4154_2000_0008_0028` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4154_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4154_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4154_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4154_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4154_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_5008` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4652_2000_0000_0011` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_0000_0012` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_0000_0013` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x4652_2000_0000_0014` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0015` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0016` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0017` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x4652_2000_0000_0018` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0021` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x4652_2000_0000_0022` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x4652_2000_0000_0023` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x4652_2000_0000_0024` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0025` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0026` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0027` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x4652_2000_0000_0028` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0000_0031` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x4652_2000_0000_0032` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x4652_2000_0000_0033` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x4652_2000_0000_0034` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0035` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0036` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x4652_2000_0000_0037` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x4652_2000_0000_0038` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x4652_2000_0000_0041` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x4652_2000_0000_0042` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x4652_2000_0000_0043` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x4652_2000_0000_0044` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0045` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0046` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x4652_2000_0000_0047` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x4652_2000_0000_0048` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x4652_2000_0000_0051` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x4652_2000_0000_0052` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x4652_2000_0000_0053` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x4652_2000_0000_0054` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0055` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0056` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x4652_2000_0000_0057` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x4652_2000_0000_0058` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x4652_2000_0000_0061` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x4652_2000_0000_0062` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x4652_2000_0000_0063` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x4652_2000_0000_0064` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0065` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0066` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x4652_2000_0000_0067` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x4652_2000_0000_0068` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x4652_2000_0000_0071` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x4652_2000_0000_0072` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x4652_2000_0000_0073` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x4652_2000_0000_0074` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0075` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0076` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x4652_2000_0000_0077` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x4652_2000_0000_0078` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x4652_2000_0000_0081` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4652_2000_0000_0082` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x4652_2000_0000_0083` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x4652_2000_0000_0084` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4652_2000_0000_0085` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4652_2000_0000_0086` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x4652_2000_0000_0087` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x4652_2000_0000_0088` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x4652_2000_0000_0098` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x4652_2000_0000_00A8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x4652_2000_0008_0000` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x4652_2000_0008_0001` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x4652_2000_0008_0002` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x4652_2000_0008_0003` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x4652_2000_0008_0004` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0005` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0006` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0007` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x4652_2000_0008_0008` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0011` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x4652_2000_0008_0012` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x4652_2000_0008_0013` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x4652_2000_0008_0014` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0015` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0016` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0017` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x4652_2000_0008_0018` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0021` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x4652_2000_0008_0022` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x4652_2000_0008_0023` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x4652_2000_0008_0024` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x4652_2000_0008_0025` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0026` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x4652_2000_0008_0027` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x4652_2000_0008_0028` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x4652_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4652_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4652_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0006` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x4445_2000_0000_0011` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x4445_2000_0000_0012` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0013` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x4445_2000_0000_0014` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0015` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0016` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0017` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x4445_2000_0000_0018` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x4445_2000_0000_0021` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x4445_2000_0000_0022` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0023` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x4445_2000_0000_0024` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0025` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0026` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0027` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x4445_2000_0000_0028` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x4445_2000_0010_0002` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0010_0003` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x4445_2000_0010_0004` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x4445_2000_0010_0005` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x4445_2000_0010_0006` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0010_0007` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x4445_2000_0010_0008` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x4445_2000_0012_0001` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x4445_2000_0012_0002` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0012_0003` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x4445_2000_0012_0004` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x4445_2000_0012_0005` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x4445_2000_0012_0006` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0012_0007` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x4445_2000_0012_0008` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x4445_2000_0004_0001` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_0004_0002` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0004_0004` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0004_0005` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0007` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0004_0008` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0004_0001` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0004_0002` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0004_0004` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0004_0005` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0004_0007` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0004_0008` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0081` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0082` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0083` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x4445_2000_0000_0084` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0085` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0086` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0087` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x4445_2000_0000_0088` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x4445_2000_0000_0031` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x4445_2000_0000_0032` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0033` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x4445_2000_0000_0034` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0035` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0036` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0037` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x4445_2000_0000_0038` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x4445_2000_0000_0041` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0042` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0000_0044` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0045` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0046` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0047` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0041` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0000_0042` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0000_0044` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0045` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0046` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0047` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_0091` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x4445_2000_0000_0092` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x4445_2000_0000_0094` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x4445_2000_0000_0095` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x4445_2000_0000_0096` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0097` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x4445_2000_0000_0098` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x4445_2000_0000_0091` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x4445_2000_0000_0092` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x4445_2000_0000_0094` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x4445_2000_0000_0095` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x4445_2000_0000_0096` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0000_0097` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x4445_2000_0000_0098` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x4445_2000_0008_0001` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x4445_2000_0008_0002` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x4445_2000_0008_0004` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0008_0005` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0007` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x4445_2000_0008_0008` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x4445_2000_0008_0001` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x4445_2000_0008_0002` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x4445_2000_0008_0004` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x4445_2000_0008_0005` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x4445_2000_0008_0007` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x4445_2000_0008_0008` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x4445_2000_0000_00A8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x4445_2000_0000_5008` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x4445_2000_0000_0061` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x4445_2000_0000_0062` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x4445_2000_0000_0063` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x4445_2000_0000_0064` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x4445_2000_0000_0065` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x4445_2000_0000_0066` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x4445_2000_0000_0067` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x4445_2000_0000_0051` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0052` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0053` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0054` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0055` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0056` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0057` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0058` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x4445_2000_0000_0071` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0072` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0073` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0074` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0075` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0076` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0077` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x4445_2000_0000_0078` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x4445_2000_0020_0000` | `0x0000_0000_0001_0000` | v2 Take Away | +| `0x4445_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x4445_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x4445_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x4445_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | + +
+ #### ftPayItemCase
@@ -804,6 +1399,100 @@ A systematic approach to updating case values:
+##### ftPayItemCaseFlag + +
+Austria (AT) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Cash payment | +| `0x4154_2000_0010_0001` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0007` | Online payment | +| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x4154_2000_0000_0009` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x4154_2000_0000_000A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x4154_2000_0000_000B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4154_2000_0000_000D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x4154_2000_0000_000E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4154_2000_0000_000F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4154_2000_0008_0009` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4154_2000_0020_0001` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4154_2000_0040_0001` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | + +
+ +
+France (FR) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Cash payment | +| `0x4652_2000_0010_0001` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0007` | Online payment | +| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x4652_2000_0000_0009` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x4652_2000_0000_000A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x4652_2000_0000_000B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x4652_2000_0000_000D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x4652_2000_0000_000E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x4652_2000_0000_000F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4652_2000_0008_0009` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x4652_2000_0020_0001` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x4652_2000_0040_0001` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | + +
+ +
+Germany (DE) + +| **v2 (in)** | **v0 (out)** | **Comment** | +| ----------- | ------------ | ----------- | +| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Cash payment | +| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x4445_2000_0000_0006` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Online payment | +| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x4445_2000_0000_0009` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x4445_2000_0000_000A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x4445_2000_0000_000B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x4445_2000_0000_000D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x4445_2000_0000_000E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x4445_2000_0000_000F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x4445_2000_0008_0009` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x4445_2000_0020_0001` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x4445_2000_0030_0001` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x4445_2000_0040_0001` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | + +
+ Key differences highlighted: 1. The base URL changes. 2. All case numeric values must be remapped. From c9a4f429d75942beb2321814b98bff0c49e97181 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Wed, 17 Jun 2026 16:01:10 +0200 Subject: [PATCH 28/34] Replaced tables with a note --- .../general/migration/v0-to-possystemapi.md | 735 +----------------- 1 file changed, 27 insertions(+), 708 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 641b09d..6ae4183 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -122,8 +122,8 @@ A systematic approach to updating case values: **Fixed Mappings** -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | | `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | @@ -156,8 +156,8 @@ A systematic approach to updating case values: **Dynamics Mappings** -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | | `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | @@ -188,8 +188,8 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | | `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | @@ -251,8 +251,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | | `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | | `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | @@ -321,219 +321,13 @@ A systematic approach to updating case values:
-##### ftReceiptCaseFlag - -
-Austria (AT) - -**Fixed Mappings** - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | -| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | -| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | -| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | -| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | -| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | -| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | -| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | -| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | -| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | -| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | -| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | -| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | -| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | -| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | -| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | -| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | -| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | -| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | -| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | -| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | -| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | - -**Dynamics Mappings** - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | -| `0x4154_2000_0800_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0800_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / RKSV signing certificate information (type2) | -| `0x4154_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4154_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4154_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4154_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | -| `0x4154_2000_0010_4000` | `0x0000_0000_0000_0000` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4154_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4154_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4154_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4154_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4154_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4154_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4154_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4154_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4154_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4154_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4154_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4652_2000_0800_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0800_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | -| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | -| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | -| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | -| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | -| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | -| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | -| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | -| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | -| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | -| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | -| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | -| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | -| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | -| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | -| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | -| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | -| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | -| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | -| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | -| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | -| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0010_2000` | `0x0000_0000_0000_0000` | Request additional SCU information / signing certificate information (type2) | -| `0x4652_2000_0020_2000` | `0x0000_0000_0000_0000` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4652_2000_0040_2000` | `0x0000_0000_0000_0000` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4652_2000_0080_2000` | `0x0000_0000_0000_0000` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4652_2000_0100_2000` | `0x0000_0000_0000_0000` | Request masterdata update / no implementation in v0 (type2) | -| `0x4652_2000_0010_4000` | `0x0000_0000_0000_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4652_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4652_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4652_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4652_2000_0008_0000` | `0x0000_0000_0000_0000` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | -| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | -| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | -| `0x4652_2000_0040_0000` | `0x0000_0000_0000_0000` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | -| `0x4652_2000_0080_0000` | `0x0000_0000_0000_0000` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | -| `0x4652_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | -| `0x4652_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4652_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4445_2000_0800_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0800_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2000_0100_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | -| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | -| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | -| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | -| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | -| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | -| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | -| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | -| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | -| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | -| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | -| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | -| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | -| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | -| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | -| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | -| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | -| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | -| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | -| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | -| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | -| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | -| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | -| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | -| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | -| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | -| `0x4445_2000_0010_2000` | `0x0000_0001_0080_0000` | Request additional SCU information / TSE (type2) | -| `0x4445_2000_0020_2000` | `0x0000_0001_0200_0000` | Request download of SCU journal / force TSE-TAR file download (type2) | -| `0x4445_2000_0040_2000` | `0x0000_0001_0400_0000` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | -| `0x4445_2000_0080_2000` | `0x0000_0001_0100_0000` | Request execute SCU self-test / execute TSE self-test (type2) | -| `0x4445_2000_0100_2000` | `0x0000_0001_0800_0000` | Request masterdata update (type2) | -| `0x4445_2000_0010_4000` | `0x0000_0001_0100_0000` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | -| `0x4445_2000_0000_0000` | `0x0000_0001_0000_0000` | Implicit flow for receipt type | -| `0x4445_2000_0000_1000` | `0x0000_0001_0000_0000` | Implicit flow for invoice type | -| `0x4445_2000_0000_3000` | `0x0000_0001_0000_0000` | Implicit flow for log type | -| `0x4445_2000_0000_0000` | `0x0000_0000_0000_0000` | Explicit flow for receipt type , no effect , information only | -| `0x4445_2000_0000_1000` | `0x0000_0000_0000_0000` | Explicit flow for invoice type , no effect , information only | -| `0x4445_2000_0000_3000` | `0x0000_0000_0000_0000` | Explicit flow for log type , no effect , information only | -| `0x4445_2000_0001_0000` | `0x0000_0000_0001_0000` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4445_2000_0002_0000` | `0x0000_0000_0002_0000` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4445_2000_0004_0000` | `0x0000_0000_0004_0000` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4445_2000_0008_0000` | `0x0000_0000_0008_0000` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4445_2000_0010_0000` | `0x0000_0000_0010_0000` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4445_2000_0020_0000` | `0x0000_0000_0020_0000` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4445_2000_0040_0000` | `0x0000_0000_0040_0000` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4445_2000_0080_0000` | `0x0000_0000_0080_0000` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4445_2000_0100_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4445_2000_0800_0000` | `0x0000_0000_0000_0000` | v2 Group by Position-Number => v0 not supported | -| `0x4445_2000_8000_0000` | `0x0000_8000_0000_0000` | v2 ReceiptRequest => v0 general receipt request | - -
- #### ftChargeItemCase
Austria (AT) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | | `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | @@ -646,8 +440,8 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | | `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | @@ -760,8 +554,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | | `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | | `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | @@ -916,402 +710,13 @@ A systematic approach to updating case values:
-##### ftChargeItemCaseFlag - -
-Austria (AT) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_5008` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4154_2000_0000_0011` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_0000_0012` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_0000_0013` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4154_2000_0000_0014` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0015` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0016` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0017` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4154_2000_0000_0018` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0021` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4154_2000_0000_0022` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4154_2000_0000_0023` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4154_2000_0000_0024` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0025` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0026` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0027` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4154_2000_0000_0028` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0000_0031` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4154_2000_0000_0032` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4154_2000_0000_0033` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4154_2000_0000_0034` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0035` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0036` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4154_2000_0000_0037` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4154_2000_0000_0038` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4154_2000_0000_0041` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4154_2000_0000_0042` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4154_2000_0000_0043` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4154_2000_0000_0044` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0045` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0046` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4154_2000_0000_0047` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4154_2000_0000_0048` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4154_2000_0000_0051` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4154_2000_0000_0052` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4154_2000_0000_0053` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4154_2000_0000_0054` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0055` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0056` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4154_2000_0000_0057` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4154_2000_0000_0058` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4154_2000_0000_0061` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4154_2000_0000_0062` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4154_2000_0000_0063` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4154_2000_0000_0064` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0065` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0066` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4154_2000_0000_0067` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4154_2000_0000_0068` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4154_2000_0000_0071` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4154_2000_0000_0072` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4154_2000_0000_0073` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4154_2000_0000_0074` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0075` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0076` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4154_2000_0000_0077` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4154_2000_0000_0078` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4154_2000_0000_0081` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4154_2000_0000_0082` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4154_2000_0000_0083` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4154_2000_0000_0084` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4154_2000_0000_0085` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4154_2000_0000_0086` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4154_2000_0000_0087` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4154_2000_0000_0088` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4154_2000_0000_0098` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4154_2000_0000_00A8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | -| `0x4154_2000_0008_0000` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4154_2000_0008_0001` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4154_2000_0008_0002` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4154_2000_0008_0003` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4154_2000_0008_0004` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0005` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0006` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0007` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4154_2000_0008_0008` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0011` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_0008_0012` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_0008_0013` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4154_2000_0008_0014` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0015` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0016` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0017` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4154_2000_0008_0018` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0021` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4154_2000_0008_0022` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4154_2000_0008_0023` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4154_2000_0008_0024` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_0008_0025` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0026` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_0008_0027` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4154_2000_0008_0028` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4154_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4154_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4154_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4154_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_5008` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4652_2000_0000_0011` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_0000_0012` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_0000_0013` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4652_2000_0000_0014` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0015` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0016` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0017` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4652_2000_0000_0018` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0021` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4652_2000_0000_0022` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4652_2000_0000_0023` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4652_2000_0000_0024` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0025` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0026` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0027` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4652_2000_0000_0028` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0000_0031` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4652_2000_0000_0032` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4652_2000_0000_0033` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4652_2000_0000_0034` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0035` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0036` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4652_2000_0000_0037` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4652_2000_0000_0038` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4652_2000_0000_0041` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4652_2000_0000_0042` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4652_2000_0000_0043` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4652_2000_0000_0044` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0045` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0046` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4652_2000_0000_0047` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4652_2000_0000_0048` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4652_2000_0000_0051` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4652_2000_0000_0052` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4652_2000_0000_0053` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4652_2000_0000_0054` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0055` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0056` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4652_2000_0000_0057` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4652_2000_0000_0058` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4652_2000_0000_0061` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4652_2000_0000_0062` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4652_2000_0000_0063` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4652_2000_0000_0064` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0065` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0066` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4652_2000_0000_0067` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4652_2000_0000_0068` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4652_2000_0000_0071` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4652_2000_0000_0072` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4652_2000_0000_0073` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4652_2000_0000_0074` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0075` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0076` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4652_2000_0000_0077` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4652_2000_0000_0078` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4652_2000_0000_0081` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4652_2000_0000_0082` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4652_2000_0000_0083` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4652_2000_0000_0084` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4652_2000_0000_0085` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4652_2000_0000_0086` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4652_2000_0000_0087` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4652_2000_0000_0088` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4652_2000_0000_0098` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4652_2000_0000_00A8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | -| `0x4652_2000_0008_0000` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4652_2000_0008_0001` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4652_2000_0008_0002` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4652_2000_0008_0003` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4652_2000_0008_0004` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0005` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0006` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0007` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4652_2000_0008_0008` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0011` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_0008_0012` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_0008_0013` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4652_2000_0008_0014` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0015` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0016` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0017` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4652_2000_0008_0018` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0021` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4652_2000_0008_0022` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4652_2000_0008_0023` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4652_2000_0008_0024` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_0008_0025` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0026` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_0008_0027` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4652_2000_0008_0028` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4652_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4652_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4652_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4652_2000_0020_0000` | `0x0000_0000_0000_0000` | v2 Take Away => v0 take away => no implementation in v0 | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0006` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | -| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | -| `0x4445_2000_0000_0011` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | -| `0x4445_2000_0000_0012` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0013` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | -| `0x4445_2000_0000_0014` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0015` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0016` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0017` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | -| `0x4445_2000_0000_0018` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | -| `0x4445_2000_0000_0021` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | -| `0x4445_2000_0000_0022` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0023` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | -| `0x4445_2000_0000_0024` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0025` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0026` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0027` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | -| `0x4445_2000_0000_0028` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | -| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | -| `0x4445_2000_0010_0002` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0010_0003` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | -| `0x4445_2000_0010_0004` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | -| `0x4445_2000_0010_0005` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | -| `0x4445_2000_0010_0006` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0010_0007` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | -| `0x4445_2000_0010_0008` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | -| `0x4445_2000_0012_0001` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | -| `0x4445_2000_0012_0002` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0012_0003` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | -| `0x4445_2000_0012_0004` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | -| `0x4445_2000_0012_0005` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | -| `0x4445_2000_0012_0006` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0012_0007` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | -| `0x4445_2000_0012_0008` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | -| `0x4445_2000_0004_0001` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_0004_0002` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0004_0004` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0004_0005` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0007` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0004_0008` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0004_0001` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0004_0002` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0003` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0004_0004` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0004_0005` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0004_0006` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0004_0007` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0004_0008` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0081` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0082` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0083` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | -| `0x4445_2000_0000_0084` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0085` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0086` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0087` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | -| `0x4445_2000_0000_0088` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | -| `0x4445_2000_0000_0031` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | -| `0x4445_2000_0000_0032` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0033` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | -| `0x4445_2000_0000_0034` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0035` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0036` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0037` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | -| `0x4445_2000_0000_0038` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | -| `0x4445_2000_0000_0041` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0042` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0000_0044` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0045` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0046` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0047` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0041` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0000_0042` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0043` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0000_0044` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0045` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0046` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0047` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0000_0048` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_0091` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | -| `0x4445_2000_0000_0092` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | -| `0x4445_2000_0000_0094` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | -| `0x4445_2000_0000_0095` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | -| `0x4445_2000_0000_0096` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0097` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | -| `0x4445_2000_0000_0098` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | -| `0x4445_2000_0000_0091` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | -| `0x4445_2000_0000_0092` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0093` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | -| `0x4445_2000_0000_0094` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | -| `0x4445_2000_0000_0095` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | -| `0x4445_2000_0000_0096` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0000_0097` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | -| `0x4445_2000_0000_0098` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | -| `0x4445_2000_0008_0001` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_0008_0002` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | -| `0x4445_2000_0008_0004` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0008_0005` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0007` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | -| `0x4445_2000_0008_0008` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_0008_0001` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_0008_0002` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0003` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | -| `0x4445_2000_0008_0004` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_0008_0005` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_0008_0006` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_0008_0007` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | -| `0x4445_2000_0008_0008` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_0000_00A8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | -| `0x4445_2000_0000_5008` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4445_2000_0000_0061` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | -| `0x4445_2000_0000_0062` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | -| `0x4445_2000_0000_0063` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | -| `0x4445_2000_0000_0064` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | -| `0x4445_2000_0000_0065` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | -| `0x4445_2000_0000_0066` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | -| `0x4445_2000_0000_0067` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | -| `0x4445_2000_0000_0051` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0052` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0053` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0054` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0055` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0056` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0057` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0058` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | -| `0x4445_2000_0000_0071` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0072` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0073` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0074` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0075` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0076` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0077` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | -| `0x4445_2000_0000_0078` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | -| `0x4445_2000_0020_0000` | `0x0000_0000_0001_0000` | v2 Take Away | -| `0x4445_2000_0001_0000` | `0x0000_0000_0000_0000` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4445_2000_0002_0000` | `0x0000_0000_0000_0000` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4445_2000_0004_0000` | `0x0000_0000_0000_0000` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4445_2000_0010_0000` | `0x0000_0000_0000_0000` | v2 Returnable => v0 general returnable => no implementation in v0 | - -
- #### ftPayItemCase
Austria (AT) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | | `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | | `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | @@ -1339,7 +744,7 @@ A systematic approach to updating case values:
France (FR) -| **v2 (in)** | **v0 (out)** | **Comment** | +| **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | ----------- | | `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | | `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | @@ -1368,8 +773,8 @@ A systematic approach to updating case values:
Germany (DE) -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | +| **v2 (in)** | **v0 (out)** | **Description** | +| ----------- | ------------ | --------------- | | `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | | `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | | `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | @@ -1399,105 +804,19 @@ A systematic approach to updating case values:
-##### ftPayItemCaseFlag - -
-Austria (AT) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Cash payment | -| `0x4154_2000_0010_0001` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0003` | Crossed check payment | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_0004` | Debit card payment | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0005` | Credit card payment | -| `0x4154_2000_0000_0006` | `0x4154_0000_0000_0006` | Voucher payment | -| `0x4154_2000_0000_0007` | `0x4154_0000_0000_0007` | Online payment | -| `0x4154_2000_0000_0008` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | -| `0x4154_2000_0000_0009` | `0x4154_0000_0000_000B` | Accounts receiveable | -| `0x4154_2000_0000_000A` | `0x4154_0000_0000_000C` | Sepa wire transfer | -| `0x4154_2000_0000_000B` | `0x4154_0000_0000_000D` | Other wire/bank transer | -| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4154_2000_0000_000C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4154_2000_0000_000D` | `0x4154_0000_0000_0011` | Internal / material consumption | -| `0x4154_2000_0000_000E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4154_2000_0000_000F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4154_2000_0008_0009` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4154_2000_0020_0001` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4154_2000_0040_0001` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | - -
- -
-France (FR) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Cash payment | -| `0x4652_2000_0010_0001` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_0003` | Crossed check payment | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_0004` | Debit card payment | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0005` | Credit card payment | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0006` | Voucher payment | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0007` | Online payment | -| `0x4652_2000_0000_0008` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | -| `0x4652_2000_0000_0009` | `0x4652_0000_0000_000B` | Accounts receiveable | -| `0x4652_2000_0000_000A` | `0x4652_0000_0000_000C` | Sepa wire transfer | -| `0x4652_2000_0000_000B` | `0x4652_0000_0000_000D` | Other wire/bank transer | -| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4652_2000_0000_000C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4652_2000_0000_000D` | `0x4652_0000_0000_0011` | Internal / material consumption | -| `0x4652_2000_0000_000E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4652_2000_0000_000F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4652_2000_0008_0009` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4652_2000_0020_0001` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4652_2000_0040_0001` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | - -
- -
-Germany (DE) - -| **v2 (in)** | **v0 (out)** | **Comment** | -| ----------- | ------------ | ----------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Cash payment | -| `0x4445_2000_0010_0001` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0003` | Crossed check payment | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0004` | Debit card payment | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_0005` | Credit card payment | -| `0x4445_2000_0000_0006` | `0x4445_0000_0000_000D` | Voucher payment | -| `0x4445_2000_0000_0007` | `0x4445_0000_0000_0006` | Online payment | -| `0x4445_2000_0000_0008` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | -| `0x4445_2000_0000_0009` | `0x4445_0000_0000_000E` | Accounts receiveable | -| `0x4445_2000_0000_000A` | `0x4445_0000_0000_0008` | Sepa wire transfer | -| `0x4445_2000_0000_000B` | `0x4445_0000_0000_0009` | Other wire/bank transer | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | -| `0x4445_2000_0000_000C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | -| `0x4445_2000_0000_000D` | `0x4445_0000_0000_000A` | Internal / material consumption | -| `0x4445_2000_0000_000E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | -| `0x4445_2000_0000_000F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4445_2000_0008_0009` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | -| `0x4445_2000_0020_0001` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | -| `0x4445_2000_0030_0001` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | -| `0x4445_2000_0040_0001` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | - -
- Key differences highlighted: 1. The base URL changes. 2. All case numeric values must be remapped. 3. `ftReceiptCaseData` is now an object keyed by market code instead of a raw string. +:::info Important + +For the `ftReceiptCaseFlag`, `ftChargeItemCaseFlag`, and `ftPayItemCaseFlag` fields, replace every lowercase letter `o` in flag values with the digit `0` (zero). Examples: +- `0x4154_2oo0_oo8o_2ooo` → `0x4154_2000_0080_2000` +- `0xoooo_oooo_oooo_oooo` → `0x0000_0000_0000_0000` + +::: + #### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. From e00318831f2ed33a13081d872d8a8a2ac483e734 Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 18 Jun 2026 14:56:46 +0200 Subject: [PATCH 29/34] Revise migration guide for PosSystem API updates Updated migration documentation for the PosSystem API, including changes to Launcher requirements, market-specific constraints, and data flow. Revised API endpoint paths and authentication headers. --- .../general/migration/v0-to-possystemapi.md | 71 ++++--------------- 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 6ae4183..2e9dbba 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -31,44 +31,17 @@ Before starting the migration, ensure you have: - Access to the **fiskaltrust.Portal** to reconfigure CashBoxes. - An existing integration that successfully produces receipts against the v0 SignatureCloud API. - Access to a **sandbox cashbox** for testing your migrated integration before going live. -- **Launcher 2.0** (minimum version `2.0.0-rc.25`) — the PosSystem API requires Launcher 2.0. -:::caution Market availability +:::caution Market availability for local setups The PosSystem API via Launcher 2.0 has market-specific constraints: - **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. -- **France (FR):** Launcher 2.0 is not yet supported. French customers should contact fiskaltrust for the current roadmap before planning a migration. +- **France (FR):** Launcher 2.0 is not yet supported. The workaround is setting 2 cashboxes, one with the queue and one with the POSSystemAPI helper without a queue. French customers should contact fiskaltrust for more instructions if needed. - **Germany (DE):** TBD ::: -## Architecture Overview - -The following table summarises the key architectural differences between the two integration approaches: - -| Aspect | v0 (legacy) | v2 - PosSystem API | -| ------ | ----------- | ------------------ | -| **Protocol** | WCF (SOAP) or REST `/v0/` | HTTP REST `/possystemapi/` | -| **Communication style** | Synchronous (blocking) | Modern REST (JSON) | -| **Middleware component** | Queue package directly | LocalPosSystemApi Helper in front of the Queue | -| **Launcher** | Launcher 1.x | Launcher 2.0 (min. `2.0.0-rc.25`) | -| **Authentication** | Cashbox ID + AccessToken (per request / in service binding) | Cashbox ID + AccessToken in HTTP headers, PIN pairing via Portal | -| **Client libraries** | .NET `ifPOS.v0` NuGet package, WCF proxies, or REST HTTP calls | Any HTTP client | -| **New feature support** | None - no new features planned | All new features (e-invoicing, etc.) | - -- **v0 data flow:** - -``` -POS System → WCF or REST (/v0/) → fiskaltrust Queue -``` - -- **v2 data flow:** - -``` -POS System → HTTP REST (/possystemapi/) → LocalPosSystemApi Helper → fiskaltrust Queue -``` - ## Cloud CashBox (base URL change) If your integration targets a **Cloud CashBox** (for example, your POS system calls the fiskaltrust cloud endpoint rather than a locally-running Middleware), the base URL changes as part of the migration: @@ -92,9 +65,9 @@ Replace all occurrences of the per-market v0 base URL in your integration with t The path structure changes accordingly: -- Sign - **v0 path:** `/[json|xml]/v0/sign`; **v2 path:** `/api/v2/sign` -- Echo - **v0 path:** `/[json|xml]/v0/echo`; **v2 path:** `/api/v2/echo` -- Journal - **v0 path:** `/[json|xml]/v0/journal`; **v2 path:** `/api/v2/journal` +- Sign - **v0 path:** `/[json|xml]/sign`; **v2 path:** `/sign` +- Echo - **v0 path:** `/[json|xml]/echo`; **v2 path:** `/echo` +- Journal - **v0 path:** `/[json|xml]/journal`; **v2 path:** `/journal` ### Case Values @@ -909,27 +882,6 @@ The `ReceiptResponse` structure is largely compatible. Verify that your receipt - `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations. - `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states. -#### Timestamps - -The v0 Journal call used **.NET Ticks** for the `from` and `to` parameters: - -``` -// v0 example -proxy.Journal(ftJournalType, 0, DateTime.UtcNow.Ticks); -``` - -The v2 Journal request uses **ISO 8601 UTC date-time strings** in the JSON body: - -```json -{ - "ftJournalType": 8301034833876213761, - "from": "2020-01-01T00:00:00Z", - "to": "2024-12-31T23:59:59Z" -} -``` - -If you need to convert existing .NET Tick values, use the formulas from the [Function Structures reference](../function-structures/function-structures.md#timestamps). - ## Local CashBox :::note Sandbox/admin access only @@ -954,17 +906,18 @@ The three core operations map directly from v0 to v2, but the calling convention | v0 call | v2 HTTP endpoint | Notes | | -------- | ---------------- |------ | -| `proxy.Echo("message")` | `POST /api/v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /api/v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /api/v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | +| `proxy.Echo("message")` | `POST /v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | +| `proxy.Sign(receiptRequest)` | `POST /v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | +| `proxy.Journal(ftJournalType, from, to)` | `POST /v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | ##### Authentication All v2 requests must include the following HTTP headers: ``` -cashboxid: -accesstoken: +x-cashbox-id : +x-cashbox-accesstoken : +x-operation-id : a UUID randomly generated on your side ``` Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal. For more information, see how to [Test the PosSystem API Helper](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper). @@ -974,7 +927,7 @@ Both values are available on the CashBox page in the fiskaltrust.Portal. On firs **Request:** ```json -POST /api/v2/echo +POST /v2/echo { "message": "test" } From 19b68f0853eadbb7c40e8ee2ea72ab1a3c9c9849 Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 18 Jun 2026 15:01:11 +0200 Subject: [PATCH 30/34] Remove country codes Country codes are depreciated in the POSSystemAPI and not needed anymore --- .../general/migration/v0-to-possystemapi.md | 1212 ++++++++--------- 1 file changed, 606 insertions(+), 606 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 2e9dbba..6aa6016 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -83,7 +83,7 @@ A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. 2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. -3. Replace the v0 value with the v2 value shown in the platform example. +3. Replace the v0 value with the v2 value shown in the platform example. Remove the country code (4154 for AT, 4445 for DE and 4652 for FR) which is not needed anymore. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). 5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. 6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. @@ -97,64 +97,64 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4154_2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | -| `0x4154_2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | -| `0x4154_2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | -| `0x4154_2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | -| `0x4154_2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | -| `0x4154_2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | -| `0x4154_2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | -| `0x4154_2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | -| `0x4154_2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | -| `0x4154_2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | -| `0x4154_2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | -| `0x4154_2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | -| `0x4154_2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | -| `0x4154_2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | -| `0x4154_2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | -| `0x4154_2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | -| `0x4154_2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | -| `0x4154_2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | -| `0x4154_2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | -| `0x4154_2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | -| `0x4154_2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | -| `0x4154_2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | -| `0x4154_2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | -| `0x4154_2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | -| `0x4154_2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4154_2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2000_0000_0001` | `0x4154_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0003` | `0x4154_0000_0000_0007` | Point-of-sale receipt type without fiskalisation obligation or with exemption | +| `0x2000_0000_0004` | `0x4154_0000_0000_000F` | E-commerce receipt type | +| `0x2000_0000_0005` | `0x4154_0000_0000_0009` | Delivery note receipt type | +| `0x2000_0000_1000` | `0x4154_0000_0000_0008` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4154_0000_0000_0008` | B2C invoice type | +| `0x2000_0000_1002` | `0x4154_0000_0000_0008` | B2B invoice type | +| `0x2000_0000_1003` | `0x4154_0000_0000_0008` | B2G invoice type | +| `0x2000_0000_2000` | `0x4154_0000_0000_0002` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4154_0000_0000_0002` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4154_0000_0000_0002` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4154_0000_0000_0002` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4154_0000_0000_0005` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4154_0000_0000_0006` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4154_0000_0000_000D` | Unknown/unspecified protocol type | +| `0x2000_0000_3001` | `0x4154_0000_0000_000D` | Technical event protocol type | +| `0x2000_0000_3002` | `0x4154_0000_0000_000D` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4154_0000_0000_000E` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4154_0000_0000_000D` | Order protocol type | +| `0x2000_0000_3005` | `0x4154_0000_0000_000D` | Pay protocol type | +| `0x2000_0000_3010` | `0x4154_0000_0000_000D` | Copy receipt / re-print existing receipt protocol type => no implementation in v0 | +| `0x2000_0000_3011` | `0x4154_0000_0000_000D` | Archive receipt / archive all previouse data protocol type => no implementation in v0 | +| `0x2000_0000_4001` | `0x4154_0000_0000_0003` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4154_0000_0000_0004` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4154_0000_0000_0002` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4012` | `0x4154_0000_0000_0002` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4021` | `0x4154_0000_0000_0002` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4022` | `0x4154_0000_0000_0002` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | **Dynamics Mappings** | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4154_2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | -| `0x4154_2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4154_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | -| `0x4154_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4154_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4154_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4154_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | -| `0x4154_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4154_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4154_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4154_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4154_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4154_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4154_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4154_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4154_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0002` | `0x4154_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x2000_0000_0002` | `0x4154_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x2000_0000_0002` | `0x4154_0000_0000_000C` | Payment transfer receipt type | +| `0x2ooo_o8oo_0000` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4154_0000_0000_0010` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / RKSV signing certificate information (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Queue registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -163,61 +163,61 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4652_2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4652_2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | -| `0x4652_2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | -| `0x4652_2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | -| `0x4652_2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | -| `0x4652_2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | -| `0x4652_2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | -| `0x4652_2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | -| `0x4652_2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | -| `0x4652_2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | -| `0x4652_2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | -| `0x4652_2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | -| `0x4652_2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | -| `0x4652_2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | -| `0x4652_2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | -| `0x4652_2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | -| `0x4652_2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | -| `0x4652_2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | -| `0x4652_2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | -| `0x4652_2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | -| `0x4652_2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | -| `0x4652_2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | -| `0x4652_2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | -| `0x4652_2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | -| `0x4652_2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | -| `0x4652_2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | -| `0x4652_2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | -| `0x4652_2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | -| `0x4652_2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | -| `0x4652_2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | -| `0x4652_2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | -| `0x4652_2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | -| `0x4652_2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | -| `0x4652_2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | -| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4652_2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | -| `0x4652_2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | -| `0x4652_2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | -| `0x4652_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | -| `0x4652_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4652_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2ooo_o8oo_0000` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4652_0000_0000_000E` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2000_0000_0001` | `0x4652_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0002` | `0x4652_0000_0000_000A` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) > 0 , pay-in to drawer/till | +| `0x2000_0000_0002` | `0x4652_0000_0000_000B` | Payment transfer receipt type ; conditional. ChargeItems == [] && cash(PayItems) < 0 , pay-out from drawer/till | +| `0x2000_0000_0002` | `0x4652_0000_0000_000C` | Payment transfer receipt type | +| `0x2000_0000_0003` | `0x4652_0000_0000_000E` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x2000_0000_0004` | `0x4652_0000_0000_000E` | E-commerce receipt type => v0 France handles it in Foreign sales and chaines it into Bill | +| `0x2000_0000_0005` | `0x4652_0000_0000_0009` | Delivery note receipt type | +| `0x2000_0000_0006` | `0x4652_0000_0000_0008` | Bill receipt type | +| `0x2000_0000_0007` | `0x4652_0000_0000_0008` | Proforma invoice receipt type | +| `0x2000_0000_1000` | `0x4652_0000_0000_0003` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4652_0000_0000_0003` | B2C invoice type | +| `0x2000_0000_1002` | `0x4652_0000_0000_0003` | B2B invoice type | +| `0x2000_0000_1003` | `0x4652_0000_0000_0003` | B2G invoice type | +| `0x2000_0000_2000` | `0x4652_0000_0000_000F` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4652_0000_0000_000F` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4652_0000_0000_0004` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4652_0000_0000_0005` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4652_0000_0000_0006` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4652_0000_0000_0007` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4652_0000_0000_0014` | Unknown/unspecified protocol type | +| `0x2000_0000_3001` | `0x4652_0000_0000_0012` | Technical event protocol type | +| `0x2000_0000_3002` | `0x4652_0000_0000_0013` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4652_0000_0000_000D` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4652_0000_0000_0008` | Order protocol type | +| `0x2000_0000_3005` | `0x4652_0000_0000_0002` | Pay protocol type => v0 france payment prove | +| `0x2000_0000_3010` | `0x4652_0000_0000_0016` | Copy receipt / re-print existing receipt protocol type | +| `0x2000_0000_3011` | `0x4652_0000_0000_0015` | Archive receipt / archive all previouse data protocol type | +| `0x2000_0000_4001` | `0x4652_0000_0000_0010` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4652_0000_0000_0011` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4652_0000_0000_000F` | Start-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4012` | `0x4652_0000_0000_000F` | Stop-scu-switch lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4021` | `0x4652_0000_0000_000F` | Start-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2000_0000_4022` | `0x4652_0000_0000_000F` | Stop-migration lifecycle type => no implementation in v0, using zeroreceipt | +| `0x2oo0_oo1o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request additional SCU information / signing certificate information (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request download of SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request bypoass of SCU SCU journal / no implementation in v0 (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_oooo_oooo_oooo` | Request execute SCU self-test / no implementation in v0 (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_oooo_oooo_oooo` | Request masterdata update / no implementation in v0 (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_oooo_oooo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / no implementation in v0 (type4) | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_oooo_oooo` | v2 handwritten mode => v0 general handwritten receipt, no implementation in v0 (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IssurIsSmallBusiness => v0 general small business, sales tax relief, no implementation in v0 France (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsBusiness => v0 general receiver is a company, no implementation in v0 France (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 ReceiverIsKnown => v0 general receiver is known, no implementation in v0 France (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsSaleInForeignCountry => v0 general no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1), no implementation in v0 | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -226,71 +226,71 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | -| `0x4445_2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | -| `0x4445_2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | -| `0x4445_2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | -| `0x4445_2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | -| `0x4445_2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | -| `0x4445_2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | -| `0x4445_2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | -| `0x4445_2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | -| `0x4445_2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | -| `0x4445_2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | -| `0x4445_2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | -| `0x4445_2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | -| `0x4445_2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | -| `0x4445_2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | -| `0x4445_2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | -| `0x4445_2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | -| `0x4445_2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | -| `0x4445_2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | -| `0x4445_2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | -| `0x4445_2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | -| `0x4445_2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | -| `0x4445_2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | -| `0x4445_2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | -| `0x4445_2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | -| `0x4445_2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | -| `0x4445_2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | -| `0x4445_2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | -| `0x4445_2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | -| `0x4445_2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | -| `0x4445_2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | -| `0x4445_2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | -| `0x4445_2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | -| `0x4445_2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | -| `0x4445_2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | -| `0x4445_2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | -| `0x4445_2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | -| `0x4445_2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | -| `0x4445_2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | -| `0x4445_2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | -| `0x4445_2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | -| `0x4445_2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | -| `0x4445_2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | -| `0x4445_2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | -| `0x4445_2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | -| `0x4445_2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | -| `0x4445_2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | -| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | -| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | -| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | -| `0x4445_2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | -| `0x4445_2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | -| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | -| `0x4445_2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | -| `0x4445_2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | -| `0x4445_2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | -| `0x4445_2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | -| `0x4445_2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown receipt type, threated the same way as a point-of-sale receipt type | +| `0x2ooo_o8oo_0000` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0001` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0002` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o8oo_0003` | `0x4445_0000_0000_0015` | IsSaleInForeignCountry flag recognized in any point-of-sale receipt type, v0 makes no difference between unknown, pos, pos with exemption | +| `0x2ooo_o1oo_0003` | `0x4445_0000_0000_0016` | German "AVBelegstorno/Kassenbeleg-V1" which should not be used with TSE (technical saftey device), pos with exemption | +| `0x2000_0000_0001` | `0x4445_0000_0000_0001` | Point-of-sale receipt type | +| `0x2000_0000_0002` | `0x4445_0000_0000_0011` | Payment transfer receipt type | +| `0x2000_0000_0003` | `0x4445_0000_0000_0015` | Point-of-sale receipt type without fiskalisation obligation or with exemption => v0 Germany handles it in Foreign sales | +| `0x2000_0000_0004` | `0x4445_0000_0000_0015` | E-commerce receipt type => v0 Germany handles it in Foreign sales | +| `0x2000_0000_0005` | `0x4445_0000_0000_000F` | Delivery note receipt type | +| `0x2000_0000_1000` | `0x4445_0000_0000_000E` | Unknown invoice type | +| `0x2000_0000_1001` | `0x4445_0000_0000_000D` | B2C invoice type | +| `0x2000_0000_1002` | `0x4445_0000_0000_000C` | B2B invoice type | +| `0x2000_0000_1003` | `0x4445_0000_0000_000E` | B2G invoice type | +| `0x2000_0000_2000` | `0x4445_0001_0000_0002` | Zero receipt dailyoperation type | +| `0x2000_0000_2001` | `0x4445_0001_0000_0002` | (reserved) dailyoperation type | +| `0x2000_0000_2010` | `0x4445_0001_0000_0002` | Shift closing dailyoperation type | +| `0x2000_0000_2011` | `0x4445_0001_0000_0007` | Daily closing dailyoperation type | +| `0x2000_0000_2012` | `0x4445_0001_0000_0005` | Monthly closing dailyoperation type | +| `0x2000_0000_2013` | `0x4445_0001_0000_0006` | Yearly closing dailyoperation type | +| `0x2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "AVSonstige/Kassenbeleg-V1" requires ChargeItems != [] && PayItems != [] | +| `0x2000_0000_3000` | `0x4445_0000_0000_0013` | Unknown/unspecified protocol type => v0 German "SonstigerVorgang" requires ChargeItems == [] | +| `0x2000_0000_3001` | `0x4445_0000_0000_0014` | Technical event protocol type | +| `0x2011_0000_3001` | `0x4445_0000_0000_0008` | German "Start-Transaction" | +| `0x2021_0000_3001` | `0x4445_0000_0000_0009` | German "Update-Transaction" | +| `0x2031_0000_3001` | `0x4445_0000_0000_000A` | German "Delta-Transaction" | +| `0x2041_0000_3001` | `0x4445_0000_0000_000B` | German "Fail-Transaction" to close single open transaction | +| `0x2040_0000_3001` | `0x4445_0001_0000_000B` | German "Fail-Transaction" to close multiple open transactions | +| `0x2000_0000_3002` | `0x4445_0000_0000_0014` | Audit event / accounting event protocol type | +| `0x2000_0000_3003` | `0x4445_0000_0000_0012` | Internal usage / material consumption protocol type | +| `0x2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "Bestellung-V1" requires ChargeItems != [] && PayItems == [] | +| `0x2000_0000_3004` | `0x4445_0000_0000_0010` | Order protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x2000_0000_3005` | `0x4445_0000_0000_0010` | Pay protocol type => v0 German "AVBestellung/Kassenbeleg-V1" requires PayItems != [] | +| `0x2000_0000_3010` | `0x4445_0000_0000_0014` | Copy receipt / re-print existing receipt protocol type | +| `0x2000_0000_3011` | `0x4445_0000_0000_0014` | Archive receipt / archive all previouse data protocol type | +| `0x2000_0000_4001` | `0x4445_0001_0000_0003` | Start-receipt lifecycle type | +| `0x2000_0000_4002` | `0x4445_0001_0000_0004` | Stop-receipt lifecycle type | +| `0x2000_0000_4011` | `0x4445_0001_0000_0010` | Start-scu-switch lifecycle type | +| `0x2000_0000_4012` | `0x4445_0001_0000_0011` | Stop-scu-switch lifecycle type | +| `0x2000_0000_4021` | `0x4445_0001_0000_0010` | Start-migration lifecycle type | +| `0x2000_0000_4022` | `0x4445_0001_0000_0011` | Stop-migration lifecycle type | +| `0x2oo0_oo1o_2ooo` | `0xoooo_ooo1_oo8o_oooo` | Request additional SCU information / TSE (type2) | +| `0x2oo0_oo2o_2ooo` | `0xoooo_ooo1_o2oo_oooo` | Request download of SCU journal / force TSE-TAR file download (type2) | +| `0x2oo0_oo4o_2ooo` | `0xoooo_ooo1_o4oo_oooo` | Request bypoass of SCU SCU journal / bypass TSE-TAR file download (type2) | +| `0x2oo0_oo8o_2ooo` | `0xoooo_ooo1_o1oo_oooo` | Request execute SCU self-test / execute TSE self-test (type2) | +| `0x2oo0_o1oo_2ooo` | `0xoooo_ooo1_o8oo_oooo` | Request masterdata update (type2) | +| `0x2oo0_oo1o_4ooo` | `0xoooo_ooo1_o1oo_oooo` | Client registration/de-registration only (no initial provision/no final de-provistion) of SCU / ClientId registration/de-registration only for TSE (type4) | +| `0x2oo0_oooo_0ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for receipt type | +| `0x2oo0_oooo_1ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for invoice type | +| `0x2oo0_oooo_3ooo` | `0xoooo_ooo1_oooo_oooo` | Implicit flow for log type | +| `0x2ooo_oooo_0ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for receipt type , no effect , information only | +| `0x2ooo_oooo_1ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for invoice type , no effect , information only | +| `0x2ooo_oooo_3ooo` | `0xoooo_ooo0_oooo_oooo` | Explicit flow for log type , no effect , information only | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 process late signing => v0 general failed receipt (type0,1) | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_ooo2_oooo` | v2 training mode => v0 general training receipt (type0,1,3) | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_ooo4_oooo` | v2 IsVoid => v0 general void receipt (type0,1) | +| `0x2ooo_ooo8_oooo` | `0xoooo_oooo_ooo8_oooo` | v2 handwritten mode => v0 general handwritten receipt (type0,1) | +| `0x2ooo_oo1o_oooo` | `0xoooo_oooo_oo1o_oooo` | v2 IssurIsSmallBusiness => v0 Germany small business, sales tax relief (type0,1) | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_oo2o_oooo` | v2 ReceiverIsBusiness => v0 Germany receiver is a company (type0,1) | +| `0x2ooo_oo4o_oooo` | `0xoooo_oooo_oo4o_oooo` | v2 ReceiverIsKnown => v0 Germany receiver is known (type0,1) | +| `0x2ooo_oo8o_oooo` | `0xoooo_oooo_oo8o_oooo` | v2 IsSaleInForeignCountry => v0 Germany no action required, handled as indirect translations (type0,1) | +| `0x2ooo_o1oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/IsRefund => v0 no action required,
optional verify cbPreviouseReceiptReference set;
optional verify ChargeItem(Amount) == (-1)xcbPreviouseReceiptReference(ChargeItem(Amount));
optional verify ChargeItem(Quantity) == (-1)xcbPreviouseReceiptReference(ChargeItem(Quantity)); (type0,1) | +| `0x2ooo_o8oo_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Group by Position-Number => v0 not supported | +| `0x2ooo_8ooo_oooo` | `0xoooo_8ooo_oooo_oooo` | v2 ReceiptRequest => v0 general receipt request |
@@ -301,112 +301,112 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4154_2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4154_2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4154_2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4154_2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4154_2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4154_2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4154_2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4154_2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4154_2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4154_2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4154_2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4154_2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4154_2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4154_2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4154_2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4154_2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4154_2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4154_2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4154_2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4154_2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4154_2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4154_2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4154_2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4154_2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4154_2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4154_2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4154_2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4154_2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4154_2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | -| `0x4154_2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4154_2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4154_2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4154_2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4154_2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4154_2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4154_2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4154_2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4154_2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4154_2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4154_2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4154_2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4154_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4154_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4154_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4154_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4154_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4154_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4154_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x2000_oooo_oo03` | `0x4154_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4154_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4154_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo06` | `0x4154_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo07` | `0x4154_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4154_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_5oo8` | `0x4154_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo11` | `0x4154_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4154_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x2000_oooo_oo13` | `0x4154_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4154_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4154_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo16` | `0x4154_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo17` | `0x4154_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4154_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo21` | `0x4154_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4154_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x2000_oooo_oo23` | `0x4154_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4154_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4154_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo26` | `0x4154_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo27` | `0x4154_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4154_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo31` | `0x4154_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4154_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x2000_oooo_oo33` | `0x4154_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4154_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4154_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4154_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x2000_oooo_oo37` | `0x4154_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4154_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4154_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4154_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x2000_oooo_oo43` | `0x4154_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4154_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4154_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4154_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x2000_oooo_oo47` | `0x4154_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4154_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x2000_oooo_oo51` | `0x4154_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x2000_oooo_oo52` | `0x4154_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x2000_oooo_oo53` | `0x4154_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x2000_oooo_oo54` | `0x4154_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo55` | `0x4154_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo56` | `0x4154_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x2000_oooo_oo57` | `0x4154_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x2000_oooo_oo58` | `0x4154_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x2000_oooo_oo61` | `0x4154_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4154_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4154_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4154_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4154_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4154_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo68` | `0x4154_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x2000_oooo_oo71` | `0x4154_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x2000_oooo_oo72` | `0x4154_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x2000_oooo_oo73` | `0x4154_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x2000_oooo_oo74` | `0x4154_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x2000_oooo_oo75` | `0x4154_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x2000_oooo_oo76` | `0x4154_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x2000_oooo_oo77` | `0x4154_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x2000_oooo_oo78` | `0x4154_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4154_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4154_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x2000_oooo_oo83` | `0x4154_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4154_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x2000_oooo_oo87` | `0x4154_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4154_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x2000_oooo_oo98` | `0x4154_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4154_0000_0000_0023` | Cash transfer type of service, not taxable type of vat | +| `0x2000_ooo8_oo00` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x2000_ooo8_oo01` | `0x4154_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x2000_ooo8_oo02` | `0x4154_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x2000_ooo8_oo03` | `0x4154_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x2000_ooo8_oo04` | `0x4154_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo05` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo06` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo07` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x2000_ooo8_oo08` | `0x4154_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo11` | `0x4154_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x2000_ooo8_oo12` | `0x4154_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x2000_ooo8_oo13` | `0x4154_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x2000_ooo8_oo14` | `0x4154_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo15` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo16` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo17` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x2000_ooo8_oo18` | `0x4154_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo21` | `0x4154_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x2000_ooo8_oo22` | `0x4154_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x2000_ooo8_oo23` | `0x4154_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x2000_ooo8_oo24` | `0x4154_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo25` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo26` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo27` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x2000_ooo8_oo28` | `0x4154_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
@@ -415,112 +415,112 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | -| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | -| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4652_2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | -| `0x4652_2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | -| `0x4652_2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | -| `0x4652_2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | -| `0x4652_2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | -| `0x4652_2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | -| `0x4652_2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | -| `0x4652_2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | -| `0x4652_2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | -| `0x4652_2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | -| `0x4652_2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | -| `0x4652_2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | -| `0x4652_2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | -| `0x4652_2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | -| `0x4652_2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | -| `0x4652_2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | -| `0x4652_2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | -| `0x4652_2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | -| `0x4652_2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | -| `0x4652_2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4652_2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | -| `0x4652_2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | -| `0x4652_2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4652_2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4652_2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | -| `0x4652_2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | -| `0x4652_2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | -| `0x4652_2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | -| `0x4652_2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | -| `0x4652_2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | -| `0x4652_2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | -| `0x4652_2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | -| `0x4652_2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | -| `0x4652_2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | -| `0x4652_2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | -| `0x4652_2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | -| `0x4652_2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | -| `0x4652_2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | -| `0x4652_2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | -| `0x4652_2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | -| `0x4652_2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | -| `0x4652_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4652_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4652_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4652_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | -| `0x4652_2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4652_0000_0000_0001` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4652_0000_0000_0002` | Unknown type of service, discounted2 type of vat | +| `0x2000_oooo_oo03` | `0x4652_0000_0000_0003` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4652_0000_0000_0004` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4652_0000_0000_0005` | Unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo06` | `0x4652_0000_0000_0005` | Unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo07` | `0x4652_0000_0000_0005` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4652_0000_0000_0005` | Unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_5oo8` | `0x4652_0000_0000_0006` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo11` | `0x4652_0000_0000_0008` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4652_0000_0000_0009` | Supply of goods type of service, discounted2 type of vat | +| `0x2000_oooo_oo13` | `0x4652_0000_0000_000A` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4652_0000_0000_000B` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4652_0000_0000_000C` | Supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo16` | `0x4652_0000_0000_000C` | Supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo17` | `0x4652_0000_0000_000C` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4652_0000_0000_000C` | Supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo21` | `0x4652_0000_0000_000D` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4652_0000_0000_000E` | Supply of service type of service, discounted2 type of vat | +| `0x2000_oooo_oo23` | `0x4652_0000_0000_000F` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4652_0000_0000_0010` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4652_0000_0000_0011` | Supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo26` | `0x4652_0000_0000_0011` | Supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo27` | `0x4652_0000_0000_0011` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4652_0000_0000_0011` | Supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_oooo_oo31` | `0x4652_0000_0000_0001` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4652_0000_0000_0002` | Tip to owner type of service, discounted2 type of vat | +| `0x2000_oooo_oo33` | `0x4652_0000_0000_0003` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4652_0000_0000_0004` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4652_0000_0000_0005` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4652_0000_0000_0005` | Tip to owner type of service, parking type of vat | +| `0x2000_oooo_oo37` | `0x4652_0000_0000_0005` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4652_0000_0000_0005` | Tip to employee type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4652_0000_0000_0001` | Single-use voucher type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4652_0000_0000_0002` | Single-use voucher type of service, discounted2 type of vat | +| `0x2000_oooo_oo43` | `0x4652_0000_0000_0003` | Single-use voucher type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4652_0000_0000_0004` | Single-use voucher type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4652_0000_0000_0005` | Single-use voucher type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4652_0000_0000_0005` | Single-use voucher type of service, parking type of vat | +| `0x2000_oooo_oo47` | `0x4652_0000_0000_0005` | Single-use voucher type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4652_0000_0000_0021` | Multi-use voucher type of service, not taxable type of vat | +| `0x2000_oooo_oo51` | `0x4652_0000_0000_0012` | Catalog service type of service, discounted1 type of vat | +| `0x2000_oooo_oo52` | `0x4652_0000_0000_0013` | Catalog service type of service, discounted2 type of vat | +| `0x2000_oooo_oo53` | `0x4652_0000_0000_0014` | Catalog service type of service, normal type of vat | +| `0x2000_oooo_oo54` | `0x4652_0000_0000_0015` | Catalog service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo55` | `0x4652_0000_0000_0016` | Catalog service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo56` | `0x4652_0000_0000_0016` | Catalog service type of service, parking type of vat | +| `0x2000_oooo_oo57` | `0x4652_0000_0000_0016` | Catalog service type of service, zero type of vat | +| `0x2000_oooo_oo58` | `0x4652_0000_0000_0016` | Catalog service type of service, not taxable type of vat | +| `0x2000_oooo_oo61` | `0x4652_0000_0000_0007` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4652_0000_0000_0007` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4652_0000_0000_0007` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4652_0000_0000_0007` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4652_0000_0000_0007` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4652_0000_0000_0007` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo68` | `0x4652_0000_0000_0021` | Receiveable of thired party type of service, not taxable type of vat | +| `0x2000_oooo_oo71` | `0x4652_0000_0000_0017` | Own consumption type of service, discounted1 type of vat | +| `0x2000_oooo_oo72` | `0x4652_0000_0000_0018` | Own consumption type of service, discounted2 type of vat | +| `0x2000_oooo_oo73` | `0x4652_0000_0000_0019` | Own consumption type of service, normal type of vat | +| `0x2000_oooo_oo74` | `0x4652_0000_0000_001A` | Own consumption type of service, superreduced1 type of vat | +| `0x2000_oooo_oo75` | `0x4652_0000_0000_001B` | Own consumption type of service, superreduced2 type of vat | +| `0x2000_oooo_oo76` | `0x4652_0000_0000_001B` | Own consumption type of service, parking type of vat | +| `0x2000_oooo_oo77` | `0x4652_0000_0000_001B` | Own consumption type of service, zero type of vat | +| `0x2000_oooo_oo78` | `0x4652_0000_0000_001B` | Own consumption type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4652_0000_0000_0001` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4652_0000_0000_0002` | Grant (unreal) type of service, discounted2 type of vat | +| `0x2000_oooo_oo83` | `0x4652_0000_0000_0003` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4652_0000_0000_0004` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, parking type of vat | +| `0x2000_oooo_oo87` | `0x4652_0000_0000_0005` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4652_0000_0000_0005` | Grant (real) type of service, not taxable type of vat | +| `0x2000_oooo_oo98` | `0x4652_0000_0000_0022` | Receiveable type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4652_0000_0000_0022` | Cash transfer type of service, not taxable type of vat | +| `0x2000_ooo8_oo00` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, unknown type of vat | +| `0x2000_ooo8_oo01` | `0x4652_0000_0000_001C` | Downpayment, unknown type of service, discounted1 type of vat | +| `0x2000_ooo8_oo02` | `0x4652_0000_0000_001D` | Downpayment, unknown type of service, discounted2 type of vat | +| `0x2000_ooo8_oo03` | `0x4652_0000_0000_001E` | Downpayment, unknown type of service, normal type of vat | +| `0x2000_ooo8_oo04` | `0x4652_0000_0000_001F` | Downpayment, unknown type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo05` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo06` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo07` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, zero type of vat | +| `0x2000_ooo8_oo08` | `0x4652_0000_0000_0020` | Downpayment, unknown type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo11` | `0x4652_0000_0000_001C` | Downpayment, supply of goods type of service, discounted1 type of vat | +| `0x2000_ooo8_oo12` | `0x4652_0000_0000_001D` | Downpayment, supply of goods type of service, discounted2 type of vat | +| `0x2000_ooo8_oo13` | `0x4652_0000_0000_001E` | Downpayment, supply of goods type of service, normal type of vat | +| `0x2000_ooo8_oo14` | `0x4652_0000_0000_001F` | Downpayment, supply of goods type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo15` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo16` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo17` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, zero type of vat | +| `0x2000_ooo8_oo18` | `0x4652_0000_0000_0020` | Downpayment, supply of goods type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo21` | `0x4652_0000_0000_001C` | Downpayment, supply of service type of service, discounted1 type of vat | +| `0x2000_ooo8_oo22` | `0x4652_0000_0000_001D` | Downpayment, supply of service type of service, discounted2 type of vat | +| `0x2000_ooo8_oo23` | `0x4652_0000_0000_001E` | Downpayment, supply of service type of service, normal type of vat | +| `0x2000_ooo8_oo24` | `0x4652_0000_0000_001F` | Downpayment, supply of service type of service, superreduced1 type of vat | +| `0x2000_ooo8_oo25` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, superreduced2 type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo26` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, parking type of vat => not defined in v0, goto zero | +| `0x2000_ooo8_oo27` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, zero type of vat | +| `0x2000_ooo8_oo28` | `0x4652_0000_0000_0020` | Downpayment, supply of service type of service, not taxable type of vat => not defined in v0, goto zero | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2ooo_oo20_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Take Away => v0 take away => no implementation in v0 |
@@ -529,157 +529,157 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | -| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | -| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | -| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | -| `0x4445_2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | -| `0x4445_2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | -| `0x4445_2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | -| `0x4445_2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | -| `0x4445_2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | -| `0x4445_2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | -| `0x4445_2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | -| `0x4445_2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | -| `0x4445_2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | -| `0x4445_2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | -| `0x4445_2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | -| `0x4445_2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | -| `0x4445_2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | -| `0x4445_2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | -| `0x4445_2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | -| `0x4445_2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | -| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | -| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | -| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | -| `0x4445_2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | -| `0x4445_2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | -| `0x4445_2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | -| `0x4445_2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | -| `0x4445_2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | -| `0x4445_2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | -| `0x4445_2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | -| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | -| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | -| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | -| `0x4445_2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | -| `0x4445_2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | -| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | -| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | -| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | -| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | -| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | -| `0x4445_2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | -| `0x4445_2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | -| `0x4445_2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | -| `0x4445_2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | -| `0x4445_2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | -| `0x4445_2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | -| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | -| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | -| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | -| `0x4445_2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | -| `0x4445_2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | -| `0x4445_2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | -| `0x4445_2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | -| `0x4445_2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | -| `0x4445_2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | -| `0x4445_2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | -| `0x4445_2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | -| `0x4445_2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | -| `0x4445_2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | -| `0x4445_2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | -| `0x4445_2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | -| `0x4445_2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | -| `0x4445_2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | -| `0x4445_2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | -| `0x4445_2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | -| `0x4445_2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | -| `0x4445_2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | -| `0x4445_2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | -| `0x4445_2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | -| `0x4445_2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | -| `0x4445_2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | -| `0x4445_2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | -| `0x4445_2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown chargeitem type, unknown type of service, unknown type of vat, future logic may detect vat-type from vat-rate | +| `0x2000_oooo_oo01` | `0x4445_0000_0000_0002` | Unknown type of service, discounted1 type of vat | +| `0x2000_oooo_oo02` | `0x4445_0000_0000_0007` | Unknown type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo03` | `0x4445_0000_0000_0001` | Unknown type of service, normal type of vat | +| `0x2000_oooo_oo04` | `0x4445_0000_0000_0003` | Unknown type of service, superreduced1 type of vat | +| `0x2000_oooo_oo05` | `0x4445_0000_0000_0004` | Unknown type of service, superreduced2 type of vat | +| `0x2000_oooo_oo06` | `0x4445_0000_0000_0007` | Unknown type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo07` | `0x4445_0000_0000_0006` | Unknown type of service, zero type of vat | +| `0x2000_oooo_oo08` | `0x4445_0000_0000_0005` | Unknown type of service, not taxable type of vat | +| `0x2000_oooo_oo11` | `0x4445_0000_0000_0012` | Supply of goods type of service, discounted1 type of vat | +| `0x2000_oooo_oo12` | `0x4445_0000_0000_0017` | Supply of goods type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo13` | `0x4445_0000_0000_0011` | Supply of goods type of service, normal type of vat | +| `0x2000_oooo_oo14` | `0x4445_0000_0000_0013` | Supply of goods type of service, superreduced1 type of vat | +| `0x2000_oooo_oo15` | `0x4445_0000_0000_0014` | Supply of goods type of service, superreduced2 type of vat | +| `0x2000_oooo_oo16` | `0x4445_0000_0000_0017` | Supply of goods type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo17` | `0x4445_0000_0000_0016` | Supply of goods type of service, zero type of vat | +| `0x2000_oooo_oo18` | `0x4445_0000_0000_0015` | Supply of goods type of service, not taxable type of vat | +| `0x2000_oooo_oo21` | `0x4445_0000_0000_001A` | Supply of service type of service, discounted1 type of vat | +| `0x2000_oooo_oo22` | `0x4445_0000_0000_001F` | Supply of service type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo23` | `0x4445_0000_0000_0019` | Supply of service type of service, normal type of vat | +| `0x2000_oooo_oo24` | `0x4445_0000_0000_001B` | Supply of service type of service, superreduced1 type of vat | +| `0x2000_oooo_oo25` | `0x4445_0000_0000_001C` | Supply of service type of service, superreduced2 type of vat | +| `0x2000_oooo_oo26` | `0x4445_0000_0000_001F` | Supply of service type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo27` | `0x4445_0000_0000_001E` | Supply of service type of service, zero type of vat | +| `0x2000_oooo_oo28` | `0x4445_0000_0000_001D` | Supply of service type of service, not taxable type of vat | +| `0x2000_oo1o_ooo1` | `0x4445_0000_0000_0022` | Returnable type of service, discounted1 type of vat | +| `0x2000_oo1o_ooo2` | `0x4445_0000_0000_0027` | Returnable type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oo1o_ooo3` | `0x4445_0000_0000_0021` | Returnable type of service, normal type of vat | +| `0x2000_oo1o_ooo4` | `0x4445_0000_0000_0023` | Returnable type of service, superreduced1 type of vat | +| `0x2000_oo1o_ooo5` | `0x4445_0000_0000_0024` | Returnable type of service, superreduced2 type of vat | +| `0x2000_oo1o_ooo6` | `0x4445_0000_0000_0027` | Returnable type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oo1o_ooo7` | `0x4445_0000_0000_0026` | Returnable type of service, zero type of vat | +| `0x2000_oo1o_ooo8` | `0x4445_0000_0000_0025` | Returnable type of service, not taxable type of vat | +| `0x2000_oo12_ooo1` | `0x4445_0000_0000_002A` | Returnable refund type of service, discounted1 type of vat | +| `0x2000_oo12_ooo2` | `0x4445_0000_0000_002F` | Returnable refund type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oo12_ooo3` | `0x4445_0000_0000_0029` | Returnable refund type of service, normal type of vat | +| `0x2000_oo12_ooo4` | `0x4445_0000_0000_002B` | Returnable refund type of service, superreduced1 type of vat | +| `0x2000_oo12_ooo5` | `0x4445_0000_0000_002C` | Returnable refund type of service, superreduced2 type of vat | +| `0x2000_oo12_ooo6` | `0x4445_0000_0000_0027` | Returnable refund type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oo12_ooo7` | `0x4445_0000_0000_002E` | Returnable refund type of service, zero type of vat | +| `0x2000_oo12_ooo8` | `0x4445_0000_0000_002D` | Returnable refund type of service, not taxable type of vat | +| `0x2000_ooo4_ooo1` | `0x4445_0000_0000_0032` | Discount (amount < 0) type of service, discounted1 type of vat | +| `0x2000_ooo4_ooo2` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo3` | `0x4445_0000_0000_0031` | Discount (amount < 0) type of service, normal type of vat | +| `0x2000_ooo4_ooo4` | `0x4445_0000_0000_0033` | Discount (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_ooo4_ooo5` | `0x4445_0000_0000_0034` | Discount (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo7` | `0x4445_0000_0000_0036` | Discount (amount < 0) type of service, zero type of vat | +| `0x2000_ooo4_ooo8` | `0x4445_0000_0000_0035` | Discount (amount < 0) type of service, not taxable type of vat | +| `0x2000_ooo4_ooo1` | `0x4445_0000_0000_003A` | Discount (amount > 0) type of service, discounted1 type of vat | +| `0x2000_ooo4_ooo2` | `0x4445_0000_0000_003F` | Discount (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo3` | `0x4445_0000_0000_0039` | Discount (amount > 0) type of service, normal type of vat | +| `0x2000_ooo4_ooo4` | `0x4445_0000_0000_003B` | Discount (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_ooo4_ooo5` | `0x4445_0000_0000_003C` | Discount (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_ooo4_ooo6` | `0x4445_0000_0000_0037` | Discount (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo4_ooo7` | `0x4445_0000_0000_003E` | Discount (amount > 0) type of service, zero type of vat | +| `0x2000_ooo4_ooo8` | `0x4445_0000_0000_003D` | Discount (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo81` | `0x4445_0000_0000_0042` | Grant (unreal) type of service, discounted1 type of vat | +| `0x2000_oooo_oo82` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo83` | `0x4445_0000_0000_0041` | Grant (unreal) type of service, normal type of vat | +| `0x2000_oooo_oo84` | `0x4445_0000_0000_0043` | Grant (unreal) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo85` | `0x4445_0000_0000_0044` | Grant (unreal) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo86` | `0x4445_0000_0000_0047` | Grant (unreal) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo87` | `0x4445_0000_0000_0046` | Grant (unreal) type of service, zero type of vat | +| `0x2000_oooo_oo88` | `0x4445_0000_0000_0049` | Grant (real) type of service, not taxable type of vat => _0045 will not be reachable from v2 | +| `0x2000_oooo_oo31` | `0x4445_0000_0000_0052` | Tip to owner type of service, discounted1 type of vat | +| `0x2000_oooo_oo32` | `0x4445_0000_0000_0057` | Tip to owner type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo33` | `0x4445_0000_0000_0051` | Tip to owner type of service, normal type of vat | +| `0x2000_oooo_oo34` | `0x4445_0000_0000_0053` | Tip to owner type of service, superreduced1 type of vat | +| `0x2000_oooo_oo35` | `0x4445_0000_0000_0054` | Tip to owner type of service, superreduced2 type of vat | +| `0x2000_oooo_oo36` | `0x4445_0000_0000_0057` | Tip to owner type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo37` | `0x4445_0000_0000_0056` | Tip to owner type of service, zero type of vat | +| `0x2000_oooo_oo38` | `0x4445_0000_0000_0059` | Tip to employee type of service, not taxable type of vat => _0055 will not be reachable from v2 | +| `0x2000_oooo_oo41` | `0x4445_0000_0000_0062` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo43` | `0x4445_0000_0000_0061` | Single-use voucher (amount > 0) type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4445_0000_0000_0063` | Single-use voucher (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4445_0000_0000_0064` | Single-use voucher (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4445_0000_0000_0067` | Single-use voucher (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo47` | `0x4445_0000_0000_0066` | Single-use voucher (amount > 0) type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4445_0000_0000_0060` | Multi-use voucher (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo41` | `0x4445_0000_0000_006A` | Single-use voucher (amount > 0) type of service, discounted1 type of vat | +| `0x2000_oooo_oo42` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo43` | `0x4445_0000_0000_0069` | Single-use voucher (amount < 0) type of service, normal type of vat | +| `0x2000_oooo_oo44` | `0x4445_0000_0000_006B` | Single-use voucher (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_oooo_oo45` | `0x4445_0000_0000_006C` | Single-use voucher (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_oooo_oo46` | `0x4445_0000_0000_006F` | Single-use voucher (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo47` | `0x4445_0000_0000_006E` | Single-use voucher (amount < 0) type of service, zero type of vat | +| `0x2000_oooo_oo48` | `0x4445_0000_0000_0068` | Multi-use voucher (amount < 0) type of service, not taxable type of vat | +| `0x2000_oooo_oo91` | `0x4445_0000_0000_0072` | Receiveable (amount > 0), discounted1 type of vat | +| `0x2000_oooo_oo92` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo93` | `0x4445_0000_0000_0071` | Receiveable (amount > 0), normal type of vat | +| `0x2000_oooo_oo94` | `0x4445_0000_0000_0073` | Receiveable (amount > 0), superreduced1 type of vat | +| `0x2000_oooo_oo95` | `0x4445_0000_0000_0074` | Receiveable (amount > 0), superreduced2 type of vat | +| `0x2000_oooo_oo96` | `0x4445_0000_0000_0077` | Receiveable (amount > 0), parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo97` | `0x4445_0000_0000_0076` | Receiveable (amount > 0), zero type of vat | +| `0x2000_oooo_oo98` | `0x4445_0000_0000_0075` | Receiveable (amount > 0), not taxable type of vat | +| `0x2000_oooo_oo91` | `0x4445_0000_0000_007A` | Receiveable (amount < 0), discounted1 type of vat | +| `0x2000_oooo_oo92` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo93` | `0x4445_0000_0000_0079` | Receiveable (amount < 0), normal type of vat | +| `0x2000_oooo_oo94` | `0x4445_0000_0000_007B` | Receiveable (amount < 0), superreduced1 type of vat | +| `0x2000_oooo_oo95` | `0x4445_0000_0000_007C` | Receiveable (amount < 0), superreduced2 type of vat | +| `0x2000_oooo_oo96` | `0x4445_0000_0000_007F` | Receiveable (amount < 0), parking type of vat => not defined in v0, goto unknown | +| `0x2000_oooo_oo97` | `0x4445_0000_0000_007E` | Receiveable (amount < 0), zero type of vat | +| `0x2000_oooo_oo98` | `0x4445_0000_0000_007D` | Receiveable (amount < 0), not taxable type of vat | +| `0x2000_ooo8_ooo1` | `0x4445_0000_0000_0082` | Downpayment (amount < 0) type of service, discounted1 type of vat | +| `0x2000_ooo8_ooo2` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo3` | `0x4445_0000_0000_0081` | Downpayment (amount < 0) type of service, normal type of vat | +| `0x2000_ooo8_ooo4` | `0x4445_0000_0000_0083` | Downpayment (amount < 0) type of service, superreduced1 type of vat | +| `0x2000_ooo8_ooo5` | `0x4445_0000_0000_0084` | Downpayment (amount < 0) type of service, superreduced2 type of vat | +| `0x2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount < 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo7` | `0x4445_0000_0000_0086` | Downpayment (amount < 0) type of service, zero type of vat | +| `0x2000_ooo8_ooo8` | `0x4445_0000_0000_0085` | Downpayment (amount < 0) type of service, not taxable type of vat | +| `0x2000_ooo8_ooo1` | `0x4445_0000_0000_008A` | Downpayment (amount > 0) type of service, discounted1 type of vat | +| `0x2000_ooo8_ooo2` | `0x4445_0000_0000_008F` | Downpayment (amount > 0) type of service, discounted2 type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo3` | `0x4445_0000_0000_0089` | Downpayment (amount > 0) type of service, normal type of vat | +| `0x2000_ooo8_ooo4` | `0x4445_0000_0000_008B` | Downpayment (amount > 0) type of service, superreduced1 type of vat | +| `0x2000_ooo8_ooo5` | `0x4445_0000_0000_008C` | Downpayment (amount > 0) type of service, superreduced2 type of vat | +| `0x2000_ooo8_ooo6` | `0x4445_0000_0000_0087` | Downpayment (amount > 0) type of service, parking type of vat => not defined in v0, goto unknown | +| `0x2000_ooo8_ooo7` | `0x4445_0000_0000_008E` | Downpayment (amount > 0) type of service, zero type of vat | +| `0x2000_ooo8_ooo8` | `0x4445_0000_0000_008D` | Downpayment (amount > 0) type of service, not taxable type of vat | +| `0x2000_oooo_ooA8` | `0x4445_0000_0000_0097 X TODO different cash transfers` | Cash transfer type of service, not taxable type of vat | +| `0x2000_oooo_5oo8` | `0x4445_0000_0000_00A1` | Not taxable type of vat, reverse charge => v0 specific implementation | +| `0x2000_oooo_oo61` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted1 type of vat | +| `0x2000_oooo_oo62` | `0x4445_0000_0000_00A2` | Agency business type of service, discounted2 type of vat | +| `0x2000_oooo_oo63` | `0x4445_0000_0000_00A2` | Agency business type of service, normal type of vat | +| `0x2000_oooo_oo64` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced1 type of vat | +| `0x2000_oooo_oo65` | `0x4445_0000_0000_00A2` | Agency business type of service, superreduced2 type of vat | +| `0x2000_oooo_oo66` | `0x4445_0000_0000_00A2` | Agency business type of service, parking type of vat | +| `0x2000_oooo_oo67` | `0x4445_0000_0000_00A2` | Agency business type of service, zero type of vat | +| `0x2000_oooo_oo51` | `0x4445_0000_0000_0002` | Catalog service type of service, discounted1 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo52` | `0x4445_0000_0000_0007` | Catalog service type of service, discounted2 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo53` | `0x4445_0000_0000_0001` | Catalog service type of service, normal type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo54` | `0x4445_0000_0000_0003` | Catalog service type of service, superreduced1 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo55` | `0x4445_0000_0000_0004` | Catalog service type of service, superreduced2 type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo56` | `0x4445_0000_0000_0007` | Catalog service type of service, parking type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo57` | `0x4445_0000_0000_0006` | Catalog service type of service, zero type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo58` | `0x4445_0000_0000_0005` | Catalog service type of service, not taxable type of vat => not defined in v0, use unknown | +| `0x2000_oooo_oo71` | `0x4445_0000_0000_0042` | Own consumption type of service, discounted1 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo72` | `0x4445_0000_0000_0047` | Own consumption type of service, discounted2 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo73` | `0x4445_0000_0000_0041` | Own consumption type of service, normal type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo74` | `0x4445_0000_0000_0043` | Own consumption type of service, superreduced1 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo75` | `0x4445_0000_0000_0044` | Own consumption type of service, superreduced2 type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo76` | `0x4445_0000_0000_0047` | Own consumption type of service, parking type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo77` | `0x4445_0000_0000_0046` | Own consumption type of service, zero type of vat => not defined in v0, use grant | +| `0x2000_oooo_oo78` | `0x4445_0000_0000_0045` | Own consumption type of service, not taxable type of vat => not defined in v0, use grant | +| `0x2ooo_oo2o_oooo` | `0xoooo_oooo_ooo1_oooo` | v2 Take Away | +| `0x2ooo_ooo1_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsVoid => v0 general void => no implementation in v0 | +| `0x2ooo_ooo2_oooo` | `0xoooo_oooo_oooo_oooo` | v2 IsReturn/Refund => v0 general refund => no implementation in v0 | +| `0x2ooo_ooo4_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Discount => v0 general discount => no implementation in v0 | +| `0x2ooo_oo10_oooo` | `0xoooo_oooo_oooo_oooo` | v2 Returnable => v0 general returnable => no implementation in v0 | @@ -690,27 +690,27 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4154_2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | -| `0x4154_2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | -| `0x4154_2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4154_2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4154_2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | -| `0x4154_2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | -| `0x4154_2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | -| `0x4154_2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | -| `0x4154_2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | -| `0x4154_2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | -| `0x4154_2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | -| `0x4154_2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | -| `0x4154_2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | -| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4154_2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4154_2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | -| `0x4154_2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4154_2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4154_2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4154_2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4154_2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | +| `0x2000_0000_0000` | `0x4154_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4154_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4154_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4154_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4154_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4154_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4154_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4154_0000_0000_0006` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4154_0000_0000_0007` | Online payment | +| `0x2000_oooo_oo08` | `0x4154_0000_0000_0008` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4154_0000_0000_000B` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4154_0000_0000_000C` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4154_0000_0000_000D` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x2000_oooo_oo0C` | `0x4154_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x2000_oooo_oo0D` | `0x4154_0000_0000_0011` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4154_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x2000_oooo_oo0F` | `0x4154_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4154_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x2000_oo2o_oo01` | `0x4154_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x2000_oo4o_oo01` | `0x4154_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | @@ -719,27 +719,27 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | ----------- | -| `0x4652_2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | -| `0x4652_2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | -| `0x4652_2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4652_2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4652_2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | -| `0x4652_2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | -| `0x4652_2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | -| `0x4652_2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | -| `0x4652_2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | -| `0x4652_2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | -| `0x4652_2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | -| `0x4652_2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | -| `0x4652_2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | -| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | -| `0x4652_2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | -| `0x4652_2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | -| `0x4652_2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | -| `0x4652_2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4652_2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | -| `0x4652_2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | -| `0x4652_2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | +| `0x2000_0000_0000` | `0x4652_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4652_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4652_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4652_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4652_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4652_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4652_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4652_0000_0000_0006` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4652_0000_0000_0007` | Online payment | +| `0x2000_oooo_oo08` | `0x4652_0000_0000_0008` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4652_0000_0000_000B` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4652_0000_0000_000C` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4652_0000_0000_000D` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount negativ => v0 cashbook expense | +| `0x2000_oooo_oo0C` | `0x4652_0000_0000_000E` | Transfer to cashbook, amount positiv => v0 cashbook contribution | +| `0x2000_oooo_oo0D` | `0x4652_0000_0000_0011` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4652_0000_0000_000B` | Grant => v0 accounts receiveable | +| `0x2000_oooo_oo0F` | `0x4652_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4652_0000_0000_0010` | Accounts receiveable, downpayment flag => v0 levy / downpayment | +| `0x2000_oo2o_oo01` | `0x4652_0000_0000_0012` | Cash payment, change flag => v0 change / tip | +| `0x2000_oo4o_oo01` | `0x4652_0000_0040_0012` | Cash payment, tip flag => v0 change / tip | @@ -748,32 +748,32 @@ A systematic approach to updating case values: | **v2 (in)** | **v0 (out)** | **Description** | | ----------- | ------------ | --------------- | -| `0x4445_2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | -| `0x4445_2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | -| `0x4445_2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | -| `0x4445_2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | -| `0x4445_2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | -| `0x4445_2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | -| `0x4445_2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | -| `0x4445_2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | -| `0x4445_2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | -| `0x4445_2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | -| `0x4445_2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | -| `0x4445_2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | -| `0x4445_2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | -| `0x4445_2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | -| `0x4445_2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | -| `0x4445_2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | -| `0x4445_2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | -| `0x4445_2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | -| `0x4445_2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | -| `0x4445_2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | -| `0x4445_2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | +| `0x2000_0000_0000` | `0x4445_0000_0000_0000` | Unknown payitem type | +| `0x2000_oooo_oo01` | `0x4445_0000_0000_0001` | Cash payment | +| `0x2000_oo1o_oo01` | `0x4445_0000_0000_0002` | Cash payment, in foreign currency | +| `0x2000_oooo_oo02` | `0x4445_0000_0000_0007` | Non-cash payment => v0 online payment, not rksv relevant payments | +| `0x2000_oooo_oo03` | `0x4445_0000_0000_0003` | Crossed check payment | +| `0x2000_oooo_oo04` | `0x4445_0000_0000_0004` | Debit card payment | +| `0x2000_oooo_oo05` | `0x4445_0000_0000_0005` | Credit card payment | +| `0x2000_oooo_oo06` | `0x4445_0000_0000_000D` | Voucher payment | +| `0x2000_oooo_oo07` | `0x4445_0000_0000_0006` | Online payment | +| `0x2000_oooo_oo08` | `0x4445_0000_0000_0007` | Loyality program, customer card payment | +| `0x2000_oooo_oo09` | `0x4445_0000_0000_000E` | Accounts receiveable | +| `0x2000_oooo_oo0A` | `0x4445_0000_0000_0008` | Sepa wire transfer | +| `0x2000_oooo_oo0B` | `0x4445_0000_0000_0009` | Other wire/bank transer | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0012` | Transfer to ... [cashbook / vault / owner / employee], amount negativ, ??? MoneyGroup == "EmptyTill" => v0 cash transfer to empty till | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0013` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Owner" => v0 cash transfer to owner | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0014` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Till", => v0 cash transfer from/to till | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0015` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Employee" => v0 cash transfer to employee | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0016` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "Cashbook" => v0 cash transfer from/to cashbook | +| `0x2000_oooo_oo0C` | `0x4445_0000_0000_0017` | Transfer to ... [cashbook / vault / owner / employee], MoneyGroup == ??? "CashDifference" => v0 cash difference in till | +| `0x2000_oooo_oo0D` | `0x4445_0000_0000_000A` | Internal / material consumption | +| `0x2000_oooo_oo0E` | `0x4445_0000_0000_0011` | Grant => v0 (real)grant | +| `0x2000_oooo_oo0F` | `0x4445_0000_0000_0006` | Ticket restaurant => v0 voucher | +| `0x2000_ooo8_oo09` | `0x4445_0000_0000_000F` | Accounts receiveable, downpayment flag => v0 downpayment | +| `0x2000_oo2o_oo01` | `0x4445_0000_0000_000B` | Cash payment, change flag => v0 change | +| `0x2000_oo3o_oo01` | `0x4445_0000_0000_000C` | Cash payment, in foreign currency, change flag => v0 change in foreign currency | +| `0x2000_oo4o_oo01` | `0x4445_0000_0040_0012` | Cash payment, tip flag => v0 tip to employee | @@ -785,7 +785,7 @@ Key differences highlighted: :::info Important For the `ftReceiptCaseFlag`, `ftChargeItemCaseFlag`, and `ftPayItemCaseFlag` fields, replace every lowercase letter `o` in flag values with the digit `0` (zero). Examples: -- `0x4154_2oo0_oo8o_2ooo` → `0x4154_2000_0080_2000` +- `0x2oo0_oo8o_2ooo` → `0x2000_0080_2000` - `0xoooo_oooo_oooo_oooo` → `0x0000_0000_0000_0000` ::: From cfb4716db592224df5acf5aad855fbde589a992b Mon Sep 17 00:00:00 2001 From: LGuichet <79939701+LGuichet@users.noreply.github.com> Date: Thu, 18 Jun 2026 15:22:19 +0200 Subject: [PATCH 31/34] Revise migration guide, fix broken link --- .../general/migration/v0-to-possystemapi.md | 87 ++++++++----------- 1 file changed, 38 insertions(+), 49 deletions(-) diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md index 6aa6016..e9a2746 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md @@ -69,7 +69,36 @@ The path structure changes accordingly: - Echo - **v0 path:** `/[json|xml]/echo`; **v2 path:** `/echo` - Journal - **v0 path:** `/[json|xml]/journal`; **v2 path:** `/journal` -### Case Values +## Local CashBox + +:::note Sandbox/admin access only + +Local cashbox migration requires additional configuration steps that are currently only supported in sandbox environments under guidance from the fiskaltrust team. + +::: + +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: + +1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. +2. Configuring the Helper URL. +3. Assigning the Helper to the relevant CashBox. +4. Rebuilding the CashBox configuration. +5. Downloading and running Launcher 2.0. + + +## Authentication + +All v2 requests must include the following HTTP headers: + +``` +x-cashbox-id : +x-cashbox-accesstoken : +x-operation-id : a UUID randomly generated on your side +``` + +Both cashbox-id and accesstoken are available on the CashBox page in the fiskaltrust.Portal. + +## Case Values The integer values used for `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` differ between the v0 and v2 interfaces. Updating these values is the most substantial part of the migration. You must remap all case values in your requests. @@ -88,7 +117,7 @@ A systematic approach to updating case values: 5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. 6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. -#### ftReceiptCase +### ftReceiptCase
Austria (AT) @@ -294,7 +323,7 @@ A systematic approach to updating case values:
-#### ftChargeItemCase +### ftChargeItemCase
Austria (AT) @@ -683,7 +712,7 @@ A systematic approach to updating case values:
-#### ftPayItemCase +### ftPayItemCase
Austria (AT) @@ -790,7 +819,7 @@ For the `ftReceiptCaseFlag`, `ftChargeItemCaseFlag`, and `ftPayItemCaseFlag` fie ::: -#### ftReceiptCaseData Format +### ftReceiptCaseData Format The `ftReceiptCaseData` field changes from a **JSON-encoded string** in v0 to a **market-keyed JSON object** in v2. @@ -819,7 +848,7 @@ Key points: - The inner value (per market key) remains a **JSON-encoded string** of the market-specific payload. - Use the two-letter ISO market code as the key (`"FR"`, `"AT"`, `"DE"`). -##### Examples by Market +#### Examples by Market **Austria (AT)** @@ -862,7 +891,7 @@ The inner string value for a given market key may be an empty string (`""`) when ::: -#### ReceiptRequest +### ReceiptRequest The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are directly reusable. The key differences are: @@ -875,54 +904,14 @@ The v2 `ReceiptRequest` is a superset of the v0 model. Most existing fields are All other fields (`ftCashBoxID`, `cbTerminalID`, `cbReceiptMoment`, `cbChargeItems`, `cbPayItems`, `ftReceiptCase`, etc.) carry over unchanged. -#### ReceiptResponse +### ReceiptResponse The `ReceiptResponse` structure is largely compatible. Verify that your receipt printing logic correctly handles: - `ftSignatures` — format and type values are unchanged; ensure all entries are printed as required by national regulations. - `ftState` — error flag interpretation is unchanged; check your error-handling code still covers all states. -## Local CashBox - -:::note Sandbox/admin access only - -Local cashbox migration requires additional configuration steps that are currently only supported in sandbox environments under guidance from the fiskaltrust team. - -::: - -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: - -1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. -2. Configuring the Helper URL. -3. Assigning the Helper to the relevant CashBox. -4. Rebuilding the CashBox configuration. -5. Downloading and running Launcher 2.0. - -### API changes - -#### Method mapping - -The three core operations map directly from v0 to v2, but the calling convention changes from a .NET WCF/REST client to standard HTTP POST requests: - -| v0 call | v2 HTTP endpoint | Notes | -| -------- | ---------------- |------ | -| `proxy.Echo("message")` | `POST /v2/echo` | Request body: `{"message": "..."}` — response mirrors the same structure: `{"message": "..."}` | -| `proxy.Sign(receiptRequest)` | `POST /v2/sign` | Request body is the JSON-serialised `ReceiptRequest`; response is `ReceiptResponse` | -| `proxy.Journal(ftJournalType, from, to)` | `POST /v2/journal` | Request body carries `ftJournalType`, `from`, and `to` as ISO 8601 date-time strings (see [Timestamps](#timestamps)) | - -##### Authentication - -All v2 requests must include the following HTTP headers: - -``` -x-cashbox-id : -x-cashbox-accesstoken : -x-operation-id : a UUID randomly generated on your side -``` - -Both values are available on the CashBox page in the fiskaltrust.Portal. On first use, you also need to **pair** the client via the PIN displayed in the Portal. For more information, see how to [Test the PosSystem API Helper](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md#test-the-possystem-api-helper). - -##### Echo example +### Echo example **Request:** From 822e7163407e628bd0386ab68c9adeff288b1370 Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 18 Jun 2026 16:37:40 +0200 Subject: [PATCH 32/34] Added migration guide link Added migration guide link to other pages. --- .../general/communication/communication.md | 2 +- .../general/function-structures/function-structures.md | 2 +- .../middleware-at-rksv/appendix-at-rksv.md | 2 +- .../middleware-de-kassensichv/appendix-de-kassensichv.md | 2 +- .../appendix-fr-boi-tva-decla-30-10-30.md | 2 +- .../migration-guide.md} | 9 +++------ poscreators/toc.js | 1 + .../middleware/helper-possystemapi.md | 8 -------- 8 files changed, 9 insertions(+), 19 deletions(-) rename poscreators/middleware-doc/{general/migration/v0-to-possystemapi.md => possystem-api/migration-guide.md} (99%) diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index 452513f..eefa4a0 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -7,7 +7,7 @@ title: Communication :::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. ::: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index c98dd5d..ddb91f3 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -7,7 +7,7 @@ title: Function Structures :::info PosSystem API (v2) Migration -If you are an Austria (AT) or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the Migrating from API v0 to PosSystem API (v2) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. ::: diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index 5715160..cc41e32 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -19,7 +19,7 @@ Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungs :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. ::: diff --git a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md index da9e099..7d5058e 100644 --- a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md +++ b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md @@ -9,7 +9,7 @@ This appendix expands on the General Part's information by adding details specif :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide for instructions. ::: diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index 9236df1..53d5abe 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -25,7 +25,7 @@ The interface specification is provided by fiskaltrust.Interface NuGet package, :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the Migrating from API v0 to PosSystem API (v2) guide for instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide for instructions. ::: diff --git a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md b/poscreators/middleware-doc/possystem-api/migration-guide.md similarity index 99% rename from poscreators/middleware-doc/general/migration/v0-to-possystemapi.md rename to poscreators/middleware-doc/possystem-api/migration-guide.md index 278311b..6bf5211 100644 --- a/poscreators/middleware-doc/general/migration/v0-to-possystemapi.md +++ b/poscreators/middleware-doc/possystem-api/migration-guide.md @@ -1,12 +1,10 @@ --- -slug: /poscreators/middleware-doc/general/migration/v0-to-possystemapi -title: Migrating from API v0 to PosSystem API (v2) +slug: /poscreators/possystem-api/migration-guide-v0-v2 +title: Migration Guide (v0 to v2) --- # Migrating from API v0 to PosSystem API (v2) -## Introduction - The legacy **v0 SignatureCloud API** (also referred to by its subdomain pattern `signaturcloud-sandbox.*`) and the original synchronous `ifPOS.v0` fiskaltrust.Middleware API — primarily used in Austria (AT) and France (FR) — remain functional but no longer receive new features. All current and future development, including e-invoicing support and upcoming compliance capabilities, is available exclusively through the **POSSystem API (v2)**, making migration strongly recommended. Migrating to v2 gives you: @@ -38,7 +36,6 @@ The PosSystem API via Launcher 2.0 has market-specific constraints: - **Austria (AT):** Launcher 2.0 is not enabled by default. Contact fiskaltrust support to enable it for your account. - **France (FR):** Launcher 2.0 is not yet supported. The workaround is setting 2 cashboxes, one with the queue and one with the POSSystemAPI helper without a queue. French customers should contact fiskaltrust for more instructions if needed. -- **Germany (DE):** TBD ::: @@ -112,7 +109,7 @@ A systematic approach to updating case values: 1. List every `ftReceiptCase`, `ftChargeItemCase`, and `ftPayItemCase` value currently used in your integration. 2. For each value, find the corresponding business case in the [Development Platform](https://developer.fiskaltrust.eu/) for your market. -3. Replace the v0 value with the v2 value shown in the platform example. Remove the country code (4154 for AT, 4445 for DE, and 4652 for FR) which is not needed anymore. +3. Replace the v0 value with the v2 value shown in the platform example. Remove the country code (`4154` for AT, `4445` for DE, and `4652` for FR), as it is no longer required. 4. Repeat for all receipt types (including special receipts such as Start-Receipt, Stop-Receipt, daily/shift closings, and Zero-Receipts). 5. If you don't find some values used in your integration in the table below, it seams that you just have to change the v0 with the v2 value. 6. **Important:** You'll see, in certain cases, for the same value in v0, you now need to specify a more precise value. For example, with invoices, there was only one code in v0, but now there are several possible values. Your POS system must therefore integrate whether the invoice is issued for B2C, B2B, B2G, etc. diff --git a/poscreators/toc.js b/poscreators/toc.js index 090d29e..2beb984 100644 --- a/poscreators/toc.js +++ b/poscreators/toc.js @@ -25,6 +25,7 @@ module.exports = [ items: [ "poscreators/middleware-doc/possystem-api/introduction", "poscreators/middleware-doc/possystem-api/android-intent", + "poscreators/middleware-doc/possystem-api/migration-guide", ], }, { diff --git a/posdealers/technical-operations/middleware/helper-possystemapi.md b/posdealers/technical-operations/middleware/helper-possystemapi.md index 1f9fb48..6bb3d0f 100644 --- a/posdealers/technical-operations/middleware/helper-possystemapi.md +++ b/posdealers/technical-operations/middleware/helper-possystemapi.md @@ -14,14 +14,6 @@ The local PosSystem API Helper is currently in preview. After reading this, you can set up and configure the local PosSystem API Helper within a Launcher 2.0 deployment. -::: - -:::info Migrating from v0? - -If your POS system currently uses the v0 interface (WCF/REST) and you are migrating to the PosSystem API, see the [v0 → PosSystem API migration guide](../../../poscreators/middleware-doc/general/migration/v0-to-possystemapi.md) for a full overview of API and data model changes. - -::: - ## Introduction The local PosSystem API Helper is a Middleware component that exposes a local endpoint through which the POS System communicates with the fiskaltrust Middleware. It acts as a bridge between the POS System and the underlying Queue, and is required for Launcher 2.0 deployments. From a2dd6282ab8843c787642a18dbc4f39f26b0799d Mon Sep 17 00:00:00 2001 From: deboragracio Date: Thu, 18 Jun 2026 16:47:11 +0200 Subject: [PATCH 33/34] fixed links --- .../middleware-doc/general/communication/communication.md | 2 +- .../general/function-structures/function-structures.md | 2 +- .../middleware-doc/middleware-at-rksv/appendix-at-rksv.md | 2 +- .../middleware-de-kassensichv/appendix-de-kassensichv.md | 2 +- .../appendix-fr-boi-tva-decla-30-10-30.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index eefa4a0..403c8c1 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -7,7 +7,7 @@ title: Communication :::info PosSystem API (v2) Migration -If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide. ::: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index ddb91f3..ea68049 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -7,7 +7,7 @@ title: Function Structures :::info PosSystem API (v2) Migration -If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide. ::: diff --git a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md index cc41e32..3a13971 100644 --- a/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md +++ b/poscreators/middleware-doc/middleware-at-rksv/appendix-at-rksv.md @@ -19,7 +19,7 @@ Ritz/Koran/Kutschera/Knasmüller, Handbuch Registrierkassen- und Belegerteilungs :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide. ::: diff --git a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md index 7d5058e..e2ddc7c 100644 --- a/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md +++ b/poscreators/middleware-doc/middleware-de-kassensichv/appendix-de-kassensichv.md @@ -9,7 +9,7 @@ This appendix expands on the General Part's information by adding details specif :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide for instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide for instructions. ::: diff --git a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md index 53d5abe..80ccea3 100644 --- a/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md +++ b/poscreators/middleware-doc/middleware-fr-boi-tva-decla-30-10-30/appendix-fr-boi-tva-decla-30-10-30.md @@ -25,7 +25,7 @@ The interface specification is provided by fiskaltrust.Interface NuGet package, :::info Upgrading to PosSystem API (v2) -New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](https://docs.fiskaltrust.eu/docs/poscreators/possystem-api/migration-guide-v0-v2) guide for instructions. +New features such as e-invoicing are available exclusively through the **PosSystem API (v2)**. If you are currently using the v0 interface (WCF/REST), see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide for instructions. ::: From e2e2e0395285128efe1f29742ec482f2cd1348df Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 18 Jun 2026 14:58:25 +0000 Subject: [PATCH 34/34] Fix broken migration guide links in docs --- .../middleware-doc/general/communication/communication.md | 2 +- .../general/function-structures/function-structures.md | 2 +- poscreators/middleware-doc/possystem-api/migration-guide.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/poscreators/middleware-doc/general/communication/communication.md b/poscreators/middleware-doc/general/communication/communication.md index 403c8c1..80aa7ff 100644 --- a/poscreators/middleware-doc/general/communication/communication.md +++ b/poscreators/middleware-doc/general/communication/communication.md @@ -7,7 +7,7 @@ title: Communication :::info PosSystem API (v2) Migration -If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 WCF or REST interface and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../../possystem-api/migration-guide.md) guide. ::: diff --git a/poscreators/middleware-doc/general/function-structures/function-structures.md b/poscreators/middleware-doc/general/function-structures/function-structures.md index ea68049..a6b10b1 100644 --- a/poscreators/middleware-doc/general/function-structures/function-structures.md +++ b/poscreators/middleware-doc/general/function-structures/function-structures.md @@ -7,7 +7,7 @@ title: Function Structures :::info PosSystem API (v2) Migration -If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../possystem-api/migration-guide.md) guide. +If you are an Austria (AT), Germany (DE), or France (FR) customer currently using the v0 synchronous `Sign`/`Echo`/`Journal` calls and planning to move to the new PosSystem API, see the [Migrating from API v0 to PosSystem API (v2)](../../possystem-api/migration-guide.md) guide. ::: diff --git a/poscreators/middleware-doc/possystem-api/migration-guide.md b/poscreators/middleware-doc/possystem-api/migration-guide.md index 6bf5211..ad2bdcd 100644 --- a/poscreators/middleware-doc/possystem-api/migration-guide.md +++ b/poscreators/middleware-doc/possystem-api/migration-guide.md @@ -74,7 +74,7 @@ Local cashbox migration requires additional configuration steps that are current ::: -The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: +The portal-side configuration requires adding a **LocalPosSystemApi Helper** to your CashBox and rebuilding it with Launcher 2.0. Rather than duplicating those steps here, follow the [How to Configure the Local PosSystem API Helper with Launcher 2.0](../../../posdealers/technical-operations/middleware/helper-possystemapi.md) guide, which covers: 1. Adding a `fiskaltrust.Middleware.Helper.LocalPosSystemApi` Helper in the Portal. 2. Configuring the Helper URL.