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