Skip to content

Commit

Permalink
Merge branch 'de-rt-improvements' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
steininger committed May 25, 2020
2 parents e8beddc + 44118c4 commit 79cadb9
Showing 1 changed file with 27 additions and 28 deletions.
55 changes: 27 additions & 28 deletions doc/appendix-de-kassensichv/reference-tables/reference-tables.md
Expand Up @@ -8,41 +8,40 @@ The table below describes supported statuses for the ftState field in accordance

The country-specific code is made of the country’s code value following the ISO-3166-1-ALPHA-2 standard, converted from ASCII into hex. For Germany (DE) this is `0x4445`, which results in `0x4445000000000000` as the value for the "ready" status.

| **Value** | **Description** | **Middleware-Version** |
|---|---|---|
At the time being there are no additional statuses for the german market. For an overview of the available statuses please see the description in the general part.

### Type of Receipt: ftReceiptCase

The ftReceiptCase indicates the receipt type and defines how it should be processed by the fiskaltrust.SecurityMechanism in accordance with the German law.
The `ftReceiptCase` indicates the receipt type and defines how it should be processed by the fiskaltrust.SecurityMechanism in accordance with the German law.

For Germany (DE) the country code is `0x4445`. Thus, the value of an unknown ftReceiptCase in Germany is `0x4445000000000000`.
For Germany (DE) the country code is `0x4445`. Thus, the value of an unknown `ftReceiptCase` in Germany is `0x4445000000000000`.

