@kreiseck/kasseneck-api 0.31.0 → 1.0.0-rc.2

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 (712) hide show
  1. package/CHANGELOG.md +317 -0
  2. package/README.de.md +11 -7
  3. package/README.md +509 -126
  4. package/dist/cjs/client/api.d.ts +7 -6
  5. package/dist/cjs/client/api.js +2 -2
  6. package/dist/cjs/client/aufrufe.d.ts +29 -5
  7. package/dist/cjs/client/aufrufe.js +114 -2
  8. package/dist/cjs/client/auth.d.ts +2 -0
  9. package/dist/cjs/client/auth.js +17 -1
  10. package/dist/cjs/client/cashregisters.d.ts +1 -1
  11. package/dist/cjs/client/cashregisters.js +2 -2
  12. package/dist/cjs/client/errors.d.ts +94 -19
  13. package/dist/cjs/client/errors.js +132 -28
  14. package/dist/cjs/client/fehlercodes.d.ts +9 -0
  15. package/dist/cjs/client/fehlercodes.js +36 -0
  16. package/dist/cjs/client/index.d.ts +5 -5
  17. package/dist/cjs/client/index.js +11 -3
  18. package/dist/cjs/client/receipts.d.ts +131 -124
  19. package/dist/cjs/client/receipts.js +196 -137
  20. package/dist/cjs/client/reports.d.ts +26 -4
  21. package/dist/cjs/client/reports.js +37 -4
  22. package/dist/cjs/client/status.d.ts +3 -3
  23. package/dist/cjs/client/status.js +7 -7
  24. package/dist/cjs/client/transport.d.ts +56 -4
  25. package/dist/cjs/client/transport.js +234 -25
  26. package/dist/cjs/enums/vat-rate.d.ts +2 -2
  27. package/dist/cjs/enums/vat-rate.js +1 -1
  28. package/dist/cjs/index.d.ts +4 -3
  29. package/dist/cjs/index.js +42 -13
  30. package/dist/{esm/rechnung → cjs/invoice}/api.d.ts +18 -17
  31. package/dist/cjs/{rechnung → invoice}/api.js +6 -6
  32. package/dist/{esm/rechnung → cjs/invoice}/auth.d.ts +2 -2
  33. package/dist/cjs/{rechnung → invoice}/auth.js +5 -5
  34. package/dist/{esm/rechnung/rechnen.d.ts → cjs/invoice/calc.d.ts} +27 -27
  35. package/dist/cjs/{rechnung/rechnen.js → invoice/calc.js} +54 -54
  36. package/dist/{esm/rechnung → cjs/invoice}/endpunkte.d.ts +23 -21
  37. package/dist/cjs/{rechnung → invoice}/endpunkte.js +52 -42
  38. package/dist/cjs/invoice/fehler.d.ts +31 -0
  39. package/dist/cjs/invoice/fehler.js +39 -0
  40. package/dist/cjs/invoice/index.d.ts +21 -0
  41. package/dist/cjs/invoice/index.js +86 -0
  42. package/dist/cjs/{rechnung → invoice}/summen.d.ts +12 -12
  43. package/dist/cjs/{rechnung → invoice}/summen.js +14 -14
  44. package/dist/cjs/invoice/texte.d.ts +224 -0
  45. package/dist/cjs/invoice/texte.js +425 -0
  46. package/dist/{esm/rechnung → cjs/invoice}/typen.d.ts +32 -11
  47. package/dist/cjs/{rechnung → invoice}/vertrag.d.ts +97 -71
  48. package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
  49. package/dist/cjs/models/cancellation.d.ts +43 -24
  50. package/dist/cjs/models/cancellation.js +94 -46
  51. package/dist/cjs/models/hobex-receipt.d.ts +3 -3
  52. package/dist/cjs/models/hobex-receipt.js +35 -35
  53. package/dist/cjs/models/index.d.ts +6 -5
  54. package/dist/cjs/models/index.js +22 -2
  55. package/dist/cjs/models/payment-errors.d.ts +32 -15
  56. package/dist/cjs/models/payment-errors.js +80 -32
  57. package/dist/cjs/models/receipt-company.d.ts +6 -5
  58. package/dist/cjs/models/receipt-company.js +4 -4
  59. package/dist/cjs/models/receipt-email.d.ts +32 -18
  60. package/dist/cjs/models/receipt-email.js +69 -24
  61. package/dist/cjs/models/receipt-errors.d.ts +39 -0
  62. package/dist/cjs/models/receipt-errors.js +94 -0
  63. package/dist/cjs/models/receipt-item.d.ts +9 -1
  64. package/dist/cjs/models/receipt-item.js +3 -0
  65. package/dist/cjs/models/receipt-summary.d.ts +10 -4
  66. package/dist/cjs/models/receipt-summary.js +10 -4
  67. package/dist/cjs/models/receipt.d.ts +31 -2
  68. package/dist/cjs/models/receipt.js +12 -1
  69. package/dist/cjs/models/voucher.d.ts +7 -6
  70. package/dist/cjs/models/voucher.js +2 -7
  71. package/dist/cjs/partner/ablauf.d.ts +10 -10
  72. package/dist/cjs/partner/ablauf.js +29 -29
  73. package/dist/cjs/partner/api.d.ts +26 -23
  74. package/dist/cjs/partner/api.js +11 -13
  75. package/dist/cjs/partner/auth.d.ts +1 -1
  76. package/dist/cjs/partner/auth.js +2 -2
  77. package/dist/cjs/partner/betrieb.d.ts +7 -7
  78. package/dist/cjs/partner/betrieb.js +10 -10
  79. package/dist/cjs/partner/endpunkte.d.ts +27 -14
  80. package/dist/cjs/partner/endpunkte.js +80 -39
  81. package/dist/cjs/partner/fehler.d.ts +60 -30
  82. package/dist/cjs/partner/fehler.js +99 -43
  83. package/dist/cjs/partner/index.d.ts +13 -12
  84. package/dist/cjs/partner/index.js +35 -22
  85. package/dist/cjs/partner/secret.d.ts +3 -3
  86. package/dist/cjs/partner/secret.js +6 -6
  87. package/dist/cjs/partner/typen.d.ts +129 -71
  88. package/dist/cjs/partner/typen.js +76 -3
  89. package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
  90. package/dist/cjs/partner/webhook-signatur.js +12 -12
  91. package/dist/cjs/partner/webhooks.d.ts +60 -32
  92. package/dist/cjs/partner/webhooks.js +40 -34
  93. package/dist/cjs/payments/hobex.d.ts +11 -3
  94. package/dist/cjs/payments/hobex.js +17 -5
  95. package/dist/cjs/payments/stripe.d.ts +5 -2
  96. package/dist/cjs/payments/stripe.js +10 -5
  97. package/dist/cjs/pos/artikel.d.ts +90 -0
  98. package/dist/cjs/pos/artikel.js +89 -0
  99. package/dist/cjs/pos/client.d.ts +27 -0
  100. package/dist/cjs/pos/client.js +144 -0
  101. package/dist/cjs/pos/drucker.d.ts +86 -0
  102. package/dist/cjs/pos/drucker.js +78 -0
  103. package/dist/cjs/pos/errors.d.ts +36 -0
  104. package/dist/cjs/pos/errors.js +95 -0
  105. package/dist/cjs/pos/index.d.ts +15 -0
  106. package/dist/cjs/pos/index.js +102 -0
  107. package/dist/cjs/pos/settings.d.ts +313 -0
  108. package/dist/cjs/pos/settings.js +376 -0
  109. package/dist/cjs/pos/texte.d.ts +883 -0
  110. package/dist/cjs/pos/texte.js +489 -0
  111. package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
  112. package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
  113. package/dist/cjs/printing/escpos.d.ts +29 -29
  114. package/dist/cjs/printing/escpos.js +61 -61
  115. package/dist/cjs/printing/index.d.ts +2 -2
  116. package/dist/cjs/printing/index.js +17 -17
  117. package/dist/cjs/printing/qr-groesse.d.ts +38 -38
  118. package/dist/cjs/printing/qr-groesse.js +47 -47
  119. package/dist/cjs/printing/webusb.d.ts +2 -2
  120. package/dist/cjs/printing/webusb.js +4 -4
  121. package/dist/cjs/react/index.d.ts +21 -21
  122. package/dist/cjs/react/index.js +40 -30
  123. package/dist/cjs/receipt/bild.d.ts +4 -4
  124. package/dist/cjs/receipt/bild.js +11 -11
  125. package/dist/cjs/receipt/blatt.d.ts +46 -46
  126. package/dist/cjs/receipt/blatt.js +59 -59
  127. package/dist/cjs/receipt/discount.d.ts +1 -1
  128. package/dist/cjs/receipt/discount.js +8 -8
  129. package/dist/cjs/receipt/due.d.ts +86 -0
  130. package/dist/cjs/receipt/due.js +261 -0
  131. package/dist/cjs/receipt/epos.d.ts +22 -22
  132. package/dist/cjs/receipt/epos.js +45 -45
  133. package/dist/cjs/receipt/grid.d.ts +10 -10
  134. package/dist/cjs/receipt/grid.js +20 -20
  135. package/dist/cjs/receipt/index.d.ts +9 -8
  136. package/dist/cjs/receipt/index.js +26 -23
  137. package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
  138. package/dist/cjs/receipt/layout-escpos.js +49 -49
  139. package/dist/cjs/receipt/layout.d.ts +28 -23
  140. package/dist/cjs/receipt/layout.js +45 -21
  141. package/dist/cjs/receipt/marke-daten.d.ts +8 -8
  142. package/dist/cjs/receipt/marke-daten.js +8 -8
  143. package/dist/cjs/receipt/marke.d.ts +7 -7
  144. package/dist/cjs/receipt/marke.js +10 -10
  145. package/dist/cjs/register/errors.d.ts +61 -0
  146. package/dist/cjs/register/errors.js +112 -0
  147. package/dist/cjs/register/index.d.ts +14 -1
  148. package/dist/cjs/register/index.js +20 -1
  149. package/dist/cjs/register/pairing.d.ts +55 -36
  150. package/dist/cjs/register/pairing.js +33 -29
  151. package/dist/cjs/register/session.d.ts +5 -5
  152. package/dist/cjs/register/session.js +7 -7
  153. package/dist/cjs/stored/draht.d.ts +45 -0
  154. package/dist/cjs/stored/draht.js +220 -0
  155. package/dist/cjs/stored/einstellungen.d.ts +23 -0
  156. package/dist/cjs/stored/einstellungen.js +200 -0
  157. package/dist/cjs/stored/index.d.ts +109 -0
  158. package/dist/cjs/stored/index.js +225 -0
  159. package/dist/cjs/stored/vokabular.d.ts +18 -0
  160. package/dist/cjs/stored/vokabular.js +389 -0
  161. package/dist/cjs/version.d.ts +7 -0
  162. package/dist/cjs/version.js +10 -0
  163. package/dist/cjs/vienna-time.d.ts +1 -1
  164. package/dist/cjs/vienna-time.js +2 -2
  165. package/dist/esm/client/api.d.ts +7 -6
  166. package/dist/esm/client/api.js +4 -4
  167. package/dist/esm/client/aufrufe.d.ts +29 -5
  168. package/dist/esm/client/aufrufe.js +111 -1
  169. package/dist/esm/client/auth.d.ts +2 -0
  170. package/dist/esm/client/auth.js +16 -1
  171. package/dist/esm/client/cashregisters.d.ts +1 -1
  172. package/dist/esm/client/cashregisters.js +2 -2
  173. package/dist/esm/client/errors.d.ts +94 -19
  174. package/dist/esm/client/errors.js +129 -27
  175. package/dist/esm/client/fehlercodes.d.ts +9 -0
  176. package/dist/esm/client/fehlercodes.js +32 -0
  177. package/dist/esm/client/index.d.ts +5 -5
  178. package/dist/esm/client/index.js +5 -5
  179. package/dist/esm/client/receipts.d.ts +131 -124
  180. package/dist/esm/client/receipts.js +195 -140
  181. package/dist/esm/client/reports.d.ts +26 -4
  182. package/dist/esm/client/reports.js +36 -4
  183. package/dist/esm/client/status.d.ts +3 -3
  184. package/dist/esm/client/status.js +7 -7
  185. package/dist/esm/client/transport.d.ts +56 -4
  186. package/dist/esm/client/transport.js +233 -24
  187. package/dist/esm/enums/vat-rate.d.ts +2 -2
  188. package/dist/esm/enums/vat-rate.js +1 -1
  189. package/dist/esm/index.d.ts +4 -3
  190. package/dist/esm/index.js +4 -3
  191. package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
  192. package/dist/esm/{rechnung → invoice}/api.js +6 -6
  193. package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
  194. package/dist/esm/{rechnung → invoice}/auth.js +4 -4
  195. package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
  196. package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
  197. package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
  198. package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
  199. package/dist/esm/invoice/fehler.d.ts +31 -0
  200. package/dist/esm/invoice/fehler.js +33 -0
  201. package/dist/esm/invoice/index.d.ts +21 -0
  202. package/dist/esm/invoice/index.js +20 -0
  203. package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
  204. package/dist/esm/{rechnung → invoice}/summen.js +12 -12
  205. package/dist/esm/invoice/texte.d.ts +224 -0
  206. package/dist/esm/invoice/texte.js +421 -0
  207. package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
  208. package/dist/esm/{rechnung → invoice}/vertrag.d.ts +97 -71
  209. package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
  210. package/dist/esm/models/cancellation.d.ts +43 -24
  211. package/dist/esm/models/cancellation.js +90 -45
  212. package/dist/esm/models/hobex-receipt.d.ts +3 -3
  213. package/dist/esm/models/hobex-receipt.js +35 -35
  214. package/dist/esm/models/index.d.ts +6 -5
  215. package/dist/esm/models/index.js +6 -5
  216. package/dist/esm/models/payment-errors.d.ts +32 -15
  217. package/dist/esm/models/payment-errors.js +77 -32
  218. package/dist/esm/models/receipt-company.d.ts +6 -5
  219. package/dist/esm/models/receipt-company.js +4 -4
  220. package/dist/esm/models/receipt-email.d.ts +32 -18
  221. package/dist/esm/models/receipt-email.js +65 -23
  222. package/dist/esm/models/receipt-errors.d.ts +39 -0
  223. package/dist/esm/models/receipt-errors.js +87 -0
  224. package/dist/esm/models/receipt-item.d.ts +9 -1
  225. package/dist/esm/models/receipt-item.js +3 -0
  226. package/dist/esm/models/receipt-summary.d.ts +10 -4
  227. package/dist/esm/models/receipt-summary.js +9 -3
  228. package/dist/esm/models/receipt.d.ts +31 -2
  229. package/dist/esm/models/receipt.js +12 -2
  230. package/dist/esm/models/voucher.d.ts +7 -6
  231. package/dist/esm/models/voucher.js +2 -7
  232. package/dist/esm/partner/ablauf.d.ts +10 -10
  233. package/dist/esm/partner/ablauf.js +27 -27
  234. package/dist/esm/partner/api.d.ts +26 -23
  235. package/dist/esm/partner/api.js +13 -15
  236. package/dist/esm/partner/auth.d.ts +1 -1
  237. package/dist/esm/partner/auth.js +2 -2
  238. package/dist/esm/partner/betrieb.d.ts +7 -7
  239. package/dist/esm/partner/betrieb.js +8 -8
  240. package/dist/esm/partner/endpunkte.d.ts +27 -14
  241. package/dist/esm/partner/endpunkte.js +79 -39
  242. package/dist/esm/partner/fehler.d.ts +60 -30
  243. package/dist/esm/partner/fehler.js +91 -35
  244. package/dist/esm/partner/index.d.ts +13 -12
  245. package/dist/esm/partner/index.js +12 -11
  246. package/dist/esm/partner/secret.d.ts +3 -3
  247. package/dist/esm/partner/secret.js +5 -5
  248. package/dist/esm/partner/typen.d.ts +129 -71
  249. package/dist/esm/partner/typen.js +75 -2
  250. package/dist/esm/partner/webhook-signatur.d.ts +2 -2
  251. package/dist/esm/partner/webhook-signatur.js +12 -12
  252. package/dist/esm/partner/webhooks.d.ts +60 -32
  253. package/dist/esm/partner/webhooks.js +38 -32
  254. package/dist/esm/payments/hobex.d.ts +11 -3
  255. package/dist/esm/payments/hobex.js +18 -6
  256. package/dist/esm/payments/stripe.d.ts +5 -2
  257. package/dist/esm/payments/stripe.js +11 -6
  258. package/dist/esm/pos/artikel.d.ts +90 -0
  259. package/dist/esm/pos/artikel.js +79 -0
  260. package/dist/esm/pos/client.d.ts +27 -0
  261. package/dist/esm/pos/client.js +137 -0
  262. package/dist/esm/pos/drucker.d.ts +86 -0
  263. package/dist/esm/pos/drucker.js +71 -0
  264. package/dist/esm/pos/errors.d.ts +36 -0
  265. package/dist/esm/pos/errors.js +88 -0
  266. package/dist/esm/pos/index.d.ts +15 -0
  267. package/dist/esm/pos/index.js +20 -0
  268. package/dist/esm/pos/settings.d.ts +313 -0
  269. package/dist/esm/pos/settings.js +367 -0
  270. package/dist/esm/pos/texte.d.ts +883 -0
  271. package/dist/esm/pos/texte.js +481 -0
  272. package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
  273. package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
  274. package/dist/esm/printing/escpos.d.ts +29 -29
  275. package/dist/esm/printing/escpos.js +56 -56
  276. package/dist/esm/printing/index.d.ts +2 -2
  277. package/dist/esm/printing/index.js +2 -2
  278. package/dist/esm/printing/qr-groesse.d.ts +38 -38
  279. package/dist/esm/printing/qr-groesse.js +42 -42
  280. package/dist/esm/printing/webusb.d.ts +2 -2
  281. package/dist/esm/printing/webusb.js +4 -4
  282. package/dist/esm/react/index.d.ts +21 -21
  283. package/dist/esm/react/index.js +39 -29
  284. package/dist/esm/receipt/bild.d.ts +4 -4
  285. package/dist/esm/receipt/bild.js +11 -11
  286. package/dist/esm/receipt/blatt.d.ts +46 -46
  287. package/dist/esm/receipt/blatt.js +55 -55
  288. package/dist/esm/receipt/discount.d.ts +1 -1
  289. package/dist/esm/receipt/discount.js +7 -7
  290. package/dist/esm/receipt/due.d.ts +86 -0
  291. package/dist/esm/receipt/due.js +257 -0
  292. package/dist/esm/receipt/epos.d.ts +22 -22
  293. package/dist/esm/receipt/epos.js +47 -47
  294. package/dist/esm/receipt/grid.d.ts +10 -10
  295. package/dist/esm/receipt/grid.js +18 -18
  296. package/dist/esm/receipt/index.d.ts +9 -8
  297. package/dist/esm/receipt/index.js +9 -8
  298. package/dist/esm/receipt/layout-escpos.d.ts +24 -24
  299. package/dist/esm/receipt/layout-escpos.js +51 -51
  300. package/dist/esm/receipt/layout.d.ts +28 -23
  301. package/dist/esm/receipt/layout.js +44 -20
  302. package/dist/esm/receipt/marke-daten.d.ts +8 -8
  303. package/dist/esm/receipt/marke-daten.js +7 -7
  304. package/dist/esm/receipt/marke.d.ts +7 -7
  305. package/dist/esm/receipt/marke.js +10 -10
  306. package/dist/esm/register/errors.d.ts +61 -0
  307. package/dist/esm/register/errors.js +104 -0
  308. package/dist/esm/register/index.d.ts +14 -1
  309. package/dist/esm/register/index.js +13 -0
  310. package/dist/esm/register/pairing.d.ts +55 -36
  311. package/dist/esm/register/pairing.js +33 -29
  312. package/dist/esm/register/session.d.ts +5 -5
  313. package/dist/esm/register/session.js +7 -7
  314. package/dist/esm/stored/draht.d.ts +45 -0
  315. package/dist/esm/stored/draht.js +208 -0
  316. package/dist/esm/stored/einstellungen.d.ts +23 -0
  317. package/dist/esm/stored/einstellungen.js +196 -0
  318. package/dist/esm/stored/index.d.ts +109 -0
  319. package/dist/esm/stored/index.js +217 -0
  320. package/dist/esm/stored/vokabular.d.ts +18 -0
  321. package/dist/esm/stored/vokabular.js +386 -0
  322. package/dist/esm/version.d.ts +7 -0
  323. package/dist/esm/version.js +7 -0
  324. package/dist/esm/vienna-time.d.ts +1 -1
  325. package/dist/esm/vienna-time.js +2 -2
  326. package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
  327. package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
  328. package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
  329. package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
  330. package/fixtures/expected/cancellation-full.sheet32.json +218 -0
  331. package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
  332. package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
  333. package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
  334. package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
  335. package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
  336. package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
  337. package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
  338. package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
  339. package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
  340. package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
  341. package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
  342. package/fixtures/expected/card-custom.sheet32.json +158 -0
  343. package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
  344. package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
  345. package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
  346. package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
  347. package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
  348. package/fixtures/expected/card-gptom.sheet32.json +230 -0
  349. package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
  350. package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
  351. package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
  352. package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
  353. package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
  354. package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
  355. package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
  356. package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
  357. package/fixtures/expected/card-mypos.sheet32.json +254 -0
  358. package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
  359. package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
  360. package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
  361. package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
  362. package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
  363. package/fixtures/expected/card-stripe.sheet32.json +212 -0
  364. package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
  365. package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
  366. package/fixtures/expected/card-sumup.sheet32.json +218 -0
  367. package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
  368. package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
  369. package/fixtures/expected/discount-lines.sheet32.json +200 -0
  370. package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
  371. package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
  372. package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
  373. package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
  374. package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
  375. package/fixtures/expected/discount-simple.sheet32.json +182 -0
  376. package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
  377. package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
  378. package/fixtures/expected/discount-tip.sheet32.json +212 -0
  379. package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
  380. package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
  381. package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
  382. package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
  383. package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
  384. package/fixtures/expected/long-item-name.sheet32.json +176 -0
  385. package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
  386. package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
  387. package/fixtures/expected/sale-card.sheet32.json +176 -0
  388. package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
  389. package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
  390. package/fixtures/expected/sale-cash.sheet32.json +176 -0
  391. package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
  392. package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
  393. package/fixtures/expected/sale-small-business.sheet32.json +182 -0
  394. package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
  395. package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
  396. package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
  397. package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
  398. package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
  399. package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
  400. package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
  401. package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
  402. package/fixtures/expected/split-cash-change.sheet32.json +194 -0
  403. package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
  404. package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
  405. package/fixtures/expected/split-long-amount.sheet32.json +266 -0
  406. package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
  407. package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
  408. package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
  409. package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
  410. package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
  411. package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
  412. package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
  413. package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
  414. package/fixtures/expected/split-tip-card.sheet32.json +272 -0
  415. package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
  416. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
  417. package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
  418. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
  419. package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
  420. package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
  421. package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
  422. package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
  423. package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
  424. package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
  425. package/fixtures/{erwartet → expected}/training.lines.json +2 -2
  426. package/fixtures/expected/training.sheet32.json +236 -0
  427. package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
  428. package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
  429. package/fixtures/expected/zero-annual.sheet32.json +212 -0
  430. package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
  431. package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
  432. package/fixtures/expected/zero-final.sheet32.json +206 -0
  433. package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
  434. package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
  435. package/fixtures/expected/zero-manual.sheet32.json +206 -0
  436. package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
  437. package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
  438. package/fixtures/expected/zero-monthly.sheet32.json +206 -0
  439. package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
  440. package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
  441. package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
  442. package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
  443. package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
  444. package/fixtures/expected/zero-start.sheet32.json +206 -0
  445. package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
  446. package/fixtures/hobex-hps-codes.json +12 -12
  447. package/fixtures/invoice-api-examples/brands-ok.json +8 -0
  448. package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
  449. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
  450. package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
  451. package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
  452. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
  453. package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
  454. package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
  455. package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
  456. package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
  457. package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
  458. package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
  459. package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
  460. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
  461. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
  462. package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
  463. package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
  464. package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
  465. package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
  466. package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
  467. package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
  468. package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
  469. package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
  470. package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
  471. package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
  472. package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
  473. package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
  474. package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
  475. package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
  476. package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
  477. package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
  478. package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
  479. package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
  480. package/fixtures/invoice-texts.json +464 -0
  481. package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
  482. package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
  483. package/fixtures/manifest.json +252 -252
  484. package/fixtures/pos-message-cases.json +32 -0
  485. package/fixtures/pos-settings-defaults.json +149 -0
  486. package/fixtures/{kasse-texte.json → pos-texts.json} +416 -416
  487. package/fixtures/receipt-due-generated.json +1218 -0
  488. package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
  489. package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
  490. package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
  491. package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
  492. package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
  493. package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
  494. package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
  495. package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
  496. package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
  497. package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
  498. package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
  499. package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
  500. package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
  501. package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
  502. package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
  503. package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
  504. package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
  505. package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
  506. package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
  507. package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
  508. package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
  509. package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
  510. package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
  511. package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
  512. package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
  513. package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
  514. package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
  515. package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
  516. package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
  517. package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
  518. package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
  519. package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
  520. package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
  521. package/fixtures/{belege → receipts}/training.json +2 -2
  522. package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
  523. package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
  524. package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
  525. package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
  526. package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
  527. package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
  528. package/fixtures/renames-1.0.json +1490 -0
  529. package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +7 -7
  530. package/fixtures/surface.json +877 -0
  531. package/fixtures/v3/README.md +125 -0
  532. package/fixtures/v3/antworten/belege.json +4738 -0
  533. package/fixtures/v3/antworten/belegmail.json +154 -0
  534. package/fixtures/v3/antworten/kasse-belege.json +4304 -0
  535. package/fixtures/v3/antworten/kasse.json +12716 -0
  536. package/fixtures/v3/antworten/rechnungen.json +1712 -0
  537. package/fixtures/v3/antworten/storno.json +737 -0
  538. package/fixtures/v3/stored/belege.json +502 -0
  539. package/fixtures/v3/stored/kasse.json +3461 -0
  540. package/fixtures/v3/stored/rechnungen.json +750 -0
  541. package/fixtures/v3/v3-vokabular.json +3375 -0
  542. package/fixtures/v3/zahlbetrag-faelle.json +794 -0
  543. package/package.json +32 -18
  544. package/dist/cjs/kasse/artikel.d.ts +0 -83
  545. package/dist/cjs/kasse/artikel.js +0 -79
  546. package/dist/cjs/kasse/client.d.ts +0 -10
  547. package/dist/cjs/kasse/client.js +0 -38
  548. package/dist/cjs/kasse/drucker.d.ts +0 -59
  549. package/dist/cjs/kasse/drucker.js +0 -50
  550. package/dist/cjs/kasse/index.d.ts +0 -13
  551. package/dist/cjs/kasse/index.js +0 -83
  552. package/dist/cjs/kasse/settings.d.ts +0 -229
  553. package/dist/cjs/kasse/settings.js +0 -172
  554. package/dist/cjs/kasse/texte.d.ts +0 -868
  555. package/dist/cjs/kasse/texte.js +0 -474
  556. package/dist/cjs/rechnung/fehler.d.ts +0 -21
  557. package/dist/cjs/rechnung/fehler.js +0 -44
  558. package/dist/cjs/rechnung/index.d.ts +0 -21
  559. package/dist/cjs/rechnung/index.js +0 -82
  560. package/dist/cjs/rechnung/texte.d.ts +0 -222
  561. package/dist/cjs/rechnung/texte.js +0 -425
  562. package/dist/esm/kasse/artikel.d.ts +0 -83
  563. package/dist/esm/kasse/artikel.js +0 -70
  564. package/dist/esm/kasse/client.d.ts +0 -10
  565. package/dist/esm/kasse/client.js +0 -33
  566. package/dist/esm/kasse/drucker.d.ts +0 -59
  567. package/dist/esm/kasse/drucker.js +0 -45
  568. package/dist/esm/kasse/index.d.ts +0 -13
  569. package/dist/esm/kasse/index.js +0 -18
  570. package/dist/esm/kasse/settings.d.ts +0 -229
  571. package/dist/esm/kasse/settings.js +0 -168
  572. package/dist/esm/kasse/texte.d.ts +0 -868
  573. package/dist/esm/kasse/texte.js +0 -466
  574. package/dist/esm/rechnung/fehler.d.ts +0 -21
  575. package/dist/esm/rechnung/fehler.js +0 -39
  576. package/dist/esm/rechnung/index.d.ts +0 -21
  577. package/dist/esm/rechnung/index.js +0 -20
  578. package/dist/esm/rechnung/texte.d.ts +0 -222
  579. package/dist/esm/rechnung/texte.js +0 -421
  580. package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
  581. package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
  582. package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
  583. package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
  584. package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
  585. package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
  586. package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
  587. package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
  588. package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
  589. package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
  590. package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
  591. package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
  592. package/fixtures/erwartet/null-monat.blatt32.json +0 -206
  593. package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
  594. package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
  595. package/fixtures/erwartet/null-start.blatt32.json +0 -206
  596. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
  597. package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
  598. package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
  599. package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
  600. package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
  601. package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
  602. package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
  603. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
  604. package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
  605. package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
  606. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
  607. package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
  608. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
  609. package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
  610. package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
  611. package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
  612. package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
  613. package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
  614. package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
  615. package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
  616. package/fixtures/erwartet/training.blatt32.json +0 -236
  617. package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
  618. package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
  619. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
  620. package/fixtures/kasse-meldungen-faelle.json +0 -32
  621. package/fixtures/oberflaeche.json +0 -558
  622. package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
  623. package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
  624. package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
  625. package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
  626. package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
  627. package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
  628. package/fixtures/rechnung-texte.json +0 -464
  629. /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
  630. /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
  631. /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
  632. /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
  633. /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
  634. /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
  635. /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
  636. /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
  637. /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
  638. /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
  639. /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
  640. /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
  641. /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
  642. /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
  643. /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
  644. /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
  645. /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
  646. /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
  647. /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
  648. /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
  649. /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
  650. /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
  651. /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
  652. /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
  653. /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
  654. /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
  655. /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
  656. /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
  657. /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
  658. /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
  659. /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
  660. /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
  661. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
  662. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
  663. /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
  664. /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
  665. /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
  666. /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
  667. /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
  668. /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
  669. /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
  670. /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
  671. /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
  672. /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
  673. /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
  674. /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
  675. /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
  676. /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
  677. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
  678. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
  679. /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
  680. /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
  681. /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
  682. /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
  683. /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
  684. /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
  685. /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
  686. /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
  687. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
  688. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
  689. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
  690. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
  691. /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
  692. /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
  693. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
  694. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
  695. /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
  696. /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
  697. /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
  698. /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
  699. /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
  700. /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
  701. /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
  702. /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
  703. /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
  704. /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
  705. /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
  706. /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
  707. /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
  708. /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
  709. /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
  710. /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
  711. /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
  712. /package/fixtures/{erwartet/null-start.grid48.txt → expected/zero-start.grid48.txt} +0 -0
