@kreiseck/kasseneck-api 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (187) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/README.md +2 -1
  3. package/dist/cjs/client/aufrufe.d.ts +4 -4
  4. package/dist/cjs/client/aufrufe.js +15 -0
  5. package/dist/cjs/client/receipts.d.ts +5 -0
  6. package/dist/cjs/client/receipts.js +65 -6
  7. package/dist/cjs/enums/voucher-action.d.ts +2 -0
  8. package/dist/cjs/enums/voucher-action.js +2 -0
  9. package/dist/cjs/enums/voucher-type.d.ts +10 -0
  10. package/dist/cjs/enums/voucher-type.js +10 -0
  11. package/dist/cjs/index.d.ts +3 -3
  12. package/dist/cjs/index.js +9 -3
  13. package/dist/cjs/models/index.d.ts +3 -3
  14. package/dist/cjs/models/index.js +7 -2
  15. package/dist/cjs/models/receipt-errors.d.ts +1 -1
  16. package/dist/cjs/models/receipt-errors.js +2 -0
  17. package/dist/cjs/models/receipt-item.d.ts +11 -3
  18. package/dist/cjs/models/receipt-item.js +22 -1
  19. package/dist/cjs/models/receipt.d.ts +31 -1
  20. package/dist/cjs/models/receipt.js +45 -5
  21. package/dist/cjs/models/voucher.d.ts +57 -4
  22. package/dist/cjs/models/voucher.js +111 -3
  23. package/dist/cjs/partner/fehler.d.ts +1 -1
  24. package/dist/cjs/partner/fehler.js +2 -0
  25. package/dist/cjs/partner/index.d.ts +1 -1
  26. package/dist/cjs/partner/typen.d.ts +7 -1
  27. package/dist/cjs/partner/typen.js +3 -0
  28. package/dist/cjs/pos/client.d.ts +2 -1
  29. package/dist/cjs/pos/client.js +3 -1
  30. package/dist/cjs/pos/gutschein.d.ts +90 -0
  31. package/dist/cjs/pos/gutschein.js +164 -0
  32. package/dist/cjs/pos/index.d.ts +3 -2
  33. package/dist/cjs/pos/index.js +13 -2
  34. package/dist/cjs/pos/settings.d.ts +3 -0
  35. package/dist/cjs/pos/settings.js +12 -10
  36. package/dist/cjs/pos/texte.d.ts +156 -0
  37. package/dist/cjs/pos/texte.js +72 -1
  38. package/dist/cjs/react/index.js +8 -2
  39. package/dist/cjs/receipt/due.d.ts +83 -2
  40. package/dist/cjs/receipt/due.js +202 -36
  41. package/dist/cjs/receipt/grid.js +13 -1
  42. package/dist/cjs/receipt/gutschein-plan.d.ts +104 -0
  43. package/dist/cjs/receipt/gutschein-plan.js +360 -0
  44. package/dist/cjs/receipt/index.d.ts +1 -1
  45. package/dist/cjs/receipt/index.js +3 -0
  46. package/dist/cjs/receipt/layout.js +186 -10
  47. package/dist/cjs/register/pairing.d.ts +21 -1
  48. package/dist/cjs/register/pairing.js +17 -0
  49. package/dist/cjs/stored/bon-layout.d.ts +8 -0
  50. package/dist/cjs/stored/bon-layout.js +23 -0
  51. package/dist/cjs/stored/draht.d.ts +3 -1
  52. package/dist/cjs/stored/draht.js +53 -6
  53. package/dist/cjs/stored/einstellungen.js +2 -1
  54. package/dist/cjs/stored/gutscheine.d.ts +3 -0
  55. package/dist/cjs/stored/gutscheine.js +60 -0
  56. package/dist/cjs/stored/index.js +2 -17
  57. package/dist/cjs/stored/vokabular.d.ts +6 -4
  58. package/dist/cjs/stored/vokabular.js +48 -2
  59. package/dist/cjs/version.d.ts +1 -1
  60. package/dist/cjs/version.js +1 -1
  61. package/dist/esm/client/aufrufe.d.ts +4 -4
  62. package/dist/esm/client/aufrufe.js +15 -0
  63. package/dist/esm/client/receipts.d.ts +5 -0
  64. package/dist/esm/client/receipts.js +66 -8
  65. package/dist/esm/enums/voucher-action.d.ts +2 -0
  66. package/dist/esm/enums/voucher-action.js +2 -0
  67. package/dist/esm/enums/voucher-type.d.ts +10 -0
  68. package/dist/esm/enums/voucher-type.js +10 -0
  69. package/dist/esm/index.d.ts +3 -3
  70. package/dist/esm/index.js +3 -3
  71. package/dist/esm/models/index.d.ts +3 -3
  72. package/dist/esm/models/index.js +3 -3
  73. package/dist/esm/models/receipt-errors.d.ts +1 -1
  74. package/dist/esm/models/receipt-errors.js +2 -0
  75. package/dist/esm/models/receipt-item.d.ts +11 -3
  76. package/dist/esm/models/receipt-item.js +20 -1
  77. package/dist/esm/models/receipt.d.ts +31 -1
  78. package/dist/esm/models/receipt.js +44 -5
  79. package/dist/esm/models/voucher.d.ts +57 -4
  80. package/dist/esm/models/voucher.js +108 -3
  81. package/dist/esm/partner/fehler.d.ts +1 -1
  82. package/dist/esm/partner/fehler.js +2 -0
  83. package/dist/esm/partner/index.d.ts +1 -1
  84. package/dist/esm/partner/typen.d.ts +7 -1
  85. package/dist/esm/partner/typen.js +3 -0
  86. package/dist/esm/pos/client.d.ts +2 -1
  87. package/dist/esm/pos/client.js +3 -1
  88. package/dist/esm/pos/gutschein.d.ts +90 -0
  89. package/dist/esm/pos/gutschein.js +158 -0
  90. package/dist/esm/pos/index.d.ts +3 -2
  91. package/dist/esm/pos/index.js +4 -2
  92. package/dist/esm/pos/settings.d.ts +3 -0
  93. package/dist/esm/pos/settings.js +2 -0
  94. package/dist/esm/pos/texte.d.ts +156 -0
  95. package/dist/esm/pos/texte.js +70 -0
  96. package/dist/esm/react/index.js +8 -2
  97. package/dist/esm/receipt/due.d.ts +83 -2
  98. package/dist/esm/receipt/due.js +198 -34
  99. package/dist/esm/receipt/grid.js +13 -1
  100. package/dist/esm/receipt/gutschein-plan.d.ts +104 -0
  101. package/dist/esm/receipt/gutschein-plan.js +352 -0
  102. package/dist/esm/receipt/index.d.ts +1 -1
  103. package/dist/esm/receipt/index.js +1 -1
  104. package/dist/esm/receipt/layout.js +187 -11
  105. package/dist/esm/register/pairing.d.ts +21 -1
  106. package/dist/esm/register/pairing.js +16 -0
  107. package/dist/esm/stored/bon-layout.d.ts +8 -0
  108. package/dist/esm/stored/bon-layout.js +20 -0
  109. package/dist/esm/stored/draht.d.ts +3 -1
  110. package/dist/esm/stored/draht.js +52 -6
  111. package/dist/esm/stored/einstellungen.js +3 -2
  112. package/dist/esm/stored/gutscheine.d.ts +3 -0
  113. package/dist/esm/stored/gutscheine.js +56 -0
  114. package/dist/esm/stored/index.js +2 -17
  115. package/dist/esm/stored/vokabular.d.ts +6 -4
  116. package/dist/esm/stored/vokabular.js +48 -2
  117. package/dist/esm/version.d.ts +1 -1
  118. package/dist/esm/version.js +1 -1
  119. package/fixtures/expected/voucher-cancellation.grid32.txt +30 -0
  120. package/fixtures/expected/voucher-cancellation.grid48.txt +29 -0
  121. package/fixtures/expected/voucher-cancellation.lines.json +252 -0
  122. package/fixtures/expected/voucher-cancellation.sheet32.json +206 -0
  123. package/fixtures/expected/voucher-cancellation.sheet48.json +200 -0
  124. package/fixtures/expected/voucher-multi-purpose-redeem.grid32.txt +25 -0
  125. package/fixtures/expected/voucher-multi-purpose-redeem.grid48.txt +25 -0
  126. package/fixtures/expected/voucher-multi-purpose-redeem.lines.json +259 -0
  127. package/fixtures/expected/voucher-multi-purpose-redeem.sheet32.json +176 -0
  128. package/fixtures/expected/voucher-multi-purpose-redeem.sheet48.json +176 -0
  129. package/fixtures/expected/voucher-multi-purpose-sale.grid32.txt +24 -0
  130. package/fixtures/expected/voucher-multi-purpose-sale.grid48.txt +23 -0
  131. package/fixtures/expected/voucher-multi-purpose-sale.lines.json +216 -0
  132. package/fixtures/expected/voucher-multi-purpose-sale.sheet32.json +170 -0
  133. package/fixtures/expected/voucher-multi-purpose-sale.sheet48.json +164 -0
  134. package/fixtures/expected/voucher-payout.grid32.txt +23 -0
  135. package/fixtures/expected/voucher-payout.grid48.txt +22 -0
  136. package/fixtures/expected/voucher-payout.lines.json +216 -0
  137. package/fixtures/expected/voucher-payout.sheet32.json +164 -0
  138. package/fixtures/expected/voucher-payout.sheet48.json +158 -0
  139. package/fixtures/expected/voucher-service-redeem.grid32.txt +26 -0
  140. package/fixtures/expected/voucher-service-redeem.grid48.txt +25 -0
  141. package/fixtures/expected/voucher-service-redeem.lines.json +261 -0
  142. package/fixtures/expected/voucher-service-redeem.sheet32.json +182 -0
  143. package/fixtures/expected/voucher-service-redeem.sheet48.json +176 -0
  144. package/fixtures/expected/voucher-single-purpose-redeem-exempt.grid32.txt +30 -0
  145. package/fixtures/expected/voucher-single-purpose-redeem-exempt.grid48.txt +29 -0
  146. package/fixtures/expected/voucher-single-purpose-redeem-exempt.lines.json +331 -0
  147. package/fixtures/expected/voucher-single-purpose-redeem-exempt.sheet32.json +206 -0
  148. package/fixtures/expected/voucher-single-purpose-redeem-exempt.sheet48.json +200 -0
  149. package/fixtures/expected/voucher-single-purpose-redeem.grid32.txt +25 -0
  150. package/fixtures/expected/voucher-single-purpose-redeem.grid48.txt +24 -0
  151. package/fixtures/expected/voucher-single-purpose-redeem.lines.json +246 -0
  152. package/fixtures/expected/voucher-single-purpose-redeem.sheet32.json +176 -0
  153. package/fixtures/expected/voucher-single-purpose-redeem.sheet48.json +170 -0
  154. package/fixtures/expected/voucher-single-purpose-sale.grid32.txt +26 -0
  155. package/fixtures/expected/voucher-single-purpose-sale.grid48.txt +24 -0
  156. package/fixtures/expected/voucher-single-purpose-sale.lines.json +225 -0
  157. package/fixtures/expected/voucher-single-purpose-sale.sheet32.json +182 -0
  158. package/fixtures/expected/voucher-single-purpose-sale.sheet48.json +170 -0
  159. package/fixtures/hobex-hps-codes.json +1 -1
  160. package/fixtures/invoice-api.schema.json +1 -1
  161. package/fixtures/invoice-texts.json +1 -1
  162. package/fixtures/manifest.json +64 -0
  163. package/fixtures/pos-texts.json +170 -1
  164. package/fixtures/receipt-due-generated.json +1 -1
  165. package/fixtures/receipt-due-voucher-generated.json +494 -0
  166. package/fixtures/receipts/voucher-cancellation.json +76 -0
  167. package/fixtures/receipts/voucher-multi-purpose-redeem.json +62 -0
  168. package/fixtures/receipts/voucher-multi-purpose-sale.json +63 -0
  169. package/fixtures/receipts/voucher-payout.json +65 -0
  170. package/fixtures/receipts/voucher-service-redeem.json +82 -0
  171. package/fixtures/receipts/voucher-single-purpose-redeem-exempt.json +86 -0
  172. package/fixtures/receipts/voucher-single-purpose-redeem.json +71 -0
  173. package/fixtures/receipts/voucher-single-purpose-sale.json +88 -0
  174. package/fixtures/surface.json +35 -5
  175. package/fixtures/v3/antworten/belege.json +3405 -3
  176. package/fixtures/v3/antworten/belegmail.json +5 -2
  177. package/fixtures/v3/antworten/kasse-belege.json +3423 -3
  178. package/fixtures/v3/antworten/kasse.json +621 -14
  179. package/fixtures/v3/antworten/lager.json +1 -1
  180. package/fixtures/v3/antworten/rechnungen.json +5 -2
  181. package/fixtures/v3/antworten/storno.json +214 -3
  182. package/fixtures/v3/stored/belege.json +5 -2
  183. package/fixtures/v3/stored/kasse.json +225 -4
  184. package/fixtures/v3/stored/rechnungen.json +5 -2
  185. package/fixtures/v3/v3-vokabular.json +1375 -23
  186. package/fixtures/v3/zahlbetrag-faelle.json +293 -3
  187. package/package.json +4 -1