| **Value** | **Description** | **BON_TYP (DSFinV-K)** <br> **processType (TSE)** | **Middleware- Version** |
|---|---|---|---|
| `0x4445000000000000` | unknown type for country-code "DE"<br />This is handled like a pos-receipt (`0x4445000000000001`). | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000001` | pos-receipt<br />main kind of receipt processed on a pos-system. creates a turnover and/or change in the amount of cash in the till or similar operations. <br />using the ChargeItems and PayItems to hand over details for processing. independent from the used flow (explicit/implicit), the ChargeItems and PayItems should contain the full final state of the receipt. the duration of the action is calculated using the minimum and maximum of datetime over ReceiptRequest/ChargeItems/PayItems.<br /> DSFinV-K: BON_TYP=Beleg, can be overwritten by ftReceiptCaseFlag | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000002` | zero-receipt<br />used for communication and functional test of the fiskaltrust.SecurityMechanism. In addition a detailed status information is responded on the used TSE-Device. Is only valid when charge items block (ftChargeItems) and pay items block (ftPayItems) in the ReceiptRequest are empty arrays.<br />Also TSE data are unloaded, what may cause a long running request.<br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception.<br />if you want to end a ongoing transaction without turnover (e.g. all items on a receipt are voided) then use a regular ReceiptCase.<br /> Informations returned:<br />- List of cbReceiptReference <-> Transaction-ID<br />- Statusdata of TSE, serialnumber, available/free memory, available number of signatures left, ...<br /> DSFinV-K: BON_TYP=AVSonstige, ChargeItems and PayItems have to be empty | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000003` | initial operation receipt / start-receipt<br />The request is only valid with the same property requirements as a zero-receipt. initializing a new fiskaltrust.SecurityMachanism, this includes also the initialization of the used TSE in the background. Depending on the TSE-Type used this includes different actions.<br />On successful initialization, a notification is created which includes the queue-id, scu-id, certificate/public-key, tse-serialnumber=hash(public-key). this notification need to be reported to tax administration.<br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception.<br /> DSFinV-K: BON_TYP=AVSonstige, ChargeItems and PayItems have to be empty | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000004` | out of operation receipt / stop-receipt<br />The request is only valid with the same property requirements as a zero-receipt. disabling a fiskaltrust.SecurityMachanism, this includes also the deactivation of the used TSE in the background. Depending on the TSE-Type used this includes different actions.<br />On successful deactivation, a notification is created which includes the queue-id, scu-id, certificate/public-key, tse-serialnumber=hash(public-key). this notification needs to be reported to tax administration. <br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception.<br /> DSFinV-K: BON_TYP=AVSonstige, ChargeItems and PayItems have to be empty | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000005` | monthly-closing<br /> TBD: close all open cbReceiptReference <-> Transaction-ID <br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000006` | yearly-closing<br /> TBD: close all open cbReceiptReference <-> Transaction-ID <br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000007` | daily-closing<br /> TBD: close all open cbReceiptReference <-> Transaction-ID <br />this works only on implicit flow. calling without the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000008` | start-transaction-receipt<br />starts a new, unfinished action. use ChargeItems and PayItems to hand over already known details for final receipt. using the same cbTerminalID and cbReceiptReferece in further calls connects the action items. <br />this works only on explicit flow. calling with the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x4445000000000009` | update-transaction-receipt<br />updates an ongoing action. use ChargeItems and PayItems to hand over all details for final receipt. using the same cbTerminalID and cbReceiptReferece in further calls connects the action items. <br />this works only on explicit flow. calling with the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x444500000000000A` | delta-transaction-receipt<br />updates an ongoing action. use ChargeItems and PayItems to hand changes for final receipt. using the same cbTerminalID and cbReceiptReferece in further calls connects the action items. <br />this works only on explicit flow. calling with the ReceiptCaseFlag 0x0000000100000000 ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x444500000000000B` | fail-transaction-receipt<br />stopps/fails an ongoing action. tries to finish an open transaction (accepts fail, continue on fail). clears cbReceiptReferece <-> Transaction-ID relation. <br /> DSFinV-K: BON_TYP=AVBelegabbruch | AVBelegabbruch <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000C` | b2b-invoice<br /> TBD: <br /> DSFinV-K: BON_TYP=Beleg, can be overwritten by ftReceiptCaseFlag | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000D` | b2c-invoice<br /> TBD: <br /> DSFinV-K: BON_TYP=Beleg, can be overwritten by ftReceiptCaseFlag | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000E` | info-invoice<br /> TBD: <br /> DSFinV-K: BON_TYP=AVRechnung | AVRechnung <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000F` | info-delivery-note<br /> TBD: <br /> DSFinV-K: BON_TYP=AVTransfer | AVTransfer <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000010` | info-order<br /> when goods are already delivered to customer and request-payitems not empty. must contain at least one request-chargeitem. <br> (ReceiptRequest.PayItems != [], ReceiptRequest.ChargeItems != []) <br /> DSFinV-K: BON_TYP=AVBestellung | AVBestellung <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000010` | info-order<br /> when recording an ongoing order and request-payitems are empty. must contain at least one request-chargeitem. <br> (ReceiptRequest.PayItems == [], ReceiptRequest.ChargeItems != []) <br /> DSFinV-K: BON_TYP=[none] | [none] <br> Bestellung-V1 | 1.3- |
| `0x4445000000000011` | cash deposit / cash pay-in / cash pay-out / exchange<br /> TBD: <br /> DSFinV-K: BON_TYP=Beleg, can be overwritten by ftReceiptCaseFlag | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000012` | material consumption<br /> TBD: <br /> DSFinV-K: BON_TYP=AVSachbezug | AVSachbezung <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000013` | info-internal<br /> when request-chargeitems are not empty and when request-payitems are not empty <br /> DSFinV-K: BON_TYP=AVSonstige | AVSonstige <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000013` | info-internal<br /> when request-chargeitems are empty or when request-payitems are empty <br> (ReceiptRequest.ChargePayItems == [] && ReceiptRequest.PayItems == []) <br /> DSFinV-K: BON_TYP=[none] | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000014` | protocol<br /> TBD: <br /> DSFinV-K: BON_TYP=[none] | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000015` | foreign sales<br /> TBD: <br /> DSFinV-K: BON_TYP=AVSonstige | AVSonstige <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000000` | **unknown type for country-code "DE"**<br /><br />This receipt case is handled like a "pos-receipt" (`0x4445000000000001`). See below: | Beleg <br /> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000001` | **pos-receipt**<br /><br />Represents the main kind of receipt processed by a POS system. Creates a turnover and/or change in the amount of cash in the till or similar operations. <br /><br />Use the `ftChargeItems` and `ftPayItems` to hand over details for processing. The `ftChargeItems` and `ftPayItems` should contain the full final state of the receipt. Turnover and cash amount is increased by the final pos-receipt content, intermediate start-transaction, update-transaction and delta-transaction content doesn't influence turnover and cash amount. The pos-receipt case can be used with **implicit and explicit** flow. <br /><br />The duration of the represented action is calculated using the minimum (start time) and maximum (end time) of datetimes over `ftReceiptRequest`/`ftChargeItems`/`ftPayItems` <br /><br />The BON_TYP (Beleg) of DSFinV-K can be overwritten by an `ftReceiptCaseFlag`. | Beleg <br /> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000002` | **zero-receipt**<br /><br />Used for communication test and functional test of the fiskaltrust.SecurityMechanism. In addition, the response also contains a detailed status information about the used TSE-Device. TSE data is herefore loaded and that may cause a long running request. <br /><br />The request is only valid when the charge items block (`ftChargeItems`) and the pay items block (`ftPayItems`) in the `ftReceiptRequest` are empty arrays. <br /><br />This receipt case works **only** with **implicit** flow. Using it without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception.<br /><br />If you want to end an ongoing transaction without turnover (e.g. all items on a receipt are voided) then please use a regular `ftReceiptCase`.<br /><br /> Informations returned in the response are:<ul><li>List of `cbReceiptReferece <-> Transaction-ID` relations.</li><li>Statusdata of TSE, serialnumber, available/free memory, available number of signatures left, ...</li></ul>| [none] <br /> SonstigerVorgang | 1.3- |
| `0x4445000000000003` | **initial operation receipt / start-receipt**<br /><br />The request is only valid with the same property requirements as a zero-receipt. It initializes a new fiskaltrust.SecurityMachanism including also the initialization of the used TSE in the background. Depending on the TSE-Type used, this includes different actions.<br /><br />On successful initialization, a notification is created which includes the queue-id, scu-id, certificate/public-key, tse-serialnumber=hash(public-key). This notification needs to be reported to the tax administration.<br /><br />The request is only valid when the charge items block (`ftChargeItems`) and the pay items block (`ftPayItems`) in the `ftReceiptRequest` are empty arrays. <br /><br />This receipt case works **only** with **implicit flow**. calling without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception.| [none] <br /> SonstigerVorgang | 1.3- |
| `0x4445000000000004` | **out of operation receipt / stop-receipt**<br /><br />The request is only valid with the same property requirements as a zero-receipt. It is desabling the fiskaltrust.SecurityMachanism including the deactivation of the client ID used in the TSE for the current queue. Optionally one can also deactivate the complete TSE used in background. This option will be avalable by a using a special flag soon.<br /><br />On successful deactivation, a notification is created which includes the queue-id, scu-id, certificate/public-key, tse-serialnumber=hash(public-key). this notification needs to be reported to tax administration. <br /><br />The request is only valid when the charge items block (`ftChargeItems`) and the pay items block (`ftPayItems`) in the `ftReceiptRequest` are empty arrays.<br /><br />This receipt case works **only** with **implicit flow**. Calling without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception.| AVSonstige <br /> SonstigerVorgang | 1.3- |
| `0x4445000000000005` | **monthly-closing**<br /><br />TBD: close all open cbReceiptReference <-> Transaction-ID <br /> <br />This receipt case works **only** with **implicit flow**. Calling without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000006` | **yearly-closing**<br /><br />TBD: close all open cbReceiptReference <-> Transaction-ID <br /> <br />This receipt case works **only** with **implicit flow**. Calling without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000007` | **daily-closing**<br /><br />TBD: close all open cbReceiptReference <-> Transaction-ID <br /> <br />This receipt case works **only** with **implicit flow**. Calling without the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000008` | **start-transaction-receipt**<br /><br />Starts a new, unfinished action. Use `ftChargeItems` and `ftPayItems` to hand over already known details for final receipt. Using the same `cbReceiptReferece` in further calls connects the action items. <br /> <br />This receipt case works **only** with **explicit flow**. Calling with the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x4445000000000009` | **update-transaction-receipt**<br /><br />Updates an ongoing action. Use `ftChargeItems` and `ftPayItems` to hand over all details for the final receipt. Using the same `cbReceiptReferece` in further calls connects the action items. <br /><br />This receipt case works **only** with **explicit flow**. Calling with the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x444500000000000A` | **delta-transaction-receipt**<br /><br />Updates an ongoing action. Use `ftChargeItems` and `ftPayItems` to hand over changes for the final receipt. Using the same `cbReceiptReferece` in further calls connects the action items. <br /><br />This receipt case works **only** on **explicit flow**. Calling with the `ftReceiptCaseFlag` `0x0000000100000000` ends up in an exception. | [none] <br> [empty] | 1.3- |
| `0x444500000000000B` | **fail-transaction-receipt**<br /><br />Stopps/fails an ongoing action. It tries to finish an open transaction (accepts fail, continue on fail) and clears the `cbReceiptReferece <-> Transaction-ID` relation. | AVBelegabbruch <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000C` | **b2b-invoice**<br /><br />TBD<br /><br />The BON_TYP (Beleg) of DSFinV-K can be overwritten by an `ftReceiptCaseFlag`. | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000D` | **b2c-invoice**<br /><br />TBD<br /><br />The BON_TYP (Beleg) of DSFinV-K can be overwritten by an `ftReceiptCaseFlag`. | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000E` | **info-invoice**<br /><br />TBD<br />| AVRechnung <br> Kassenbeleg-V1 | 1.3- |
| `0x444500000000000F` | **info-delivery-note**<br /><br />TBD<br />| AVTransfer <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000010` | i**info-order**<br /> <br />To be used when goods are already delivered to customer and the `ftPayItems` array of the request is filled. Usualy this is filled by using `ftPayItemCase` material consumption ('0x444500000000000A').<br> `(ReceiptRequest.PayItems != [])` | AVBestellung <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000010` | **info-order**<br /> <br />To be used when recording an ongoing order and the `ftPayItems` array of the request is empty. This request must contain at least one `ftChargeItems` entry, empty `ftChargeItems` array is not allowed. <br> `(ReceiptRequest.PayItems == [] and ReceiptRequest.ChargeItems != [])` | [none] <br> Bestellung-V1 | 1.3- |
| `0x4445000000000011` | **cash deposit / cash pay-in / cash pay-out / exchange**<br /><br />TBD<br /><br />The BON_TYP (Beleg) of DSFinV-K can be overwritten by an `ftReceiptCaseFlag`. | Beleg <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000012` | **material consumption**<br /><br />TBD<br />| AVSachbezung <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000013` | **info-internal**<br /><br />First case: "charge items and pay items exist" <br> `(ReceiptRequest.ChargePayItems != [] && ReceiptRequest.PayItems != [])` | AVSonstige <br> Kassenbeleg-V1 | 1.3- |
| `0x4445000000000013` | **info-internal**<br /><br />Second case: "no charge items and no pay items"<br> `(ReceiptRequest.ChargePayItems == [] && ReceiptRequest.PayItems == [])`| [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000014` | **protocol**<br /><br />TBD<br />| [none] <br> SonstigerVorgang | 1.3- |
| `0x4445000000000015` | **foreign sales**<br /><br />TBD<br />| AVSonstige <br> Kassenbeleg-V1 | 1.3- |


##### actions where a receiptcase has to be defined
Expand Down

0 comments on commit 79cadb9

Please sign in to comment.