@@ -0,0 +1,4738 @@
1
+ {
2
+ "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
3
+ "_quelle": {
4
+ "sha256": "61892b91e6a8a0f273dcfdeb63809d92d98fb837a3c0baa782f03b29dd3b8b7a",
5
+ "inputsSha256": "cee31126cc755fd21441abae289997aeb0884a15eb230ce231defd8bb0bdc0fd",
6
+ "backendPackage": "@kreiseck/kasseneck-api@0.31.0",
7
+ "inputs": [
8
+ "docs/api/fehlercodes.json",
9
+ "functions-kasse/test/unit/fixtures/kassen-codes-v3.js",
10
+ "functions/beleg-mail-core.js",
11
+ "functions/gemeinsam/api-rand.js",
12
+ "functions/gemeinsam/api-vokabular-v3.js",
13
+ "functions/gemeinsam/beleg-toepfe.js",
14
+ "functions/gemeinsam/storno-core.js",
15
+ "functions/gemeinsam/tip-core.js",
16
+ "functions/gemeinsam/vat-buckets.js",
17
+ "functions/gemeinsam/zahlungen-core.js",
18
+ "functions/invoice-api-core.js",
19
+ "functions/invoice-api-endpoints.js",
20
+ "functions/test/unit/fixtures/v3-belege/beleg-welt.js",
21
+ "functions/test/unit/fixtures/v3-rechnungen/rechnungs-welt.js",
22
+ "functions/test/unit/fixtures/vertrag-v3/ablage.js",
23
+ "functions/test/unit/fixtures/vertrag-v3/vokabular.js",
24
+ "functions/test/unit/fixtures/vertrag-v3/zahlbetrag.js",
25
+ "functions/test/unit/helpers/kassen-fehlerstellen.js",
26
+ "functions/test/unit/v3-vertrag-export.test.js"
27
+ ]
28
+ },
29
+ "channel": "api",
30
+ "cases": [
31
+ {
32
+ "name": "start_receipt",
33
+ "endpoint": "createReceipt",
34
+ "path": "/v3/createReceipt",
35
+ "params": {
36
+ "receiptType": "start"
37
+ },
38
+ "httpStatus": 200,
39
+ "headers": {
40
+ "Kasseneck-Api-Version": "v3",
41
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
42
+ },
43
+ "response": {
44
+ "status": "success",
45
+ "message": "",
46
+ "data": {
47
+ "is_small_business": false,
48
+ "company": "Bäckerei Welt",
49
+ "phone": "+43 1 234",
50
+ "street": "Hauptplatz 1",
51
+ "zip": "1010",
52
+ "city": "Wien",
53
+ "footer1": "Danke",
54
+ "footer2": null,
55
+ "footer3": null,
56
+ "footer4": null,
57
+ "logo_url": null,
58
+ "kreiseck_logo": false,
59
+ "thanks_message": "Bis bald",
60
+ "receipt": {
61
+ "counter": 1,
62
+ "receiptType": "start",
63
+ "zeroKind": null,
64
+ "receiptId": "KECK-1-ID-1",
65
+ "cashregisterId": "KECK-1",
66
+ "timeStamp": "2026-09-26T10:00:00",
67
+ "vouchers": [],
68
+ "paymentMethod": "cash",
69
+ "customerDetails": null,
70
+ "legalMessage": null,
71
+ "customProjectId": null,
72
+ "creditCardProvider": null,
73
+ "amountRateStandard": 0,
74
+ "amountRateReduced1": 0,
75
+ "amountRateReduced2": 0,
76
+ "amountRateZero": 0,
77
+ "amountRateSpecial": 0,
78
+ "turnoverCounterAES256ICM": "Ypz0zq2NAR7wXxDJ8RIXPg==",
79
+ "signaturePreviousReceipt": "AshR0Dg4KFE=",
80
+ "certificateSerialNumber": "ABC123",
81
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000009c055361",
82
+ "payments": [],
83
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMV8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9ZcHowenEyTl9BQkMxMjNfQXNoUjBEZzRLRkU9.pWSV8ZAoCLZLsM_A8R2WN5c3dkk0nNMu3rgG75zT1e67FwrhOyiV_gWBrwGqTnJZwXXO1a0zq6TM8m189Kmo5Q",
84
+ "signatureSuccess": true,
85
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-1_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_Ypz0zq2N_ABC123_AshR0Dg4KFE=_pWSV8ZAoCLZLsM/A8R2WN5c3dkk0nNMu3rgG75zT1e67FwrhOyiV/gWBrwGqTnJZwXXO1a0zq6TM8m189Kmo5Q==",
86
+ "headerVersionId": "auto1",
87
+ "layoutRuleset": 2,
88
+ "items": []
89
+ },
90
+ "taxNumber": "12-345/6789",
91
+ "vatId": "ATU12345678",
92
+ "headerVersionId": "auto1",
93
+ "registrationInfo": null,
94
+ "testCashregister": true,
95
+ "testSignature": false,
96
+ "logo_scale": "M",
97
+ "layout": {
98
+ "paperSize": "mm80",
99
+ "ruleset": 2,
100
+ "lines": [
101
+ {
102
+ "kind": "banner",
103
+ "text": "TESTKASSE — kein gültiger Beleg",
104
+ "tone": "warning"
105
+ },
106
+ {
107
+ "kind": "text",
108
+ "text": "Bäckerei Welt",
109
+ "align": "center",
110
+ "bold": true
111
+ },
112
+ {
113
+ "kind": "text",
114
+ "text": "Hauptplatz 1",
115
+ "align": "center",
116
+ "bold": false
117
+ },
118
+ {
119
+ "kind": "text",
120
+ "text": "1010 Wien",
121
+ "align": "center",
122
+ "bold": false
123
+ },
124
+ {
125
+ "kind": "text",
126
+ "text": "ATU12345678",
127
+ "align": "center",
128
+ "bold": false
129
+ },
130
+ {
131
+ "kind": "text",
132
+ "text": "+43 1 234",
133
+ "align": "center",
134
+ "bold": false
135
+ },
136
+ {
137
+ "kind": "space",
138
+ "lines": 1
139
+ },
140
+ {
141
+ "kind": "banner",
142
+ "text": "STARTBELEG",
143
+ "tone": "receipt_type"
144
+ },
145
+ {
146
+ "kind": "text",
147
+ "text": "Nullbeleg zur Inbetriebnahme",
148
+ "align": "center",
149
+ "bold": false
150
+ },
151
+ {
152
+ "kind": "space",
153
+ "lines": 1
154
+ },
155
+ {
156
+ "kind": "columns",
157
+ "columns": [
158
+ {
159
+ "text": "Datum:",
160
+ "width": 4,
161
+ "align": "left"
162
+ },
163
+ {
164
+ "text": "26.09.2026 10:00:00",
165
+ "width": 8,
166
+ "align": "right"
167
+ }
168
+ ]
169
+ },
170
+ {
171
+ "kind": "columns",
172
+ "columns": [
173
+ {
174
+ "text": "Kassen-ID:",
175
+ "width": 6,
176
+ "align": "left"
177
+ },
178
+ {
179
+ "text": "KECK-1",
180
+ "width": 6,
181
+ "align": "right"
182
+ }
183
+ ]
184
+ },
185
+ {
186
+ "kind": "columns",
187
+ "columns": [
188
+ {
189
+ "text": "Beleg-ID:",
190
+ "width": 6,
191
+ "align": "left"
192
+ },
193
+ {
194
+ "text": "KECK-1-ID-1",
195
+ "width": 6,
196
+ "align": "right"
197
+ }
198
+ ]
199
+ },
200
+ {
201
+ "kind": "space",
202
+ "lines": 1
203
+ },
204
+ {
205
+ "kind": "rule",
206
+ "char": "-"
207
+ },
208
+ {
209
+ "kind": "text",
210
+ "text": "Prüfangaben",
211
+ "align": "center",
212
+ "bold": true
213
+ },
214
+ {
215
+ "kind": "columns",
216
+ "columns": [
217
+ {
218
+ "text": "Barumsatz:",
219
+ "width": 6,
220
+ "align": "left"
221
+ },
222
+ {
223
+ "text": "0,00 €",
224
+ "width": 6,
225
+ "align": "right"
226
+ }
227
+ ]
228
+ },
229
+ {
230
+ "kind": "columns",
231
+ "columns": [
232
+ {
233
+ "text": "Signatur:",
234
+ "width": 6,
235
+ "align": "left"
236
+ },
237
+ {
238
+ "text": "signiert",
239
+ "width": 6,
240
+ "align": "right"
241
+ }
242
+ ]
243
+ },
244
+ {
245
+ "kind": "columns",
246
+ "columns": [
247
+ {
248
+ "text": "Signaturkarte:",
249
+ "width": 6,
250
+ "align": "left"
251
+ },
252
+ {
253
+ "text": "0xABC123",
254
+ "width": 6,
255
+ "align": "right"
256
+ }
257
+ ]
258
+ },
259
+ {
260
+ "kind": "columns",
261
+ "columns": [
262
+ {
263
+ "text": "Zertifizierungsdienst:",
264
+ "width": 7,
265
+ "align": "left"
266
+ },
267
+ {
268
+ "text": "Testsignatur (AT100)",
269
+ "width": 5,
270
+ "align": "right"
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "kind": "rule",
276
+ "char": "-"
277
+ },
278
+ {
279
+ "kind": "space",
280
+ "lines": 1
281
+ },
282
+ {
283
+ "kind": "qr",
284
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-1_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_Ypz0zq2N_ABC123_AshR0Dg4KFE=_pWSV8ZAoCLZLsM/A8R2WN5c3dkk0nNMu3rgG75zT1e67FwrhOyiV/gWBrwGqTnJZwXXO1a0zq6TM8m189Kmo5Q=="
285
+ },
286
+ {
287
+ "kind": "space",
288
+ "lines": 1
289
+ },
290
+ {
291
+ "kind": "banner",
292
+ "text": "TESTKASSE — kein gültiger Beleg",
293
+ "tone": "warning"
294
+ }
295
+ ]
296
+ }
297
+ }
298
+ }
299
+ },
300
+ {
301
+ "name": "sale_card_with_tip",
302
+ "endpoint": "createReceipt",
303
+ "path": "/v3/createReceipt",
304
+ "params": {
305
+ "receiptType": "standard",
306
+ "items": [
307
+ {
308
+ "name": "Kaffee",
309
+ "amount": 2,
310
+ "priceOneCents": 300,
311
+ "vat": 20
312
+ }
313
+ ],
314
+ "payments": [
315
+ {
316
+ "method": "creditCard",
317
+ "amountCents": 700,
318
+ "provider": "sumup",
319
+ "providerPaymentId": "tx-4711",
320
+ "providerData": {
321
+ "cardLast4": "4242",
322
+ "terminal": "T1"
323
+ }
324
+ }
325
+ ],
326
+ "tip": {
327
+ "cents": 100,
328
+ "receivedImmediately": false
329
+ }
330
+ },
331
+ "httpStatus": 200,
332
+ "headers": {
333
+ "Kasseneck-Api-Version": "v3",
334
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
335
+ },
336
+ "response": {
337
+ "status": "success",
338
+ "message": "",
339
+ "data": {
340
+ "is_small_business": false,
341
+ "company": "Bäckerei Welt",
342
+ "phone": "+43 1 234",
343
+ "street": "Hauptplatz 1",
344
+ "zip": "1010",
345
+ "city": "Wien",
346
+ "footer1": "Danke",
347
+ "footer2": null,
348
+ "footer3": null,
349
+ "footer4": null,
350
+ "logo_url": null,
351
+ "kreiseck_logo": false,
352
+ "thanks_message": "Bis bald",
353
+ "receipt": {
354
+ "counter": 2,
355
+ "receiptType": "standard",
356
+ "zeroKind": null,
357
+ "receiptId": "KECK-1-ID-2",
358
+ "cashregisterId": "KECK-1",
359
+ "timeStamp": "2026-09-26T10:00:00",
360
+ "vouchers": [],
361
+ "paymentMethod": "creditCard",
362
+ "customerDetails": null,
363
+ "legalMessage": null,
364
+ "customProjectId": null,
365
+ "creditCardProvider": null,
366
+ "amountRateStandard": 6,
367
+ "amountRateReduced1": 0,
368
+ "amountRateReduced2": 0,
369
+ "amountRateZero": 1,
370
+ "amountRateSpecial": 0,
371
+ "turnoverCounterAES256ICM": "girlnmCVSdImcB9LEr65jQ==",
372
+ "signaturePreviousReceipt": "6Mn4bx4N/M8=",
373
+ "certificateSerialNumber": "ABC123",
374
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
375
+ "payments": [
376
+ {
377
+ "id": "p1",
378
+ "method": "creditCard",
379
+ "amountCents": 700,
380
+ "provider": "sumup"
381
+ }
382
+ ],
383
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMl8yMDI2LTA5LTI2VDEwOjAwOjAwXzYsMDBfMCwwMF8wLDAwXzEsMDBfMCwwMF9naXJsbm1DVl9BQkMxMjNfNk1uNGJ4NE4vTTg9.8VaXQwBb_1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg",
384
+ "signatureSuccess": true,
385
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_6,00_0,00_0,00_1,00_0,00_girlnmCV_ABC123_6Mn4bx4N/M8=_8VaXQwBb/1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg==",
386
+ "tipCents": 100,
387
+ "headerVersionId": "auto1",
388
+ "layoutRuleset": 2,
389
+ "items": [
390
+ {
391
+ "name": "Kaffee",
392
+ "amount": 2,
393
+ "priceOneCents": 300,
394
+ "vat": 20,
395
+ "priceOne": 3
396
+ },
397
+ {
398
+ "kind": "tip",
399
+ "name": "Trinkgeld Personal",
400
+ "amount": 1,
401
+ "quantity": 1,
402
+ "priceOne": 1,
403
+ "priceOneCents": 100,
404
+ "unitPriceCents": 100,
405
+ "vat": 0,
406
+ "vatRate": 0,
407
+ "paymentMethod": "creditCard",
408
+ "recipient": null,
409
+ "receivedImmediately": false
410
+ }
411
+ ]
412
+ },
413
+ "taxNumber": "12-345/6789",
414
+ "vatId": "ATU12345678",
415
+ "headerVersionId": "auto1",
416
+ "registrationInfo": null,
417
+ "testCashregister": true,
418
+ "testSignature": false,
419
+ "logo_scale": "M",
420
+ "layout": {
421
+ "paperSize": "mm80",
422
+ "ruleset": 2,
423
+ "lines": [
424
+ {
425
+ "kind": "banner",
426
+ "text": "TESTKASSE — kein gültiger Beleg",
427
+ "tone": "warning"
428
+ },
429
+ {
430
+ "kind": "text",
431
+ "text": "Bäckerei Welt",
432
+ "align": "center",
433
+ "bold": true
434
+ },
435
+ {
436
+ "kind": "text",
437
+ "text": "Hauptplatz 1",
438
+ "align": "center",
439
+ "bold": false
440
+ },
441
+ {
442
+ "kind": "text",
443
+ "text": "1010 Wien",
444
+ "align": "center",
445
+ "bold": false
446
+ },
447
+ {
448
+ "kind": "text",
449
+ "text": "ATU12345678",
450
+ "align": "center",
451
+ "bold": false
452
+ },
453
+ {
454
+ "kind": "text",
455
+ "text": "+43 1 234",
456
+ "align": "center",
457
+ "bold": false
458
+ },
459
+ {
460
+ "kind": "space",
461
+ "lines": 1
462
+ },
463
+ {
464
+ "kind": "columns",
465
+ "columns": [
466
+ {
467
+ "text": "Datum:",
468
+ "width": 4,
469
+ "align": "left"
470
+ },
471
+ {
472
+ "text": "26.09.2026 10:00:00",
473
+ "width": 8,
474
+ "align": "right"
475
+ }
476
+ ]
477
+ },
478
+ {
479
+ "kind": "columns",
480
+ "columns": [
481
+ {
482
+ "text": "Kassen-ID:",
483
+ "width": 6,
484
+ "align": "left"
485
+ },
486
+ {
487
+ "text": "KECK-1",
488
+ "width": 6,
489
+ "align": "right"
490
+ }
491
+ ]
492
+ },
493
+ {
494
+ "kind": "columns",
495
+ "columns": [
496
+ {
497
+ "text": "Beleg-ID:",
498
+ "width": 6,
499
+ "align": "left"
500
+ },
501
+ {
502
+ "text": "KECK-1-ID-2",
503
+ "width": 6,
504
+ "align": "right"
505
+ }
506
+ ]
507
+ },
508
+ {
509
+ "kind": "space",
510
+ "lines": 1
511
+ },
512
+ {
513
+ "kind": "columns",
514
+ "columns": [
515
+ {
516
+ "text": "2 x Kaffee je 3,00",
517
+ "width": 7,
518
+ "align": "left"
519
+ },
520
+ {
521
+ "text": "6,00 A",
522
+ "width": 5,
523
+ "align": "right"
524
+ }
525
+ ]
526
+ },
527
+ {
528
+ "kind": "columns",
529
+ "columns": [
530
+ {
531
+ "text": "Trinkgeld Personal",
532
+ "width": 8,
533
+ "align": "left"
534
+ },
535
+ {
536
+ "text": "1,00 D",
537
+ "width": 4,
538
+ "align": "right"
539
+ }
540
+ ]
541
+ },
542
+ {
543
+ "kind": "space",
544
+ "lines": 1
545
+ },
546
+ {
547
+ "kind": "columns",
548
+ "columns": [
549
+ {
550
+ "text": "MwSt%",
551
+ "width": 3,
552
+ "align": "left"
553
+ },
554
+ {
555
+ "text": "MwSt",
556
+ "width": 4,
557
+ "align": "left"
558
+ },
559
+ {
560
+ "text": "Netto",
561
+ "width": 3,
562
+ "align": "left"
563
+ },
564
+ {
565
+ "text": "Brutto",
566
+ "width": 2,
567
+ "align": "right"
568
+ }
569
+ ]
570
+ },
571
+ {
572
+ "kind": "columns",
573
+ "columns": [
574
+ {
575
+ "text": "A 20%",
576
+ "width": 3,
577
+ "align": "left"
578
+ },
579
+ {
580
+ "text": "1,00",
581
+ "width": 4,
582
+ "align": "left"
583
+ },
584
+ {
585
+ "text": "5,00",
586
+ "width": 3,
587
+ "align": "left"
588
+ },
589
+ {
590
+ "text": "6,00",
591
+ "width": 2,
592
+ "align": "right"
593
+ }
594
+ ]
595
+ },
596
+ {
597
+ "kind": "columns",
598
+ "columns": [
599
+ {
600
+ "text": "D 0%",
601
+ "width": 3,
602
+ "align": "left"
603
+ },
604
+ {
605
+ "text": "0,00",
606
+ "width": 4,
607
+ "align": "left"
608
+ },
609
+ {
610
+ "text": "1,00",
611
+ "width": 3,
612
+ "align": "left"
613
+ },
614
+ {
615
+ "text": "1,00",
616
+ "width": 2,
617
+ "align": "right"
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ "kind": "rule",
623
+ "char": "-"
624
+ },
625
+ {
626
+ "kind": "columns",
627
+ "columns": [
628
+ {
629
+ "text": "Gesamt:",
630
+ "width": 6,
631
+ "align": "left"
632
+ },
633
+ {
634
+ "text": "7,00 €",
635
+ "width": 6,
636
+ "align": "right"
637
+ }
638
+ ]
639
+ },
640
+ {
641
+ "kind": "columns",
642
+ "columns": [
643
+ {
644
+ "text": "Zahlungsart:",
645
+ "width": 6,
646
+ "align": "left"
647
+ },
648
+ {
649
+ "text": "Kartenzahlung",
650
+ "width": 6,
651
+ "align": "right"
652
+ }
653
+ ]
654
+ },
655
+ {
656
+ "kind": "space",
657
+ "lines": 1
658
+ },
659
+ {
660
+ "kind": "qr",
661
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_6,00_0,00_0,00_1,00_0,00_girlnmCV_ABC123_6Mn4bx4N/M8=_8VaXQwBb/1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg=="
662
+ },
663
+ {
664
+ "kind": "space",
665
+ "lines": 1
666
+ },
667
+ {
668
+ "kind": "text",
669
+ "text": "Sumup Beleg",
670
+ "align": "center",
671
+ "bold": true
672
+ },
673
+ {
674
+ "kind": "columns",
675
+ "columns": [
676
+ {
677
+ "text": "Kartentyp:",
678
+ "width": 6,
679
+ "align": "left"
680
+ },
681
+ {
682
+ "text": "n/a",
683
+ "width": 6,
684
+ "align": "right"
685
+ }
686
+ ]
687
+ },
688
+ {
689
+ "kind": "columns",
690
+ "columns": [
691
+ {
692
+ "text": "Kartennummer:",
693
+ "width": 6,
694
+ "align": "left"
695
+ },
696
+ {
697
+ "text": "**** **** **** ",
698
+ "width": 6,
699
+ "align": "right"
700
+ }
701
+ ]
702
+ },
703
+ {
704
+ "kind": "columns",
705
+ "columns": [
706
+ {
707
+ "text": "Zahlungstyp:",
708
+ "width": 6,
709
+ "align": "left"
710
+ },
711
+ {
712
+ "text": "n/a",
713
+ "width": 6,
714
+ "align": "right"
715
+ }
716
+ ]
717
+ },
718
+ {
719
+ "kind": "columns",
720
+ "columns": [
721
+ {
722
+ "text": "Gesamtbetrag:",
723
+ "width": 6,
724
+ "align": "left"
725
+ },
726
+ {
727
+ "text": "-",
728
+ "width": 6,
729
+ "align": "right"
730
+ }
731
+ ]
732
+ },
733
+ {
734
+ "kind": "columns",
735
+ "columns": [
736
+ {
737
+ "text": "Transaktionscode:",
738
+ "width": 6,
739
+ "align": "left"
740
+ },
741
+ {
742
+ "text": "-",
743
+ "width": 6,
744
+ "align": "right"
745
+ }
746
+ ]
747
+ },
748
+ {
749
+ "kind": "columns",
750
+ "columns": [
751
+ {
752
+ "text": "Modus:",
753
+ "width": 6,
754
+ "align": "left"
755
+ },
756
+ {
757
+ "text": "",
758
+ "width": 6,
759
+ "align": "right"
760
+ }
761
+ ]
762
+ },
763
+ {
764
+ "kind": "space",
765
+ "lines": 1
766
+ },
767
+ {
768
+ "kind": "space",
769
+ "lines": 1
770
+ },
771
+ {
772
+ "kind": "text",
773
+ "text": "Bis bald",
774
+ "align": "center",
775
+ "bold": false
776
+ },
777
+ {
778
+ "kind": "text",
779
+ "text": "Danke",
780
+ "align": "center",
781
+ "bold": false
782
+ },
783
+ {
784
+ "kind": "space",
785
+ "lines": 1
786
+ },
787
+ {
788
+ "kind": "banner",
789
+ "text": "TESTKASSE — kein gültiger Beleg",
790
+ "tone": "warning"
791
+ }
792
+ ]
793
+ }
794
+ }
795
+ }
796
+ },
797
+ {
798
+ "name": "sale_cash_tendered",
799
+ "endpoint": "createReceipt",
800
+ "path": "/v3/createReceipt",
801
+ "params": {
802
+ "receiptType": "standard",
803
+ "items": [
804
+ {
805
+ "name": "Semmel",
806
+ "amount": 4,
807
+ "priceOneCents": 79,
808
+ "vat": 10
809
+ }
810
+ ],
811
+ "payments": [
812
+ {
813
+ "method": "cash",
814
+ "amountCents": 316,
815
+ "tenderedCents": 500
816
+ }
817
+ ]
818
+ },
819
+ "httpStatus": 200,
820
+ "headers": {
821
+ "Kasseneck-Api-Version": "v3",
822
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
823
+ },
824
+ "response": {
825
+ "status": "success",
826
+ "message": "",
827
+ "data": {
828
+ "is_small_business": false,
829
+ "company": "Bäckerei Welt",
830
+ "phone": "+43 1 234",
831
+ "street": "Hauptplatz 1",
832
+ "zip": "1010",
833
+ "city": "Wien",
834
+ "footer1": "Danke",
835
+ "footer2": null,
836
+ "footer3": null,
837
+ "footer4": null,
838
+ "logo_url": null,
839
+ "kreiseck_logo": false,
840
+ "thanks_message": "Bis bald",
841
+ "receipt": {
842
+ "counter": 3,
843
+ "receiptType": "standard",
844
+ "zeroKind": null,
845
+ "receiptId": "KECK-1-ID-3",
846
+ "cashregisterId": "KECK-1",
847
+ "timeStamp": "2026-09-26T10:00:00",
848
+ "vouchers": [],
849
+ "paymentMethod": "cash",
850
+ "customerDetails": null,
851
+ "legalMessage": null,
852
+ "customProjectId": null,
853
+ "creditCardProvider": null,
854
+ "amountRateStandard": 0,
855
+ "amountRateReduced1": 3.16,
856
+ "amountRateReduced2": 0,
857
+ "amountRateZero": 0,
858
+ "amountRateSpecial": 0,
859
+ "turnoverCounterAES256ICM": "izsnQcNu1xpqCzEZFG8+tg==",
860
+ "signaturePreviousReceipt": "HhOPJTRRalc=",
861
+ "certificateSerialNumber": "ABC123",
862
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000a8e47982",
863
+ "payments": [
864
+ {
865
+ "id": "p1",
866
+ "method": "cash",
867
+ "amountCents": 316,
868
+ "tenderedCents": 500,
869
+ "changeCents": 184
870
+ }
871
+ ],
872
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtM18yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMywxNl8wLDAwXzAsMDBfMCwwMF9penNuUWNOdV9BQkMxMjNfSGhPUEpUUlJhbGM9.yWN78jiyeGFxKsTzPGv0CyrzcHFwW_Zmc5Sl3r7FyllBXKRXQf_qeJngnrwz817GNybQJuT9ntJoNCP1pxFoTw",
873
+ "signatureSuccess": true,
874
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-3_2026-09-26T10:00:00_0,00_3,16_0,00_0,00_0,00_izsnQcNu_ABC123_HhOPJTRRalc=_yWN78jiyeGFxKsTzPGv0CyrzcHFwW/Zmc5Sl3r7FyllBXKRXQf/qeJngnrwz817GNybQJuT9ntJoNCP1pxFoTw==",
875
+ "headerVersionId": "auto1",
876
+ "layoutRuleset": 2,
877
+ "items": [
878
+ {
879
+ "name": "Semmel",
880
+ "amount": 4,
881
+ "priceOneCents": 79,
882
+ "vat": 10,
883
+ "priceOne": 0.79
884
+ }
885
+ ]
886
+ },
887
+ "taxNumber": "12-345/6789",
888
+ "vatId": "ATU12345678",
889
+ "headerVersionId": "auto1",
890
+ "registrationInfo": null,
891
+ "testCashregister": true,
892
+ "testSignature": false,
893
+ "logo_scale": "M",
894
+ "layout": {
895
+ "paperSize": "mm80",
896
+ "ruleset": 2,
897
+ "lines": [
898
+ {
899
+ "kind": "banner",
900
+ "text": "TESTKASSE — kein gültiger Beleg",
901
+ "tone": "warning"
902
+ },
903
+ {
904
+ "kind": "text",
905
+ "text": "Bäckerei Welt",
906
+ "align": "center",
907
+ "bold": true
908
+ },
909
+ {
910
+ "kind": "text",
911
+ "text": "Hauptplatz 1",
912
+ "align": "center",
913
+ "bold": false
914
+ },
915
+ {
916
+ "kind": "text",
917
+ "text": "1010 Wien",
918
+ "align": "center",
919
+ "bold": false
920
+ },
921
+ {
922
+ "kind": "text",
923
+ "text": "ATU12345678",
924
+ "align": "center",
925
+ "bold": false
926
+ },
927
+ {
928
+ "kind": "text",
929
+ "text": "+43 1 234",
930
+ "align": "center",
931
+ "bold": false
932
+ },
933
+ {
934
+ "kind": "space",
935
+ "lines": 1
936
+ },
937
+ {
938
+ "kind": "columns",
939
+ "columns": [
940
+ {
941
+ "text": "Datum:",
942
+ "width": 4,
943
+ "align": "left"
944
+ },
945
+ {
946
+ "text": "26.09.2026 10:00:00",
947
+ "width": 8,
948
+ "align": "right"
949
+ }
950
+ ]
951
+ },
952
+ {
953
+ "kind": "columns",
954
+ "columns": [
955
+ {
956
+ "text": "Kassen-ID:",
957
+ "width": 6,
958
+ "align": "left"
959
+ },
960
+ {
961
+ "text": "KECK-1",
962
+ "width": 6,
963
+ "align": "right"
964
+ }
965
+ ]
966
+ },
967
+ {
968
+ "kind": "columns",
969
+ "columns": [
970
+ {
971
+ "text": "Beleg-ID:",
972
+ "width": 6,
973
+ "align": "left"
974
+ },
975
+ {
976
+ "text": "KECK-1-ID-3",
977
+ "width": 6,
978
+ "align": "right"
979
+ }
980
+ ]
981
+ },
982
+ {
983
+ "kind": "space",
984
+ "lines": 1
985
+ },
986
+ {
987
+ "kind": "columns",
988
+ "columns": [
989
+ {
990
+ "text": "4 x Semmel je 0,79",
991
+ "width": 7,
992
+ "align": "left"
993
+ },
994
+ {
995
+ "text": "3,16 B",
996
+ "width": 5,
997
+ "align": "right"
998
+ }
999
+ ]
1000
+ },
1001
+ {
1002
+ "kind": "space",
1003
+ "lines": 1
1004
+ },
1005
+ {
1006
+ "kind": "columns",
1007
+ "columns": [
1008
+ {
1009
+ "text": "MwSt%",
1010
+ "width": 3,
1011
+ "align": "left"
1012
+ },
1013
+ {
1014
+ "text": "MwSt",
1015
+ "width": 4,
1016
+ "align": "left"
1017
+ },
1018
+ {
1019
+ "text": "Netto",
1020
+ "width": 3,
1021
+ "align": "left"
1022
+ },
1023
+ {
1024
+ "text": "Brutto",
1025
+ "width": 2,
1026
+ "align": "right"
1027
+ }
1028
+ ]
1029
+ },
1030
+ {
1031
+ "kind": "columns",
1032
+ "columns": [
1033
+ {
1034
+ "text": "B 10%",
1035
+ "width": 3,
1036
+ "align": "left"
1037
+ },
1038
+ {
1039
+ "text": "0,29",
1040
+ "width": 4,
1041
+ "align": "left"
1042
+ },
1043
+ {
1044
+ "text": "2,87",
1045
+ "width": 3,
1046
+ "align": "left"
1047
+ },
1048
+ {
1049
+ "text": "3,16",
1050
+ "width": 2,
1051
+ "align": "right"
1052
+ }
1053
+ ]
1054
+ },
1055
+ {
1056
+ "kind": "rule",
1057
+ "char": "-"
1058
+ },
1059
+ {
1060
+ "kind": "columns",
1061
+ "columns": [
1062
+ {
1063
+ "text": "Gesamt:",
1064
+ "width": 6,
1065
+ "align": "left"
1066
+ },
1067
+ {
1068
+ "text": "3,16 €",
1069
+ "width": 6,
1070
+ "align": "right"
1071
+ }
1072
+ ]
1073
+ },
1074
+ {
1075
+ "kind": "columns",
1076
+ "columns": [
1077
+ {
1078
+ "text": "Zahlungsart:",
1079
+ "width": 6,
1080
+ "align": "left"
1081
+ },
1082
+ {
1083
+ "text": "Barzahlung",
1084
+ "width": 6,
1085
+ "align": "right"
1086
+ }
1087
+ ]
1088
+ },
1089
+ {
1090
+ "kind": "columns",
1091
+ "columns": [
1092
+ {
1093
+ "text": " Gegeben:",
1094
+ "width": 8,
1095
+ "align": "left"
1096
+ },
1097
+ {
1098
+ "text": "5,00 €",
1099
+ "width": 4,
1100
+ "align": "right"
1101
+ }
1102
+ ]
1103
+ },
1104
+ {
1105
+ "kind": "columns",
1106
+ "columns": [
1107
+ {
1108
+ "text": " Rückgeld:",
1109
+ "width": 8,
1110
+ "align": "left"
1111
+ },
1112
+ {
1113
+ "text": "1,84 €",
1114
+ "width": 4,
1115
+ "align": "right"
1116
+ }
1117
+ ]
1118
+ },
1119
+ {
1120
+ "kind": "space",
1121
+ "lines": 1
1122
+ },
1123
+ {
1124
+ "kind": "qr",
1125
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-3_2026-09-26T10:00:00_0,00_3,16_0,00_0,00_0,00_izsnQcNu_ABC123_HhOPJTRRalc=_yWN78jiyeGFxKsTzPGv0CyrzcHFwW/Zmc5Sl3r7FyllBXKRXQf/qeJngnrwz817GNybQJuT9ntJoNCP1pxFoTw=="
1126
+ },
1127
+ {
1128
+ "kind": "space",
1129
+ "lines": 1
1130
+ },
1131
+ {
1132
+ "kind": "space",
1133
+ "lines": 1
1134
+ },
1135
+ {
1136
+ "kind": "text",
1137
+ "text": "Bis bald",
1138
+ "align": "center",
1139
+ "bold": false
1140
+ },
1141
+ {
1142
+ "kind": "text",
1143
+ "text": "Danke",
1144
+ "align": "center",
1145
+ "bold": false
1146
+ },
1147
+ {
1148
+ "kind": "space",
1149
+ "lines": 1
1150
+ },
1151
+ {
1152
+ "kind": "banner",
1153
+ "text": "TESTKASSE — kein gültiger Beleg",
1154
+ "tone": "warning"
1155
+ }
1156
+ ]
1157
+ }
1158
+ }
1159
+ }
1160
+ },
1161
+ {
1162
+ "name": "sale_mixed_payments",
1163
+ "endpoint": "createReceipt",
1164
+ "path": "/v3/createReceipt",
1165
+ "params": {
1166
+ "receiptType": "standard",
1167
+ "items": [
1168
+ {
1169
+ "name": "Torte",
1170
+ "amount": 1,
1171
+ "priceOneCents": 700,
1172
+ "vat": 10
1173
+ }
1174
+ ],
1175
+ "payments": [
1176
+ {
1177
+ "method": "cash",
1178
+ "amountCents": 200
1179
+ },
1180
+ {
1181
+ "method": "creditCard",
1182
+ "amountCents": 500,
1183
+ "provider": "sumup",
1184
+ "providerPaymentId": "tx-4712",
1185
+ "providerData": {
1186
+ "cardLast4": "4242",
1187
+ "terminal": "T1"
1188
+ }
1189
+ }
1190
+ ]
1191
+ },
1192
+ "httpStatus": 200,
1193
+ "headers": {
1194
+ "Kasseneck-Api-Version": "v3",
1195
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
1196
+ },
1197
+ "response": {
1198
+ "status": "success",
1199
+ "message": "",
1200
+ "data": {
1201
+ "is_small_business": false,
1202
+ "company": "Bäckerei Welt",
1203
+ "phone": "+43 1 234",
1204
+ "street": "Hauptplatz 1",
1205
+ "zip": "1010",
1206
+ "city": "Wien",
1207
+ "footer1": "Danke",
1208
+ "footer2": null,
1209
+ "footer3": null,
1210
+ "footer4": null,
1211
+ "logo_url": null,
1212
+ "kreiseck_logo": false,
1213
+ "thanks_message": "Bis bald",
1214
+ "receipt": {
1215
+ "counter": 4,
1216
+ "receiptType": "standard",
1217
+ "zeroKind": null,
1218
+ "receiptId": "KECK-1-ID-4",
1219
+ "cashregisterId": "KECK-1",
1220
+ "timeStamp": "2026-09-26T10:00:00",
1221
+ "vouchers": [],
1222
+ "paymentMethod": "mixed",
1223
+ "customerDetails": null,
1224
+ "legalMessage": null,
1225
+ "customProjectId": null,
1226
+ "creditCardProvider": null,
1227
+ "amountRateStandard": 0,
1228
+ "amountRateReduced1": 7,
1229
+ "amountRateReduced2": 0,
1230
+ "amountRateZero": 0,
1231
+ "amountRateSpecial": 0,
1232
+ "turnoverCounterAES256ICM": "V2ekav20znVxKgmTPRuabQ==",
1233
+ "signaturePreviousReceipt": "NMOAojrHQmc=",
1234
+ "certificateSerialNumber": "ABC123",
1235
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000fd4f30a9",
1236
+ "payments": [
1237
+ {
1238
+ "id": "p1",
1239
+ "method": "cash",
1240
+ "amountCents": 200
1241
+ },
1242
+ {
1243
+ "id": "p2",
1244
+ "method": "creditCard",
1245
+ "amountCents": 500,
1246
+ "provider": "sumup"
1247
+ }
1248
+ ],
1249
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNF8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfNywwMF8wLDAwXzAsMDBfMCwwMF9WMmVrYXYyMF9BQkMxMjNfTk1PQW9qckhRbWM9.-OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA-ewViGfUdVOhpPn0tpqzrp30x4B1j_yNJ3gBjVOeSNDJolfdVw",
1250
+ "signatureSuccess": true,
1251
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_0,00_7,00_0,00_0,00_0,00_V2ekav20_ABC123_NMOAojrHQmc=_+OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA+ewViGfUdVOhpPn0tpqzrp30x4B1j/yNJ3gBjVOeSNDJolfdVw==",
1252
+ "headerVersionId": "auto1",
1253
+ "layoutRuleset": 2,
1254
+ "items": [
1255
+ {
1256
+ "name": "Torte",
1257
+ "amount": 1,
1258
+ "priceOneCents": 700,
1259
+ "vat": 10,
1260
+ "priceOne": 7
1261
+ }
1262
+ ]
1263
+ },
1264
+ "taxNumber": "12-345/6789",
1265
+ "vatId": "ATU12345678",
1266
+ "headerVersionId": "auto1",
1267
+ "registrationInfo": null,
1268
+ "testCashregister": true,
1269
+ "testSignature": false,
1270
+ "logo_scale": "M",
1271
+ "layout": {
1272
+ "paperSize": "mm80",
1273
+ "ruleset": 2,
1274
+ "lines": [
1275
+ {
1276
+ "kind": "banner",
1277
+ "text": "TESTKASSE — kein gültiger Beleg",
1278
+ "tone": "warning"
1279
+ },
1280
+ {
1281
+ "kind": "text",
1282
+ "text": "Bäckerei Welt",
1283
+ "align": "center",
1284
+ "bold": true
1285
+ },
1286
+ {
1287
+ "kind": "text",
1288
+ "text": "Hauptplatz 1",
1289
+ "align": "center",
1290
+ "bold": false
1291
+ },
1292
+ {
1293
+ "kind": "text",
1294
+ "text": "1010 Wien",
1295
+ "align": "center",
1296
+ "bold": false
1297
+ },
1298
+ {
1299
+ "kind": "text",
1300
+ "text": "ATU12345678",
1301
+ "align": "center",
1302
+ "bold": false
1303
+ },
1304
+ {
1305
+ "kind": "text",
1306
+ "text": "+43 1 234",
1307
+ "align": "center",
1308
+ "bold": false
1309
+ },
1310
+ {
1311
+ "kind": "space",
1312
+ "lines": 1
1313
+ },
1314
+ {
1315
+ "kind": "columns",
1316
+ "columns": [
1317
+ {
1318
+ "text": "Datum:",
1319
+ "width": 4,
1320
+ "align": "left"
1321
+ },
1322
+ {
1323
+ "text": "26.09.2026 10:00:00",
1324
+ "width": 8,
1325
+ "align": "right"
1326
+ }
1327
+ ]
1328
+ },
1329
+ {
1330
+ "kind": "columns",
1331
+ "columns": [
1332
+ {
1333
+ "text": "Kassen-ID:",
1334
+ "width": 6,
1335
+ "align": "left"
1336
+ },
1337
+ {
1338
+ "text": "KECK-1",
1339
+ "width": 6,
1340
+ "align": "right"
1341
+ }
1342
+ ]
1343
+ },
1344
+ {
1345
+ "kind": "columns",
1346
+ "columns": [
1347
+ {
1348
+ "text": "Beleg-ID:",
1349
+ "width": 6,
1350
+ "align": "left"
1351
+ },
1352
+ {
1353
+ "text": "KECK-1-ID-4",
1354
+ "width": 6,
1355
+ "align": "right"
1356
+ }
1357
+ ]
1358
+ },
1359
+ {
1360
+ "kind": "space",
1361
+ "lines": 1
1362
+ },
1363
+ {
1364
+ "kind": "columns",
1365
+ "columns": [
1366
+ {
1367
+ "text": "1 x Torte",
1368
+ "width": 7,
1369
+ "align": "left"
1370
+ },
1371
+ {
1372
+ "text": "7,00 B",
1373
+ "width": 5,
1374
+ "align": "right"
1375
+ }
1376
+ ]
1377
+ },
1378
+ {
1379
+ "kind": "space",
1380
+ "lines": 1
1381
+ },
1382
+ {
1383
+ "kind": "columns",
1384
+ "columns": [
1385
+ {
1386
+ "text": "MwSt%",
1387
+ "width": 3,
1388
+ "align": "left"
1389
+ },
1390
+ {
1391
+ "text": "MwSt",
1392
+ "width": 4,
1393
+ "align": "left"
1394
+ },
1395
+ {
1396
+ "text": "Netto",
1397
+ "width": 3,
1398
+ "align": "left"
1399
+ },
1400
+ {
1401
+ "text": "Brutto",
1402
+ "width": 2,
1403
+ "align": "right"
1404
+ }
1405
+ ]
1406
+ },
1407
+ {
1408
+ "kind": "columns",
1409
+ "columns": [
1410
+ {
1411
+ "text": "B 10%",
1412
+ "width": 3,
1413
+ "align": "left"
1414
+ },
1415
+ {
1416
+ "text": "0,64",
1417
+ "width": 4,
1418
+ "align": "left"
1419
+ },
1420
+ {
1421
+ "text": "6,36",
1422
+ "width": 3,
1423
+ "align": "left"
1424
+ },
1425
+ {
1426
+ "text": "7,00",
1427
+ "width": 2,
1428
+ "align": "right"
1429
+ }
1430
+ ]
1431
+ },
1432
+ {
1433
+ "kind": "rule",
1434
+ "char": "-"
1435
+ },
1436
+ {
1437
+ "kind": "columns",
1438
+ "columns": [
1439
+ {
1440
+ "text": "Gesamt:",
1441
+ "width": 6,
1442
+ "align": "left"
1443
+ },
1444
+ {
1445
+ "text": "7,00 €",
1446
+ "width": 6,
1447
+ "align": "right"
1448
+ }
1449
+ ]
1450
+ },
1451
+ {
1452
+ "kind": "text",
1453
+ "text": "Zahlungsarten:",
1454
+ "align": "left",
1455
+ "bold": false
1456
+ },
1457
+ {
1458
+ "kind": "columns",
1459
+ "columns": [
1460
+ {
1461
+ "text": "1. Barzahlung",
1462
+ "width": 8,
1463
+ "align": "left"
1464
+ },
1465
+ {
1466
+ "text": "2,00 €",
1467
+ "width": 4,
1468
+ "align": "right"
1469
+ }
1470
+ ]
1471
+ },
1472
+ {
1473
+ "kind": "columns",
1474
+ "columns": [
1475
+ {
1476
+ "text": "2. Kartenzahlung",
1477
+ "width": 8,
1478
+ "align": "left"
1479
+ },
1480
+ {
1481
+ "text": "5,00 €",
1482
+ "width": 4,
1483
+ "align": "right"
1484
+ }
1485
+ ]
1486
+ },
1487
+ {
1488
+ "kind": "space",
1489
+ "lines": 1
1490
+ },
1491
+ {
1492
+ "kind": "qr",
1493
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_0,00_7,00_0,00_0,00_0,00_V2ekav20_ABC123_NMOAojrHQmc=_+OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA+ewViGfUdVOhpPn0tpqzrp30x4B1j/yNJ3gBjVOeSNDJolfdVw=="
1494
+ },
1495
+ {
1496
+ "kind": "space",
1497
+ "lines": 1
1498
+ },
1499
+ {
1500
+ "kind": "text",
1501
+ "text": "2. Kartenzahlung",
1502
+ "align": "center",
1503
+ "bold": false
1504
+ },
1505
+ {
1506
+ "kind": "text",
1507
+ "text": "Sumup Beleg",
1508
+ "align": "center",
1509
+ "bold": true
1510
+ },
1511
+ {
1512
+ "kind": "columns",
1513
+ "columns": [
1514
+ {
1515
+ "text": "Kartentyp:",
1516
+ "width": 6,
1517
+ "align": "left"
1518
+ },
1519
+ {
1520
+ "text": "n/a",
1521
+ "width": 6,
1522
+ "align": "right"
1523
+ }
1524
+ ]
1525
+ },
1526
+ {
1527
+ "kind": "columns",
1528
+ "columns": [
1529
+ {
1530
+ "text": "Kartennummer:",
1531
+ "width": 6,
1532
+ "align": "left"
1533
+ },
1534
+ {
1535
+ "text": "**** **** **** ",
1536
+ "width": 6,
1537
+ "align": "right"
1538
+ }
1539
+ ]
1540
+ },
1541
+ {
1542
+ "kind": "columns",
1543
+ "columns": [
1544
+ {
1545
+ "text": "Zahlungstyp:",
1546
+ "width": 6,
1547
+ "align": "left"
1548
+ },
1549
+ {
1550
+ "text": "n/a",
1551
+ "width": 6,
1552
+ "align": "right"
1553
+ }
1554
+ ]
1555
+ },
1556
+ {
1557
+ "kind": "columns",
1558
+ "columns": [
1559
+ {
1560
+ "text": "Gesamtbetrag:",
1561
+ "width": 6,
1562
+ "align": "left"
1563
+ },
1564
+ {
1565
+ "text": "-",
1566
+ "width": 6,
1567
+ "align": "right"
1568
+ }
1569
+ ]
1570
+ },
1571
+ {
1572
+ "kind": "columns",
1573
+ "columns": [
1574
+ {
1575
+ "text": "Transaktionscode:",
1576
+ "width": 6,
1577
+ "align": "left"
1578
+ },
1579
+ {
1580
+ "text": "-",
1581
+ "width": 6,
1582
+ "align": "right"
1583
+ }
1584
+ ]
1585
+ },
1586
+ {
1587
+ "kind": "columns",
1588
+ "columns": [
1589
+ {
1590
+ "text": "Modus:",
1591
+ "width": 6,
1592
+ "align": "left"
1593
+ },
1594
+ {
1595
+ "text": "",
1596
+ "width": 6,
1597
+ "align": "right"
1598
+ }
1599
+ ]
1600
+ },
1601
+ {
1602
+ "kind": "space",
1603
+ "lines": 1
1604
+ },
1605
+ {
1606
+ "kind": "space",
1607
+ "lines": 1
1608
+ },
1609
+ {
1610
+ "kind": "text",
1611
+ "text": "Bis bald",
1612
+ "align": "center",
1613
+ "bold": false
1614
+ },
1615
+ {
1616
+ "kind": "text",
1617
+ "text": "Danke",
1618
+ "align": "center",
1619
+ "bold": false
1620
+ },
1621
+ {
1622
+ "kind": "space",
1623
+ "lines": 1
1624
+ },
1625
+ {
1626
+ "kind": "banner",
1627
+ "text": "TESTKASSE — kein gültiger Beleg",
1628
+ "tone": "warning"
1629
+ }
1630
+ ]
1631
+ }
1632
+ }
1633
+ }
1634
+ },
1635
+ {
1636
+ "name": "sale_v2_items_value_voucher",
1637
+ "endpoint": "createReceipt",
1638
+ "path": "/v3/createReceipt",
1639
+ "params": {
1640
+ "receiptType": "standard",
1641
+ "items": [
1642
+ {
1643
+ "name": "Tee",
1644
+ "quantity": 3,
1645
+ "unitPriceCents": 290,
1646
+ "vatRate": 20
1647
+ }
1648
+ ],
1649
+ "vouchers": [
1650
+ {
1651
+ "action": "redeem",
1652
+ "type": "value",
1653
+ "valueCents": 500,
1654
+ "code": "WG-1"
1655
+ }
1656
+ ],
1657
+ "payments": [
1658
+ {
1659
+ "method": "cash",
1660
+ "amountCents": 370
1661
+ }
1662
+ ]
1663
+ },
1664
+ "httpStatus": 200,
1665
+ "headers": {
1666
+ "Kasseneck-Api-Version": "v3",
1667
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
1668
+ },
1669
+ "response": {
1670
+ "status": "success",
1671
+ "message": "",
1672
+ "data": {
1673
+ "is_small_business": false,
1674
+ "company": "Bäckerei Welt",
1675
+ "phone": "+43 1 234",
1676
+ "street": "Hauptplatz 1",
1677
+ "zip": "1010",
1678
+ "city": "Wien",
1679
+ "footer1": "Danke",
1680
+ "footer2": null,
1681
+ "footer3": null,
1682
+ "footer4": null,
1683
+ "logo_url": null,
1684
+ "kreiseck_logo": false,
1685
+ "thanks_message": "Bis bald",
1686
+ "receipt": {
1687
+ "counter": 5,
1688
+ "receiptType": "standard",
1689
+ "zeroKind": null,
1690
+ "receiptId": "KECK-1-ID-5",
1691
+ "cashregisterId": "KECK-1",
1692
+ "timeStamp": "2026-09-26T10:00:00",
1693
+ "vouchers": [
1694
+ {
1695
+ "action": "redeem",
1696
+ "type": "value",
1697
+ "valueCents": 500,
1698
+ "code": "WG-1",
1699
+ "value": 5,
1700
+ "name": "Wertgutschein"
1701
+ }
1702
+ ],
1703
+ "paymentMethod": "cash",
1704
+ "customerDetails": null,
1705
+ "legalMessage": null,
1706
+ "customProjectId": null,
1707
+ "creditCardProvider": null,
1708
+ "amountRateStandard": 8.7,
1709
+ "amountRateReduced1": 0,
1710
+ "amountRateReduced2": 0,
1711
+ "amountRateZero": 0,
1712
+ "amountRateSpecial": 0,
1713
+ "turnoverCounterAES256ICM": "X1ROZbuWXJxg0xCA9eb0Tw==",
1714
+ "signaturePreviousReceipt": "3gYQ4xAXwOM=",
1715
+ "certificateSerialNumber": "ABC123",
1716
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000081e09afe",
1717
+ "payments": [
1718
+ {
1719
+ "id": "p1",
1720
+ "method": "cash",
1721
+ "amountCents": 370
1722
+ }
1723
+ ],
1724
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNV8yMDI2LTA5LTI2VDEwOjAwOjAwXzgsNzBfMCwwMF8wLDAwXzAsMDBfMCwwMF9YMVJPWmJ1V19BQkMxMjNfM2dZUTR4QVh3T009.LbacnDlwUMarI6Qc5N82XpI0zEvGbwD_LdtZxta-Rec1hvVktipdgcKQwGWziFVNPGHDBVOwM_j9p7GtfljsTw",
1725
+ "signatureSuccess": true,
1726
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-5_2026-09-26T10:00:00_8,70_0,00_0,00_0,00_0,00_X1ROZbuW_ABC123_3gYQ4xAXwOM=_LbacnDlwUMarI6Qc5N82XpI0zEvGbwD/LdtZxta+Rec1hvVktipdgcKQwGWziFVNPGHDBVOwM/j9p7GtfljsTw==",
1727
+ "headerVersionId": "auto1",
1728
+ "layoutRuleset": 2,
1729
+ "items": [
1730
+ {
1731
+ "name": "Tee",
1732
+ "quantity": 3,
1733
+ "unitPriceCents": 290,
1734
+ "vatRate": 20,
1735
+ "amount": 3,
1736
+ "vat": 20,
1737
+ "priceOneCents": 290,
1738
+ "priceOne": 2.9
1739
+ }
1740
+ ]
1741
+ },
1742
+ "taxNumber": "12-345/6789",
1743
+ "vatId": "ATU12345678",
1744
+ "headerVersionId": "auto1",
1745
+ "registrationInfo": null,
1746
+ "testCashregister": true,
1747
+ "testSignature": false,
1748
+ "logo_scale": "M",
1749
+ "layout": {
1750
+ "paperSize": "mm80",
1751
+ "ruleset": 2,
1752
+ "lines": [
1753
+ {
1754
+ "kind": "banner",
1755
+ "text": "TESTKASSE — kein gültiger Beleg",
1756
+ "tone": "warning"
1757
+ },
1758
+ {
1759
+ "kind": "text",
1760
+ "text": "Bäckerei Welt",
1761
+ "align": "center",
1762
+ "bold": true
1763
+ },
1764
+ {
1765
+ "kind": "text",
1766
+ "text": "Hauptplatz 1",
1767
+ "align": "center",
1768
+ "bold": false
1769
+ },
1770
+ {
1771
+ "kind": "text",
1772
+ "text": "1010 Wien",
1773
+ "align": "center",
1774
+ "bold": false
1775
+ },
1776
+ {
1777
+ "kind": "text",
1778
+ "text": "ATU12345678",
1779
+ "align": "center",
1780
+ "bold": false
1781
+ },
1782
+ {
1783
+ "kind": "text",
1784
+ "text": "+43 1 234",
1785
+ "align": "center",
1786
+ "bold": false
1787
+ },
1788
+ {
1789
+ "kind": "space",
1790
+ "lines": 1
1791
+ },
1792
+ {
1793
+ "kind": "columns",
1794
+ "columns": [
1795
+ {
1796
+ "text": "Datum:",
1797
+ "width": 4,
1798
+ "align": "left"
1799
+ },
1800
+ {
1801
+ "text": "26.09.2026 10:00:00",
1802
+ "width": 8,
1803
+ "align": "right"
1804
+ }
1805
+ ]
1806
+ },
1807
+ {
1808
+ "kind": "columns",
1809
+ "columns": [
1810
+ {
1811
+ "text": "Kassen-ID:",
1812
+ "width": 6,
1813
+ "align": "left"
1814
+ },
1815
+ {
1816
+ "text": "KECK-1",
1817
+ "width": 6,
1818
+ "align": "right"
1819
+ }
1820
+ ]
1821
+ },
1822
+ {
1823
+ "kind": "columns",
1824
+ "columns": [
1825
+ {
1826
+ "text": "Beleg-ID:",
1827
+ "width": 6,
1828
+ "align": "left"
1829
+ },
1830
+ {
1831
+ "text": "KECK-1-ID-5",
1832
+ "width": 6,
1833
+ "align": "right"
1834
+ }
1835
+ ]
1836
+ },
1837
+ {
1838
+ "kind": "space",
1839
+ "lines": 1
1840
+ },
1841
+ {
1842
+ "kind": "columns",
1843
+ "columns": [
1844
+ {
1845
+ "text": "3 x Tee je 2,90",
1846
+ "width": 7,
1847
+ "align": "left"
1848
+ },
1849
+ {
1850
+ "text": "8,70 A",
1851
+ "width": 5,
1852
+ "align": "right"
1853
+ }
1854
+ ]
1855
+ },
1856
+ {
1857
+ "kind": "space",
1858
+ "lines": 1
1859
+ },
1860
+ {
1861
+ "kind": "columns",
1862
+ "columns": [
1863
+ {
1864
+ "text": "MwSt%",
1865
+ "width": 3,
1866
+ "align": "left"
1867
+ },
1868
+ {
1869
+ "text": "MwSt",
1870
+ "width": 4,
1871
+ "align": "left"
1872
+ },
1873
+ {
1874
+ "text": "Netto",
1875
+ "width": 3,
1876
+ "align": "left"
1877
+ },
1878
+ {
1879
+ "text": "Brutto",
1880
+ "width": 2,
1881
+ "align": "right"
1882
+ }
1883
+ ]
1884
+ },
1885
+ {
1886
+ "kind": "columns",
1887
+ "columns": [
1888
+ {
1889
+ "text": "A 20%",
1890
+ "width": 3,
1891
+ "align": "left"
1892
+ },
1893
+ {
1894
+ "text": "1,45",
1895
+ "width": 4,
1896
+ "align": "left"
1897
+ },
1898
+ {
1899
+ "text": "7,25",
1900
+ "width": 3,
1901
+ "align": "left"
1902
+ },
1903
+ {
1904
+ "text": "8,70",
1905
+ "width": 2,
1906
+ "align": "right"
1907
+ }
1908
+ ]
1909
+ },
1910
+ {
1911
+ "kind": "rule",
1912
+ "char": "-"
1913
+ },
1914
+ {
1915
+ "kind": "columns",
1916
+ "columns": [
1917
+ {
1918
+ "text": "Zwischensumme",
1919
+ "width": 6,
1920
+ "align": "left"
1921
+ },
1922
+ {
1923
+ "text": "8,70 €",
1924
+ "width": 6,
1925
+ "align": "right"
1926
+ }
1927
+ ]
1928
+ },
1929
+ {
1930
+ "kind": "columns",
1931
+ "columns": [
1932
+ {
1933
+ "text": "Wertgutschein",
1934
+ "width": 8,
1935
+ "align": "left"
1936
+ },
1937
+ {
1938
+ "text": "-5,00 €",
1939
+ "width": 4,
1940
+ "align": "right"
1941
+ }
1942
+ ]
1943
+ },
1944
+ {
1945
+ "kind": "rule",
1946
+ "char": "-"
1947
+ },
1948
+ {
1949
+ "kind": "columns",
1950
+ "columns": [
1951
+ {
1952
+ "text": "Gesamt:",
1953
+ "width": 6,
1954
+ "align": "left"
1955
+ },
1956
+ {
1957
+ "text": "3,70 €",
1958
+ "width": 6,
1959
+ "align": "right"
1960
+ }
1961
+ ]
1962
+ },
1963
+ {
1964
+ "kind": "columns",
1965
+ "columns": [
1966
+ {
1967
+ "text": "Zahlungsart:",
1968
+ "width": 6,
1969
+ "align": "left"
1970
+ },
1971
+ {
1972
+ "text": "Barzahlung",
1973
+ "width": 6,
1974
+ "align": "right"
1975
+ }
1976
+ ]
1977
+ },
1978
+ {
1979
+ "kind": "space",
1980
+ "lines": 1
1981
+ },
1982
+ {
1983
+ "kind": "qr",
1984
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-5_2026-09-26T10:00:00_8,70_0,00_0,00_0,00_0,00_X1ROZbuW_ABC123_3gYQ4xAXwOM=_LbacnDlwUMarI6Qc5N82XpI0zEvGbwD/LdtZxta+Rec1hvVktipdgcKQwGWziFVNPGHDBVOwM/j9p7GtfljsTw=="
1985
+ },
1986
+ {
1987
+ "kind": "space",
1988
+ "lines": 1
1989
+ },
1990
+ {
1991
+ "kind": "space",
1992
+ "lines": 1
1993
+ },
1994
+ {
1995
+ "kind": "text",
1996
+ "text": "Bis bald",
1997
+ "align": "center",
1998
+ "bold": false
1999
+ },
2000
+ {
2001
+ "kind": "text",
2002
+ "text": "Danke",
2003
+ "align": "center",
2004
+ "bold": false
2005
+ },
2006
+ {
2007
+ "kind": "space",
2008
+ "lines": 1
2009
+ },
2010
+ {
2011
+ "kind": "banner",
2012
+ "text": "TESTKASSE — kein gültiger Beleg",
2013
+ "tone": "warning"
2014
+ }
2015
+ ]
2016
+ }
2017
+ }
2018
+ }
2019
+ },
2020
+ {
2021
+ "name": "zero_receipt",
2022
+ "endpoint": "createReceipt",
2023
+ "path": "/v3/createReceipt",
2024
+ "params": {
2025
+ "receiptType": "zero"
2026
+ },
2027
+ "httpStatus": 200,
2028
+ "headers": {
2029
+ "Kasseneck-Api-Version": "v3",
2030
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2031
+ },
2032
+ "response": {
2033
+ "status": "success",
2034
+ "message": "",
2035
+ "data": {
2036
+ "is_small_business": false,
2037
+ "company": "Bäckerei Welt",
2038
+ "phone": "+43 1 234",
2039
+ "street": "Hauptplatz 1",
2040
+ "zip": "1010",
2041
+ "city": "Wien",
2042
+ "footer1": "Danke",
2043
+ "footer2": null,
2044
+ "footer3": null,
2045
+ "footer4": null,
2046
+ "logo_url": null,
2047
+ "kreiseck_logo": false,
2048
+ "thanks_message": "Bis bald",
2049
+ "receipt": {
2050
+ "counter": 6,
2051
+ "receiptType": "zero",
2052
+ "zeroKind": "manual",
2053
+ "receiptId": "KECK-1-ID-6",
2054
+ "cashregisterId": "KECK-1",
2055
+ "timeStamp": "2026-09-26T10:00:00",
2056
+ "vouchers": [],
2057
+ "paymentMethod": "cash",
2058
+ "customerDetails": null,
2059
+ "legalMessage": null,
2060
+ "customProjectId": null,
2061
+ "creditCardProvider": null,
2062
+ "amountRateStandard": 0,
2063
+ "amountRateReduced1": 0,
2064
+ "amountRateReduced2": 0,
2065
+ "amountRateZero": 0,
2066
+ "amountRateSpecial": 0,
2067
+ "turnoverCounterAES256ICM": "RlNOHunJ9a3wfMGEG9jAxA==",
2068
+ "signaturePreviousReceipt": "RHX8rm7hA9M=",
2069
+ "certificateSerialNumber": "ABC123",
2070
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000003f1f973d",
2071
+ "payments": [],
2072
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNl8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9SbE5PSHVuSl9BQkMxMjNfUkhYOHJtN2hBOU09.yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA",
2073
+ "signatureSuccess": true,
2074
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_RlNOHunJ_ABC123_RHX8rm7hA9M=_yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA==",
2075
+ "headerVersionId": "auto1",
2076
+ "layoutRuleset": 2,
2077
+ "registrationInfo": {
2078
+ "cardRegisteredAt": "2024-03-11T08:00:00.000Z",
2079
+ "cashregisterRegisteredAt": null
2080
+ },
2081
+ "items": []
2082
+ },
2083
+ "taxNumber": "12-345/6789",
2084
+ "vatId": "ATU12345678",
2085
+ "headerVersionId": "auto1",
2086
+ "registrationInfo": {
2087
+ "cardRegisteredAt": "2024-03-11T08:00:00.000Z",
2088
+ "cashregisterRegisteredAt": null
2089
+ },
2090
+ "testCashregister": true,
2091
+ "testSignature": false,
2092
+ "logo_scale": "M",
2093
+ "layout": {
2094
+ "paperSize": "mm80",
2095
+ "ruleset": 2,
2096
+ "lines": [
2097
+ {
2098
+ "kind": "banner",
2099
+ "text": "TESTKASSE — kein gültiger Beleg",
2100
+ "tone": "warning"
2101
+ },
2102
+ {
2103
+ "kind": "text",
2104
+ "text": "Bäckerei Welt",
2105
+ "align": "center",
2106
+ "bold": true
2107
+ },
2108
+ {
2109
+ "kind": "text",
2110
+ "text": "Hauptplatz 1",
2111
+ "align": "center",
2112
+ "bold": false
2113
+ },
2114
+ {
2115
+ "kind": "text",
2116
+ "text": "1010 Wien",
2117
+ "align": "center",
2118
+ "bold": false
2119
+ },
2120
+ {
2121
+ "kind": "text",
2122
+ "text": "ATU12345678",
2123
+ "align": "center",
2124
+ "bold": false
2125
+ },
2126
+ {
2127
+ "kind": "text",
2128
+ "text": "+43 1 234",
2129
+ "align": "center",
2130
+ "bold": false
2131
+ },
2132
+ {
2133
+ "kind": "space",
2134
+ "lines": 1
2135
+ },
2136
+ {
2137
+ "kind": "banner",
2138
+ "text": "NULLBELEG",
2139
+ "tone": "receipt_type"
2140
+ },
2141
+ {
2142
+ "kind": "text",
2143
+ "text": "Prüfbeleg",
2144
+ "align": "center",
2145
+ "bold": false
2146
+ },
2147
+ {
2148
+ "kind": "space",
2149
+ "lines": 1
2150
+ },
2151
+ {
2152
+ "kind": "columns",
2153
+ "columns": [
2154
+ {
2155
+ "text": "Datum:",
2156
+ "width": 4,
2157
+ "align": "left"
2158
+ },
2159
+ {
2160
+ "text": "26.09.2026 10:00:00",
2161
+ "width": 8,
2162
+ "align": "right"
2163
+ }
2164
+ ]
2165
+ },
2166
+ {
2167
+ "kind": "columns",
2168
+ "columns": [
2169
+ {
2170
+ "text": "Kassen-ID:",
2171
+ "width": 6,
2172
+ "align": "left"
2173
+ },
2174
+ {
2175
+ "text": "KECK-1",
2176
+ "width": 6,
2177
+ "align": "right"
2178
+ }
2179
+ ]
2180
+ },
2181
+ {
2182
+ "kind": "columns",
2183
+ "columns": [
2184
+ {
2185
+ "text": "Beleg-ID:",
2186
+ "width": 6,
2187
+ "align": "left"
2188
+ },
2189
+ {
2190
+ "text": "KECK-1-ID-6",
2191
+ "width": 6,
2192
+ "align": "right"
2193
+ }
2194
+ ]
2195
+ },
2196
+ {
2197
+ "kind": "space",
2198
+ "lines": 1
2199
+ },
2200
+ {
2201
+ "kind": "rule",
2202
+ "char": "-"
2203
+ },
2204
+ {
2205
+ "kind": "text",
2206
+ "text": "Prüfangaben",
2207
+ "align": "center",
2208
+ "bold": true
2209
+ },
2210
+ {
2211
+ "kind": "columns",
2212
+ "columns": [
2213
+ {
2214
+ "text": "Barumsatz:",
2215
+ "width": 6,
2216
+ "align": "left"
2217
+ },
2218
+ {
2219
+ "text": "0,00 €",
2220
+ "width": 6,
2221
+ "align": "right"
2222
+ }
2223
+ ]
2224
+ },
2225
+ {
2226
+ "kind": "columns",
2227
+ "columns": [
2228
+ {
2229
+ "text": "Signatur:",
2230
+ "width": 6,
2231
+ "align": "left"
2232
+ },
2233
+ {
2234
+ "text": "signiert",
2235
+ "width": 6,
2236
+ "align": "right"
2237
+ }
2238
+ ]
2239
+ },
2240
+ {
2241
+ "kind": "columns",
2242
+ "columns": [
2243
+ {
2244
+ "text": "Signaturkarte:",
2245
+ "width": 6,
2246
+ "align": "left"
2247
+ },
2248
+ {
2249
+ "text": "0xABC123",
2250
+ "width": 6,
2251
+ "align": "right"
2252
+ }
2253
+ ]
2254
+ },
2255
+ {
2256
+ "kind": "columns",
2257
+ "columns": [
2258
+ {
2259
+ "text": "Zertifizierungsdienst:",
2260
+ "width": 7,
2261
+ "align": "left"
2262
+ },
2263
+ {
2264
+ "text": "Testsignatur (AT100)",
2265
+ "width": 5,
2266
+ "align": "right"
2267
+ }
2268
+ ]
2269
+ },
2270
+ {
2271
+ "kind": "columns",
2272
+ "columns": [
2273
+ {
2274
+ "text": "Karte registriert:",
2275
+ "width": 6,
2276
+ "align": "left"
2277
+ },
2278
+ {
2279
+ "text": "11.03.2024",
2280
+ "width": 6,
2281
+ "align": "right"
2282
+ }
2283
+ ]
2284
+ },
2285
+ {
2286
+ "kind": "rule",
2287
+ "char": "-"
2288
+ },
2289
+ {
2290
+ "kind": "space",
2291
+ "lines": 1
2292
+ },
2293
+ {
2294
+ "kind": "qr",
2295
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_RlNOHunJ_ABC123_RHX8rm7hA9M=_yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA=="
2296
+ },
2297
+ {
2298
+ "kind": "space",
2299
+ "lines": 1
2300
+ },
2301
+ {
2302
+ "kind": "banner",
2303
+ "text": "TESTKASSE — kein gültiger Beleg",
2304
+ "tone": "warning"
2305
+ }
2306
+ ]
2307
+ }
2308
+ }
2309
+ }
2310
+ },
2311
+ {
2312
+ "name": "error_payments_required",
2313
+ "endpoint": "createReceipt",
2314
+ "path": "/v3/createReceipt",
2315
+ "params": {
2316
+ "receiptType": "standard",
2317
+ "items": [
2318
+ {
2319
+ "name": "Kaffee",
2320
+ "amount": 2,
2321
+ "priceOneCents": 300,
2322
+ "vat": 20
2323
+ }
2324
+ ]
2325
+ },
2326
+ "httpStatus": 200,
2327
+ "headers": {
2328
+ "Kasseneck-Api-Version": "v3",
2329
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2330
+ },
2331
+ "response": {
2332
+ "status": "error",
2333
+ "message": "payments fehlt – unter /v3 ist die Zahlungsliste Pflicht.",
2334
+ "data": {
2335
+ "code": "payments_required"
2336
+ },
2337
+ "code": "payments_required"
2338
+ }
2339
+ },
2340
+ {
2341
+ "name": "error_payment_method_not_supported",
2342
+ "endpoint": "createReceipt",
2343
+ "path": "/v3/createReceipt",
2344
+ "params": {
2345
+ "receiptType": "standard",
2346
+ "items": [
2347
+ {
2348
+ "name": "Kaffee",
2349
+ "amount": 2,
2350
+ "priceOneCents": 300,
2351
+ "vat": 20
2352
+ }
2353
+ ],
2354
+ "paymentMethod": "cash"
2355
+ },
2356
+ "httpStatus": 200,
2357
+ "headers": {
2358
+ "Kasseneck-Api-Version": "v3",
2359
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2360
+ },
2361
+ "response": {
2362
+ "status": "error",
2363
+ "message": "paymentMethod wird unter /v3 nicht mehr unterstützt – bitte payments verwenden.",
2364
+ "data": {
2365
+ "code": "payment_method_not_supported"
2366
+ },
2367
+ "code": "payment_method_not_supported"
2368
+ }
2369
+ },
2370
+ {
2371
+ "name": "error_payments_sum_mismatch",
2372
+ "endpoint": "createReceipt",
2373
+ "path": "/v3/createReceipt",
2374
+ "params": {
2375
+ "receiptType": "standard",
2376
+ "items": [
2377
+ {
2378
+ "name": "Kaffee",
2379
+ "amount": 2,
2380
+ "priceOneCents": 300,
2381
+ "vat": 20
2382
+ }
2383
+ ],
2384
+ "payments": [
2385
+ {
2386
+ "method": "cash",
2387
+ "amountCents": 500
2388
+ }
2389
+ ]
2390
+ },
2391
+ "httpStatus": 200,
2392
+ "headers": {
2393
+ "Kasseneck-Api-Version": "v3",
2394
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2395
+ },
2396
+ "response": {
2397
+ "status": "error",
2398
+ "message": "Die Summe der Zahlungen (500) entspricht nicht dem Zahlbetrag (600).",
2399
+ "data": {
2400
+ "code": "payments_sum_mismatch",
2401
+ "expectedCents": 600
2402
+ },
2403
+ "code": "payments_sum_mismatch"
2404
+ }
2405
+ },
2406
+ {
2407
+ "name": "error_receipt_type_invalid",
2408
+ "endpoint": "createReceipt",
2409
+ "path": "/v3/createReceipt",
2410
+ "params": {
2411
+ "receiptType": "rechnung",
2412
+ "items": [
2413
+ {
2414
+ "name": "Kaffee",
2415
+ "amount": 2,
2416
+ "priceOneCents": 300,
2417
+ "vat": 20
2418
+ }
2419
+ ],
2420
+ "payments": [
2421
+ {
2422
+ "method": "cash",
2423
+ "amountCents": 600
2424
+ }
2425
+ ]
2426
+ },
2427
+ "httpStatus": 200,
2428
+ "headers": {
2429
+ "Kasseneck-Api-Version": "v3",
2430
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2431
+ },
2432
+ "response": {
2433
+ "status": "error",
2434
+ "message": "Ungültige Daten: receiptType keine von: start, standard, zero, cancellation, training",
2435
+ "data": {
2436
+ "code": "receipt_type_invalid"
2437
+ },
2438
+ "code": "receipt_type_invalid"
2439
+ }
2440
+ },
2441
+ {
2442
+ "name": "error_german_parameter",
2443
+ "endpoint": "createReceipt",
2444
+ "path": "/v3/createReceipt",
2445
+ "params": {
2446
+ "receiptType": "standard",
2447
+ "items": [
2448
+ {
2449
+ "name": "Kaffee",
2450
+ "amount": 2,
2451
+ "priceOneCents": 300,
2452
+ "vat": 20,
2453
+ "sofortErhalten": true
2454
+ }
2455
+ ],
2456
+ "payments": [
2457
+ {
2458
+ "method": "cash",
2459
+ "amountCents": 600
2460
+ }
2461
+ ]
2462
+ },
2463
+ "httpStatus": 200,
2464
+ "headers": {
2465
+ "Kasseneck-Api-Version": "v3",
2466
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2467
+ },
2468
+ "response": {
2469
+ "status": "error",
2470
+ "message": "Bitte Eingaben prüfen.",
2471
+ "code": "validation",
2472
+ "data": {
2473
+ "code": "validation",
2474
+ "errors": [
2475
+ {
2476
+ "field": "items[0].sofortErhalten",
2477
+ "message": "Unbekanntes Feld."
2478
+ }
2479
+ ]
2480
+ }
2481
+ }
2482
+ },
2483
+ {
2484
+ "name": "get_card_receipt_with_cancellation",
2485
+ "endpoint": "getReceipt",
2486
+ "path": "/v3/getReceipt",
2487
+ "params": {
2488
+ "receiptId": "KECK-1-ID-2"
2489
+ },
2490
+ "httpStatus": 200,
2491
+ "headers": {
2492
+ "Kasseneck-Api-Version": "v3",
2493
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2494
+ },
2495
+ "response": {
2496
+ "status": "success",
2497
+ "message": "",
2498
+ "data": {
2499
+ "company": "Bäckerei Welt",
2500
+ "street": "Hauptplatz 1",
2501
+ "zip": "1010",
2502
+ "city": "Wien",
2503
+ "phone": "+43 1 234",
2504
+ "is_small_business": false,
2505
+ "footer1": "Danke",
2506
+ "footer2": null,
2507
+ "footer3": null,
2508
+ "footer4": null,
2509
+ "thanks_message": "Bis bald",
2510
+ "kreiseck_logo": false,
2511
+ "logo_url": null,
2512
+ "receipt": {
2513
+ "counter": 2,
2514
+ "receiptType": "standard",
2515
+ "zeroKind": null,
2516
+ "receiptId": "KECK-1-ID-2",
2517
+ "cashregisterId": "KECK-1",
2518
+ "timeStamp": "2026-09-26T10:00:00",
2519
+ "vouchers": [],
2520
+ "paymentMethod": "creditCard",
2521
+ "customerDetails": null,
2522
+ "legalMessage": null,
2523
+ "customProjectId": null,
2524
+ "creditCardProvider": null,
2525
+ "amountRateStandard": 6,
2526
+ "amountRateReduced1": 0,
2527
+ "amountRateReduced2": 0,
2528
+ "amountRateZero": 1,
2529
+ "amountRateSpecial": 0,
2530
+ "turnoverCounterAES256ICM": "girlnmCVSdImcB9LEr65jQ==",
2531
+ "signaturePreviousReceipt": "6Mn4bx4N/M8=",
2532
+ "certificateSerialNumber": "ABC123",
2533
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
2534
+ "payments": [
2535
+ {
2536
+ "id": "p1",
2537
+ "method": "creditCard",
2538
+ "amountCents": 700,
2539
+ "provider": "sumup"
2540
+ }
2541
+ ],
2542
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMl8yMDI2LTA5LTI2VDEwOjAwOjAwXzYsMDBfMCwwMF8wLDAwXzEsMDBfMCwwMF9naXJsbm1DVl9BQkMxMjNfNk1uNGJ4NE4vTTg9.8VaXQwBb_1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg",
2543
+ "signatureSuccess": true,
2544
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_6,00_0,00_0,00_1,00_0,00_girlnmCV_ABC123_6Mn4bx4N/M8=_8VaXQwBb/1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg==",
2545
+ "tipCents": 100,
2546
+ "cancellations": [
2547
+ {
2548
+ "receiptId": "KECK-1-ID-7",
2549
+ "at": 1790409600000,
2550
+ "by": null,
2551
+ "note": null,
2552
+ "items": [
2553
+ {
2554
+ "index": 0,
2555
+ "quantity": 2
2556
+ },
2557
+ {
2558
+ "index": 1,
2559
+ "quantity": 1
2560
+ }
2561
+ ],
2562
+ "refundedByPayment": {
2563
+ "p1": 700
2564
+ }
2565
+ }
2566
+ ],
2567
+ "headerVersionId": "auto1",
2568
+ "layoutRuleset": 2,
2569
+ "items": [
2570
+ {
2571
+ "name": "Kaffee",
2572
+ "amount": 2,
2573
+ "priceOneCents": 300,
2574
+ "vat": 20,
2575
+ "priceOne": 3
2576
+ },
2577
+ {
2578
+ "kind": "tip",
2579
+ "name": "Trinkgeld Personal",
2580
+ "amount": 1,
2581
+ "quantity": 1,
2582
+ "priceOne": 1,
2583
+ "priceOneCents": 100,
2584
+ "unitPriceCents": 100,
2585
+ "vat": 0,
2586
+ "vatRate": 0,
2587
+ "paymentMethod": "creditCard",
2588
+ "recipient": null,
2589
+ "receivedImmediately": false
2590
+ }
2591
+ ]
2592
+ },
2593
+ "taxNumber": "12-345/6789",
2594
+ "vatId": "ATU12345678",
2595
+ "headerVersionId": "auto1",
2596
+ "registrationInfo": null,
2597
+ "testCashregister": true,
2598
+ "testSignature": false,
2599
+ "logo_scale": "M",
2600
+ "layout": {
2601
+ "paperSize": "mm80",
2602
+ "ruleset": 2,
2603
+ "lines": [
2604
+ {
2605
+ "kind": "banner",
2606
+ "text": "TESTKASSE — kein gültiger Beleg",
2607
+ "tone": "warning"
2608
+ },
2609
+ {
2610
+ "kind": "text",
2611
+ "text": "Bäckerei Welt",
2612
+ "align": "center",
2613
+ "bold": true
2614
+ },
2615
+ {
2616
+ "kind": "text",
2617
+ "text": "Hauptplatz 1",
2618
+ "align": "center",
2619
+ "bold": false
2620
+ },
2621
+ {
2622
+ "kind": "text",
2623
+ "text": "1010 Wien",
2624
+ "align": "center",
2625
+ "bold": false
2626
+ },
2627
+ {
2628
+ "kind": "text",
2629
+ "text": "ATU12345678",
2630
+ "align": "center",
2631
+ "bold": false
2632
+ },
2633
+ {
2634
+ "kind": "text",
2635
+ "text": "+43 1 234",
2636
+ "align": "center",
2637
+ "bold": false
2638
+ },
2639
+ {
2640
+ "kind": "space",
2641
+ "lines": 1
2642
+ },
2643
+ {
2644
+ "kind": "columns",
2645
+ "columns": [
2646
+ {
2647
+ "text": "Datum:",
2648
+ "width": 4,
2649
+ "align": "left"
2650
+ },
2651
+ {
2652
+ "text": "26.09.2026 10:00:00",
2653
+ "width": 8,
2654
+ "align": "right"
2655
+ }
2656
+ ]
2657
+ },
2658
+ {
2659
+ "kind": "columns",
2660
+ "columns": [
2661
+ {
2662
+ "text": "Kassen-ID:",
2663
+ "width": 6,
2664
+ "align": "left"
2665
+ },
2666
+ {
2667
+ "text": "KECK-1",
2668
+ "width": 6,
2669
+ "align": "right"
2670
+ }
2671
+ ]
2672
+ },
2673
+ {
2674
+ "kind": "columns",
2675
+ "columns": [
2676
+ {
2677
+ "text": "Beleg-ID:",
2678
+ "width": 6,
2679
+ "align": "left"
2680
+ },
2681
+ {
2682
+ "text": "KECK-1-ID-2",
2683
+ "width": 6,
2684
+ "align": "right"
2685
+ }
2686
+ ]
2687
+ },
2688
+ {
2689
+ "kind": "space",
2690
+ "lines": 1
2691
+ },
2692
+ {
2693
+ "kind": "columns",
2694
+ "columns": [
2695
+ {
2696
+ "text": "2 x Kaffee je 3,00",
2697
+ "width": 7,
2698
+ "align": "left"
2699
+ },
2700
+ {
2701
+ "text": "6,00 A",
2702
+ "width": 5,
2703
+ "align": "right"
2704
+ }
2705
+ ]
2706
+ },
2707
+ {
2708
+ "kind": "columns",
2709
+ "columns": [
2710
+ {
2711
+ "text": "Trinkgeld Personal",
2712
+ "width": 8,
2713
+ "align": "left"
2714
+ },
2715
+ {
2716
+ "text": "1,00 D",
2717
+ "width": 4,
2718
+ "align": "right"
2719
+ }
2720
+ ]
2721
+ },
2722
+ {
2723
+ "kind": "space",
2724
+ "lines": 1
2725
+ },
2726
+ {
2727
+ "kind": "columns",
2728
+ "columns": [
2729
+ {
2730
+ "text": "MwSt%",
2731
+ "width": 3,
2732
+ "align": "left"
2733
+ },
2734
+ {
2735
+ "text": "MwSt",
2736
+ "width": 4,
2737
+ "align": "left"
2738
+ },
2739
+ {
2740
+ "text": "Netto",
2741
+ "width": 3,
2742
+ "align": "left"
2743
+ },
2744
+ {
2745
+ "text": "Brutto",
2746
+ "width": 2,
2747
+ "align": "right"
2748
+ }
2749
+ ]
2750
+ },
2751
+ {
2752
+ "kind": "columns",
2753
+ "columns": [
2754
+ {
2755
+ "text": "A 20%",
2756
+ "width": 3,
2757
+ "align": "left"
2758
+ },
2759
+ {
2760
+ "text": "1,00",
2761
+ "width": 4,
2762
+ "align": "left"
2763
+ },
2764
+ {
2765
+ "text": "5,00",
2766
+ "width": 3,
2767
+ "align": "left"
2768
+ },
2769
+ {
2770
+ "text": "6,00",
2771
+ "width": 2,
2772
+ "align": "right"
2773
+ }
2774
+ ]
2775
+ },
2776
+ {
2777
+ "kind": "columns",
2778
+ "columns": [
2779
+ {
2780
+ "text": "D 0%",
2781
+ "width": 3,
2782
+ "align": "left"
2783
+ },
2784
+ {
2785
+ "text": "0,00",
2786
+ "width": 4,
2787
+ "align": "left"
2788
+ },
2789
+ {
2790
+ "text": "1,00",
2791
+ "width": 3,
2792
+ "align": "left"
2793
+ },
2794
+ {
2795
+ "text": "1,00",
2796
+ "width": 2,
2797
+ "align": "right"
2798
+ }
2799
+ ]
2800
+ },
2801
+ {
2802
+ "kind": "rule",
2803
+ "char": "-"
2804
+ },
2805
+ {
2806
+ "kind": "columns",
2807
+ "columns": [
2808
+ {
2809
+ "text": "Gesamt:",
2810
+ "width": 6,
2811
+ "align": "left"
2812
+ },
2813
+ {
2814
+ "text": "7,00 €",
2815
+ "width": 6,
2816
+ "align": "right"
2817
+ }
2818
+ ]
2819
+ },
2820
+ {
2821
+ "kind": "columns",
2822
+ "columns": [
2823
+ {
2824
+ "text": "Zahlungsart:",
2825
+ "width": 6,
2826
+ "align": "left"
2827
+ },
2828
+ {
2829
+ "text": "Kartenzahlung",
2830
+ "width": 6,
2831
+ "align": "right"
2832
+ }
2833
+ ]
2834
+ },
2835
+ {
2836
+ "kind": "space",
2837
+ "lines": 1
2838
+ },
2839
+ {
2840
+ "kind": "qr",
2841
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_6,00_0,00_0,00_1,00_0,00_girlnmCV_ABC123_6Mn4bx4N/M8=_8VaXQwBb/1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg=="
2842
+ },
2843
+ {
2844
+ "kind": "space",
2845
+ "lines": 1
2846
+ },
2847
+ {
2848
+ "kind": "text",
2849
+ "text": "Sumup Beleg",
2850
+ "align": "center",
2851
+ "bold": true
2852
+ },
2853
+ {
2854
+ "kind": "columns",
2855
+ "columns": [
2856
+ {
2857
+ "text": "Kartentyp:",
2858
+ "width": 6,
2859
+ "align": "left"
2860
+ },
2861
+ {
2862
+ "text": "n/a",
2863
+ "width": 6,
2864
+ "align": "right"
2865
+ }
2866
+ ]
2867
+ },
2868
+ {
2869
+ "kind": "columns",
2870
+ "columns": [
2871
+ {
2872
+ "text": "Kartennummer:",
2873
+ "width": 6,
2874
+ "align": "left"
2875
+ },
2876
+ {
2877
+ "text": "**** **** **** ",
2878
+ "width": 6,
2879
+ "align": "right"
2880
+ }
2881
+ ]
2882
+ },
2883
+ {
2884
+ "kind": "columns",
2885
+ "columns": [
2886
+ {
2887
+ "text": "Zahlungstyp:",
2888
+ "width": 6,
2889
+ "align": "left"
2890
+ },
2891
+ {
2892
+ "text": "n/a",
2893
+ "width": 6,
2894
+ "align": "right"
2895
+ }
2896
+ ]
2897
+ },
2898
+ {
2899
+ "kind": "columns",
2900
+ "columns": [
2901
+ {
2902
+ "text": "Gesamtbetrag:",
2903
+ "width": 6,
2904
+ "align": "left"
2905
+ },
2906
+ {
2907
+ "text": "-",
2908
+ "width": 6,
2909
+ "align": "right"
2910
+ }
2911
+ ]
2912
+ },
2913
+ {
2914
+ "kind": "columns",
2915
+ "columns": [
2916
+ {
2917
+ "text": "Transaktionscode:",
2918
+ "width": 6,
2919
+ "align": "left"
2920
+ },
2921
+ {
2922
+ "text": "-",
2923
+ "width": 6,
2924
+ "align": "right"
2925
+ }
2926
+ ]
2927
+ },
2928
+ {
2929
+ "kind": "columns",
2930
+ "columns": [
2931
+ {
2932
+ "text": "Modus:",
2933
+ "width": 6,
2934
+ "align": "left"
2935
+ },
2936
+ {
2937
+ "text": "",
2938
+ "width": 6,
2939
+ "align": "right"
2940
+ }
2941
+ ]
2942
+ },
2943
+ {
2944
+ "kind": "space",
2945
+ "lines": 1
2946
+ },
2947
+ {
2948
+ "kind": "space",
2949
+ "lines": 1
2950
+ },
2951
+ {
2952
+ "kind": "text",
2953
+ "text": "Bis bald",
2954
+ "align": "center",
2955
+ "bold": false
2956
+ },
2957
+ {
2958
+ "kind": "text",
2959
+ "text": "Danke",
2960
+ "align": "center",
2961
+ "bold": false
2962
+ },
2963
+ {
2964
+ "kind": "space",
2965
+ "lines": 1
2966
+ },
2967
+ {
2968
+ "kind": "banner",
2969
+ "text": "TESTKASSE — kein gültiger Beleg",
2970
+ "tone": "warning"
2971
+ }
2972
+ ]
2973
+ }
2974
+ }
2975
+ }
2976
+ },
2977
+ {
2978
+ "name": "get_cancellation_receipt",
2979
+ "endpoint": "getReceipt",
2980
+ "path": "/v3/getReceipt",
2981
+ "params": {
2982
+ "receiptId": "KECK-1-ID-7"
2983
+ },
2984
+ "httpStatus": 200,
2985
+ "headers": {
2986
+ "Kasseneck-Api-Version": "v3",
2987
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
2988
+ },
2989
+ "response": {
2990
+ "status": "success",
2991
+ "message": "",
2992
+ "data": {
2993
+ "company": "Bäckerei Welt",
2994
+ "street": "Hauptplatz 1",
2995
+ "zip": "1010",
2996
+ "city": "Wien",
2997
+ "phone": "+43 1 234",
2998
+ "is_small_business": false,
2999
+ "footer1": "Danke",
3000
+ "footer2": null,
3001
+ "footer3": null,
3002
+ "footer4": null,
3003
+ "thanks_message": "Bis bald",
3004
+ "kreiseck_logo": false,
3005
+ "logo_url": null,
3006
+ "receipt": {
3007
+ "counter": 7,
3008
+ "receiptType": "cancellation",
3009
+ "zeroKind": null,
3010
+ "receiptId": "KECK-1-ID-7",
3011
+ "cashregisterId": "KECK-1",
3012
+ "timeStamp": "2026-09-26T10:00:00",
3013
+ "vouchers": [],
3014
+ "paymentMethod": "creditCard",
3015
+ "customerDetails": null,
3016
+ "legalMessage": "STORNO zu KECK-1-ID-2 – Fehleingabe",
3017
+ "customProjectId": null,
3018
+ "creditCardProvider": null,
3019
+ "amountRateStandard": -6,
3020
+ "amountRateReduced1": 0,
3021
+ "amountRateReduced2": 0,
3022
+ "amountRateZero": -1,
3023
+ "amountRateSpecial": 0,
3024
+ "turnoverCounterAES256ICM": "e42Zjx66gXyXfp6ZK6VUzA==",
3025
+ "signaturePreviousReceipt": "dESbUhmSTnM=",
3026
+ "certificateSerialNumber": "ABC123",
3027
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000d5ed0baa",
3028
+ "payments": [
3029
+ {
3030
+ "id": "p1",
3031
+ "method": "creditCard",
3032
+ "amountCents": -700,
3033
+ "provider": "sumup",
3034
+ "refundOf": "p1"
3035
+ }
3036
+ ],
3037
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtN18yMDI2LTA5LTI2VDEwOjAwOjAwXy02LDAwXzAsMDBfMCwwMF8tMSwwMF8wLDAwX1UxUlBfQUJDMTIzX2RFU2JVaG1TVG5NPQ.qA-w3tqb63SqWOAodLTl59WKJmkLlQrNeY1GA0xLZmt9VmFEGMb_PchAM4aGEzhbRzPmFGpVpXEkptfQsiwT6g",
3038
+ "signatureSuccess": true,
3039
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-7_2026-09-26T10:00:00_-6,00_0,00_0,00_-1,00_0,00_U1RP_ABC123_dESbUhmSTnM=_qA+w3tqb63SqWOAodLTl59WKJmkLlQrNeY1GA0xLZmt9VmFEGMb/PchAM4aGEzhbRzPmFGpVpXEkptfQsiwT6g==",
3040
+ "cancellationOf": {
3041
+ "receiptId": "KECK-1-ID-2",
3042
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
3043
+ "timeStamp": "2026-09-26T10:00:00"
3044
+ },
3045
+ "cancellationReason": "input_error",
3046
+ "tipCents": -100,
3047
+ "headerVersionId": "auto1",
3048
+ "layoutRuleset": 2,
3049
+ "items": [
3050
+ {
3051
+ "name": "Kaffee",
3052
+ "quantity": 2,
3053
+ "unitPriceCents": -300,
3054
+ "vatRate": 20,
3055
+ "amount": 2,
3056
+ "vat": 20,
3057
+ "priceOneCents": -300,
3058
+ "priceOne": -3
3059
+ },
3060
+ {
3061
+ "name": "Trinkgeld Personal",
3062
+ "quantity": 1,
3063
+ "unitPriceCents": -100,
3064
+ "vatRate": 0,
3065
+ "kind": "tip",
3066
+ "recipient": null,
3067
+ "paymentMethod": "creditCard",
3068
+ "amount": 1,
3069
+ "vat": 0,
3070
+ "priceOneCents": -100,
3071
+ "priceOne": -1,
3072
+ "receivedImmediately": false
3073
+ }
3074
+ ]
3075
+ },
3076
+ "taxNumber": "12-345/6789",
3077
+ "vatId": "ATU12345678",
3078
+ "headerVersionId": "auto1",
3079
+ "registrationInfo": null,
3080
+ "testCashregister": true,
3081
+ "testSignature": false,
3082
+ "logo_scale": "M",
3083
+ "layout": {
3084
+ "paperSize": "mm80",
3085
+ "ruleset": 2,
3086
+ "lines": [
3087
+ {
3088
+ "kind": "banner",
3089
+ "text": "TESTKASSE — kein gültiger Beleg",
3090
+ "tone": "warning"
3091
+ },
3092
+ {
3093
+ "kind": "text",
3094
+ "text": "Bäckerei Welt",
3095
+ "align": "center",
3096
+ "bold": true
3097
+ },
3098
+ {
3099
+ "kind": "text",
3100
+ "text": "Hauptplatz 1",
3101
+ "align": "center",
3102
+ "bold": false
3103
+ },
3104
+ {
3105
+ "kind": "text",
3106
+ "text": "1010 Wien",
3107
+ "align": "center",
3108
+ "bold": false
3109
+ },
3110
+ {
3111
+ "kind": "text",
3112
+ "text": "ATU12345678",
3113
+ "align": "center",
3114
+ "bold": false
3115
+ },
3116
+ {
3117
+ "kind": "text",
3118
+ "text": "+43 1 234",
3119
+ "align": "center",
3120
+ "bold": false
3121
+ },
3122
+ {
3123
+ "kind": "space",
3124
+ "lines": 1
3125
+ },
3126
+ {
3127
+ "kind": "banner",
3128
+ "text": "STORNOBELEG",
3129
+ "tone": "receipt_type"
3130
+ },
3131
+ {
3132
+ "kind": "text",
3133
+ "text": "Stornobuchung zu Beleg KECK-1-ID-2",
3134
+ "align": "center",
3135
+ "bold": false
3136
+ },
3137
+ {
3138
+ "kind": "text",
3139
+ "text": "vom 26.09.2026, 10:00 Uhr",
3140
+ "align": "center",
3141
+ "bold": false
3142
+ },
3143
+ {
3144
+ "kind": "text",
3145
+ "text": "Grund: Fehleingabe",
3146
+ "align": "center",
3147
+ "bold": false
3148
+ },
3149
+ {
3150
+ "kind": "space",
3151
+ "lines": 1
3152
+ },
3153
+ {
3154
+ "kind": "columns",
3155
+ "columns": [
3156
+ {
3157
+ "text": "Datum:",
3158
+ "width": 4,
3159
+ "align": "left"
3160
+ },
3161
+ {
3162
+ "text": "26.09.2026 10:00:00",
3163
+ "width": 8,
3164
+ "align": "right"
3165
+ }
3166
+ ]
3167
+ },
3168
+ {
3169
+ "kind": "columns",
3170
+ "columns": [
3171
+ {
3172
+ "text": "Kassen-ID:",
3173
+ "width": 6,
3174
+ "align": "left"
3175
+ },
3176
+ {
3177
+ "text": "KECK-1",
3178
+ "width": 6,
3179
+ "align": "right"
3180
+ }
3181
+ ]
3182
+ },
3183
+ {
3184
+ "kind": "columns",
3185
+ "columns": [
3186
+ {
3187
+ "text": "Beleg-ID:",
3188
+ "width": 6,
3189
+ "align": "left"
3190
+ },
3191
+ {
3192
+ "text": "KECK-1-ID-7",
3193
+ "width": 6,
3194
+ "align": "right"
3195
+ }
3196
+ ]
3197
+ },
3198
+ {
3199
+ "kind": "space",
3200
+ "lines": 1
3201
+ },
3202
+ {
3203
+ "kind": "columns",
3204
+ "columns": [
3205
+ {
3206
+ "text": "2 x Kaffee je -3,00",
3207
+ "width": 7,
3208
+ "align": "left"
3209
+ },
3210
+ {
3211
+ "text": "-6,00 A",
3212
+ "width": 5,
3213
+ "align": "right"
3214
+ }
3215
+ ]
3216
+ },
3217
+ {
3218
+ "kind": "columns",
3219
+ "columns": [
3220
+ {
3221
+ "text": "Trinkgeld Personal",
3222
+ "width": 8,
3223
+ "align": "left"
3224
+ },
3225
+ {
3226
+ "text": "-1,00 D",
3227
+ "width": 4,
3228
+ "align": "right"
3229
+ }
3230
+ ]
3231
+ },
3232
+ {
3233
+ "kind": "space",
3234
+ "lines": 1
3235
+ },
3236
+ {
3237
+ "kind": "columns",
3238
+ "columns": [
3239
+ {
3240
+ "text": "MwSt%",
3241
+ "width": 3,
3242
+ "align": "left"
3243
+ },
3244
+ {
3245
+ "text": "MwSt",
3246
+ "width": 4,
3247
+ "align": "left"
3248
+ },
3249
+ {
3250
+ "text": "Netto",
3251
+ "width": 3,
3252
+ "align": "left"
3253
+ },
3254
+ {
3255
+ "text": "Brutto",
3256
+ "width": 2,
3257
+ "align": "right"
3258
+ }
3259
+ ]
3260
+ },
3261
+ {
3262
+ "kind": "columns",
3263
+ "columns": [
3264
+ {
3265
+ "text": "A 20%",
3266
+ "width": 3,
3267
+ "align": "left"
3268
+ },
3269
+ {
3270
+ "text": "-1,00",
3271
+ "width": 4,
3272
+ "align": "left"
3273
+ },
3274
+ {
3275
+ "text": "-5,00",
3276
+ "width": 3,
3277
+ "align": "left"
3278
+ },
3279
+ {
3280
+ "text": "-6,00",
3281
+ "width": 2,
3282
+ "align": "right"
3283
+ }
3284
+ ]
3285
+ },
3286
+ {
3287
+ "kind": "columns",
3288
+ "columns": [
3289
+ {
3290
+ "text": "D 0%",
3291
+ "width": 3,
3292
+ "align": "left"
3293
+ },
3294
+ {
3295
+ "text": "0,00",
3296
+ "width": 4,
3297
+ "align": "left"
3298
+ },
3299
+ {
3300
+ "text": "-1,00",
3301
+ "width": 3,
3302
+ "align": "left"
3303
+ },
3304
+ {
3305
+ "text": "-1,00",
3306
+ "width": 2,
3307
+ "align": "right"
3308
+ }
3309
+ ]
3310
+ },
3311
+ {
3312
+ "kind": "rule",
3313
+ "char": "-"
3314
+ },
3315
+ {
3316
+ "kind": "columns",
3317
+ "columns": [
3318
+ {
3319
+ "text": "Gesamt:",
3320
+ "width": 6,
3321
+ "align": "left"
3322
+ },
3323
+ {
3324
+ "text": "-7,00 €",
3325
+ "width": 6,
3326
+ "align": "right"
3327
+ }
3328
+ ]
3329
+ },
3330
+ {
3331
+ "kind": "columns",
3332
+ "columns": [
3333
+ {
3334
+ "text": "Zahlungsart:",
3335
+ "width": 6,
3336
+ "align": "left"
3337
+ },
3338
+ {
3339
+ "text": "Kartenzahlung",
3340
+ "width": 6,
3341
+ "align": "right"
3342
+ }
3343
+ ]
3344
+ },
3345
+ {
3346
+ "kind": "space",
3347
+ "lines": 1
3348
+ },
3349
+ {
3350
+ "kind": "text",
3351
+ "text": "STORNO zu KECK-1-ID-2 – Fehleingabe",
3352
+ "align": "center",
3353
+ "bold": false
3354
+ },
3355
+ {
3356
+ "kind": "space",
3357
+ "lines": 1
3358
+ },
3359
+ {
3360
+ "kind": "qr",
3361
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-7_2026-09-26T10:00:00_-6,00_0,00_0,00_-1,00_0,00_U1RP_ABC123_dESbUhmSTnM=_qA+w3tqb63SqWOAodLTl59WKJmkLlQrNeY1GA0xLZmt9VmFEGMb/PchAM4aGEzhbRzPmFGpVpXEkptfQsiwT6g=="
3362
+ },
3363
+ {
3364
+ "kind": "space",
3365
+ "lines": 1
3366
+ },
3367
+ {
3368
+ "kind": "text",
3369
+ "text": "Sumup Beleg",
3370
+ "align": "center",
3371
+ "bold": true
3372
+ },
3373
+ {
3374
+ "kind": "columns",
3375
+ "columns": [
3376
+ {
3377
+ "text": "Kartentyp:",
3378
+ "width": 6,
3379
+ "align": "left"
3380
+ },
3381
+ {
3382
+ "text": "n/a",
3383
+ "width": 6,
3384
+ "align": "right"
3385
+ }
3386
+ ]
3387
+ },
3388
+ {
3389
+ "kind": "columns",
3390
+ "columns": [
3391
+ {
3392
+ "text": "Kartennummer:",
3393
+ "width": 6,
3394
+ "align": "left"
3395
+ },
3396
+ {
3397
+ "text": "**** **** **** ",
3398
+ "width": 6,
3399
+ "align": "right"
3400
+ }
3401
+ ]
3402
+ },
3403
+ {
3404
+ "kind": "columns",
3405
+ "columns": [
3406
+ {
3407
+ "text": "Zahlungstyp:",
3408
+ "width": 6,
3409
+ "align": "left"
3410
+ },
3411
+ {
3412
+ "text": "n/a",
3413
+ "width": 6,
3414
+ "align": "right"
3415
+ }
3416
+ ]
3417
+ },
3418
+ {
3419
+ "kind": "columns",
3420
+ "columns": [
3421
+ {
3422
+ "text": "Gesamtbetrag:",
3423
+ "width": 6,
3424
+ "align": "left"
3425
+ },
3426
+ {
3427
+ "text": "-",
3428
+ "width": 6,
3429
+ "align": "right"
3430
+ }
3431
+ ]
3432
+ },
3433
+ {
3434
+ "kind": "columns",
3435
+ "columns": [
3436
+ {
3437
+ "text": "Transaktionscode:",
3438
+ "width": 6,
3439
+ "align": "left"
3440
+ },
3441
+ {
3442
+ "text": "-",
3443
+ "width": 6,
3444
+ "align": "right"
3445
+ }
3446
+ ]
3447
+ },
3448
+ {
3449
+ "kind": "columns",
3450
+ "columns": [
3451
+ {
3452
+ "text": "Modus:",
3453
+ "width": 6,
3454
+ "align": "left"
3455
+ },
3456
+ {
3457
+ "text": "",
3458
+ "width": 6,
3459
+ "align": "right"
3460
+ }
3461
+ ]
3462
+ },
3463
+ {
3464
+ "kind": "space",
3465
+ "lines": 1
3466
+ },
3467
+ {
3468
+ "kind": "space",
3469
+ "lines": 1
3470
+ },
3471
+ {
3472
+ "kind": "text",
3473
+ "text": "Bis bald",
3474
+ "align": "center",
3475
+ "bold": false
3476
+ },
3477
+ {
3478
+ "kind": "text",
3479
+ "text": "Danke",
3480
+ "align": "center",
3481
+ "bold": false
3482
+ },
3483
+ {
3484
+ "kind": "space",
3485
+ "lines": 1
3486
+ },
3487
+ {
3488
+ "kind": "banner",
3489
+ "text": "TESTKASSE — kein gültiger Beleg",
3490
+ "tone": "warning"
3491
+ }
3492
+ ]
3493
+ }
3494
+ }
3495
+ }
3496
+ },
3497
+ {
3498
+ "name": "get_mixed_receipt",
3499
+ "endpoint": "getReceipt",
3500
+ "path": "/v3/getReceipt",
3501
+ "params": {
3502
+ "receiptId": "KECK-1-ID-4"
3503
+ },
3504
+ "httpStatus": 200,
3505
+ "headers": {
3506
+ "Kasseneck-Api-Version": "v3",
3507
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
3508
+ },
3509
+ "response": {
3510
+ "status": "success",
3511
+ "message": "",
3512
+ "data": {
3513
+ "company": "Bäckerei Welt",
3514
+ "street": "Hauptplatz 1",
3515
+ "zip": "1010",
3516
+ "city": "Wien",
3517
+ "phone": "+43 1 234",
3518
+ "is_small_business": false,
3519
+ "footer1": "Danke",
3520
+ "footer2": null,
3521
+ "footer3": null,
3522
+ "footer4": null,
3523
+ "thanks_message": "Bis bald",
3524
+ "kreiseck_logo": false,
3525
+ "logo_url": null,
3526
+ "receipt": {
3527
+ "counter": 4,
3528
+ "receiptType": "standard",
3529
+ "zeroKind": null,
3530
+ "receiptId": "KECK-1-ID-4",
3531
+ "cashregisterId": "KECK-1",
3532
+ "timeStamp": "2026-09-26T10:00:00",
3533
+ "vouchers": [],
3534
+ "paymentMethod": "mixed",
3535
+ "customerDetails": null,
3536
+ "legalMessage": null,
3537
+ "customProjectId": null,
3538
+ "creditCardProvider": null,
3539
+ "amountRateStandard": 0,
3540
+ "amountRateReduced1": 7,
3541
+ "amountRateReduced2": 0,
3542
+ "amountRateZero": 0,
3543
+ "amountRateSpecial": 0,
3544
+ "turnoverCounterAES256ICM": "V2ekav20znVxKgmTPRuabQ==",
3545
+ "signaturePreviousReceipt": "NMOAojrHQmc=",
3546
+ "certificateSerialNumber": "ABC123",
3547
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000fd4f30a9",
3548
+ "payments": [
3549
+ {
3550
+ "id": "p1",
3551
+ "method": "cash",
3552
+ "amountCents": 200
3553
+ },
3554
+ {
3555
+ "id": "p2",
3556
+ "method": "creditCard",
3557
+ "amountCents": 500,
3558
+ "provider": "sumup"
3559
+ }
3560
+ ],
3561
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNF8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfNywwMF8wLDAwXzAsMDBfMCwwMF9WMmVrYXYyMF9BQkMxMjNfTk1PQW9qckhRbWM9.-OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA-ewViGfUdVOhpPn0tpqzrp30x4B1j_yNJ3gBjVOeSNDJolfdVw",
3562
+ "signatureSuccess": true,
3563
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_0,00_7,00_0,00_0,00_0,00_V2ekav20_ABC123_NMOAojrHQmc=_+OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA+ewViGfUdVOhpPn0tpqzrp30x4B1j/yNJ3gBjVOeSNDJolfdVw==",
3564
+ "headerVersionId": "auto1",
3565
+ "layoutRuleset": 2,
3566
+ "items": [
3567
+ {
3568
+ "name": "Torte",
3569
+ "amount": 1,
3570
+ "priceOneCents": 700,
3571
+ "vat": 10,
3572
+ "priceOne": 7
3573
+ }
3574
+ ]
3575
+ },
3576
+ "taxNumber": "12-345/6789",
3577
+ "vatId": "ATU12345678",
3578
+ "headerVersionId": "auto1",
3579
+ "registrationInfo": null,
3580
+ "testCashregister": true,
3581
+ "testSignature": false,
3582
+ "logo_scale": "M",
3583
+ "layout": {
3584
+ "paperSize": "mm80",
3585
+ "ruleset": 2,
3586
+ "lines": [
3587
+ {
3588
+ "kind": "banner",
3589
+ "text": "TESTKASSE — kein gültiger Beleg",
3590
+ "tone": "warning"
3591
+ },
3592
+ {
3593
+ "kind": "text",
3594
+ "text": "Bäckerei Welt",
3595
+ "align": "center",
3596
+ "bold": true
3597
+ },
3598
+ {
3599
+ "kind": "text",
3600
+ "text": "Hauptplatz 1",
3601
+ "align": "center",
3602
+ "bold": false
3603
+ },
3604
+ {
3605
+ "kind": "text",
3606
+ "text": "1010 Wien",
3607
+ "align": "center",
3608
+ "bold": false
3609
+ },
3610
+ {
3611
+ "kind": "text",
3612
+ "text": "ATU12345678",
3613
+ "align": "center",
3614
+ "bold": false
3615
+ },
3616
+ {
3617
+ "kind": "text",
3618
+ "text": "+43 1 234",
3619
+ "align": "center",
3620
+ "bold": false
3621
+ },
3622
+ {
3623
+ "kind": "space",
3624
+ "lines": 1
3625
+ },
3626
+ {
3627
+ "kind": "columns",
3628
+ "columns": [
3629
+ {
3630
+ "text": "Datum:",
3631
+ "width": 4,
3632
+ "align": "left"
3633
+ },
3634
+ {
3635
+ "text": "26.09.2026 10:00:00",
3636
+ "width": 8,
3637
+ "align": "right"
3638
+ }
3639
+ ]
3640
+ },
3641
+ {
3642
+ "kind": "columns",
3643
+ "columns": [
3644
+ {
3645
+ "text": "Kassen-ID:",
3646
+ "width": 6,
3647
+ "align": "left"
3648
+ },
3649
+ {
3650
+ "text": "KECK-1",
3651
+ "width": 6,
3652
+ "align": "right"
3653
+ }
3654
+ ]
3655
+ },
3656
+ {
3657
+ "kind": "columns",
3658
+ "columns": [
3659
+ {
3660
+ "text": "Beleg-ID:",
3661
+ "width": 6,
3662
+ "align": "left"
3663
+ },
3664
+ {
3665
+ "text": "KECK-1-ID-4",
3666
+ "width": 6,
3667
+ "align": "right"
3668
+ }
3669
+ ]
3670
+ },
3671
+ {
3672
+ "kind": "space",
3673
+ "lines": 1
3674
+ },
3675
+ {
3676
+ "kind": "columns",
3677
+ "columns": [
3678
+ {
3679
+ "text": "1 x Torte",
3680
+ "width": 7,
3681
+ "align": "left"
3682
+ },
3683
+ {
3684
+ "text": "7,00 B",
3685
+ "width": 5,
3686
+ "align": "right"
3687
+ }
3688
+ ]
3689
+ },
3690
+ {
3691
+ "kind": "space",
3692
+ "lines": 1
3693
+ },
3694
+ {
3695
+ "kind": "columns",
3696
+ "columns": [
3697
+ {
3698
+ "text": "MwSt%",
3699
+ "width": 3,
3700
+ "align": "left"
3701
+ },
3702
+ {
3703
+ "text": "MwSt",
3704
+ "width": 4,
3705
+ "align": "left"
3706
+ },
3707
+ {
3708
+ "text": "Netto",
3709
+ "width": 3,
3710
+ "align": "left"
3711
+ },
3712
+ {
3713
+ "text": "Brutto",
3714
+ "width": 2,
3715
+ "align": "right"
3716
+ }
3717
+ ]
3718
+ },
3719
+ {
3720
+ "kind": "columns",
3721
+ "columns": [
3722
+ {
3723
+ "text": "B 10%",
3724
+ "width": 3,
3725
+ "align": "left"
3726
+ },
3727
+ {
3728
+ "text": "0,64",
3729
+ "width": 4,
3730
+ "align": "left"
3731
+ },
3732
+ {
3733
+ "text": "6,36",
3734
+ "width": 3,
3735
+ "align": "left"
3736
+ },
3737
+ {
3738
+ "text": "7,00",
3739
+ "width": 2,
3740
+ "align": "right"
3741
+ }
3742
+ ]
3743
+ },
3744
+ {
3745
+ "kind": "rule",
3746
+ "char": "-"
3747
+ },
3748
+ {
3749
+ "kind": "columns",
3750
+ "columns": [
3751
+ {
3752
+ "text": "Gesamt:",
3753
+ "width": 6,
3754
+ "align": "left"
3755
+ },
3756
+ {
3757
+ "text": "7,00 €",
3758
+ "width": 6,
3759
+ "align": "right"
3760
+ }
3761
+ ]
3762
+ },
3763
+ {
3764
+ "kind": "text",
3765
+ "text": "Zahlungsarten:",
3766
+ "align": "left",
3767
+ "bold": false
3768
+ },
3769
+ {
3770
+ "kind": "columns",
3771
+ "columns": [
3772
+ {
3773
+ "text": "1. Barzahlung",
3774
+ "width": 8,
3775
+ "align": "left"
3776
+ },
3777
+ {
3778
+ "text": "2,00 €",
3779
+ "width": 4,
3780
+ "align": "right"
3781
+ }
3782
+ ]
3783
+ },
3784
+ {
3785
+ "kind": "columns",
3786
+ "columns": [
3787
+ {
3788
+ "text": "2. Kartenzahlung",
3789
+ "width": 8,
3790
+ "align": "left"
3791
+ },
3792
+ {
3793
+ "text": "5,00 €",
3794
+ "width": 4,
3795
+ "align": "right"
3796
+ }
3797
+ ]
3798
+ },
3799
+ {
3800
+ "kind": "space",
3801
+ "lines": 1
3802
+ },
3803
+ {
3804
+ "kind": "qr",
3805
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_0,00_7,00_0,00_0,00_0,00_V2ekav20_ABC123_NMOAojrHQmc=_+OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA+ewViGfUdVOhpPn0tpqzrp30x4B1j/yNJ3gBjVOeSNDJolfdVw=="
3806
+ },
3807
+ {
3808
+ "kind": "space",
3809
+ "lines": 1
3810
+ },
3811
+ {
3812
+ "kind": "text",
3813
+ "text": "2. Kartenzahlung",
3814
+ "align": "center",
3815
+ "bold": false
3816
+ },
3817
+ {
3818
+ "kind": "text",
3819
+ "text": "Sumup Beleg",
3820
+ "align": "center",
3821
+ "bold": true
3822
+ },
3823
+ {
3824
+ "kind": "columns",
3825
+ "columns": [
3826
+ {
3827
+ "text": "Kartentyp:",
3828
+ "width": 6,
3829
+ "align": "left"
3830
+ },
3831
+ {
3832
+ "text": "n/a",
3833
+ "width": 6,
3834
+ "align": "right"
3835
+ }
3836
+ ]
3837
+ },
3838
+ {
3839
+ "kind": "columns",
3840
+ "columns": [
3841
+ {
3842
+ "text": "Kartennummer:",
3843
+ "width": 6,
3844
+ "align": "left"
3845
+ },
3846
+ {
3847
+ "text": "**** **** **** ",
3848
+ "width": 6,
3849
+ "align": "right"
3850
+ }
3851
+ ]
3852
+ },
3853
+ {
3854
+ "kind": "columns",
3855
+ "columns": [
3856
+ {
3857
+ "text": "Zahlungstyp:",
3858
+ "width": 6,
3859
+ "align": "left"
3860
+ },
3861
+ {
3862
+ "text": "n/a",
3863
+ "width": 6,
3864
+ "align": "right"
3865
+ }
3866
+ ]
3867
+ },
3868
+ {
3869
+ "kind": "columns",
3870
+ "columns": [
3871
+ {
3872
+ "text": "Gesamtbetrag:",
3873
+ "width": 6,
3874
+ "align": "left"
3875
+ },
3876
+ {
3877
+ "text": "-",
3878
+ "width": 6,
3879
+ "align": "right"
3880
+ }
3881
+ ]
3882
+ },
3883
+ {
3884
+ "kind": "columns",
3885
+ "columns": [
3886
+ {
3887
+ "text": "Transaktionscode:",
3888
+ "width": 6,
3889
+ "align": "left"
3890
+ },
3891
+ {
3892
+ "text": "-",
3893
+ "width": 6,
3894
+ "align": "right"
3895
+ }
3896
+ ]
3897
+ },
3898
+ {
3899
+ "kind": "columns",
3900
+ "columns": [
3901
+ {
3902
+ "text": "Modus:",
3903
+ "width": 6,
3904
+ "align": "left"
3905
+ },
3906
+ {
3907
+ "text": "",
3908
+ "width": 6,
3909
+ "align": "right"
3910
+ }
3911
+ ]
3912
+ },
3913
+ {
3914
+ "kind": "space",
3915
+ "lines": 1
3916
+ },
3917
+ {
3918
+ "kind": "space",
3919
+ "lines": 1
3920
+ },
3921
+ {
3922
+ "kind": "text",
3923
+ "text": "Bis bald",
3924
+ "align": "center",
3925
+ "bold": false
3926
+ },
3927
+ {
3928
+ "kind": "text",
3929
+ "text": "Danke",
3930
+ "align": "center",
3931
+ "bold": false
3932
+ },
3933
+ {
3934
+ "kind": "space",
3935
+ "lines": 1
3936
+ },
3937
+ {
3938
+ "kind": "banner",
3939
+ "text": "TESTKASSE — kein gültiger Beleg",
3940
+ "tone": "warning"
3941
+ }
3942
+ ]
3943
+ }
3944
+ }
3945
+ }
3946
+ },
3947
+ {
3948
+ "name": "get_zero_receipt",
3949
+ "endpoint": "getReceipt",
3950
+ "path": "/v3/getReceipt",
3951
+ "params": {
3952
+ "receiptId": "KECK-1-ID-6"
3953
+ },
3954
+ "httpStatus": 200,
3955
+ "headers": {
3956
+ "Kasseneck-Api-Version": "v3",
3957
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
3958
+ },
3959
+ "response": {
3960
+ "status": "success",
3961
+ "message": "",
3962
+ "data": {
3963
+ "company": "Bäckerei Welt",
3964
+ "street": "Hauptplatz 1",
3965
+ "zip": "1010",
3966
+ "city": "Wien",
3967
+ "phone": "+43 1 234",
3968
+ "is_small_business": false,
3969
+ "footer1": "Danke",
3970
+ "footer2": null,
3971
+ "footer3": null,
3972
+ "footer4": null,
3973
+ "thanks_message": "Bis bald",
3974
+ "kreiseck_logo": false,
3975
+ "logo_url": null,
3976
+ "receipt": {
3977
+ "counter": 6,
3978
+ "receiptType": "zero",
3979
+ "zeroKind": "manual",
3980
+ "receiptId": "KECK-1-ID-6",
3981
+ "cashregisterId": "KECK-1",
3982
+ "timeStamp": "2026-09-26T10:00:00",
3983
+ "vouchers": [],
3984
+ "paymentMethod": "cash",
3985
+ "customerDetails": null,
3986
+ "legalMessage": null,
3987
+ "customProjectId": null,
3988
+ "creditCardProvider": null,
3989
+ "amountRateStandard": 0,
3990
+ "amountRateReduced1": 0,
3991
+ "amountRateReduced2": 0,
3992
+ "amountRateZero": 0,
3993
+ "amountRateSpecial": 0,
3994
+ "turnoverCounterAES256ICM": "RlNOHunJ9a3wfMGEG9jAxA==",
3995
+ "signaturePreviousReceipt": "RHX8rm7hA9M=",
3996
+ "certificateSerialNumber": "ABC123",
3997
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000003f1f973d",
3998
+ "payments": [],
3999
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNl8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9SbE5PSHVuSl9BQkMxMjNfUkhYOHJtN2hBOU09.yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA",
4000
+ "signatureSuccess": true,
4001
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_RlNOHunJ_ABC123_RHX8rm7hA9M=_yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA==",
4002
+ "headerVersionId": "auto1",
4003
+ "layoutRuleset": 2,
4004
+ "registrationInfo": {
4005
+ "cardRegisteredAt": "2024-03-11T08:00:00.000Z",
4006
+ "cashregisterRegisteredAt": null
4007
+ },
4008
+ "items": []
4009
+ },
4010
+ "taxNumber": "12-345/6789",
4011
+ "vatId": "ATU12345678",
4012
+ "headerVersionId": "auto1",
4013
+ "registrationInfo": {
4014
+ "cardRegisteredAt": "2024-03-11T08:00:00.000Z",
4015
+ "cashregisterRegisteredAt": null
4016
+ },
4017
+ "testCashregister": true,
4018
+ "testSignature": false,
4019
+ "logo_scale": "M",
4020
+ "layout": {
4021
+ "paperSize": "mm80",
4022
+ "ruleset": 2,
4023
+ "lines": [
4024
+ {
4025
+ "kind": "banner",
4026
+ "text": "TESTKASSE — kein gültiger Beleg",
4027
+ "tone": "warning"
4028
+ },
4029
+ {
4030
+ "kind": "text",
4031
+ "text": "Bäckerei Welt",
4032
+ "align": "center",
4033
+ "bold": true
4034
+ },
4035
+ {
4036
+ "kind": "text",
4037
+ "text": "Hauptplatz 1",
4038
+ "align": "center",
4039
+ "bold": false
4040
+ },
4041
+ {
4042
+ "kind": "text",
4043
+ "text": "1010 Wien",
4044
+ "align": "center",
4045
+ "bold": false
4046
+ },
4047
+ {
4048
+ "kind": "text",
4049
+ "text": "ATU12345678",
4050
+ "align": "center",
4051
+ "bold": false
4052
+ },
4053
+ {
4054
+ "kind": "text",
4055
+ "text": "+43 1 234",
4056
+ "align": "center",
4057
+ "bold": false
4058
+ },
4059
+ {
4060
+ "kind": "space",
4061
+ "lines": 1
4062
+ },
4063
+ {
4064
+ "kind": "banner",
4065
+ "text": "NULLBELEG",
4066
+ "tone": "receipt_type"
4067
+ },
4068
+ {
4069
+ "kind": "text",
4070
+ "text": "Prüfbeleg",
4071
+ "align": "center",
4072
+ "bold": false
4073
+ },
4074
+ {
4075
+ "kind": "space",
4076
+ "lines": 1
4077
+ },
4078
+ {
4079
+ "kind": "columns",
4080
+ "columns": [
4081
+ {
4082
+ "text": "Datum:",
4083
+ "width": 4,
4084
+ "align": "left"
4085
+ },
4086
+ {
4087
+ "text": "26.09.2026 10:00:00",
4088
+ "width": 8,
4089
+ "align": "right"
4090
+ }
4091
+ ]
4092
+ },
4093
+ {
4094
+ "kind": "columns",
4095
+ "columns": [
4096
+ {
4097
+ "text": "Kassen-ID:",
4098
+ "width": 6,
4099
+ "align": "left"
4100
+ },
4101
+ {
4102
+ "text": "KECK-1",
4103
+ "width": 6,
4104
+ "align": "right"
4105
+ }
4106
+ ]
4107
+ },
4108
+ {
4109
+ "kind": "columns",
4110
+ "columns": [
4111
+ {
4112
+ "text": "Beleg-ID:",
4113
+ "width": 6,
4114
+ "align": "left"
4115
+ },
4116
+ {
4117
+ "text": "KECK-1-ID-6",
4118
+ "width": 6,
4119
+ "align": "right"
4120
+ }
4121
+ ]
4122
+ },
4123
+ {
4124
+ "kind": "space",
4125
+ "lines": 1
4126
+ },
4127
+ {
4128
+ "kind": "rule",
4129
+ "char": "-"
4130
+ },
4131
+ {
4132
+ "kind": "text",
4133
+ "text": "Prüfangaben",
4134
+ "align": "center",
4135
+ "bold": true
4136
+ },
4137
+ {
4138
+ "kind": "columns",
4139
+ "columns": [
4140
+ {
4141
+ "text": "Barumsatz:",
4142
+ "width": 6,
4143
+ "align": "left"
4144
+ },
4145
+ {
4146
+ "text": "0,00 €",
4147
+ "width": 6,
4148
+ "align": "right"
4149
+ }
4150
+ ]
4151
+ },
4152
+ {
4153
+ "kind": "columns",
4154
+ "columns": [
4155
+ {
4156
+ "text": "Signatur:",
4157
+ "width": 6,
4158
+ "align": "left"
4159
+ },
4160
+ {
4161
+ "text": "signiert",
4162
+ "width": 6,
4163
+ "align": "right"
4164
+ }
4165
+ ]
4166
+ },
4167
+ {
4168
+ "kind": "columns",
4169
+ "columns": [
4170
+ {
4171
+ "text": "Signaturkarte:",
4172
+ "width": 6,
4173
+ "align": "left"
4174
+ },
4175
+ {
4176
+ "text": "0xABC123",
4177
+ "width": 6,
4178
+ "align": "right"
4179
+ }
4180
+ ]
4181
+ },
4182
+ {
4183
+ "kind": "columns",
4184
+ "columns": [
4185
+ {
4186
+ "text": "Zertifizierungsdienst:",
4187
+ "width": 7,
4188
+ "align": "left"
4189
+ },
4190
+ {
4191
+ "text": "Testsignatur (AT100)",
4192
+ "width": 5,
4193
+ "align": "right"
4194
+ }
4195
+ ]
4196
+ },
4197
+ {
4198
+ "kind": "columns",
4199
+ "columns": [
4200
+ {
4201
+ "text": "Karte registriert:",
4202
+ "width": 6,
4203
+ "align": "left"
4204
+ },
4205
+ {
4206
+ "text": "11.03.2024",
4207
+ "width": 6,
4208
+ "align": "right"
4209
+ }
4210
+ ]
4211
+ },
4212
+ {
4213
+ "kind": "rule",
4214
+ "char": "-"
4215
+ },
4216
+ {
4217
+ "kind": "space",
4218
+ "lines": 1
4219
+ },
4220
+ {
4221
+ "kind": "qr",
4222
+ "data": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_RlNOHunJ_ABC123_RHX8rm7hA9M=_yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA=="
4223
+ },
4224
+ {
4225
+ "kind": "space",
4226
+ "lines": 1
4227
+ },
4228
+ {
4229
+ "kind": "banner",
4230
+ "text": "TESTKASSE — kein gültiger Beleg",
4231
+ "tone": "warning"
4232
+ }
4233
+ ]
4234
+ }
4235
+ }
4236
+ }
4237
+ },
4238
+ {
4239
+ "name": "error_receipt_not_found",
4240
+ "endpoint": "getReceipt",
4241
+ "path": "/v3/getReceipt",
4242
+ "params": {
4243
+ "receiptId": "KECK-1-ID-99"
4244
+ },
4245
+ "httpStatus": 200,
4246
+ "headers": {
4247
+ "Kasseneck-Api-Version": "v3",
4248
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
4249
+ },
4250
+ "response": {
4251
+ "status": "error",
4252
+ "message": "Die angegebene receiptId existiert nicht.",
4253
+ "data": {
4254
+ "code": "receipt_not_found"
4255
+ },
4256
+ "code": "receipt_not_found"
4257
+ }
4258
+ },
4259
+ {
4260
+ "name": "report",
4261
+ "endpoint": "getReportV2",
4262
+ "path": "/v3/getReportV2",
4263
+ "params": {
4264
+ "start": "2026-09-01",
4265
+ "end": "2026-09-30"
4266
+ },
4267
+ "httpStatus": 200,
4268
+ "headers": {
4269
+ "Kasseneck-Api-Version": "v3",
4270
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
4271
+ },
4272
+ "response": {
4273
+ "status": "success",
4274
+ "message": "",
4275
+ "data": {
4276
+ "receipts": [
4277
+ {
4278
+ "counter": 1,
4279
+ "receiptType": "start",
4280
+ "zeroKind": null,
4281
+ "receiptId": "KECK-1-ID-1",
4282
+ "cashregisterId": "KECK-1",
4283
+ "timeStamp": "2026-09-26T10:00:00",
4284
+ "vouchers": [],
4285
+ "paymentMethod": "cash",
4286
+ "customerDetails": null,
4287
+ "legalMessage": null,
4288
+ "customProjectId": null,
4289
+ "creditCardProvider": null,
4290
+ "amountRateStandard": 0,
4291
+ "amountRateReduced1": 0,
4292
+ "amountRateReduced2": 0,
4293
+ "amountRateZero": 0,
4294
+ "amountRateSpecial": 0,
4295
+ "turnoverCounterAES256ICM": "Ypz0zq2NAR7wXxDJ8RIXPg==",
4296
+ "signaturePreviousReceipt": "AshR0Dg4KFE=",
4297
+ "certificateSerialNumber": "ABC123",
4298
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000009c055361",
4299
+ "payments": [],
4300
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMV8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9ZcHowenEyTl9BQkMxMjNfQXNoUjBEZzRLRkU9.pWSV8ZAoCLZLsM_A8R2WN5c3dkk0nNMu3rgG75zT1e67FwrhOyiV_gWBrwGqTnJZwXXO1a0zq6TM8m189Kmo5Q",
4301
+ "signatureSuccess": true,
4302
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-1_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_Ypz0zq2N_ABC123_AshR0Dg4KFE=_pWSV8ZAoCLZLsM/A8R2WN5c3dkk0nNMu3rgG75zT1e67FwrhOyiV/gWBrwGqTnJZwXXO1a0zq6TM8m189Kmo5Q==",
4303
+ "headerVersionId": "auto1",
4304
+ "layoutRuleset": 2,
4305
+ "items": []
4306
+ },
4307
+ {
4308
+ "counter": 2,
4309
+ "receiptType": "standard",
4310
+ "zeroKind": null,
4311
+ "receiptId": "KECK-1-ID-2",
4312
+ "cashregisterId": "KECK-1",
4313
+ "timeStamp": "2026-09-26T10:00:00",
4314
+ "vouchers": [],
4315
+ "paymentMethod": "creditCard",
4316
+ "customerDetails": null,
4317
+ "legalMessage": null,
4318
+ "customProjectId": null,
4319
+ "creditCardProvider": null,
4320
+ "amountRateStandard": 6,
4321
+ "amountRateReduced1": 0,
4322
+ "amountRateReduced2": 0,
4323
+ "amountRateZero": 1,
4324
+ "amountRateSpecial": 0,
4325
+ "turnoverCounterAES256ICM": "girlnmCVSdImcB9LEr65jQ==",
4326
+ "signaturePreviousReceipt": "6Mn4bx4N/M8=",
4327
+ "certificateSerialNumber": "ABC123",
4328
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
4329
+ "payments": [
4330
+ {
4331
+ "id": "p1",
4332
+ "method": "creditCard",
4333
+ "amountCents": 700,
4334
+ "provider": "sumup"
4335
+ }
4336
+ ],
4337
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtMl8yMDI2LTA5LTI2VDEwOjAwOjAwXzYsMDBfMCwwMF8wLDAwXzEsMDBfMCwwMF9naXJsbm1DVl9BQkMxMjNfNk1uNGJ4NE4vTTg9.8VaXQwBb_1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg",
4338
+ "signatureSuccess": true,
4339
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-2_2026-09-26T10:00:00_6,00_0,00_0,00_1,00_0,00_girlnmCV_ABC123_6Mn4bx4N/M8=_8VaXQwBb/1qUWiN4ic16Cm895xtSRuMLh8gpgX9iXxeggQTkkDbTMiu0k05rQq5n4Sb9LFrKbOTM1DsXwKhAwg==",
4340
+ "tipCents": 100,
4341
+ "cancellations": [
4342
+ {
4343
+ "receiptId": "KECK-1-ID-7",
4344
+ "at": 1790409600000,
4345
+ "by": null,
4346
+ "note": null,
4347
+ "items": [
4348
+ {
4349
+ "index": 0,
4350
+ "quantity": 2
4351
+ },
4352
+ {
4353
+ "index": 1,
4354
+ "quantity": 1
4355
+ }
4356
+ ],
4357
+ "refundedByPayment": {
4358
+ "p1": 700
4359
+ }
4360
+ }
4361
+ ],
4362
+ "headerVersionId": "auto1",
4363
+ "layoutRuleset": 2,
4364
+ "items": [
4365
+ {
4366
+ "name": "Kaffee",
4367
+ "amount": 2,
4368
+ "priceOneCents": 300,
4369
+ "vat": 20,
4370
+ "priceOne": 3
4371
+ },
4372
+ {
4373
+ "kind": "tip",
4374
+ "name": "Trinkgeld Personal",
4375
+ "amount": 1,
4376
+ "quantity": 1,
4377
+ "priceOne": 1,
4378
+ "priceOneCents": 100,
4379
+ "unitPriceCents": 100,
4380
+ "vat": 0,
4381
+ "vatRate": 0,
4382
+ "paymentMethod": "creditCard",
4383
+ "recipient": null,
4384
+ "receivedImmediately": false
4385
+ }
4386
+ ]
4387
+ },
4388
+ {
4389
+ "counter": 3,
4390
+ "receiptType": "standard",
4391
+ "zeroKind": null,
4392
+ "receiptId": "KECK-1-ID-3",
4393
+ "cashregisterId": "KECK-1",
4394
+ "timeStamp": "2026-09-26T10:00:00",
4395
+ "vouchers": [],
4396
+ "paymentMethod": "cash",
4397
+ "customerDetails": null,
4398
+ "legalMessage": null,
4399
+ "customProjectId": null,
4400
+ "creditCardProvider": null,
4401
+ "amountRateStandard": 0,
4402
+ "amountRateReduced1": 3.16,
4403
+ "amountRateReduced2": 0,
4404
+ "amountRateZero": 0,
4405
+ "amountRateSpecial": 0,
4406
+ "turnoverCounterAES256ICM": "izsnQcNu1xpqCzEZFG8+tg==",
4407
+ "signaturePreviousReceipt": "HhOPJTRRalc=",
4408
+ "certificateSerialNumber": "ABC123",
4409
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000a8e47982",
4410
+ "payments": [
4411
+ {
4412
+ "id": "p1",
4413
+ "method": "cash",
4414
+ "amountCents": 316,
4415
+ "tenderedCents": 500,
4416
+ "changeCents": 184
4417
+ }
4418
+ ],
4419
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtM18yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMywxNl8wLDAwXzAsMDBfMCwwMF9penNuUWNOdV9BQkMxMjNfSGhPUEpUUlJhbGM9.yWN78jiyeGFxKsTzPGv0CyrzcHFwW_Zmc5Sl3r7FyllBXKRXQf_qeJngnrwz817GNybQJuT9ntJoNCP1pxFoTw",
4420
+ "signatureSuccess": true,
4421
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-3_2026-09-26T10:00:00_0,00_3,16_0,00_0,00_0,00_izsnQcNu_ABC123_HhOPJTRRalc=_yWN78jiyeGFxKsTzPGv0CyrzcHFwW/Zmc5Sl3r7FyllBXKRXQf/qeJngnrwz817GNybQJuT9ntJoNCP1pxFoTw==",
4422
+ "cancellations": [
4423
+ {
4424
+ "receiptId": "KECK-1-ID-8",
4425
+ "at": 1790409600000,
4426
+ "by": null,
4427
+ "note": null,
4428
+ "items": [
4429
+ {
4430
+ "index": 0,
4431
+ "quantity": 1
4432
+ }
4433
+ ],
4434
+ "refundedByPayment": {
4435
+ "p1": 79
4436
+ }
4437
+ }
4438
+ ],
4439
+ "headerVersionId": "auto1",
4440
+ "layoutRuleset": 2,
4441
+ "items": [
4442
+ {
4443
+ "name": "Semmel",
4444
+ "amount": 4,
4445
+ "priceOneCents": 79,
4446
+ "vat": 10,
4447
+ "priceOne": 0.79
4448
+ }
4449
+ ]
4450
+ },
4451
+ {
4452
+ "counter": 4,
4453
+ "receiptType": "standard",
4454
+ "zeroKind": null,
4455
+ "receiptId": "KECK-1-ID-4",
4456
+ "cashregisterId": "KECK-1",
4457
+ "timeStamp": "2026-09-26T10:00:00",
4458
+ "vouchers": [],
4459
+ "paymentMethod": "mixed",
4460
+ "customerDetails": null,
4461
+ "legalMessage": null,
4462
+ "customProjectId": null,
4463
+ "creditCardProvider": null,
4464
+ "amountRateStandard": 0,
4465
+ "amountRateReduced1": 7,
4466
+ "amountRateReduced2": 0,
4467
+ "amountRateZero": 0,
4468
+ "amountRateSpecial": 0,
4469
+ "turnoverCounterAES256ICM": "V2ekav20znVxKgmTPRuabQ==",
4470
+ "signaturePreviousReceipt": "NMOAojrHQmc=",
4471
+ "certificateSerialNumber": "ABC123",
4472
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000fd4f30a9",
4473
+ "payments": [
4474
+ {
4475
+ "id": "p1",
4476
+ "method": "cash",
4477
+ "amountCents": 200
4478
+ },
4479
+ {
4480
+ "id": "p2",
4481
+ "method": "creditCard",
4482
+ "amountCents": 500,
4483
+ "provider": "sumup"
4484
+ }
4485
+ ],
4486
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNF8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfNywwMF8wLDAwXzAsMDBfMCwwMF9WMmVrYXYyMF9BQkMxMjNfTk1PQW9qckhRbWM9.-OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA-ewViGfUdVOhpPn0tpqzrp30x4B1j_yNJ3gBjVOeSNDJolfdVw",
4487
+ "signatureSuccess": true,
4488
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-4_2026-09-26T10:00:00_0,00_7,00_0,00_0,00_0,00_V2ekav20_ABC123_NMOAojrHQmc=_+OysxJgnuauIJHzFDRcQITpVPhgSiyRCOYLA+ewViGfUdVOhpPn0tpqzrp30x4B1j/yNJ3gBjVOeSNDJolfdVw==",
4489
+ "headerVersionId": "auto1",
4490
+ "layoutRuleset": 2,
4491
+ "items": [
4492
+ {
4493
+ "name": "Torte",
4494
+ "amount": 1,
4495
+ "priceOneCents": 700,
4496
+ "vat": 10,
4497
+ "priceOne": 7
4498
+ }
4499
+ ]
4500
+ },
4501
+ {
4502
+ "counter": 5,
4503
+ "receiptType": "standard",
4504
+ "zeroKind": null,
4505
+ "receiptId": "KECK-1-ID-5",
4506
+ "cashregisterId": "KECK-1",
4507
+ "timeStamp": "2026-09-26T10:00:00",
4508
+ "vouchers": [
4509
+ {
4510
+ "action": "redeem",
4511
+ "type": "value",
4512
+ "valueCents": 500,
4513
+ "code": "WG-1",
4514
+ "value": 5,
4515
+ "name": "Wertgutschein"
4516
+ }
4517
+ ],
4518
+ "paymentMethod": "cash",
4519
+ "customerDetails": null,
4520
+ "legalMessage": null,
4521
+ "customProjectId": null,
4522
+ "creditCardProvider": null,
4523
+ "amountRateStandard": 8.7,
4524
+ "amountRateReduced1": 0,
4525
+ "amountRateReduced2": 0,
4526
+ "amountRateZero": 0,
4527
+ "amountRateSpecial": 0,
4528
+ "turnoverCounterAES256ICM": "X1ROZbuWXJxg0xCA9eb0Tw==",
4529
+ "signaturePreviousReceipt": "3gYQ4xAXwOM=",
4530
+ "certificateSerialNumber": "ABC123",
4531
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000081e09afe",
4532
+ "payments": [
4533
+ {
4534
+ "id": "p1",
4535
+ "method": "cash",
4536
+ "amountCents": 370
4537
+ }
4538
+ ],
4539
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNV8yMDI2LTA5LTI2VDEwOjAwOjAwXzgsNzBfMCwwMF8wLDAwXzAsMDBfMCwwMF9YMVJPWmJ1V19BQkMxMjNfM2dZUTR4QVh3T009.LbacnDlwUMarI6Qc5N82XpI0zEvGbwD_LdtZxta-Rec1hvVktipdgcKQwGWziFVNPGHDBVOwM_j9p7GtfljsTw",
4540
+ "signatureSuccess": true,
4541
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-5_2026-09-26T10:00:00_8,70_0,00_0,00_0,00_0,00_X1ROZbuW_ABC123_3gYQ4xAXwOM=_LbacnDlwUMarI6Qc5N82XpI0zEvGbwD/LdtZxta+Rec1hvVktipdgcKQwGWziFVNPGHDBVOwM/j9p7GtfljsTw==",
4542
+ "headerVersionId": "auto1",
4543
+ "layoutRuleset": 2,
4544
+ "items": [
4545
+ {
4546
+ "name": "Tee",
4547
+ "quantity": 3,
4548
+ "unitPriceCents": 290,
4549
+ "vatRate": 20,
4550
+ "amount": 3,
4551
+ "vat": 20,
4552
+ "priceOneCents": 290,
4553
+ "priceOne": 2.9
4554
+ }
4555
+ ]
4556
+ },
4557
+ {
4558
+ "counter": 6,
4559
+ "receiptType": "zero",
4560
+ "zeroKind": "manual",
4561
+ "receiptId": "KECK-1-ID-6",
4562
+ "cashregisterId": "KECK-1",
4563
+ "timeStamp": "2026-09-26T10:00:00",
4564
+ "vouchers": [],
4565
+ "paymentMethod": "cash",
4566
+ "customerDetails": null,
4567
+ "legalMessage": null,
4568
+ "customProjectId": null,
4569
+ "creditCardProvider": null,
4570
+ "amountRateStandard": 0,
4571
+ "amountRateReduced1": 0,
4572
+ "amountRateReduced2": 0,
4573
+ "amountRateZero": 0,
4574
+ "amountRateSpecial": 0,
4575
+ "turnoverCounterAES256ICM": "RlNOHunJ9a3wfMGEG9jAxA==",
4576
+ "signaturePreviousReceipt": "RHX8rm7hA9M=",
4577
+ "certificateSerialNumber": "ABC123",
4578
+ "fullReceiptId": "00000000000000000000000000000000.000000000000000000000000000000000000000000000000000000003f1f973d",
4579
+ "payments": [],
4580
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtNl8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfMCwwMF8wLDAwXzAsMDBfMCwwMF9SbE5PSHVuSl9BQkMxMjNfUkhYOHJtN2hBOU09.yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA",
4581
+ "signatureSuccess": true,
4582
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-6_2026-09-26T10:00:00_0,00_0,00_0,00_0,00_0,00_RlNOHunJ_ABC123_RHX8rm7hA9M=_yTwZpDuI85WvbixNwUIvr7LPmq8ltVYZjbufkUElaeUrAGo4QeGFJBDnEmn5LQUBOrqSQW8dZQgtM3J2gZczRA==",
4583
+ "headerVersionId": "auto1",
4584
+ "layoutRuleset": 2,
4585
+ "registrationInfo": {
4586
+ "cardRegisteredAt": "2024-03-11T08:00:00.000Z",
4587
+ "cashregisterRegisteredAt": null
4588
+ },
4589
+ "items": []
4590
+ },
4591
+ {
4592
+ "counter": 7,
4593
+ "receiptType": "cancellation",
4594
+ "zeroKind": null,
4595
+ "receiptId": "KECK-1-ID-7",
4596
+ "cashregisterId": "KECK-1",
4597
+ "timeStamp": "2026-09-26T10:00:00",
4598
+ "vouchers": [],
4599
+ "paymentMethod": "creditCard",
4600
+ "customerDetails": null,
4601
+ "legalMessage": "STORNO zu KECK-1-ID-2 – Fehleingabe",
4602
+ "customProjectId": null,
4603
+ "creditCardProvider": null,
4604
+ "amountRateStandard": -6,
4605
+ "amountRateReduced1": 0,
4606
+ "amountRateReduced2": 0,
4607
+ "amountRateZero": -1,
4608
+ "amountRateSpecial": 0,
4609
+ "turnoverCounterAES256ICM": "e42Zjx66gXyXfp6ZK6VUzA==",
4610
+ "signaturePreviousReceipt": "dESbUhmSTnM=",
4611
+ "certificateSerialNumber": "ABC123",
4612
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000d5ed0baa",
4613
+ "payments": [
4614
+ {
4615
+ "id": "p1",
4616
+ "method": "creditCard",
4617
+ "amountCents": -700,
4618
+ "provider": "sumup",
4619
+ "refundOf": "p1"
4620
+ }
4621
+ ],
4622
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtN18yMDI2LTA5LTI2VDEwOjAwOjAwXy02LDAwXzAsMDBfMCwwMF8tMSwwMF8wLDAwX1UxUlBfQUJDMTIzX2RFU2JVaG1TVG5NPQ.qA-w3tqb63SqWOAodLTl59WKJmkLlQrNeY1GA0xLZmt9VmFEGMb_PchAM4aGEzhbRzPmFGpVpXEkptfQsiwT6g",
4623
+ "signatureSuccess": true,
4624
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-7_2026-09-26T10:00:00_-6,00_0,00_0,00_-1,00_0,00_U1RP_ABC123_dESbUhmSTnM=_qA+w3tqb63SqWOAodLTl59WKJmkLlQrNeY1GA0xLZmt9VmFEGMb/PchAM4aGEzhbRzPmFGpVpXEkptfQsiwT6g==",
4625
+ "cancellationOf": {
4626
+ "receiptId": "KECK-1-ID-2",
4627
+ "fullReceiptId": "00000000000000000000000000000000.0000000000000000000000000000000000000000000000000000000014c32cfb",
4628
+ "timeStamp": "2026-09-26T10:00:00"
4629
+ },
4630
+ "cancellationReason": "input_error",
4631
+ "tipCents": -100,
4632
+ "headerVersionId": "auto1",
4633
+ "layoutRuleset": 2,
4634
+ "items": [
4635
+ {
4636
+ "name": "Kaffee",
4637
+ "quantity": 2,
4638
+ "unitPriceCents": -300,
4639
+ "vatRate": 20,
4640
+ "amount": 2,
4641
+ "vat": 20,
4642
+ "priceOneCents": -300,
4643
+ "priceOne": -3
4644
+ },
4645
+ {
4646
+ "name": "Trinkgeld Personal",
4647
+ "quantity": 1,
4648
+ "unitPriceCents": -100,
4649
+ "vatRate": 0,
4650
+ "kind": "tip",
4651
+ "recipient": null,
4652
+ "paymentMethod": "creditCard",
4653
+ "amount": 1,
4654
+ "vat": 0,
4655
+ "priceOneCents": -100,
4656
+ "priceOne": -1,
4657
+ "receivedImmediately": false
4658
+ }
4659
+ ]
4660
+ },
4661
+ {
4662
+ "counter": 8,
4663
+ "receiptType": "cancellation",
4664
+ "zeroKind": null,
4665
+ "receiptId": "KECK-1-ID-8",
4666
+ "cashregisterId": "KECK-1",
4667
+ "timeStamp": "2026-09-26T10:00:00",
4668
+ "vouchers": [],
4669
+ "paymentMethod": "cash",
4670
+ "customerDetails": null,
4671
+ "legalMessage": "STORNO zu KECK-1-ID-3 – Kunde hat storniert",
4672
+ "customProjectId": null,
4673
+ "creditCardProvider": null,
4674
+ "amountRateStandard": 0,
4675
+ "amountRateReduced1": -0.79,
4676
+ "amountRateReduced2": 0,
4677
+ "amountRateZero": 0,
4678
+ "amountRateSpecial": 0,
4679
+ "turnoverCounterAES256ICM": "FKv36maM5cSDIv7d/PNpSg==",
4680
+ "signaturePreviousReceipt": "HOeSCtN5SAs=",
4681
+ "certificateSerialNumber": "ABC123",
4682
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000ee9d92da",
4683
+ "payments": [
4684
+ {
4685
+ "id": "p1",
4686
+ "method": "cash",
4687
+ "amountCents": -79,
4688
+ "refundOf": "p1"
4689
+ }
4690
+ ],
4691
+ "sig": "eyJhbGciOiJFUzI1NiJ9.X1IxLUFUMTAwX0tFQ0stMV9LRUNLLTEtSUQtOF8yMDI2LTA5LTI2VDEwOjAwOjAwXzAsMDBfLTAsNzlfMCwwMF8wLDAwXzAsMDBfVTFSUF9BQkMxMjNfSE9lU0N0TjVTQXM9.Ydu4h8T-tNbFQvEprS0UStjcp7yPkjk8zHrGpKgt5GH8RdMCKMEnjNk0tYWaO_Bhap1mggRTXBhLQhAyi8nGxg",
4692
+ "signatureSuccess": true,
4693
+ "qr": "_R1-AT100_KECK-1_KECK-1-ID-8_2026-09-26T10:00:00_0,00_-0,79_0,00_0,00_0,00_U1RP_ABC123_HOeSCtN5SAs=_Ydu4h8T+tNbFQvEprS0UStjcp7yPkjk8zHrGpKgt5GH8RdMCKMEnjNk0tYWaO/Bhap1mggRTXBhLQhAyi8nGxg==",
4694
+ "cancellationOf": {
4695
+ "receiptId": "KECK-1-ID-3",
4696
+ "fullReceiptId": "00000000000000000000000000000000.00000000000000000000000000000000000000000000000000000000a8e47982",
4697
+ "timeStamp": "2026-09-26T10:00:00"
4698
+ },
4699
+ "cancellationReason": "customer_cancelled",
4700
+ "headerVersionId": "auto1",
4701
+ "layoutRuleset": 2,
4702
+ "items": [
4703
+ {
4704
+ "name": "Semmel",
4705
+ "quantity": 1,
4706
+ "unitPriceCents": -79,
4707
+ "vatRate": 10,
4708
+ "amount": 1,
4709
+ "vat": 10,
4710
+ "priceOneCents": -79,
4711
+ "priceOne": -0.79
4712
+ }
4713
+ ]
4714
+ }
4715
+ ],
4716
+ "metadata": {
4717
+ "label": "Laden",
4718
+ "is_small_business": false,
4719
+ "company": "Bäckerei Welt",
4720
+ "phone": "+43 1 234",
4721
+ "street": "Hauptplatz 1",
4722
+ "zip": "1010",
4723
+ "city": "Wien",
4724
+ "footer1": "Danke",
4725
+ "footer2": null,
4726
+ "footer3": null,
4727
+ "footer4": null,
4728
+ "logo_url": null,
4729
+ "thanks_message": "Bis bald",
4730
+ "kreiseck_logo": false,
4731
+ "taxNumber": "12-345/6789",
4732
+ "vatId": "ATU12345678"
4733
+ }
4734
+ }
4735
+ }
4736
+ }
4737
+ ]
4738
+ }