@@ -1,16 +1,18 @@
1
1
  {
2
2
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
3
  "_quelle": {
4
- "sha256": "aad7147db385e4a6d88ba5fb59d24c04e7e1f01195778aa70ccdc68fb90adcd7",
5
- "inputsSha256": "95fd7b1f3704811d3a3f79b1dbb6aea668e8c0e3a663e5b0ca9c07f2e11e37b5",
6
- "backendPackage": "@kreiseck/kasseneck-api@0.33.0",
4
+ "sha256": "d43bc765cb47497658bfc93ae64e06bffbb293585373d7231b50cb3438a8157d",
5
+ "inputsSha256": "29f295ee139942d79758255d7b6284e2810477e4e22249d9b703c0110129e78b",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.33.1",
7
7
  "inputs": [
8
8
  "docs/api/fehlercodes.json",
9
9
  "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
+ "functions/aktivierung-api-core.js",
10
11
  "functions/beleg-mail-core.js",
11
12
  "functions/gemeinsam/api-rand.js",
12
13
  "functions/gemeinsam/api-vokabular-v3.js",
13
14
  "functions/gemeinsam/beleg-toepfe.js",
15
+ "functions/gemeinsam/gutschein-beleg.js",
14
16
  "functions/gemeinsam/storno-core.js",
15
17
  "functions/gemeinsam/tip-core.js",
16
18
  "functions/gemeinsam/vat-buckets.js",
@@ -20,6 +22,7 @@
20
22
  "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
21
23
  "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
22
24
  "functions/test/unit/fixtures/vertrag-v3/ablage.js",
25
+ "functions/test/unit/fixtures/vertrag-v3/gutschein-belege.js",
23
26
  "functions/test/unit/fixtures/vertrag-v3/vokabular.js",
24
27
  "functions/test/unit/fixtures/vertrag-v3/zahlbetrag.js",
25
28
  "functions/test/unit/helpers/kassen-fehlerstellen.js",
@@ -4299,6 +4302,3423 @@
4299
4302
  },
4300
4303
  "code": "receipt_not_found"
4301
4304
  }
4305
+ },
4306
+ {
4307
+ "name": "sale_single_purpose_voucher",
4308
+ "endpoint": "createReceipt",
4309
+ "path": "/api/v3/createReceipt",
4310
+ "params": {
4311
+ "receiptType": "standard",
4312
+ "items": [],
4313
+ "vouchers": [
4314
+ {
4315
+ "action": "sell",
4316
+ "type": "single_purpose",
4317
+ "amountCents": 5000
4318
+ }
4319
+ ],
4320
+ "payments": [
4321
+ {
4322
+ "method": "cash",
4323
+ "amountCents": 5000
4324
+ }
4325
+ ]
4326
+ },
4327
+ "httpStatus": 200,
4328
+ "headers": {
4329
+ "Kasseneck-Api-Version": "v3",
4330
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
4331
+ },
4332
+ "response": {
4333
+ "status": "success",
4334
+ "message": "",
4335
+ "data": {
4336
+ "is_small_business": false,
4337
+ "company": "Bäckerei Welt",
4338
+ "phone": "+43 1 234",
4339
+ "street": "Hauptplatz 1",
4340
+ "zip": "1010",
4341
+ "city": "Wien",
4342
+ "footer1": "Danke",
4343
+ "footer2": null,
4344
+ "footer3": null,
4345
+ "footer4": null,
4346
+ "logo_url": null,
4347
+ "kreiseck_logo": false,
4348
+ "thanks_message": "Bis bald",
4349
+ "receipt": {
4350
+ "counter": 2,
4351
+ "receiptType": "standard",
4352
+ "zeroKind": null,
4353
+ "receiptId": "KECK-1-ID-2",
4354
+ "cashregisterId": "KECK-1",
4355
+ "timeStamp": "2026-09-26T10:00:00",
4356
+ "vouchers": [
4357
+ {
4358
+ "action": "sell",
4359
+ "type": "single_purpose",
4360
+ "voucherType": "single_purpose",
4361
+ "amountCents": 5000,
4362
+ "vatRateBp": 2000,
4363
+ "name": "Einzweckgutschein 20 %",
4364
+ "code": "····-····-JJJ2",
4365
+ "codeSuffix": "JJJ2",
4366
+ "voucherId": "auto2"
4367
+ }
4368
+ ],
4369
+ "paymentMethod": "cash",
4370
+ "customerDetails": null,
4371
+ "legalMessage": null,
4372
+ "customProjectId": null,
4373
+ "creditCardProvider": null,
4374
+ "cardPaymentId": null,
4375
+ "cardPaymentData": null,
4376
+ "amountRateStandard": 50,
4377
+ "amountRateReduced1": 0,
4378
+ "amountRateReduced2": 0,
4379
+ "amountRateZero": 0,
4380
+ "amountRateSpecial": 0,
4381
+ "turnoverCounterAES256ICM": "girlnnGhSdImcB9LEr65jQ==",
4382
+ "signaturePreviousReceipt": "6Mn4bx4N/M8=",
4383
+ "certificateSerialNumber": "ABC123",
4384
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
4385
+ "payments": [
4386
+ {
4387
+ "id": "p1",
4388
+ "method": "cash",
4389
+ "amountCents": 5000
4390
+ }
4391
+ ],
4392
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMl8yMDI2LTA5LTI2VDEwOjAwOjAwXzUwLDAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfZ2lybG5uR2hfQUJDMTIzXzZNbjRieDROL004PQ.luLGr48WW9JRFAz58ZFJtmBH2i9jCWmie0KQZE3JaDgC1wgIm-Kb4LpTxSnPm4OfhYRKsrAMYMmYHUOi3-XGaQ",
4393
+ "signatureSuccess": true,
4394
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_50,00_0,00_0,00_0,00_0,00_girlnnGh_ABC123_6Mn4bx4N/M8=_luLGr48WW9JRFAz58ZFJtmBH2i9jCWmie0KQZE3JaDgC1wgIm+Kb4LpTxSnPm4OfhYRKsrAMYMmYHUOi3+XGaQ==",
4395
+ "headerVersionId": "auto1",
4396
+ "layoutRuleset": 2,
4397
+ "items": [
4398
+ {
4399
+ "name": "Einzweckgutschein 20 %",
4400
+ "vat": 20,
4401
+ "vatRate": 20,
4402
+ "priceOne": 50,
4403
+ "priceOneCents": 5000,
4404
+ "unitPriceCents": 5000,
4405
+ "amount": 1,
4406
+ "quantity": 1,
4407
+ "kind": "voucher"
4408
+ }
4409
+ ]
4410
+ },
4411
+ "taxNumber": "12-345/6789",
4412
+ "vatId": "ATU12345678",
4413
+ "headerVersionId": "auto1",
4414
+ "registrationInfo": null,
4415
+ "testCashregister": true,
4416
+ "testSignature": false,
4417
+ "logo_scale": "M",
4418
+ "layout": {
4419
+ "paperSize": "mm80",
4420
+ "ruleset": 2,
4421
+ "lines": [
4422
+ {
4423
+ "kind": "banner",
4424
+ "text": "TESTKASSE — kein gültiger Beleg",
4425
+ "tone": "warning"
4426
+ },
4427
+ {
4428
+ "kind": "text",
4429
+ "text": "Bäckerei Welt",
4430
+ "align": "center",
4431
+ "bold": true
4432
+ },
4433
+ {
4434
+ "kind": "text",
4435
+ "text": "Hauptplatz 1",
4436
+ "align": "center",
4437
+ "bold": false
4438
+ },
4439
+ {
4440
+ "kind": "text",
4441
+ "text": "1010 Wien",
4442
+ "align": "center",
4443
+ "bold": false
4444
+ },
4445
+ {
4446
+ "kind": "text",
4447
+ "text": "ATU12345678",
4448
+ "align": "center",
4449
+ "bold": false
4450
+ },
4451
+ {
4452
+ "kind": "text",
4453
+ "text": "+43 1 234",
4454
+ "align": "center",
4455
+ "bold": false
4456
+ },
4457
+ {
4458
+ "kind": "space",
4459
+ "lines": 1
4460
+ },
4461
+ {
4462
+ "kind": "columns",
4463
+ "columns": [
4464
+ {
4465
+ "text": "Datum:",
4466
+ "width": 4,
4467
+ "align": "left"
4468
+ },
4469
+ {
4470
+ "text": "26.09.2026 10:00:00",
4471
+ "width": 8,
4472
+ "align": "right"
4473
+ }
4474
+ ]
4475
+ },
4476
+ {
4477
+ "kind": "columns",
4478
+ "columns": [
4479
+ {
4480
+ "text": "Kassen-ID:",
4481
+ "width": 6,
4482
+ "align": "left"
4483
+ },
4484
+ {
4485
+ "text": "KECK-1",
4486
+ "width": 6,
4487
+ "align": "right"
4488
+ }
4489
+ ]
4490
+ },
4491
+ {
4492
+ "kind": "columns",
4493
+ "columns": [
4494
+ {
4495
+ "text": "Beleg-ID:",
4496
+ "width": 6,
4497
+ "align": "left"
4498
+ },
4499
+ {
4500
+ "text": "KECK-1-ID-2",
4501
+ "width": 6,
4502
+ "align": "right"
4503
+ }
4504
+ ]
4505
+ },
4506
+ {
4507
+ "kind": "space",
4508
+ "lines": 1
4509
+ },
4510
+ {
4511
+ "kind": "columns",
4512
+ "columns": [
4513
+ {
4514
+ "text": "1 x Einzweckgutschein 20 % ····-····-JJJ2",
4515
+ "width": 7,
4516
+ "align": "left"
4517
+ },
4518
+ {
4519
+ "text": "50,00 A",
4520
+ "width": 5,
4521
+ "align": "right"
4522
+ }
4523
+ ]
4524
+ },
4525
+ {
4526
+ "kind": "space",
4527
+ "lines": 1
4528
+ },
4529
+ {
4530
+ "kind": "columns",
4531
+ "columns": [
4532
+ {
4533
+ "text": "MwSt%",
4534
+ "width": 3,
4535
+ "align": "left"
4536
+ },
4537
+ {
4538
+ "text": "MwSt",
4539
+ "width": 4,
4540
+ "align": "left"
4541
+ },
4542
+ {
4543
+ "text": "Netto",
4544
+ "width": 3,
4545
+ "align": "left"
4546
+ },
4547
+ {
4548
+ "text": "Brutto",
4549
+ "width": 2,
4550
+ "align": "right"
4551
+ }
4552
+ ]
4553
+ },
4554
+ {
4555
+ "kind": "columns",
4556
+ "columns": [
4557
+ {
4558
+ "text": "A 20%",
4559
+ "width": 3,
4560
+ "align": "left"
4561
+ },
4562
+ {
4563
+ "text": "8,33",
4564
+ "width": 4,
4565
+ "align": "left"
4566
+ },
4567
+ {
4568
+ "text": "41,67",
4569
+ "width": 3,
4570
+ "align": "left"
4571
+ },
4572
+ {
4573
+ "text": "50,00",
4574
+ "width": 2,
4575
+ "align": "right"
4576
+ }
4577
+ ]
4578
+ },
4579
+ {
4580
+ "kind": "rule",
4581
+ "char": "-"
4582
+ },
4583
+ {
4584
+ "kind": "columns",
4585
+ "columns": [
4586
+ {
4587
+ "text": "Gesamt:",
4588
+ "width": 6,
4589
+ "align": "left"
4590
+ },
4591
+ {
4592
+ "text": "50,00 €",
4593
+ "width": 6,
4594
+ "align": "right"
4595
+ }
4596
+ ]
4597
+ },
4598
+ {
4599
+ "kind": "columns",
4600
+ "columns": [
4601
+ {
4602
+ "text": "Zahlungsart:",
4603
+ "width": 6,
4604
+ "align": "left"
4605
+ },
4606
+ {
4607
+ "text": "Barzahlung",
4608
+ "width": 6,
4609
+ "align": "right"
4610
+ }
4611
+ ]
4612
+ },
4613
+ {
4614
+ "kind": "space",
4615
+ "lines": 1
4616
+ },
4617
+ {
4618
+ "kind": "qr",
4619
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_50,00_0,00_0,00_0,00_0,00_girlnnGh_ABC123_6Mn4bx4N/M8=_luLGr48WW9JRFAz58ZFJtmBH2i9jCWmie0KQZE3JaDgC1wgIm+Kb4LpTxSnPm4OfhYRKsrAMYMmYHUOi3+XGaQ=="
4620
+ },
4621
+ {
4622
+ "kind": "space",
4623
+ "lines": 1
4624
+ },
4625
+ {
4626
+ "kind": "space",
4627
+ "lines": 1
4628
+ },
4629
+ {
4630
+ "kind": "text",
4631
+ "text": "Bis bald",
4632
+ "align": "center",
4633
+ "bold": false
4634
+ },
4635
+ {
4636
+ "kind": "text",
4637
+ "text": "Danke",
4638
+ "align": "center",
4639
+ "bold": false
4640
+ },
4641
+ {
4642
+ "kind": "space",
4643
+ "lines": 1
4644
+ },
4645
+ {
4646
+ "kind": "banner",
4647
+ "text": "TESTKASSE — kein gültiger Beleg",
4648
+ "tone": "warning"
4649
+ }
4650
+ ]
4651
+ },
4652
+ "issuedVouchers": [
4653
+ {
4654
+ "id": "auto2",
4655
+ "code": "JJJJ-JJJJ-JJJ2",
4656
+ "type": "single_purpose",
4657
+ "index": 0,
4658
+ "codeSuffix": "JJJ2",
4659
+ "faceValueCents": 5000,
4660
+ "validity": {
4661
+ "pattern": "1+3",
4662
+ "redeemableUntil": "2027-09-26",
4663
+ "refundableUntil": "2030-09-26",
4664
+ "validUntil": null
4665
+ }
4666
+ }
4667
+ ]
4668
+ }
4669
+ }
4670
+ },
4671
+ {
4672
+ "name": "sale_multi_purpose_voucher",
4673
+ "endpoint": "createReceipt",
4674
+ "path": "/api/v3/createReceipt",
4675
+ "params": {
4676
+ "receiptType": "standard",
4677
+ "items": [],
4678
+ "vouchers": [
4679
+ {
4680
+ "action": "sell",
4681
+ "type": "multi_purpose",
4682
+ "amountCents": 5000
4683
+ }
4684
+ ],
4685
+ "payments": [
4686
+ {
4687
+ "method": "cash",
4688
+ "amountCents": 5000
4689
+ }
4690
+ ]
4691
+ },
4692
+ "httpStatus": 200,
4693
+ "headers": {
4694
+ "Kasseneck-Api-Version": "v3",
4695
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
4696
+ },
4697
+ "response": {
4698
+ "status": "success",
4699
+ "message": "",
4700
+ "data": {
4701
+ "is_small_business": false,
4702
+ "company": "Bäckerei Welt",
4703
+ "phone": "+43 1 234",
4704
+ "street": "Hauptplatz 1",
4705
+ "zip": "1010",
4706
+ "city": "Wien",
4707
+ "footer1": "Danke",
4708
+ "footer2": null,
4709
+ "footer3": null,
4710
+ "footer4": null,
4711
+ "logo_url": null,
4712
+ "kreiseck_logo": false,
4713
+ "thanks_message": "Bis bald",
4714
+ "receipt": {
4715
+ "counter": 3,
4716
+ "receiptType": "standard",
4717
+ "zeroKind": null,
4718
+ "receiptId": "KECK-1-ID-3",
4719
+ "cashregisterId": "KECK-1",
4720
+ "timeStamp": "2026-09-26T10:00:00",
4721
+ "vouchers": [
4722
+ {
4723
+ "action": "sell",
4724
+ "type": "value",
4725
+ "voucherType": "multi_purpose",
4726
+ "value": 50,
4727
+ "valueCents": 5000,
4728
+ "name": "Mehrzweckgutschein",
4729
+ "code": "····-····-NNNY",
4730
+ "codeSuffix": "NNNY",
4731
+ "voucherId": "auto4"
4732
+ }
4733
+ ],
4734
+ "paymentMethod": "cash",
4735
+ "customerDetails": null,
4736
+ "legalMessage": null,
4737
+ "customProjectId": null,
4738
+ "creditCardProvider": null,
4739
+ "cardPaymentId": null,
4740
+ "cardPaymentData": null,
4741
+ "amountRateStandard": 0,
4742
+ "amountRateReduced1": 0,
4743
+ "amountRateReduced2": 0,
4744
+ "amountRateZero": 0,
4745
+ "amountRateSpecial": 0,
4746
+ "turnoverCounterAES256ICM": "izsnQdMe1xpqCzEZFG8+tg==",
4747
+ "signaturePreviousReceipt": "xxF3t1dE2g0=",
4748
+ "certificateSerialNumber": "ABC123",
4749
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000625152eb",
4750
+ "payments": [
4751
+ {
4752
+ "id": "p1",
4753
+ "method": "cash",
4754
+ "amountCents": 5000
4755
+ }
4756
+ ],
4757
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtM18yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9penNuUWRNZV9BQkMxMjNfeHhGM3QxZEUyZzA9.9dkSuItdy0pVgBoINrkPAJctt5s4y4MO3OFuGGLo05cf04OIXZNP9jNDGv2hiUWg_Geo31l2SizXgvkGhqFW3Q",
4758
+ "signatureSuccess": true,
4759
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-3_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_izsnQdMe_ABC123_xxF3t1dE2g0=_9dkSuItdy0pVgBoINrkPAJctt5s4y4MO3OFuGGLo05cf04OIXZNP9jNDGv2hiUWg/Geo31l2SizXgvkGhqFW3Q==",
4760
+ "headerVersionId": "auto1",
4761
+ "layoutRuleset": 2,
4762
+ "items": []
4763
+ },
4764
+ "taxNumber": "12-345/6789",
4765
+ "vatId": "ATU12345678",
4766
+ "headerVersionId": "auto1",
4767
+ "registrationInfo": null,
4768
+ "testCashregister": true,
4769
+ "testSignature": false,
4770
+ "logo_scale": "M",
4771
+ "layout": {
4772
+ "paperSize": "mm80",
4773
+ "ruleset": 2,
4774
+ "lines": [
4775
+ {
4776
+ "kind": "banner",
4777
+ "text": "TESTKASSE — kein gültiger Beleg",
4778
+ "tone": "warning"
4779
+ },
4780
+ {
4781
+ "kind": "text",
4782
+ "text": "Bäckerei Welt",
4783
+ "align": "center",
4784
+ "bold": true
4785
+ },
4786
+ {
4787
+ "kind": "text",
4788
+ "text": "Hauptplatz 1",
4789
+ "align": "center",
4790
+ "bold": false
4791
+ },
4792
+ {
4793
+ "kind": "text",
4794
+ "text": "1010 Wien",
4795
+ "align": "center",
4796
+ "bold": false
4797
+ },
4798
+ {
4799
+ "kind": "text",
4800
+ "text": "ATU12345678",
4801
+ "align": "center",
4802
+ "bold": false
4803
+ },
4804
+ {
4805
+ "kind": "text",
4806
+ "text": "+43 1 234",
4807
+ "align": "center",
4808
+ "bold": false
4809
+ },
4810
+ {
4811
+ "kind": "space",
4812
+ "lines": 1
4813
+ },
4814
+ {
4815
+ "kind": "columns",
4816
+ "columns": [
4817
+ {
4818
+ "text": "Datum:",
4819
+ "width": 4,
4820
+ "align": "left"
4821
+ },
4822
+ {
4823
+ "text": "26.09.2026 10:00:00",
4824
+ "width": 8,
4825
+ "align": "right"
4826
+ }
4827
+ ]
4828
+ },
4829
+ {
4830
+ "kind": "columns",
4831
+ "columns": [
4832
+ {
4833
+ "text": "Kassen-ID:",
4834
+ "width": 6,
4835
+ "align": "left"
4836
+ },
4837
+ {
4838
+ "text": "KECK-1",
4839
+ "width": 6,
4840
+ "align": "right"
4841
+ }
4842
+ ]
4843
+ },
4844
+ {
4845
+ "kind": "columns",
4846
+ "columns": [
4847
+ {
4848
+ "text": "Beleg-ID:",
4849
+ "width": 6,
4850
+ "align": "left"
4851
+ },
4852
+ {
4853
+ "text": "KECK-1-ID-3",
4854
+ "width": 6,
4855
+ "align": "right"
4856
+ }
4857
+ ]
4858
+ },
4859
+ {
4860
+ "kind": "space",
4861
+ "lines": 1
4862
+ },
4863
+ {
4864
+ "kind": "columns",
4865
+ "columns": [
4866
+ {
4867
+ "text": "1 x Wertgutschein ····-····-NNNY - Mehrzweckgutschein",
4868
+ "width": 7,
4869
+ "align": "left"
4870
+ },
4871
+ {
4872
+ "text": "50,00 D",
4873
+ "width": 5,
4874
+ "align": "right"
4875
+ }
4876
+ ]
4877
+ },
4878
+ {
4879
+ "kind": "space",
4880
+ "lines": 1
4881
+ },
4882
+ {
4883
+ "kind": "columns",
4884
+ "columns": [
4885
+ {
4886
+ "text": "MwSt%",
4887
+ "width": 3,
4888
+ "align": "left"
4889
+ },
4890
+ {
4891
+ "text": "MwSt",
4892
+ "width": 4,
4893
+ "align": "left"
4894
+ },
4895
+ {
4896
+ "text": "Netto",
4897
+ "width": 3,
4898
+ "align": "left"
4899
+ },
4900
+ {
4901
+ "text": "Brutto",
4902
+ "width": 2,
4903
+ "align": "right"
4904
+ }
4905
+ ]
4906
+ },
4907
+ {
4908
+ "kind": "columns",
4909
+ "columns": [
4910
+ {
4911
+ "text": "D 0%",
4912
+ "width": 3,
4913
+ "align": "left"
4914
+ },
4915
+ {
4916
+ "text": "0,00",
4917
+ "width": 4,
4918
+ "align": "left"
4919
+ },
4920
+ {
4921
+ "text": "50,00",
4922
+ "width": 3,
4923
+ "align": "left"
4924
+ },
4925
+ {
4926
+ "text": "50,00",
4927
+ "width": 2,
4928
+ "align": "right"
4929
+ }
4930
+ ]
4931
+ },
4932
+ {
4933
+ "kind": "rule",
4934
+ "char": "-"
4935
+ },
4936
+ {
4937
+ "kind": "columns",
4938
+ "columns": [
4939
+ {
4940
+ "text": "Gesamt:",
4941
+ "width": 6,
4942
+ "align": "left"
4943
+ },
4944
+ {
4945
+ "text": "50,00 €",
4946
+ "width": 6,
4947
+ "align": "right"
4948
+ }
4949
+ ]
4950
+ },
4951
+ {
4952
+ "kind": "columns",
4953
+ "columns": [
4954
+ {
4955
+ "text": "Zahlungsart:",
4956
+ "width": 6,
4957
+ "align": "left"
4958
+ },
4959
+ {
4960
+ "text": "Barzahlung",
4961
+ "width": 6,
4962
+ "align": "right"
4963
+ }
4964
+ ]
4965
+ },
4966
+ {
4967
+ "kind": "space",
4968
+ "lines": 1
4969
+ },
4970
+ {
4971
+ "kind": "qr",
4972
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-3_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_izsnQdMe_ABC123_xxF3t1dE2g0=_9dkSuItdy0pVgBoINrkPAJctt5s4y4MO3OFuGGLo05cf04OIXZNP9jNDGv2hiUWg/Geo31l2SizXgvkGhqFW3Q=="
4973
+ },
4974
+ {
4975
+ "kind": "space",
4976
+ "lines": 1
4977
+ },
4978
+ {
4979
+ "kind": "space",
4980
+ "lines": 1
4981
+ },
4982
+ {
4983
+ "kind": "text",
4984
+ "text": "Bis bald",
4985
+ "align": "center",
4986
+ "bold": false
4987
+ },
4988
+ {
4989
+ "kind": "text",
4990
+ "text": "Danke",
4991
+ "align": "center",
4992
+ "bold": false
4993
+ },
4994
+ {
4995
+ "kind": "space",
4996
+ "lines": 1
4997
+ },
4998
+ {
4999
+ "kind": "banner",
5000
+ "text": "TESTKASSE — kein gültiger Beleg",
5001
+ "tone": "warning"
5002
+ }
5003
+ ]
5004
+ },
5005
+ "issuedVouchers": [
5006
+ {
5007
+ "id": "auto4",
5008
+ "code": "NNNN-NNNN-NNNY",
5009
+ "type": "multi_purpose",
5010
+ "index": 0,
5011
+ "codeSuffix": "NNNY",
5012
+ "faceValueCents": 5000,
5013
+ "validity": {
5014
+ "pattern": "1+3",
5015
+ "redeemableUntil": "2027-09-26",
5016
+ "refundableUntil": "2030-09-26",
5017
+ "validUntil": null
5018
+ }
5019
+ }
5020
+ ]
5021
+ }
5022
+ }
5023
+ },
5024
+ {
5025
+ "name": "sale_service_voucher",
5026
+ "endpoint": "createReceipt",
5027
+ "path": "/api/v3/createReceipt",
5028
+ "params": {
5029
+ "receiptType": "standard",
5030
+ "items": [],
5031
+ "vouchers": [
5032
+ {
5033
+ "action": "sell",
5034
+ "type": "service",
5035
+ "articleId": "art_mani",
5036
+ "quantity": 2
5037
+ }
5038
+ ],
5039
+ "payments": [
5040
+ {
5041
+ "method": "cash",
5042
+ "amountCents": 7000
5043
+ }
5044
+ ]
5045
+ },
5046
+ "httpStatus": 200,
5047
+ "headers": {
5048
+ "Kasseneck-Api-Version": "v3",
5049
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
5050
+ },
5051
+ "response": {
5052
+ "status": "success",
5053
+ "message": "",
5054
+ "data": {
5055
+ "is_small_business": false,
5056
+ "company": "Bäckerei Welt",
5057
+ "phone": "+43 1 234",
5058
+ "street": "Hauptplatz 1",
5059
+ "zip": "1010",
5060
+ "city": "Wien",
5061
+ "footer1": "Danke",
5062
+ "footer2": null,
5063
+ "footer3": null,
5064
+ "footer4": null,
5065
+ "logo_url": null,
5066
+ "kreiseck_logo": false,
5067
+ "thanks_message": "Bis bald",
5068
+ "receipt": {
5069
+ "counter": 4,
5070
+ "receiptType": "standard",
5071
+ "zeroKind": null,
5072
+ "receiptId": "KECK-1-ID-4",
5073
+ "cashregisterId": "KECK-1",
5074
+ "timeStamp": "2026-09-26T10:00:00",
5075
+ "vouchers": [
5076
+ {
5077
+ "action": "sell",
5078
+ "type": "service",
5079
+ "voucherType": "service",
5080
+ "amountCents": 7000,
5081
+ "vatRateBp": 2000,
5082
+ "article": {
5083
+ "id": "art_mani",
5084
+ "name": "Maniküre",
5085
+ "vatRateBp": 2000,
5086
+ "priceCents": 3500
5087
+ },
5088
+ "quantity": 2,
5089
+ "name": "Leistungsgutschein 2× Maniküre",
5090
+ "code": "····-····-RRRF",
5091
+ "codeSuffix": "RRRF",
5092
+ "voucherId": "auto6"
5093
+ }
5094
+ ],
5095
+ "paymentMethod": "cash",
5096
+ "customerDetails": null,
5097
+ "legalMessage": null,
5098
+ "customProjectId": null,
5099
+ "creditCardProvider": null,
5100
+ "cardPaymentId": null,
5101
+ "cardPaymentData": null,
5102
+ "amountRateStandard": 70,
5103
+ "amountRateReduced1": 0,
5104
+ "amountRateReduced2": 0,
5105
+ "amountRateZero": 0,
5106
+ "amountRateSpecial": 0,
5107
+ "turnoverCounterAES256ICM": "V2ekatXgznVxKgmTPRuabQ==",
5108
+ "signaturePreviousReceipt": "7kGvRsFiNGA=",
5109
+ "certificateSerialNumber": "ABC123",
5110
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000008c0b9c7f",
5111
+ "payments": [
5112
+ {
5113
+ "id": "p1",
5114
+ "method": "cash",
5115
+ "amountCents": 7000
5116
+ }
5117
+ ],
5118
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNF8yMDI2LTA5LTI2VDEwOjAwOjAwXzcwLDAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfVjJla2F0WGdfQUJDMTIzXzdrR3ZSc0ZpTkdBPQ.eu4GvJo8pYi5YhammqR4esmBPHyYC1e2VJL4K1qkzIPm7gOn5vWgQieC2Nvt8xhxm2Oh-hTALIHhGkCMK4cihA",
5119
+ "signatureSuccess": true,
5120
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_70,00_0,00_0,00_0,00_0,00_V2ekatXg_ABC123_7kGvRsFiNGA=_eu4GvJo8pYi5YhammqR4esmBPHyYC1e2VJL4K1qkzIPm7gOn5vWgQieC2Nvt8xhxm2Oh+hTALIHhGkCMK4cihA==",
5121
+ "headerVersionId": "auto1",
5122
+ "layoutRuleset": 2,
5123
+ "items": [
5124
+ {
5125
+ "name": "Leistungsgutschein 2× Maniküre",
5126
+ "vat": 20,
5127
+ "vatRate": 20,
5128
+ "priceOne": 70,
5129
+ "priceOneCents": 7000,
5130
+ "unitPriceCents": 7000,
5131
+ "amount": 1,
5132
+ "quantity": 1,
5133
+ "kind": "voucher"
5134
+ }
5135
+ ]
5136
+ },
5137
+ "taxNumber": "12-345/6789",
5138
+ "vatId": "ATU12345678",
5139
+ "headerVersionId": "auto1",
5140
+ "registrationInfo": null,
5141
+ "testCashregister": true,
5142
+ "testSignature": false,
5143
+ "logo_scale": "M",
5144
+ "layout": {
5145
+ "paperSize": "mm80",
5146
+ "ruleset": 2,
5147
+ "lines": [
5148
+ {
5149
+ "kind": "banner",
5150
+ "text": "TESTKASSE — kein gültiger Beleg",
5151
+ "tone": "warning"
5152
+ },
5153
+ {
5154
+ "kind": "text",
5155
+ "text": "Bäckerei Welt",
5156
+ "align": "center",
5157
+ "bold": true
5158
+ },
5159
+ {
5160
+ "kind": "text",
5161
+ "text": "Hauptplatz 1",
5162
+ "align": "center",
5163
+ "bold": false
5164
+ },
5165
+ {
5166
+ "kind": "text",
5167
+ "text": "1010 Wien",
5168
+ "align": "center",
5169
+ "bold": false
5170
+ },
5171
+ {
5172
+ "kind": "text",
5173
+ "text": "ATU12345678",
5174
+ "align": "center",
5175
+ "bold": false
5176
+ },
5177
+ {
5178
+ "kind": "text",
5179
+ "text": "+43 1 234",
5180
+ "align": "center",
5181
+ "bold": false
5182
+ },
5183
+ {
5184
+ "kind": "space",
5185
+ "lines": 1
5186
+ },
5187
+ {
5188
+ "kind": "columns",
5189
+ "columns": [
5190
+ {
5191
+ "text": "Datum:",
5192
+ "width": 4,
5193
+ "align": "left"
5194
+ },
5195
+ {
5196
+ "text": "26.09.2026 10:00:00",
5197
+ "width": 8,
5198
+ "align": "right"
5199
+ }
5200
+ ]
5201
+ },
5202
+ {
5203
+ "kind": "columns",
5204
+ "columns": [
5205
+ {
5206
+ "text": "Kassen-ID:",
5207
+ "width": 6,
5208
+ "align": "left"
5209
+ },
5210
+ {
5211
+ "text": "KECK-1",
5212
+ "width": 6,
5213
+ "align": "right"
5214
+ }
5215
+ ]
5216
+ },
5217
+ {
5218
+ "kind": "columns",
5219
+ "columns": [
5220
+ {
5221
+ "text": "Beleg-ID:",
5222
+ "width": 6,
5223
+ "align": "left"
5224
+ },
5225
+ {
5226
+ "text": "KECK-1-ID-4",
5227
+ "width": 6,
5228
+ "align": "right"
5229
+ }
5230
+ ]
5231
+ },
5232
+ {
5233
+ "kind": "space",
5234
+ "lines": 1
5235
+ },
5236
+ {
5237
+ "kind": "columns",
5238
+ "columns": [
5239
+ {
5240
+ "text": "1 x Leistungsgutschein 2× Maniküre ····-····-RRRF",
5241
+ "width": 7,
5242
+ "align": "left"
5243
+ },
5244
+ {
5245
+ "text": "70,00 A",
5246
+ "width": 5,
5247
+ "align": "right"
5248
+ }
5249
+ ]
5250
+ },
5251
+ {
5252
+ "kind": "space",
5253
+ "lines": 1
5254
+ },
5255
+ {
5256
+ "kind": "columns",
5257
+ "columns": [
5258
+ {
5259
+ "text": "MwSt%",
5260
+ "width": 3,
5261
+ "align": "left"
5262
+ },
5263
+ {
5264
+ "text": "MwSt",
5265
+ "width": 4,
5266
+ "align": "left"
5267
+ },
5268
+ {
5269
+ "text": "Netto",
5270
+ "width": 3,
5271
+ "align": "left"
5272
+ },
5273
+ {
5274
+ "text": "Brutto",
5275
+ "width": 2,
5276
+ "align": "right"
5277
+ }
5278
+ ]
5279
+ },
5280
+ {
5281
+ "kind": "columns",
5282
+ "columns": [
5283
+ {
5284
+ "text": "A 20%",
5285
+ "width": 3,
5286
+ "align": "left"
5287
+ },
5288
+ {
5289
+ "text": "11,67",
5290
+ "width": 4,
5291
+ "align": "left"
5292
+ },
5293
+ {
5294
+ "text": "58,33",
5295
+ "width": 3,
5296
+ "align": "left"
5297
+ },
5298
+ {
5299
+ "text": "70,00",
5300
+ "width": 2,
5301
+ "align": "right"
5302
+ }
5303
+ ]
5304
+ },
5305
+ {
5306
+ "kind": "rule",
5307
+ "char": "-"
5308
+ },
5309
+ {
5310
+ "kind": "columns",
5311
+ "columns": [
5312
+ {
5313
+ "text": "Gesamt:",
5314
+ "width": 6,
5315
+ "align": "left"
5316
+ },
5317
+ {
5318
+ "text": "70,00 €",
5319
+ "width": 6,
5320
+ "align": "right"
5321
+ }
5322
+ ]
5323
+ },
5324
+ {
5325
+ "kind": "columns",
5326
+ "columns": [
5327
+ {
5328
+ "text": "Zahlungsart:",
5329
+ "width": 6,
5330
+ "align": "left"
5331
+ },
5332
+ {
5333
+ "text": "Barzahlung",
5334
+ "width": 6,
5335
+ "align": "right"
5336
+ }
5337
+ ]
5338
+ },
5339
+ {
5340
+ "kind": "space",
5341
+ "lines": 1
5342
+ },
5343
+ {
5344
+ "kind": "qr",
5345
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_70,00_0,00_0,00_0,00_0,00_V2ekatXg_ABC123_7kGvRsFiNGA=_eu4GvJo8pYi5YhammqR4esmBPHyYC1e2VJL4K1qkzIPm7gOn5vWgQieC2Nvt8xhxm2Oh+hTALIHhGkCMK4cihA=="
5346
+ },
5347
+ {
5348
+ "kind": "space",
5349
+ "lines": 1
5350
+ },
5351
+ {
5352
+ "kind": "space",
5353
+ "lines": 1
5354
+ },
5355
+ {
5356
+ "kind": "text",
5357
+ "text": "Bis bald",
5358
+ "align": "center",
5359
+ "bold": false
5360
+ },
5361
+ {
5362
+ "kind": "text",
5363
+ "text": "Danke",
5364
+ "align": "center",
5365
+ "bold": false
5366
+ },
5367
+ {
5368
+ "kind": "space",
5369
+ "lines": 1
5370
+ },
5371
+ {
5372
+ "kind": "banner",
5373
+ "text": "TESTKASSE — kein gültiger Beleg",
5374
+ "tone": "warning"
5375
+ }
5376
+ ]
5377
+ },
5378
+ "issuedVouchers": [
5379
+ {
5380
+ "id": "auto6",
5381
+ "code": "RRRR-RRRR-RRRF",
5382
+ "type": "service",
5383
+ "index": 0,
5384
+ "codeSuffix": "RRRF",
5385
+ "faceValueCents": 7000,
5386
+ "quantity": 2,
5387
+ "validity": {
5388
+ "pattern": "unlimited",
5389
+ "redeemableUntil": null,
5390
+ "refundableUntil": null,
5391
+ "validUntil": null
5392
+ }
5393
+ }
5394
+ ]
5395
+ }
5396
+ }
5397
+ },
5398
+ {
5399
+ "name": "redeem_multi_purpose_voucher",
5400
+ "endpoint": "createReceipt",
5401
+ "path": "/api/v3/createReceipt",
5402
+ "params": {
5403
+ "receiptType": "standard",
5404
+ "items": [
5405
+ {
5406
+ "name": "Blumenstrauß",
5407
+ "amount": 1,
5408
+ "priceOneCents": 2240,
5409
+ "vat": 20
5410
+ }
5411
+ ],
5412
+ "vouchers": [
5413
+ {
5414
+ "action": "redeem",
5415
+ "type": "multi_purpose",
5416
+ "code": "DTD5-9ECF-5KNZ",
5417
+ "amountCents": 1750
5418
+ }
5419
+ ],
5420
+ "payments": [
5421
+ {
5422
+ "method": "cash",
5423
+ "amountCents": 490
5424
+ }
5425
+ ]
5426
+ },
5427
+ "httpStatus": 200,
5428
+ "headers": {
5429
+ "Kasseneck-Api-Version": "v3",
5430
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
5431
+ },
5432
+ "response": {
5433
+ "status": "success",
5434
+ "message": "",
5435
+ "data": {
5436
+ "is_small_business": false,
5437
+ "company": "Bäckerei Welt",
5438
+ "phone": "+43 1 234",
5439
+ "street": "Hauptplatz 1",
5440
+ "zip": "1010",
5441
+ "city": "Wien",
5442
+ "footer1": "Danke",
5443
+ "footer2": null,
5444
+ "footer3": null,
5445
+ "footer4": null,
5446
+ "logo_url": null,
5447
+ "kreiseck_logo": false,
5448
+ "thanks_message": "Bis bald",
5449
+ "receipt": {
5450
+ "counter": 5,
5451
+ "receiptType": "standard",
5452
+ "zeroKind": null,
5453
+ "receiptId": "KECK-1-ID-5",
5454
+ "cashregisterId": "KECK-1",
5455
+ "timeStamp": "2026-09-26T10:00:00",
5456
+ "vouchers": [
5457
+ {
5458
+ "action": "redeem",
5459
+ "type": "value",
5460
+ "voucherType": "multi_purpose",
5461
+ "value": 17.5,
5462
+ "valueCents": 1750,
5463
+ "name": "Gutschein",
5464
+ "code": "····-····-5KNZ",
5465
+ "codeSuffix": "5KNZ",
5466
+ "voucherId": "gmz1",
5467
+ "balanceAfterCents": 3250
5468
+ }
5469
+ ],
5470
+ "paymentMethod": "cash",
5471
+ "customerDetails": null,
5472
+ "legalMessage": null,
5473
+ "customProjectId": null,
5474
+ "creditCardProvider": null,
5475
+ "cardPaymentId": null,
5476
+ "cardPaymentData": null,
5477
+ "amountRateStandard": 22.4,
5478
+ "amountRateReduced1": 0,
5479
+ "amountRateReduced2": 0,
5480
+ "amountRateZero": 0,
5481
+ "amountRateSpecial": 0,
5482
+ "turnoverCounterAES256ICM": "X1ROZYYsXJxg0xCA9eb0Tw==",
5483
+ "signaturePreviousReceipt": "QOkpGhikZFE=",
5484
+ "certificateSerialNumber": "ABC123",
5485
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000008d3ea402",
5486
+ "payments": [
5487
+ {
5488
+ "id": "p1",
5489
+ "method": "cash",
5490
+ "amountCents": 490
5491
+ }
5492
+ ],
5493
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNV8yMDI2LTA5LTI2VDEwOjAwOjAwXzIyLDQwXzAsMDBfMCwwMF8wLDAwXzAsMDBfWDFST1pZWXNfQUJDMTIzX1FPa3BHaGlrWkZFPQ.XuW0DkUc9uQzO0m851-naunhzUGw3XEDX231_miD0D68z591fw3vn7EMT3Tb4DT4xINpp4g8T93XDpTs6NVbeA",
5494
+ "signatureSuccess": true,
5495
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-5_2026-09-26T10:00:00_22,40_0,00_0,00_0,00_0,00_X1ROZYYs_ABC123_QOkpGhikZFE=_XuW0DkUc9uQzO0m851+naunhzUGw3XEDX231/miD0D68z591fw3vn7EMT3Tb4DT4xINpp4g8T93XDpTs6NVbeA==",
5496
+ "headerVersionId": "auto1",
5497
+ "layoutRuleset": 2,
5498
+ "items": [
5499
+ {
5500
+ "name": "Blumenstrauß",
5501
+ "amount": 1,
5502
+ "priceOneCents": 2240,
5503
+ "vat": 20,
5504
+ "priceOne": 22.4
5505
+ }
5506
+ ]
5507
+ },
5508
+ "taxNumber": "12-345/6789",
5509
+ "vatId": "ATU12345678",
5510
+ "headerVersionId": "auto1",
5511
+ "registrationInfo": null,
5512
+ "testCashregister": true,
5513
+ "testSignature": false,
5514
+ "logo_scale": "M",
5515
+ "layout": {
5516
+ "paperSize": "mm80",
5517
+ "ruleset": 2,
5518
+ "lines": [
5519
+ {
5520
+ "kind": "banner",
5521
+ "text": "TESTKASSE — kein gültiger Beleg",
5522
+ "tone": "warning"
5523
+ },
5524
+ {
5525
+ "kind": "text",
5526
+ "text": "Bäckerei Welt",
5527
+ "align": "center",
5528
+ "bold": true
5529
+ },
5530
+ {
5531
+ "kind": "text",
5532
+ "text": "Hauptplatz 1",
5533
+ "align": "center",
5534
+ "bold": false
5535
+ },
5536
+ {
5537
+ "kind": "text",
5538
+ "text": "1010 Wien",
5539
+ "align": "center",
5540
+ "bold": false
5541
+ },
5542
+ {
5543
+ "kind": "text",
5544
+ "text": "ATU12345678",
5545
+ "align": "center",
5546
+ "bold": false
5547
+ },
5548
+ {
5549
+ "kind": "text",
5550
+ "text": "+43 1 234",
5551
+ "align": "center",
5552
+ "bold": false
5553
+ },
5554
+ {
5555
+ "kind": "space",
5556
+ "lines": 1
5557
+ },
5558
+ {
5559
+ "kind": "columns",
5560
+ "columns": [
5561
+ {
5562
+ "text": "Datum:",
5563
+ "width": 4,
5564
+ "align": "left"
5565
+ },
5566
+ {
5567
+ "text": "26.09.2026 10:00:00",
5568
+ "width": 8,
5569
+ "align": "right"
5570
+ }
5571
+ ]
5572
+ },
5573
+ {
5574
+ "kind": "columns",
5575
+ "columns": [
5576
+ {
5577
+ "text": "Kassen-ID:",
5578
+ "width": 6,
5579
+ "align": "left"
5580
+ },
5581
+ {
5582
+ "text": "KECK-1",
5583
+ "width": 6,
5584
+ "align": "right"
5585
+ }
5586
+ ]
5587
+ },
5588
+ {
5589
+ "kind": "columns",
5590
+ "columns": [
5591
+ {
5592
+ "text": "Beleg-ID:",
5593
+ "width": 6,
5594
+ "align": "left"
5595
+ },
5596
+ {
5597
+ "text": "KECK-1-ID-5",
5598
+ "width": 6,
5599
+ "align": "right"
5600
+ }
5601
+ ]
5602
+ },
5603
+ {
5604
+ "kind": "space",
5605
+ "lines": 1
5606
+ },
5607
+ {
5608
+ "kind": "columns",
5609
+ "columns": [
5610
+ {
5611
+ "text": "1 x Blumenstrauß",
5612
+ "width": 7,
5613
+ "align": "left"
5614
+ },
5615
+ {
5616
+ "text": "22,40 A",
5617
+ "width": 5,
5618
+ "align": "right"
5619
+ }
5620
+ ]
5621
+ },
5622
+ {
5623
+ "kind": "space",
5624
+ "lines": 1
5625
+ },
5626
+ {
5627
+ "kind": "columns",
5628
+ "columns": [
5629
+ {
5630
+ "text": "MwSt%",
5631
+ "width": 3,
5632
+ "align": "left"
5633
+ },
5634
+ {
5635
+ "text": "MwSt",
5636
+ "width": 4,
5637
+ "align": "left"
5638
+ },
5639
+ {
5640
+ "text": "Netto",
5641
+ "width": 3,
5642
+ "align": "left"
5643
+ },
5644
+ {
5645
+ "text": "Brutto",
5646
+ "width": 2,
5647
+ "align": "right"
5648
+ }
5649
+ ]
5650
+ },
5651
+ {
5652
+ "kind": "columns",
5653
+ "columns": [
5654
+ {
5655
+ "text": "A 20%",
5656
+ "width": 3,
5657
+ "align": "left"
5658
+ },
5659
+ {
5660
+ "text": "3,73",
5661
+ "width": 4,
5662
+ "align": "left"
5663
+ },
5664
+ {
5665
+ "text": "18,67",
5666
+ "width": 3,
5667
+ "align": "left"
5668
+ },
5669
+ {
5670
+ "text": "22,40",
5671
+ "width": 2,
5672
+ "align": "right"
5673
+ }
5674
+ ]
5675
+ },
5676
+ {
5677
+ "kind": "rule",
5678
+ "char": "-"
5679
+ },
5680
+ {
5681
+ "kind": "columns",
5682
+ "columns": [
5683
+ {
5684
+ "text": "Zwischensumme",
5685
+ "width": 6,
5686
+ "align": "left"
5687
+ },
5688
+ {
5689
+ "text": "22,40 €",
5690
+ "width": 6,
5691
+ "align": "right"
5692
+ }
5693
+ ]
5694
+ },
5695
+ {
5696
+ "kind": "columns",
5697
+ "columns": [
5698
+ {
5699
+ "text": "Wertgutschein ····-····-5KNZ - Gutschein",
5700
+ "width": 8,
5701
+ "align": "left"
5702
+ },
5703
+ {
5704
+ "text": "-17,50 €",
5705
+ "width": 4,
5706
+ "align": "right"
5707
+ }
5708
+ ]
5709
+ },
5710
+ {
5711
+ "kind": "rule",
5712
+ "char": "-"
5713
+ },
5714
+ {
5715
+ "kind": "columns",
5716
+ "columns": [
5717
+ {
5718
+ "text": "Gesamt:",
5719
+ "width": 6,
5720
+ "align": "left"
5721
+ },
5722
+ {
5723
+ "text": "4,90 €",
5724
+ "width": 6,
5725
+ "align": "right"
5726
+ }
5727
+ ]
5728
+ },
5729
+ {
5730
+ "kind": "columns",
5731
+ "columns": [
5732
+ {
5733
+ "text": "Zahlungsart:",
5734
+ "width": 6,
5735
+ "align": "left"
5736
+ },
5737
+ {
5738
+ "text": "Barzahlung",
5739
+ "width": 6,
5740
+ "align": "right"
5741
+ }
5742
+ ]
5743
+ },
5744
+ {
5745
+ "kind": "space",
5746
+ "lines": 1
5747
+ },
5748
+ {
5749
+ "kind": "qr",
5750
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-5_2026-09-26T10:00:00_22,40_0,00_0,00_0,00_0,00_X1ROZYYs_ABC123_QOkpGhikZFE=_XuW0DkUc9uQzO0m851+naunhzUGw3XEDX231/miD0D68z591fw3vn7EMT3Tb4DT4xINpp4g8T93XDpTs6NVbeA=="
5751
+ },
5752
+ {
5753
+ "kind": "space",
5754
+ "lines": 1
5755
+ },
5756
+ {
5757
+ "kind": "space",
5758
+ "lines": 1
5759
+ },
5760
+ {
5761
+ "kind": "text",
5762
+ "text": "Bis bald",
5763
+ "align": "center",
5764
+ "bold": false
5765
+ },
5766
+ {
5767
+ "kind": "text",
5768
+ "text": "Danke",
5769
+ "align": "center",
5770
+ "bold": false
5771
+ },
5772
+ {
5773
+ "kind": "space",
5774
+ "lines": 1
5775
+ },
5776
+ {
5777
+ "kind": "banner",
5778
+ "text": "TESTKASSE — kein gültiger Beleg",
5779
+ "tone": "warning"
5780
+ }
5781
+ ]
5782
+ },
5783
+ "issuedVouchers": []
5784
+ }
5785
+ }
5786
+ },
5787
+ {
5788
+ "name": "redeem_single_purpose_voucher",
5789
+ "endpoint": "createReceipt",
5790
+ "path": "/api/v3/createReceipt",
5791
+ "params": {
5792
+ "receiptType": "standard",
5793
+ "items": [
5794
+ {
5795
+ "name": "Kaffee",
5796
+ "amount": 2,
5797
+ "priceOneCents": 320,
5798
+ "vat": 20
5799
+ }
5800
+ ],
5801
+ "vouchers": [
5802
+ {
5803
+ "action": "redeem",
5804
+ "type": "single_purpose",
5805
+ "code": "5TD5-9ECF-5KN2",
5806
+ "amountCents": 300
5807
+ }
5808
+ ],
5809
+ "payments": [
5810
+ {
5811
+ "method": "cash",
5812
+ "amountCents": 340
5813
+ }
5814
+ ]
5815
+ },
5816
+ "httpStatus": 200,
5817
+ "headers": {
5818
+ "Kasseneck-Api-Version": "v3",
5819
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
5820
+ },
5821
+ "response": {
5822
+ "status": "success",
5823
+ "message": "",
5824
+ "data": {
5825
+ "is_small_business": false,
5826
+ "company": "Bäckerei Welt",
5827
+ "phone": "+43 1 234",
5828
+ "street": "Hauptplatz 1",
5829
+ "zip": "1010",
5830
+ "city": "Wien",
5831
+ "footer1": "Danke",
5832
+ "footer2": null,
5833
+ "footer3": null,
5834
+ "footer4": null,
5835
+ "logo_url": null,
5836
+ "kreiseck_logo": false,
5837
+ "thanks_message": "Bis bald",
5838
+ "receipt": {
5839
+ "counter": 6,
5840
+ "receiptType": "standard",
5841
+ "zeroKind": null,
5842
+ "receiptId": "KECK-1-ID-6",
5843
+ "cashregisterId": "KECK-1",
5844
+ "timeStamp": "2026-09-26T10:00:00",
5845
+ "vouchers": [
5846
+ {
5847
+ "action": "redeem",
5848
+ "type": "single_purpose",
5849
+ "voucherType": "single_purpose",
5850
+ "amountCents": 300,
5851
+ "vatRateBp": 2000,
5852
+ "balanceAfterCents": 1700,
5853
+ "taxedWith": "KECK-0-ID-1",
5854
+ "name": "Gutschein",
5855
+ "code": "····-····-5KN2",
5856
+ "codeSuffix": "5KN2",
5857
+ "voucherId": "gez1"
5858
+ }
5859
+ ],
5860
+ "paymentMethod": "cash",
5861
+ "customerDetails": null,
5862
+ "legalMessage": null,
5863
+ "customProjectId": null,
5864
+ "creditCardProvider": null,
5865
+ "cardPaymentId": null,
5866
+ "cardPaymentData": null,
5867
+ "amountRateStandard": 3.4,
5868
+ "amountRateReduced1": 0,
5869
+ "amountRateReduced2": 0,
5870
+ "amountRateZero": 0,
5871
+ "amountRateSpecial": 0,
5872
+ "turnoverCounterAES256ICM": "RlNOHtsn9a3wfMGEG9jAxA==",
5873
+ "signaturePreviousReceipt": "VArpzwmbUXc=",
5874
+ "certificateSerialNumber": "ABC123",
5875
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000d6d9c909",
5876
+ "payments": [
5877
+ {
5878
+ "id": "p1",
5879
+ "method": "cash",
5880
+ "amountCents": 340
5881
+ }
5882
+ ],
5883
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNl8yMDI2LTA5LTI2VDEwOjAwOjAwXzMsNDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9SbE5PSHRzbl9BQkMxMjNfVkFycHp3bWJVWGM9.0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg",
5884
+ "signatureSuccess": true,
5885
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_3,40_0,00_0,00_0,00_0,00_RlNOHtsn_ABC123_VArpzwmbUXc=_0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg==",
5886
+ "headerVersionId": "auto1",
5887
+ "layoutRuleset": 2,
5888
+ "items": [
5889
+ {
5890
+ "name": "Kaffee",
5891
+ "amount": 2,
5892
+ "priceOneCents": 320,
5893
+ "vat": 20,
5894
+ "priceOne": 3.2
5895
+ },
5896
+ {
5897
+ "name": "Gutschein ····-5KN2",
5898
+ "vat": 20,
5899
+ "vatRate": 20,
5900
+ "priceOne": -3,
5901
+ "priceOneCents": -300,
5902
+ "unitPriceCents": -300,
5903
+ "amount": 1,
5904
+ "quantity": 1,
5905
+ "kind": "voucher"
5906
+ }
5907
+ ]
5908
+ },
5909
+ "taxNumber": "12-345/6789",
5910
+ "vatId": "ATU12345678",
5911
+ "headerVersionId": "auto1",
5912
+ "registrationInfo": null,
5913
+ "testCashregister": true,
5914
+ "testSignature": false,
5915
+ "logo_scale": "M",
5916
+ "layout": {
5917
+ "paperSize": "mm80",
5918
+ "ruleset": 2,
5919
+ "lines": [
5920
+ {
5921
+ "kind": "banner",
5922
+ "text": "TESTKASSE — kein gültiger Beleg",
5923
+ "tone": "warning"
5924
+ },
5925
+ {
5926
+ "kind": "text",
5927
+ "text": "Bäckerei Welt",
5928
+ "align": "center",
5929
+ "bold": true
5930
+ },
5931
+ {
5932
+ "kind": "text",
5933
+ "text": "Hauptplatz 1",
5934
+ "align": "center",
5935
+ "bold": false
5936
+ },
5937
+ {
5938
+ "kind": "text",
5939
+ "text": "1010 Wien",
5940
+ "align": "center",
5941
+ "bold": false
5942
+ },
5943
+ {
5944
+ "kind": "text",
5945
+ "text": "ATU12345678",
5946
+ "align": "center",
5947
+ "bold": false
5948
+ },
5949
+ {
5950
+ "kind": "text",
5951
+ "text": "+43 1 234",
5952
+ "align": "center",
5953
+ "bold": false
5954
+ },
5955
+ {
5956
+ "kind": "space",
5957
+ "lines": 1
5958
+ },
5959
+ {
5960
+ "kind": "columns",
5961
+ "columns": [
5962
+ {
5963
+ "text": "Datum:",
5964
+ "width": 4,
5965
+ "align": "left"
5966
+ },
5967
+ {
5968
+ "text": "26.09.2026 10:00:00",
5969
+ "width": 8,
5970
+ "align": "right"
5971
+ }
5972
+ ]
5973
+ },
5974
+ {
5975
+ "kind": "columns",
5976
+ "columns": [
5977
+ {
5978
+ "text": "Kassen-ID:",
5979
+ "width": 6,
5980
+ "align": "left"
5981
+ },
5982
+ {
5983
+ "text": "KECK-1",
5984
+ "width": 6,
5985
+ "align": "right"
5986
+ }
5987
+ ]
5988
+ },
5989
+ {
5990
+ "kind": "columns",
5991
+ "columns": [
5992
+ {
5993
+ "text": "Beleg-ID:",
5994
+ "width": 6,
5995
+ "align": "left"
5996
+ },
5997
+ {
5998
+ "text": "KECK-1-ID-6",
5999
+ "width": 6,
6000
+ "align": "right"
6001
+ }
6002
+ ]
6003
+ },
6004
+ {
6005
+ "kind": "space",
6006
+ "lines": 1
6007
+ },
6008
+ {
6009
+ "kind": "columns",
6010
+ "columns": [
6011
+ {
6012
+ "text": "2 x Kaffee je 3,20",
6013
+ "width": 7,
6014
+ "align": "left"
6015
+ },
6016
+ {
6017
+ "text": "6,40 A",
6018
+ "width": 5,
6019
+ "align": "right"
6020
+ }
6021
+ ]
6022
+ },
6023
+ {
6024
+ "kind": "columns",
6025
+ "columns": [
6026
+ {
6027
+ "text": "1 x Gutschein ····-5KN2",
6028
+ "width": 7,
6029
+ "align": "left"
6030
+ },
6031
+ {
6032
+ "text": "-3,00 A",
6033
+ "width": 5,
6034
+ "align": "right"
6035
+ }
6036
+ ]
6037
+ },
6038
+ {
6039
+ "kind": "space",
6040
+ "lines": 1
6041
+ },
6042
+ {
6043
+ "kind": "columns",
6044
+ "columns": [
6045
+ {
6046
+ "text": "MwSt%",
6047
+ "width": 3,
6048
+ "align": "left"
6049
+ },
6050
+ {
6051
+ "text": "MwSt",
6052
+ "width": 4,
6053
+ "align": "left"
6054
+ },
6055
+ {
6056
+ "text": "Netto",
6057
+ "width": 3,
6058
+ "align": "left"
6059
+ },
6060
+ {
6061
+ "text": "Brutto",
6062
+ "width": 2,
6063
+ "align": "right"
6064
+ }
6065
+ ]
6066
+ },
6067
+ {
6068
+ "kind": "columns",
6069
+ "columns": [
6070
+ {
6071
+ "text": "A 20%",
6072
+ "width": 3,
6073
+ "align": "left"
6074
+ },
6075
+ {
6076
+ "text": "0,57",
6077
+ "width": 4,
6078
+ "align": "left"
6079
+ },
6080
+ {
6081
+ "text": "2,83",
6082
+ "width": 3,
6083
+ "align": "left"
6084
+ },
6085
+ {
6086
+ "text": "3,40",
6087
+ "width": 2,
6088
+ "align": "right"
6089
+ }
6090
+ ]
6091
+ },
6092
+ {
6093
+ "kind": "rule",
6094
+ "char": "-"
6095
+ },
6096
+ {
6097
+ "kind": "columns",
6098
+ "columns": [
6099
+ {
6100
+ "text": "Gesamt:",
6101
+ "width": 6,
6102
+ "align": "left"
6103
+ },
6104
+ {
6105
+ "text": "3,40 €",
6106
+ "width": 6,
6107
+ "align": "right"
6108
+ }
6109
+ ]
6110
+ },
6111
+ {
6112
+ "kind": "columns",
6113
+ "columns": [
6114
+ {
6115
+ "text": "Zahlungsart:",
6116
+ "width": 6,
6117
+ "align": "left"
6118
+ },
6119
+ {
6120
+ "text": "Barzahlung",
6121
+ "width": 6,
6122
+ "align": "right"
6123
+ }
6124
+ ]
6125
+ },
6126
+ {
6127
+ "kind": "space",
6128
+ "lines": 1
6129
+ },
6130
+ {
6131
+ "kind": "qr",
6132
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_3,40_0,00_0,00_0,00_0,00_RlNOHtsn_ABC123_VArpzwmbUXc=_0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg=="
6133
+ },
6134
+ {
6135
+ "kind": "space",
6136
+ "lines": 1
6137
+ },
6138
+ {
6139
+ "kind": "space",
6140
+ "lines": 1
6141
+ },
6142
+ {
6143
+ "kind": "text",
6144
+ "text": "Bis bald",
6145
+ "align": "center",
6146
+ "bold": false
6147
+ },
6148
+ {
6149
+ "kind": "text",
6150
+ "text": "Danke",
6151
+ "align": "center",
6152
+ "bold": false
6153
+ },
6154
+ {
6155
+ "kind": "space",
6156
+ "lines": 1
6157
+ },
6158
+ {
6159
+ "kind": "banner",
6160
+ "text": "TESTKASSE — kein gültiger Beleg",
6161
+ "tone": "warning"
6162
+ }
6163
+ ]
6164
+ },
6165
+ "issuedVouchers": []
6166
+ }
6167
+ }
6168
+ },
6169
+ {
6170
+ "name": "redeem_service_voucher",
6171
+ "endpoint": "createReceipt",
6172
+ "path": "/api/v3/createReceipt",
6173
+ "params": {
6174
+ "receiptType": "standard",
6175
+ "items": [
6176
+ {
6177
+ "name": "Maniküre",
6178
+ "amount": 1,
6179
+ "priceOneCents": 3500,
6180
+ "vat": 20,
6181
+ "articleId": "art_mani"
6182
+ },
6183
+ {
6184
+ "name": "Kaffee",
6185
+ "amount": 2,
6186
+ "priceOneCents": 320,
6187
+ "vat": 20
6188
+ }
6189
+ ],
6190
+ "vouchers": [
6191
+ {
6192
+ "action": "redeem",
6193
+ "type": "service",
6194
+ "code": "CKD59ECF5KNN",
6195
+ "positions": [
6196
+ 0
6197
+ ]
6198
+ }
6199
+ ],
6200
+ "payments": [
6201
+ {
6202
+ "method": "cash",
6203
+ "amountCents": 640
6204
+ }
6205
+ ]
6206
+ },
6207
+ "httpStatus": 200,
6208
+ "headers": {
6209
+ "Kasseneck-Api-Version": "v3",
6210
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
6211
+ },
6212
+ "response": {
6213
+ "status": "success",
6214
+ "message": "",
6215
+ "data": {
6216
+ "is_small_business": false,
6217
+ "company": "Bäckerei Welt",
6218
+ "phone": "+43 1 234",
6219
+ "street": "Hauptplatz 1",
6220
+ "zip": "1010",
6221
+ "city": "Wien",
6222
+ "footer1": "Danke",
6223
+ "footer2": null,
6224
+ "footer3": null,
6225
+ "footer4": null,
6226
+ "logo_url": null,
6227
+ "kreiseck_logo": false,
6228
+ "thanks_message": "Bis bald",
6229
+ "receipt": {
6230
+ "counter": 7,
6231
+ "receiptType": "standard",
6232
+ "zeroKind": null,
6233
+ "receiptId": "KECK-1-ID-7",
6234
+ "cashregisterId": "KECK-1",
6235
+ "timeStamp": "2026-09-26T10:00:00",
6236
+ "vouchers": [
6237
+ {
6238
+ "action": "redeem",
6239
+ "type": "service",
6240
+ "voucherType": "service",
6241
+ "articleId": "art_mani",
6242
+ "quantity": 1,
6243
+ "positions": [
6244
+ 0
6245
+ ],
6246
+ "amountCents": 3500,
6247
+ "vatRateBp": 2000,
6248
+ "remainingQuantityAfter": 2,
6249
+ "taxedWith": "KECK-0-ID-1",
6250
+ "name": "Gutschein",
6251
+ "code": "····-····-5KNN",
6252
+ "codeSuffix": "5KNN",
6253
+ "voucherId": "gls1"
6254
+ }
6255
+ ],
6256
+ "paymentMethod": "cash",
6257
+ "customerDetails": null,
6258
+ "legalMessage": null,
6259
+ "customProjectId": null,
6260
+ "creditCardProvider": null,
6261
+ "cardPaymentId": null,
6262
+ "cardPaymentData": null,
6263
+ "amountRateStandard": 6.4,
6264
+ "amountRateReduced1": 0,
6265
+ "amountRateReduced2": 0,
6266
+ "amountRateZero": 0,
6267
+ "amountRateSpecial": 0,
6268
+ "turnoverCounterAES256ICM": "e42ZjyKQgXyXfp6ZK6VUzA==",
6269
+ "signaturePreviousReceipt": "zYL9tCKXJi8=",
6270
+ "certificateSerialNumber": "ABC123",
6271
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000be378ab0",
6272
+ "payments": [
6273
+ {
6274
+ "id": "p1",
6275
+ "method": "cash",
6276
+ "amountCents": 640
6277
+ }
6278
+ ],
6279
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtN18yMDI2LTA5LTI2VDEwOjAwOjAwXzYsNDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9lNDJaanlLUV9BQkMxMjNfellMOXRDS1hKaTg9.ECII68SATZuX-flczqe-pI-idOyK9wLSR23LOAk9fFSYzWlU8PtpC246C8dS0kyvKKccrDvmf4um80hAYK_uCA",
6280
+ "signatureSuccess": true,
6281
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-7_2026-09-26T10:00:00_6,40_0,00_0,00_0,00_0,00_e42ZjyKQ_ABC123_zYL9tCKXJi8=_ECII68SATZuX+flczqe+pI+idOyK9wLSR23LOAk9fFSYzWlU8PtpC246C8dS0kyvKKccrDvmf4um80hAYK/uCA==",
6282
+ "headerVersionId": "auto1",
6283
+ "layoutRuleset": 2,
6284
+ "items": [
6285
+ {
6286
+ "name": "Maniküre",
6287
+ "amount": 1,
6288
+ "priceOneCents": 3500,
6289
+ "vat": 20,
6290
+ "articleId": "art_mani",
6291
+ "priceOne": 35
6292
+ },
6293
+ {
6294
+ "name": "Kaffee",
6295
+ "amount": 2,
6296
+ "priceOneCents": 320,
6297
+ "vat": 20,
6298
+ "priceOne": 3.2
6299
+ },
6300
+ {
6301
+ "name": "Gutschein ····-5KNN",
6302
+ "vat": 20,
6303
+ "vatRate": 20,
6304
+ "priceOne": -35,
6305
+ "priceOneCents": -3500,
6306
+ "unitPriceCents": -3500,
6307
+ "amount": 1,
6308
+ "quantity": 1,
6309
+ "kind": "voucher"
6310
+ }
6311
+ ]
6312
+ },
6313
+ "taxNumber": "12-345/6789",
6314
+ "vatId": "ATU12345678",
6315
+ "headerVersionId": "auto1",
6316
+ "registrationInfo": null,
6317
+ "testCashregister": true,
6318
+ "testSignature": false,
6319
+ "logo_scale": "M",
6320
+ "layout": {
6321
+ "paperSize": "mm80",
6322
+ "ruleset": 2,
6323
+ "lines": [
6324
+ {
6325
+ "kind": "banner",
6326
+ "text": "TESTKASSE — kein gültiger Beleg",
6327
+ "tone": "warning"
6328
+ },
6329
+ {
6330
+ "kind": "text",
6331
+ "text": "Bäckerei Welt",
6332
+ "align": "center",
6333
+ "bold": true
6334
+ },
6335
+ {
6336
+ "kind": "text",
6337
+ "text": "Hauptplatz 1",
6338
+ "align": "center",
6339
+ "bold": false
6340
+ },
6341
+ {
6342
+ "kind": "text",
6343
+ "text": "1010 Wien",
6344
+ "align": "center",
6345
+ "bold": false
6346
+ },
6347
+ {
6348
+ "kind": "text",
6349
+ "text": "ATU12345678",
6350
+ "align": "center",
6351
+ "bold": false
6352
+ },
6353
+ {
6354
+ "kind": "text",
6355
+ "text": "+43 1 234",
6356
+ "align": "center",
6357
+ "bold": false
6358
+ },
6359
+ {
6360
+ "kind": "space",
6361
+ "lines": 1
6362
+ },
6363
+ {
6364
+ "kind": "columns",
6365
+ "columns": [
6366
+ {
6367
+ "text": "Datum:",
6368
+ "width": 4,
6369
+ "align": "left"
6370
+ },
6371
+ {
6372
+ "text": "26.09.2026 10:00:00",
6373
+ "width": 8,
6374
+ "align": "right"
6375
+ }
6376
+ ]
6377
+ },
6378
+ {
6379
+ "kind": "columns",
6380
+ "columns": [
6381
+ {
6382
+ "text": "Kassen-ID:",
6383
+ "width": 6,
6384
+ "align": "left"
6385
+ },
6386
+ {
6387
+ "text": "KECK-1",
6388
+ "width": 6,
6389
+ "align": "right"
6390
+ }
6391
+ ]
6392
+ },
6393
+ {
6394
+ "kind": "columns",
6395
+ "columns": [
6396
+ {
6397
+ "text": "Beleg-ID:",
6398
+ "width": 6,
6399
+ "align": "left"
6400
+ },
6401
+ {
6402
+ "text": "KECK-1-ID-7",
6403
+ "width": 6,
6404
+ "align": "right"
6405
+ }
6406
+ ]
6407
+ },
6408
+ {
6409
+ "kind": "space",
6410
+ "lines": 1
6411
+ },
6412
+ {
6413
+ "kind": "columns",
6414
+ "columns": [
6415
+ {
6416
+ "text": "1 x Maniküre",
6417
+ "width": 7,
6418
+ "align": "left"
6419
+ },
6420
+ {
6421
+ "text": "35,00 A",
6422
+ "width": 5,
6423
+ "align": "right"
6424
+ }
6425
+ ]
6426
+ },
6427
+ {
6428
+ "kind": "columns",
6429
+ "columns": [
6430
+ {
6431
+ "text": "2 x Kaffee je 3,20",
6432
+ "width": 7,
6433
+ "align": "left"
6434
+ },
6435
+ {
6436
+ "text": "6,40 A",
6437
+ "width": 5,
6438
+ "align": "right"
6439
+ }
6440
+ ]
6441
+ },
6442
+ {
6443
+ "kind": "columns",
6444
+ "columns": [
6445
+ {
6446
+ "text": "1 x Gutschein ····-5KNN",
6447
+ "width": 7,
6448
+ "align": "left"
6449
+ },
6450
+ {
6451
+ "text": "-35,00 A",
6452
+ "width": 5,
6453
+ "align": "right"
6454
+ }
6455
+ ]
6456
+ },
6457
+ {
6458
+ "kind": "space",
6459
+ "lines": 1
6460
+ },
6461
+ {
6462
+ "kind": "columns",
6463
+ "columns": [
6464
+ {
6465
+ "text": "MwSt%",
6466
+ "width": 3,
6467
+ "align": "left"
6468
+ },
6469
+ {
6470
+ "text": "MwSt",
6471
+ "width": 4,
6472
+ "align": "left"
6473
+ },
6474
+ {
6475
+ "text": "Netto",
6476
+ "width": 3,
6477
+ "align": "left"
6478
+ },
6479
+ {
6480
+ "text": "Brutto",
6481
+ "width": 2,
6482
+ "align": "right"
6483
+ }
6484
+ ]
6485
+ },
6486
+ {
6487
+ "kind": "columns",
6488
+ "columns": [
6489
+ {
6490
+ "text": "A 20%",
6491
+ "width": 3,
6492
+ "align": "left"
6493
+ },
6494
+ {
6495
+ "text": "1,07",
6496
+ "width": 4,
6497
+ "align": "left"
6498
+ },
6499
+ {
6500
+ "text": "5,33",
6501
+ "width": 3,
6502
+ "align": "left"
6503
+ },
6504
+ {
6505
+ "text": "6,40",
6506
+ "width": 2,
6507
+ "align": "right"
6508
+ }
6509
+ ]
6510
+ },
6511
+ {
6512
+ "kind": "rule",
6513
+ "char": "-"
6514
+ },
6515
+ {
6516
+ "kind": "columns",
6517
+ "columns": [
6518
+ {
6519
+ "text": "Gesamt:",
6520
+ "width": 6,
6521
+ "align": "left"
6522
+ },
6523
+ {
6524
+ "text": "6,40 €",
6525
+ "width": 6,
6526
+ "align": "right"
6527
+ }
6528
+ ]
6529
+ },
6530
+ {
6531
+ "kind": "columns",
6532
+ "columns": [
6533
+ {
6534
+ "text": "Zahlungsart:",
6535
+ "width": 6,
6536
+ "align": "left"
6537
+ },
6538
+ {
6539
+ "text": "Barzahlung",
6540
+ "width": 6,
6541
+ "align": "right"
6542
+ }
6543
+ ]
6544
+ },
6545
+ {
6546
+ "kind": "space",
6547
+ "lines": 1
6548
+ },
6549
+ {
6550
+ "kind": "qr",
6551
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-7_2026-09-26T10:00:00_6,40_0,00_0,00_0,00_0,00_e42ZjyKQ_ABC123_zYL9tCKXJi8=_ECII68SATZuX+flczqe+pI+idOyK9wLSR23LOAk9fFSYzWlU8PtpC246C8dS0kyvKKccrDvmf4um80hAYK/uCA=="
6552
+ },
6553
+ {
6554
+ "kind": "space",
6555
+ "lines": 1
6556
+ },
6557
+ {
6558
+ "kind": "space",
6559
+ "lines": 1
6560
+ },
6561
+ {
6562
+ "kind": "text",
6563
+ "text": "Bis bald",
6564
+ "align": "center",
6565
+ "bold": false
6566
+ },
6567
+ {
6568
+ "kind": "text",
6569
+ "text": "Danke",
6570
+ "align": "center",
6571
+ "bold": false
6572
+ },
6573
+ {
6574
+ "kind": "space",
6575
+ "lines": 1
6576
+ },
6577
+ {
6578
+ "kind": "banner",
6579
+ "text": "TESTKASSE — kein gültiger Beleg",
6580
+ "tone": "warning"
6581
+ }
6582
+ ]
6583
+ },
6584
+ "issuedVouchers": []
6585
+ }
6586
+ }
6587
+ },
6588
+ {
6589
+ "name": "redeem_promotion_voucher",
6590
+ "endpoint": "createReceipt",
6591
+ "path": "/api/v3/createReceipt",
6592
+ "params": {
6593
+ "receiptType": "standard",
6594
+ "items": [
6595
+ {
6596
+ "name": "Kaffee",
6597
+ "amount": 2,
6598
+ "priceOneCents": 320,
6599
+ "vat": 20
6600
+ },
6601
+ {
6602
+ "name": "Semmel",
6603
+ "amount": 4,
6604
+ "priceOneCents": 79,
6605
+ "vat": 10
6606
+ }
6607
+ ],
6608
+ "vouchers": [
6609
+ {
6610
+ "action": "redeem",
6611
+ "type": "promotion",
6612
+ "code": "1BD59ECF5KNJ"
6613
+ }
6614
+ ],
6615
+ "payments": [
6616
+ {
6617
+ "method": "cash",
6618
+ "amountCents": 756
6619
+ }
6620
+ ]
6621
+ },
6622
+ "httpStatus": 200,
6623
+ "headers": {
6624
+ "Kasseneck-Api-Version": "v3",
6625
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
6626
+ },
6627
+ "response": {
6628
+ "status": "success",
6629
+ "message": "",
6630
+ "data": {
6631
+ "is_small_business": false,
6632
+ "company": "Bäckerei Welt",
6633
+ "phone": "+43 1 234",
6634
+ "street": "Hauptplatz 1",
6635
+ "zip": "1010",
6636
+ "city": "Wien",
6637
+ "footer1": "Danke",
6638
+ "footer2": null,
6639
+ "footer3": null,
6640
+ "footer4": null,
6641
+ "logo_url": null,
6642
+ "kreiseck_logo": false,
6643
+ "thanks_message": "Bis bald",
6644
+ "receipt": {
6645
+ "counter": 8,
6646
+ "receiptType": "standard",
6647
+ "zeroKind": null,
6648
+ "receiptId": "KECK-1-ID-8",
6649
+ "cashregisterId": "KECK-1",
6650
+ "timeStamp": "2026-09-26T10:00:00",
6651
+ "vouchers": [
6652
+ {
6653
+ "action": "redeem",
6654
+ "type": "promo",
6655
+ "voucherType": "promotion",
6656
+ "value": 2,
6657
+ "valueCents": 200,
6658
+ "name": "Aktion",
6659
+ "code": "····-····-5KNJ",
6660
+ "codeSuffix": "5KNJ",
6661
+ "voucherId": "gak1"
6662
+ }
6663
+ ],
6664
+ "paymentMethod": "cash",
6665
+ "customerDetails": null,
6666
+ "legalMessage": null,
6667
+ "customProjectId": null,
6668
+ "creditCardProvider": null,
6669
+ "cardPaymentId": null,
6670
+ "cardPaymentData": null,
6671
+ "amountRateStandard": 5.06,
6672
+ "amountRateReduced1": 2.5,
6673
+ "amountRateReduced2": 0,
6674
+ "amountRateZero": 0,
6675
+ "amountRateSpecial": 0,
6676
+ "turnoverCounterAES256ICM": "FKv36l/r5cSDIv7d/PNpSg==",
6677
+ "signaturePreviousReceipt": "fsXBFNiDq+k=",
6678
+ "certificateSerialNumber": "ABC123",
6679
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000099dccbdc",
6680
+ "payments": [
6681
+ {
6682
+ "id": "p1",
6683
+ "method": "cash",
6684
+ "amountCents": 756
6685
+ }
6686
+ ],
6687
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtOF8yMDI2LTA5LTI2VDEwOjAwOjAwXzUsMDZfMiw1MF8wLDAwXzAsMDBfMCwwMF9GS3YzNmwvcl9BQkMxMjNfZnNYQkZOaURxK2s9.qlkHVjEVjEx0SPdY9SFHtpeMB4SIT_DLz4UlcEU9cn7kgA_8bUL87mpq7VyWbQhC8b_qTvdJ8wTMXbhkQCK56Q",
6688
+ "signatureSuccess": true,
6689
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-8_2026-09-26T10:00:00_5,06_2,50_0,00_0,00_0,00_FKv36l/r_ABC123_fsXBFNiDq+k=_qlkHVjEVjEx0SPdY9SFHtpeMB4SIT/DLz4UlcEU9cn7kgA/8bUL87mpq7VyWbQhC8b/qTvdJ8wTMXbhkQCK56Q==",
6690
+ "headerVersionId": "auto1",
6691
+ "layoutRuleset": 2,
6692
+ "items": [
6693
+ {
6694
+ "name": "Kaffee",
6695
+ "amount": 2,
6696
+ "priceOneCents": 320,
6697
+ "vat": 20,
6698
+ "priceOne": 3.2
6699
+ },
6700
+ {
6701
+ "name": "Semmel",
6702
+ "amount": 4,
6703
+ "priceOneCents": 79,
6704
+ "vat": 10,
6705
+ "priceOne": 0.79
6706
+ }
6707
+ ]
6708
+ },
6709
+ "taxNumber": "12-345/6789",
6710
+ "vatId": "ATU12345678",
6711
+ "headerVersionId": "auto1",
6712
+ "registrationInfo": null,
6713
+ "testCashregister": true,
6714
+ "testSignature": false,
6715
+ "logo_scale": "M",
6716
+ "layout": {
6717
+ "paperSize": "mm80",
6718
+ "ruleset": 2,
6719
+ "lines": [
6720
+ {
6721
+ "kind": "banner",
6722
+ "text": "TESTKASSE — kein gültiger Beleg",
6723
+ "tone": "warning"
6724
+ },
6725
+ {
6726
+ "kind": "text",
6727
+ "text": "Bäckerei Welt",
6728
+ "align": "center",
6729
+ "bold": true
6730
+ },
6731
+ {
6732
+ "kind": "text",
6733
+ "text": "Hauptplatz 1",
6734
+ "align": "center",
6735
+ "bold": false
6736
+ },
6737
+ {
6738
+ "kind": "text",
6739
+ "text": "1010 Wien",
6740
+ "align": "center",
6741
+ "bold": false
6742
+ },
6743
+ {
6744
+ "kind": "text",
6745
+ "text": "ATU12345678",
6746
+ "align": "center",
6747
+ "bold": false
6748
+ },
6749
+ {
6750
+ "kind": "text",
6751
+ "text": "+43 1 234",
6752
+ "align": "center",
6753
+ "bold": false
6754
+ },
6755
+ {
6756
+ "kind": "space",
6757
+ "lines": 1
6758
+ },
6759
+ {
6760
+ "kind": "columns",
6761
+ "columns": [
6762
+ {
6763
+ "text": "Datum:",
6764
+ "width": 4,
6765
+ "align": "left"
6766
+ },
6767
+ {
6768
+ "text": "26.09.2026 10:00:00",
6769
+ "width": 8,
6770
+ "align": "right"
6771
+ }
6772
+ ]
6773
+ },
6774
+ {
6775
+ "kind": "columns",
6776
+ "columns": [
6777
+ {
6778
+ "text": "Kassen-ID:",
6779
+ "width": 6,
6780
+ "align": "left"
6781
+ },
6782
+ {
6783
+ "text": "KECK-1",
6784
+ "width": 6,
6785
+ "align": "right"
6786
+ }
6787
+ ]
6788
+ },
6789
+ {
6790
+ "kind": "columns",
6791
+ "columns": [
6792
+ {
6793
+ "text": "Beleg-ID:",
6794
+ "width": 6,
6795
+ "align": "left"
6796
+ },
6797
+ {
6798
+ "text": "KECK-1-ID-8",
6799
+ "width": 6,
6800
+ "align": "right"
6801
+ }
6802
+ ]
6803
+ },
6804
+ {
6805
+ "kind": "space",
6806
+ "lines": 1
6807
+ },
6808
+ {
6809
+ "kind": "columns",
6810
+ "columns": [
6811
+ {
6812
+ "text": "2 x Kaffee je 3,20",
6813
+ "width": 7,
6814
+ "align": "left"
6815
+ },
6816
+ {
6817
+ "text": "6,40 A",
6818
+ "width": 5,
6819
+ "align": "right"
6820
+ }
6821
+ ]
6822
+ },
6823
+ {
6824
+ "kind": "columns",
6825
+ "columns": [
6826
+ {
6827
+ "text": "4 x Semmel je 0,79",
6828
+ "width": 7,
6829
+ "align": "left"
6830
+ },
6831
+ {
6832
+ "text": "3,16 B",
6833
+ "width": 5,
6834
+ "align": "right"
6835
+ }
6836
+ ]
6837
+ },
6838
+ {
6839
+ "kind": "columns",
6840
+ "columns": [
6841
+ {
6842
+ "text": "Promotionsgutschein ····-····-5KNJ - Aktion",
6843
+ "width": 7,
6844
+ "align": "left"
6845
+ },
6846
+ {
6847
+ "text": "-2,00 €",
6848
+ "width": 5,
6849
+ "align": "right"
6850
+ }
6851
+ ]
6852
+ },
6853
+ {
6854
+ "kind": "space",
6855
+ "lines": 1
6856
+ },
6857
+ {
6858
+ "kind": "columns",
6859
+ "columns": [
6860
+ {
6861
+ "text": "MwSt%",
6862
+ "width": 3,
6863
+ "align": "left"
6864
+ },
6865
+ {
6866
+ "text": "MwSt",
6867
+ "width": 4,
6868
+ "align": "left"
6869
+ },
6870
+ {
6871
+ "text": "Netto",
6872
+ "width": 3,
6873
+ "align": "left"
6874
+ },
6875
+ {
6876
+ "text": "Brutto",
6877
+ "width": 2,
6878
+ "align": "right"
6879
+ }
6880
+ ]
6881
+ },
6882
+ {
6883
+ "kind": "columns",
6884
+ "columns": [
6885
+ {
6886
+ "text": "A 20%",
6887
+ "width": 3,
6888
+ "align": "left"
6889
+ },
6890
+ {
6891
+ "text": "0,84",
6892
+ "width": 4,
6893
+ "align": "left"
6894
+ },
6895
+ {
6896
+ "text": "4,22",
6897
+ "width": 3,
6898
+ "align": "left"
6899
+ },
6900
+ {
6901
+ "text": "5,06",
6902
+ "width": 2,
6903
+ "align": "right"
6904
+ }
6905
+ ]
6906
+ },
6907
+ {
6908
+ "kind": "columns",
6909
+ "columns": [
6910
+ {
6911
+ "text": "B 10%",
6912
+ "width": 3,
6913
+ "align": "left"
6914
+ },
6915
+ {
6916
+ "text": "0,23",
6917
+ "width": 4,
6918
+ "align": "left"
6919
+ },
6920
+ {
6921
+ "text": "2,27",
6922
+ "width": 3,
6923
+ "align": "left"
6924
+ },
6925
+ {
6926
+ "text": "2,50",
6927
+ "width": 2,
6928
+ "align": "right"
6929
+ }
6930
+ ]
6931
+ },
6932
+ {
6933
+ "kind": "rule",
6934
+ "char": "-"
6935
+ },
6936
+ {
6937
+ "kind": "columns",
6938
+ "columns": [
6939
+ {
6940
+ "text": "Gesamt:",
6941
+ "width": 6,
6942
+ "align": "left"
6943
+ },
6944
+ {
6945
+ "text": "7,56 €",
6946
+ "width": 6,
6947
+ "align": "right"
6948
+ }
6949
+ ]
6950
+ },
6951
+ {
6952
+ "kind": "columns",
6953
+ "columns": [
6954
+ {
6955
+ "text": "Zahlungsart:",
6956
+ "width": 6,
6957
+ "align": "left"
6958
+ },
6959
+ {
6960
+ "text": "Barzahlung",
6961
+ "width": 6,
6962
+ "align": "right"
6963
+ }
6964
+ ]
6965
+ },
6966
+ {
6967
+ "kind": "space",
6968
+ "lines": 1
6969
+ },
6970
+ {
6971
+ "kind": "qr",
6972
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-8_2026-09-26T10:00:00_5,06_2,50_0,00_0,00_0,00_FKv36l/r_ABC123_fsXBFNiDq+k=_qlkHVjEVjEx0SPdY9SFHtpeMB4SIT/DLz4UlcEU9cn7kgA/8bUL87mpq7VyWbQhC8b/qTvdJ8wTMXbhkQCK56Q=="
6973
+ },
6974
+ {
6975
+ "kind": "space",
6976
+ "lines": 1
6977
+ },
6978
+ {
6979
+ "kind": "space",
6980
+ "lines": 1
6981
+ },
6982
+ {
6983
+ "kind": "text",
6984
+ "text": "Bis bald",
6985
+ "align": "center",
6986
+ "bold": false
6987
+ },
6988
+ {
6989
+ "kind": "text",
6990
+ "text": "Danke",
6991
+ "align": "center",
6992
+ "bold": false
6993
+ },
6994
+ {
6995
+ "kind": "space",
6996
+ "lines": 1
6997
+ },
6998
+ {
6999
+ "kind": "banner",
7000
+ "text": "TESTKASSE — kein gültiger Beleg",
7001
+ "tone": "warning"
7002
+ }
7003
+ ]
7004
+ },
7005
+ "issuedVouchers": []
7006
+ }
7007
+ }
7008
+ },
7009
+ {
7010
+ "name": "payout_multi_purpose_voucher",
7011
+ "endpoint": "createReceipt",
7012
+ "path": "/api/v3/createReceipt",
7013
+ "params": {
7014
+ "receiptType": "standard",
7015
+ "items": [],
7016
+ "vouchers": [
7017
+ {
7018
+ "action": "payout",
7019
+ "type": "multi_purpose",
7020
+ "code": "DTD1-NKT1-8CN5",
7021
+ "amountCents": 3000,
7022
+ "reason": "Kunde zieht weg"
7023
+ }
7024
+ ],
7025
+ "payments": [
7026
+ {
7027
+ "method": "cash",
7028
+ "amountCents": -3000
7029
+ }
7030
+ ]
7031
+ },
7032
+ "httpStatus": 200,
7033
+ "headers": {
7034
+ "Kasseneck-Api-Version": "v3",
7035
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
7036
+ },
7037
+ "response": {
7038
+ "status": "success",
7039
+ "message": "",
7040
+ "data": {
7041
+ "is_small_business": false,
7042
+ "company": "Bäckerei Welt",
7043
+ "phone": "+43 1 234",
7044
+ "street": "Hauptplatz 1",
7045
+ "zip": "1010",
7046
+ "city": "Wien",
7047
+ "footer1": "Danke",
7048
+ "footer2": null,
7049
+ "footer3": null,
7050
+ "footer4": null,
7051
+ "logo_url": null,
7052
+ "kreiseck_logo": false,
7053
+ "thanks_message": "Bis bald",
7054
+ "receipt": {
7055
+ "counter": 9,
7056
+ "receiptType": "standard",
7057
+ "zeroKind": null,
7058
+ "receiptId": "KECK-1-ID-9",
7059
+ "cashregisterId": "KECK-1",
7060
+ "timeStamp": "2026-09-26T10:00:00",
7061
+ "vouchers": [
7062
+ {
7063
+ "action": "payout",
7064
+ "type": "value",
7065
+ "voucherType": "multi_purpose",
7066
+ "value": 30,
7067
+ "valueCents": 3000,
7068
+ "name": "Auszahlung Gutschein",
7069
+ "code": "····-····-8CN5",
7070
+ "codeSuffix": "8CN5",
7071
+ "voucherId": "gmz2",
7072
+ "balanceAfterCents": 0,
7073
+ "reason": "Kunde zieht weg",
7074
+ "zeroRateBucket": true
7075
+ }
7076
+ ],
7077
+ "paymentMethod": "cash",
7078
+ "customerDetails": null,
7079
+ "legalMessage": null,
7080
+ "customProjectId": null,
7081
+ "creditCardProvider": null,
7082
+ "cardPaymentId": null,
7083
+ "cardPaymentData": null,
7084
+ "amountRateStandard": 0,
7085
+ "amountRateReduced1": 0,
7086
+ "amountRateReduced2": 0,
7087
+ "amountRateZero": -30,
7088
+ "amountRateSpecial": 0,
7089
+ "turnoverCounterAES256ICM": "TBYB9mrEWcnljmcjdebbLQ==",
7090
+ "signaturePreviousReceipt": "ggg2KWZCgiQ=",
7091
+ "certificateSerialNumber": "ABC123",
7092
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000676d8c59",
7093
+ "payments": [
7094
+ {
7095
+ "id": "p1",
7096
+ "method": "cash",
7097
+ "amountCents": -3000
7098
+ }
7099
+ ],
7100
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtOV8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXy0zMCwwMF8wLDAwX1RCWUI5bXJFX0FCQzEyM19nZ2cyS1daQ2dpUT0.vi2GoJsNoK1tP49BCNkKqJBOYWa0oWIB8vzN0R3cEUeRndJLEB_JOD7rpX2_AZnrtTJvEaQ7znwhuY-yZvIRzA",
7101
+ "signatureSuccess": true,
7102
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-9_2026-09-26T10:00:00_0,00_0,00_0,00_-30,00_0,00_TBYB9mrE_ABC123_ggg2KWZCgiQ=_vi2GoJsNoK1tP49BCNkKqJBOYWa0oWIB8vzN0R3cEUeRndJLEB/JOD7rpX2/AZnrtTJvEaQ7znwhuY+yZvIRzA==",
7103
+ "headerVersionId": "auto1",
7104
+ "layoutRuleset": 2,
7105
+ "items": [
7106
+ {
7107
+ "name": "Auszahlung Gutschein ····-8CN5",
7108
+ "vat": 0,
7109
+ "vatRate": 0,
7110
+ "priceOne": -30,
7111
+ "priceOneCents": -3000,
7112
+ "unitPriceCents": -3000,
7113
+ "amount": 1,
7114
+ "quantity": 1,
7115
+ "kind": "voucher_float"
7116
+ }
7117
+ ]
7118
+ },
7119
+ "taxNumber": "12-345/6789",
7120
+ "vatId": "ATU12345678",
7121
+ "headerVersionId": "auto1",
7122
+ "registrationInfo": null,
7123
+ "testCashregister": true,
7124
+ "testSignature": false,
7125
+ "logo_scale": "M",
7126
+ "layout": {
7127
+ "paperSize": "mm80",
7128
+ "ruleset": 2,
7129
+ "lines": [
7130
+ {
7131
+ "kind": "banner",
7132
+ "text": "TESTKASSE — kein gültiger Beleg",
7133
+ "tone": "warning"
7134
+ },
7135
+ {
7136
+ "kind": "text",
7137
+ "text": "Bäckerei Welt",
7138
+ "align": "center",
7139
+ "bold": true
7140
+ },
7141
+ {
7142
+ "kind": "text",
7143
+ "text": "Hauptplatz 1",
7144
+ "align": "center",
7145
+ "bold": false
7146
+ },
7147
+ {
7148
+ "kind": "text",
7149
+ "text": "1010 Wien",
7150
+ "align": "center",
7151
+ "bold": false
7152
+ },
7153
+ {
7154
+ "kind": "text",
7155
+ "text": "ATU12345678",
7156
+ "align": "center",
7157
+ "bold": false
7158
+ },
7159
+ {
7160
+ "kind": "text",
7161
+ "text": "+43 1 234",
7162
+ "align": "center",
7163
+ "bold": false
7164
+ },
7165
+ {
7166
+ "kind": "space",
7167
+ "lines": 1
7168
+ },
7169
+ {
7170
+ "kind": "columns",
7171
+ "columns": [
7172
+ {
7173
+ "text": "Datum:",
7174
+ "width": 4,
7175
+ "align": "left"
7176
+ },
7177
+ {
7178
+ "text": "26.09.2026 10:00:00",
7179
+ "width": 8,
7180
+ "align": "right"
7181
+ }
7182
+ ]
7183
+ },
7184
+ {
7185
+ "kind": "columns",
7186
+ "columns": [
7187
+ {
7188
+ "text": "Kassen-ID:",
7189
+ "width": 6,
7190
+ "align": "left"
7191
+ },
7192
+ {
7193
+ "text": "KECK-1",
7194
+ "width": 6,
7195
+ "align": "right"
7196
+ }
7197
+ ]
7198
+ },
7199
+ {
7200
+ "kind": "columns",
7201
+ "columns": [
7202
+ {
7203
+ "text": "Beleg-ID:",
7204
+ "width": 6,
7205
+ "align": "left"
7206
+ },
7207
+ {
7208
+ "text": "KECK-1-ID-9",
7209
+ "width": 6,
7210
+ "align": "right"
7211
+ }
7212
+ ]
7213
+ },
7214
+ {
7215
+ "kind": "space",
7216
+ "lines": 1
7217
+ },
7218
+ {
7219
+ "kind": "columns",
7220
+ "columns": [
7221
+ {
7222
+ "text": "1 x Auszahlung Gutschein ····-8CN5",
7223
+ "width": 7,
7224
+ "align": "left"
7225
+ },
7226
+ {
7227
+ "text": "-30,00 D",
7228
+ "width": 5,
7229
+ "align": "right"
7230
+ }
7231
+ ]
7232
+ },
7233
+ {
7234
+ "kind": "space",
7235
+ "lines": 1
7236
+ },
7237
+ {
7238
+ "kind": "columns",
7239
+ "columns": [
7240
+ {
7241
+ "text": "MwSt%",
7242
+ "width": 3,
7243
+ "align": "left"
7244
+ },
7245
+ {
7246
+ "text": "MwSt",
7247
+ "width": 4,
7248
+ "align": "left"
7249
+ },
7250
+ {
7251
+ "text": "Netto",
7252
+ "width": 3,
7253
+ "align": "left"
7254
+ },
7255
+ {
7256
+ "text": "Brutto",
7257
+ "width": 2,
7258
+ "align": "right"
7259
+ }
7260
+ ]
7261
+ },
7262
+ {
7263
+ "kind": "columns",
7264
+ "columns": [
7265
+ {
7266
+ "text": "D 0%",
7267
+ "width": 3,
7268
+ "align": "left"
7269
+ },
7270
+ {
7271
+ "text": "0,00",
7272
+ "width": 4,
7273
+ "align": "left"
7274
+ },
7275
+ {
7276
+ "text": "-30,00",
7277
+ "width": 3,
7278
+ "align": "left"
7279
+ },
7280
+ {
7281
+ "text": "-30,00",
7282
+ "width": 2,
7283
+ "align": "right"
7284
+ }
7285
+ ]
7286
+ },
7287
+ {
7288
+ "kind": "rule",
7289
+ "char": "-"
7290
+ },
7291
+ {
7292
+ "kind": "columns",
7293
+ "columns": [
7294
+ {
7295
+ "text": "Gesamt:",
7296
+ "width": 6,
7297
+ "align": "left"
7298
+ },
7299
+ {
7300
+ "text": "-30,00 €",
7301
+ "width": 6,
7302
+ "align": "right"
7303
+ }
7304
+ ]
7305
+ },
7306
+ {
7307
+ "kind": "columns",
7308
+ "columns": [
7309
+ {
7310
+ "text": "Zahlungsart:",
7311
+ "width": 6,
7312
+ "align": "left"
7313
+ },
7314
+ {
7315
+ "text": "Barzahlung",
7316
+ "width": 6,
7317
+ "align": "right"
7318
+ }
7319
+ ]
7320
+ },
7321
+ {
7322
+ "kind": "space",
7323
+ "lines": 1
7324
+ },
7325
+ {
7326
+ "kind": "qr",
7327
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-9_2026-09-26T10:00:00_0,00_0,00_0,00_-30,00_0,00_TBYB9mrE_ABC123_ggg2KWZCgiQ=_vi2GoJsNoK1tP49BCNkKqJBOYWa0oWIB8vzN0R3cEUeRndJLEB/JOD7rpX2/AZnrtTJvEaQ7znwhuY+yZvIRzA=="
7328
+ },
7329
+ {
7330
+ "kind": "space",
7331
+ "lines": 1
7332
+ },
7333
+ {
7334
+ "kind": "space",
7335
+ "lines": 1
7336
+ },
7337
+ {
7338
+ "kind": "text",
7339
+ "text": "Bis bald",
7340
+ "align": "center",
7341
+ "bold": false
7342
+ },
7343
+ {
7344
+ "kind": "text",
7345
+ "text": "Danke",
7346
+ "align": "center",
7347
+ "bold": false
7348
+ },
7349
+ {
7350
+ "kind": "space",
7351
+ "lines": 1
7352
+ },
7353
+ {
7354
+ "kind": "banner",
7355
+ "text": "TESTKASSE — kein gültiger Beleg",
7356
+ "tone": "warning"
7357
+ }
7358
+ ]
7359
+ },
7360
+ "issuedVouchers": []
7361
+ }
7362
+ }
7363
+ },
7364
+ {
7365
+ "name": "get_receipt_single_purpose_redeemed",
7366
+ "endpoint": "getReceipt",
7367
+ "path": "/api/v3/getReceipt",
7368
+ "params": {
7369
+ "receiptId": "KECK-1-ID-6"
7370
+ },
7371
+ "httpStatus": 200,
7372
+ "headers": {
7373
+ "Kasseneck-Api-Version": "v3",
7374
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
7375
+ },
7376
+ "response": {
7377
+ "status": "success",
7378
+ "message": "",
7379
+ "data": {
7380
+ "company": "Bäckerei Welt",
7381
+ "street": "Hauptplatz 1",
7382
+ "zip": "1010",
7383
+ "city": "Wien",
7384
+ "phone": "+43 1 234",
7385
+ "is_small_business": false,
7386
+ "footer1": "Danke",
7387
+ "footer2": null,
7388
+ "footer3": null,
7389
+ "footer4": null,
7390
+ "thanks_message": "Bis bald",
7391
+ "kreiseck_logo": false,
7392
+ "logo_url": null,
7393
+ "receipt": {
7394
+ "counter": 6,
7395
+ "receiptType": "standard",
7396
+ "zeroKind": null,
7397
+ "receiptId": "KECK-1-ID-6",
7398
+ "cashregisterId": "KECK-1",
7399
+ "timeStamp": "2026-09-26T10:00:00",
7400
+ "vouchers": [
7401
+ {
7402
+ "action": "redeem",
7403
+ "type": "single_purpose",
7404
+ "voucherType": "single_purpose",
7405
+ "amountCents": 300,
7406
+ "vatRateBp": 2000,
7407
+ "balanceAfterCents": 1700,
7408
+ "taxedWith": "KECK-0-ID-1",
7409
+ "name": "Gutschein",
7410
+ "code": "····-····-5KN2",
7411
+ "codeSuffix": "5KN2",
7412
+ "voucherId": "gez1"
7413
+ }
7414
+ ],
7415
+ "paymentMethod": "cash",
7416
+ "customerDetails": null,
7417
+ "legalMessage": null,
7418
+ "customProjectId": null,
7419
+ "creditCardProvider": null,
7420
+ "cardPaymentId": null,
7421
+ "cardPaymentData": null,
7422
+ "amountRateStandard": 3.4,
7423
+ "amountRateReduced1": 0,
7424
+ "amountRateReduced2": 0,
7425
+ "amountRateZero": 0,
7426
+ "amountRateSpecial": 0,
7427
+ "turnoverCounterAES256ICM": "RlNOHtsn9a3wfMGEG9jAxA==",
7428
+ "signaturePreviousReceipt": "VArpzwmbUXc=",
7429
+ "certificateSerialNumber": "ABC123",
7430
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000d6d9c909",
7431
+ "payments": [
7432
+ {
7433
+ "id": "p1",
7434
+ "method": "cash",
7435
+ "amountCents": 340
7436
+ }
7437
+ ],
7438
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNl8yMDI2LTA5LTI2VDEwOjAwOjAwXzMsNDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9SbE5PSHRzbl9BQkMxMjNfVkFycHp3bWJVWGM9.0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg",
7439
+ "signatureSuccess": true,
7440
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_3,40_0,00_0,00_0,00_0,00_RlNOHtsn_ABC123_VArpzwmbUXc=_0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg==",
7441
+ "headerVersionId": "auto1",
7442
+ "layoutRuleset": 2,
7443
+ "items": [
7444
+ {
7445
+ "name": "Kaffee",
7446
+ "amount": 2,
7447
+ "priceOneCents": 320,
7448
+ "vat": 20,
7449
+ "priceOne": 3.2
7450
+ },
7451
+ {
7452
+ "name": "Gutschein ····-5KN2",
7453
+ "vat": 20,
7454
+ "vatRate": 20,
7455
+ "priceOne": -3,
7456
+ "priceOneCents": -300,
7457
+ "unitPriceCents": -300,
7458
+ "amount": 1,
7459
+ "quantity": 1,
7460
+ "kind": "voucher"
7461
+ }
7462
+ ]
7463
+ },
7464
+ "taxNumber": "12-345/6789",
7465
+ "vatId": "ATU12345678",
7466
+ "headerVersionId": "auto1",
7467
+ "registrationInfo": null,
7468
+ "testCashregister": true,
7469
+ "testSignature": false,
7470
+ "logo_scale": "M",
7471
+ "layout": {
7472
+ "paperSize": "mm80",
7473
+ "ruleset": 2,
7474
+ "lines": [
7475
+ {
7476
+ "kind": "banner",
7477
+ "text": "TESTKASSE — kein gültiger Beleg",
7478
+ "tone": "warning"
7479
+ },
7480
+ {
7481
+ "kind": "text",
7482
+ "text": "Bäckerei Welt",
7483
+ "align": "center",
7484
+ "bold": true
7485
+ },
7486
+ {
7487
+ "kind": "text",
7488
+ "text": "Hauptplatz 1",
7489
+ "align": "center",
7490
+ "bold": false
7491
+ },
7492
+ {
7493
+ "kind": "text",
7494
+ "text": "1010 Wien",
7495
+ "align": "center",
7496
+ "bold": false
7497
+ },
7498
+ {
7499
+ "kind": "text",
7500
+ "text": "ATU12345678",
7501
+ "align": "center",
7502
+ "bold": false
7503
+ },
7504
+ {
7505
+ "kind": "text",
7506
+ "text": "+43 1 234",
7507
+ "align": "center",
7508
+ "bold": false
7509
+ },
7510
+ {
7511
+ "kind": "space",
7512
+ "lines": 1
7513
+ },
7514
+ {
7515
+ "kind": "columns",
7516
+ "columns": [
7517
+ {
7518
+ "text": "Datum:",
7519
+ "width": 4,
7520
+ "align": "left"
7521
+ },
7522
+ {
7523
+ "text": "26.09.2026 10:00:00",
7524
+ "width": 8,
7525
+ "align": "right"
7526
+ }
7527
+ ]
7528
+ },
7529
+ {
7530
+ "kind": "columns",
7531
+ "columns": [
7532
+ {
7533
+ "text": "Kassen-ID:",
7534
+ "width": 6,
7535
+ "align": "left"
7536
+ },
7537
+ {
7538
+ "text": "KECK-1",
7539
+ "width": 6,
7540
+ "align": "right"
7541
+ }
7542
+ ]
7543
+ },
7544
+ {
7545
+ "kind": "columns",
7546
+ "columns": [
7547
+ {
7548
+ "text": "Beleg-ID:",
7549
+ "width": 6,
7550
+ "align": "left"
7551
+ },
7552
+ {
7553
+ "text": "KECK-1-ID-6",
7554
+ "width": 6,
7555
+ "align": "right"
7556
+ }
7557
+ ]
7558
+ },
7559
+ {
7560
+ "kind": "space",
7561
+ "lines": 1
7562
+ },
7563
+ {
7564
+ "kind": "columns",
7565
+ "columns": [
7566
+ {
7567
+ "text": "2 x Kaffee je 3,20",
7568
+ "width": 7,
7569
+ "align": "left"
7570
+ },
7571
+ {
7572
+ "text": "6,40 A",
7573
+ "width": 5,
7574
+ "align": "right"
7575
+ }
7576
+ ]
7577
+ },
7578
+ {
7579
+ "kind": "columns",
7580
+ "columns": [
7581
+ {
7582
+ "text": "1 x Gutschein ····-5KN2",
7583
+ "width": 7,
7584
+ "align": "left"
7585
+ },
7586
+ {
7587
+ "text": "-3,00 A",
7588
+ "width": 5,
7589
+ "align": "right"
7590
+ }
7591
+ ]
7592
+ },
7593
+ {
7594
+ "kind": "space",
7595
+ "lines": 1
7596
+ },
7597
+ {
7598
+ "kind": "columns",
7599
+ "columns": [
7600
+ {
7601
+ "text": "MwSt%",
7602
+ "width": 3,
7603
+ "align": "left"
7604
+ },
7605
+ {
7606
+ "text": "MwSt",
7607
+ "width": 4,
7608
+ "align": "left"
7609
+ },
7610
+ {
7611
+ "text": "Netto",
7612
+ "width": 3,
7613
+ "align": "left"
7614
+ },
7615
+ {
7616
+ "text": "Brutto",
7617
+ "width": 2,
7618
+ "align": "right"
7619
+ }
7620
+ ]
7621
+ },
7622
+ {
7623
+ "kind": "columns",
7624
+ "columns": [
7625
+ {
7626
+ "text": "A 20%",
7627
+ "width": 3,
7628
+ "align": "left"
7629
+ },
7630
+ {
7631
+ "text": "0,57",
7632
+ "width": 4,
7633
+ "align": "left"
7634
+ },
7635
+ {
7636
+ "text": "2,83",
7637
+ "width": 3,
7638
+ "align": "left"
7639
+ },
7640
+ {
7641
+ "text": "3,40",
7642
+ "width": 2,
7643
+ "align": "right"
7644
+ }
7645
+ ]
7646
+ },
7647
+ {
7648
+ "kind": "rule",
7649
+ "char": "-"
7650
+ },
7651
+ {
7652
+ "kind": "columns",
7653
+ "columns": [
7654
+ {
7655
+ "text": "Gesamt:",
7656
+ "width": 6,
7657
+ "align": "left"
7658
+ },
7659
+ {
7660
+ "text": "3,40 €",
7661
+ "width": 6,
7662
+ "align": "right"
7663
+ }
7664
+ ]
7665
+ },
7666
+ {
7667
+ "kind": "columns",
7668
+ "columns": [
7669
+ {
7670
+ "text": "Zahlungsart:",
7671
+ "width": 6,
7672
+ "align": "left"
7673
+ },
7674
+ {
7675
+ "text": "Barzahlung",
7676
+ "width": 6,
7677
+ "align": "right"
7678
+ }
7679
+ ]
7680
+ },
7681
+ {
7682
+ "kind": "space",
7683
+ "lines": 1
7684
+ },
7685
+ {
7686
+ "kind": "qr",
7687
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_3,40_0,00_0,00_0,00_0,00_RlNOHtsn_ABC123_VArpzwmbUXc=_0cA5v2NZPX46ba0Am9mmjbMehYzfElPGYVnuNZQKdWnbxUAAckXTWzqXZXLscRSb9IIgQIA47MeD3GVY6jWESg=="
7688
+ },
7689
+ {
7690
+ "kind": "space",
7691
+ "lines": 1
7692
+ },
7693
+ {
7694
+ "kind": "space",
7695
+ "lines": 1
7696
+ },
7697
+ {
7698
+ "kind": "text",
7699
+ "text": "Bis bald",
7700
+ "align": "center",
7701
+ "bold": false
7702
+ },
7703
+ {
7704
+ "kind": "text",
7705
+ "text": "Danke",
7706
+ "align": "center",
7707
+ "bold": false
7708
+ },
7709
+ {
7710
+ "kind": "space",
7711
+ "lines": 1
7712
+ },
7713
+ {
7714
+ "kind": "banner",
7715
+ "text": "TESTKASSE — kein gültiger Beleg",
7716
+ "tone": "warning"
7717
+ }
7718
+ ]
7719
+ }
7720
+ }
7721
+ }
4302
7722
  }
4303
7723
  ]
4304
7724
  }