@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
@@ -4,10 +4,10 @@
4
4
  * Aus dieser Datei entstehen drei Dinge, damit sie nicht auseinanderlaufen
5
5
  * koennen:
6
6
  *
7
- * 1. `fixtures/rechnung-api.schema.json` (`npm run fixtures:rechnung`) — das
7
+ * 1. `fixtures/invoice-api.schema.json` (`npm run fixtures:rechnung`) — das
8
8
  * Backend liest es aus dem vendorierten Paket und vergleicht es in beide
9
9
  * Richtungen mit seiner eigenen Pruefung; der Dart-Zwilling zieht es byteweise.
10
- * 2. Die Listen unter `rechnung` in `fixtures/oberflaeche.json` (Codes, Gruende,
10
+ * 2. Die Listen unter `rechnung` in `fixtures/surface.json` (Codes, Gruende,
11
11
  * Enums) — ueber denselben Namensraum-Scan wie der Partner-Teil.
12
12
  * 3. Die TypeScript-Typen in `typen.ts`.
13
13
  *
@@ -17,8 +17,8 @@
17
17
  * Beschrieben wird die Anfrage. Was der Server daraus macht — Rechnungsdatum,
18
18
  * Nummer, Summen — ist bewusst **nicht** setzbar.
19
19
  */
20
- export const RECHNUNG_VERTRAG_VERSION = 1;
21
- export const RECHNUNG_AUFRUFE = [
20
+ export const INVOICE_CONTRACT_VERSION = 2;
21
+ export const INVOICE_ENDPOINTS = [
22
22
  'createCustomer',
23
23
  'getCustomer',
24
24
  'updateCustomer',
@@ -69,6 +69,38 @@ export const INVOICE_ERROR_CODES = [
69
69
  'einvoice_unavailable', // zu dieser Rechnung entsteht keine E-Rechnung, Grund in `reason`
70
70
  'amount_too_large', // Betrag ueber der Grenze des Ganzzahlkerns; erst ab dessen Umstieg gesendet
71
71
  ];
72
+ /**
73
+ * Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
74
+ * soweit sie nicht schon in [INVOICE_ERROR_CODES] stehen: `errorCodes.auth`
75
+ * ohne die sieben des Partner-Zugangs, `errorCodes.edge` (sortiert) und
76
+ * zuletzt `route_missing` (Code des Pakets). [INVOICE_ERROR_CODES] bleibt
77
+ * genau der Katalog des Servers (das Backend vergleicht ihn mit dem Schema);
78
+ * die Helfer in `./invoice` erkennen beide Listen.
79
+ */
80
+ export const INVOICE_REQUEST_ERROR_CODES = [
81
+ 'account_not_found',
82
+ 'admin_required',
83
+ 'cashregister_not_assigned',
84
+ 'cashregister_not_found',
85
+ 'cashregister_token_invalid',
86
+ 'cashregister_token_missing',
87
+ 'dialect_mismatch',
88
+ 'internal_translation_error',
89
+ 'live_not_enabled',
90
+ 'method_not_allowed',
91
+ 'mfa_required',
92
+ 'not_found',
93
+ 'register_user_no_business',
94
+ 'register_user_not_allowed',
95
+ 'register_user_not_found',
96
+ 'response_translation_failed',
97
+ 'session_expired',
98
+ 'session_other_cashregister',
99
+ 'unauthorized',
100
+ 'user_disabled',
101
+ 'user_verification_failed',
102
+ 'route_missing',
103
+ ];
72
104
  /** Gruende einer Gutschrift. Der Server druckt den deutschen Anzeigetext. */
73
105
  export const CREDIT_NOTE_REASONS = [
74
106
  'cancellation',
@@ -81,12 +113,13 @@ export const CREDIT_NOTE_REASONS = [
81
113
  * Der Steuerfall einer Rechnung. Er wird vom Server **abgeleitet** (Kundenland,
82
114
  * Kundenart, UID, Ware oder Leistung); eine mitgeschickte Angabe muss dazu
83
115
  * passen, sonst `tax_scheme_mismatch`. Neue Faelle stehen hinten, damit
84
- * gespeicherte Reihenfolgen gueltig bleiben.
116
+ * gespeicherte Reihenfolgen gueltig bleiben. Unter `/v1` hiess `intraCommunitySupply` noch
117
+ * `igLieferung`; unter `/v3` weist der Server den alten Namen mit `validation` ab.
85
118
  *
86
119
  * - `normal` oesterreichische Umsatzsteuer
87
120
  * - `smallBusiness` Kleinunternehmer (§ 6 Abs. 1 Z 27 UStG)
88
121
  * - `reverseCharge` Leistung an ein Unternehmen in der EU (Art. 196 MwSt-RL)
89
- * - `igLieferung` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
122
+ * - `intraCommunitySupply` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
90
123
  * - `exportThirdCountry` Ware ins Drittland (§ 6 Abs. 1 Z 1 UStG)
91
124
  * - `domesticReverseCharge` Uebergang der Steuerschuld im Inland, Grund aus `REVERSE_CHARGE_REASONS`
92
125
  * - `oss` B2C in der EU ueber den One-Stop-Shop, Satz des Ziellandes
@@ -96,7 +129,7 @@ export const TAX_SCHEMES = [
96
129
  'normal',
97
130
  'smallBusiness',
98
131
  'reverseCharge',
99
- 'igLieferung',
132
+ 'intraCommunitySupply',
100
133
  'exportThirdCountry',
101
134
  'domesticReverseCharge',
102
135
  'oss',
@@ -107,23 +140,23 @@ export const TAX_SCHEMES = [
107
140
  * kein `domesticReverseCharge`: die Bedingungen sind je Fall verschieden, und
108
141
  * keine davon laesst sich aus Betrag und Land erraten.
109
142
  *
110
- * `schwelleCents` ist das Entgelt, ab dem der Fall greift — maßgeblich ist das
143
+ * `thresholdCents` ist das Entgelt, ab dem der Fall greift – maßgeblich ist das
111
144
  * **in der Rechnung ausgewiesene** Entgelt, nicht der Einzelpreis; ein
112
145
  * einheitlicher Liefervorgang darf dafuer nicht auf mehrere Rechnungen
113
146
  * aufgeteilt werden (UStR Rz 2605d).
114
147
  */
115
148
  export const REVERSE_CHARGE_REASONS = Object.freeze({
116
- construction: { stelle: '§ 19 Abs. 1a UStG', schwelleCents: null },
117
- scrap: { stelle: 'Schrott-UStV, BGBl. II Nr. 129/2007', schwelleCents: null },
118
- mobile_devices: { stelle: '§ 19 Abs. 1e lit. b UStG', schwelleCents: 500_000 },
119
- it_devices: { stelle: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', schwelleCents: 500_000 },
120
- metals: { stelle: '§ 2 Z 4 UStBBKV', schwelleCents: null },
121
- emission_certificates: { stelle: '§ 19 Abs. 1e lit. a UStG', schwelleCents: null },
122
- gas_electricity: { stelle: '§ 2 Z 2 UStBBKV', schwelleCents: null },
123
- energy_certificates: { stelle: '§ 2 Z 3 UStBBKV', schwelleCents: null },
124
- investment_gold: { stelle: '§ 2 Z 5 UStBBKV', schwelleCents: null },
125
- security_transfer: { stelle: '§ 19 Abs. 1b UStG', schwelleCents: null },
126
- foreign_supplier: { stelle: '§ 19 Abs. 1 zweiter Satz UStG', schwelleCents: null },
149
+ construction: { legalBasis: '§ 19 Abs. 1a UStG', thresholdCents: null },
150
+ scrap: { legalBasis: 'Schrott-UStV, BGBl. II Nr. 129/2007', thresholdCents: null },
151
+ mobile_devices: { legalBasis: '§ 19 Abs. 1e lit. b UStG', thresholdCents: 500_000 },
152
+ it_devices: { legalBasis: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', thresholdCents: 500_000 },
153
+ metals: { legalBasis: '§ 2 Z 4 UStBBKV', thresholdCents: null },
154
+ emission_certificates: { legalBasis: '§ 19 Abs. 1e lit. a UStG', thresholdCents: null },
155
+ gas_electricity: { legalBasis: '§ 2 Z 2 UStBBKV', thresholdCents: null },
156
+ energy_certificates: { legalBasis: '§ 2 Z 3 UStBBKV', thresholdCents: null },
157
+ investment_gold: { legalBasis: '§ 2 Z 5 UStBBKV', thresholdCents: null },
158
+ security_transfer: { legalBasis: '§ 19 Abs. 1b UStG', thresholdCents: null },
159
+ foreign_supplier: { legalBasis: '§ 19 Abs. 1 zweiter Satz UStG', thresholdCents: null },
127
160
  });
128
161
  /** Ware oder Leistung — ohne das laesst sich ig. Lieferung nicht von Reverse Charge trennen. */
129
162
  export const ITEM_KINDS = ['goods', 'service'];
@@ -131,8 +164,37 @@ export const PRICE_MODES = ['net', 'gross'];
131
164
  export const VAT_RATES = [0, 10, 13, 20];
132
165
  export const CUSTOMER_TYPES = ['private', 'company'];
133
166
  export const INVOICE_LIST_STATUS = ['final', 'paid', 'cancelled', 'open', 'overdue'];
134
- export const DOC_TYPES = ['RE', 'GU'];
167
+ /**
168
+ * Belegart: Rechnung oder Gutschrift (unter `/v1` `RE` bzw. `GU`). Das Vorzeichen
169
+ * steht in der Belegart, nie im Betrag.
170
+ */
171
+ export const DOC_TYPES = ['invoice', 'credit_note'];
135
172
  export const EINVOICE_FORMATS = ['ubl', 'cii'];
173
+ /**
174
+ * Was einer EN-16931-konformen E-Rechnung fehlt: `einvoice.missing` jeder
175
+ * Rechnungssicht und `data.missing` bei `einvoice_incomplete` bzw.
176
+ * `invoice_requirements_missing`. Unter `/v1` standen hier deutsche Woerter
177
+ * (`Straße`, `PLZ`, …).
178
+ */
179
+ export const EINVOICE_MISSING_CODES = [
180
+ 'name',
181
+ 'street',
182
+ 'zip',
183
+ 'city',
184
+ 'country',
185
+ 'vat_id',
186
+ 'order_reference',
187
+ 'order_reference_format',
188
+ ];
189
+ /** Warum eine Rechnung abgeschrieben wurde (`writeOffReasonCode` in `getInvoice`). */
190
+ export const WRITE_OFF_REASON_CODES = [
191
+ 'uncollectible',
192
+ 'time_barred',
193
+ 'waived',
194
+ 'disputed',
195
+ 'settled_externally',
196
+ 'other',
197
+ ];
136
198
  /**
137
199
  * Sprachen einer Rechnung. Die Sprache wird beim Festschreiben eingefroren;
138
200
  * fehlt sie an Kunde oder Rechnung, gilt `de`. Behoerden bekommen immer `de`
@@ -165,9 +227,9 @@ export const INVOICE_NOTICE_CODES = [
165
227
  ];
166
228
  /**
167
229
  * Einheiten einer Position. Die API nimmt nur diese Schluessel an; gedruckt
168
- * wird das Kuerzel in der Sprache der Rechnung (`RECHNUNG_TEXTE`,
169
- * `einheit.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
170
- * (`RECHNUNG_EINHEITEN_CODES`). Ohne Angabe gilt `piece`.
230
+ * wird das Kuerzel in der Sprache der Rechnung (`INVOICE_TEXTS`,
231
+ * `unit_symbol.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
232
+ * (`INVOICE_UNIT_CODES`). Ohne Angabe gilt `piece`.
171
233
  */
172
234
  export const INVOICE_UNITS = [
173
235
  'piece',
@@ -226,7 +288,7 @@ export const INVOICE_UNITS = [
226
288
  * Laufmeter; Lizenz, Benutzer, Geraet als Stueck). Die Validatoren der
227
289
  * E-Rechnung pruefen jeden Code im Backend (Beispiel `api-einheiten`).
228
290
  */
229
- export const RECHNUNG_EINHEITEN_CODES = Object.freeze({
291
+ export const INVOICE_UNIT_CODES = Object.freeze({
230
292
  piece: 'C62',
231
293
  pair: 'PR',
232
294
  set: 'SET',
@@ -303,16 +365,16 @@ export const INVOICE_SETUP_REQUIREMENTS = [
303
365
  'bank_account',
304
366
  'number_format',
305
367
  ];
306
- const text = (max, pflicht = false, extra = {}) => ({ typ: 'string', pflicht, max, ...(pflicht && extra.min === undefined ? { min: 1 } : {}), ...extra });
307
- const idempotencyKey = (pflicht) => ({ typ: 'string', pflicht, min: 1, max: 120 });
308
- const id = { typ: 'string', pflicht: false, min: 1, max: 128 };
309
- const idPflicht = { typ: 'string', pflicht: true, min: 1, max: 128 };
310
- const datum = (pflicht = false) => ({ typ: 'string', pflicht, min: 10, max: 10, format: 'date' });
311
- const limit = { typ: 'integer', pflicht: false, min: 1, max: 100 };
312
- const cursor = { typ: 'string', pflicht: false, min: 1, max: 500 };
368
+ const text = (max, required = false, extra = {}) => ({ type: 'string', required, max, ...(required && extra.min === undefined ? { min: 1 } : {}), ...extra });
369
+ const idempotencyKey = (required) => ({ type: 'string', required, min: 1, max: 120 });
370
+ const id = { type: 'string', required: false, min: 1, max: 128 };
371
+ const idPflicht = { type: 'string', required: true, min: 1, max: 128 };
372
+ const datum = (required = false) => ({ type: 'string', required, min: 10, max: 10, format: 'date' });
373
+ const limit = { type: 'integer', required: false, min: 1, max: 100 };
374
+ const cursor = { type: 'string', required: false, min: 1, max: 500 };
313
375
  /** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
314
- export const KUNDE_FELDER = Object.freeze({
315
- type: { typ: 'enum', pflicht: true, werte: CUSTOMER_TYPES },
376
+ export const CUSTOMER_FIELDS = Object.freeze({
377
+ type: { type: 'enum', required: true, values: CUSTOMER_TYPES },
316
378
  name: text(200, true),
317
379
  legalForm: text(40),
318
380
  email: text(254, false, { format: 'email' }),
@@ -324,14 +386,14 @@ export const KUNDE_FELDER = Object.freeze({
324
386
  country: text(2, true, { min: 2, format: 'country' }),
325
387
  vatId: text(20, false, { format: 'vatId' }),
326
388
  shortCode: text(8, false, { format: 'shortCode' }),
327
- isAuthority: { typ: 'boolean', pflicht: false },
389
+ isAuthority: { type: 'boolean', required: false },
328
390
  note: text(1000),
329
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
391
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
330
392
  /** Sprache der Rechnungen an diesen Kunden; fehlt = `de`. */
331
- language: { typ: 'enum', pflicht: false, werte: INVOICE_LANGUAGES },
393
+ language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
332
394
  });
333
395
  /** Beim Aendern ist jedes Kundenfeld optional. */
334
- const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(KUNDE_FELDER).map(([name, feld]) => [name, { ...feld, pflicht: false }])));
396
+ const CUSTOMER_PATCH = Object.freeze(Object.fromEntries(Object.entries(CUSTOMER_FIELDS).map(([name, feld]) => [name, { ...feld, required: false }])));
335
397
  /**
336
398
  * Eine Rechnungs- oder Gutschriftsposition.
337
399
  *
@@ -342,33 +404,33 @@ const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(KUNDE_FELDER
342
404
  * unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
343
405
  * die bisher gerundet eingereicht werden mussten.
344
406
  */
345
- export const POSITION_FELDER = Object.freeze({
407
+ export const ITEM_FIELDS = Object.freeze({
346
408
  description: text(300, true),
347
409
  subtitle: text(1000),
348
- quantity: { typ: 'number', pflicht: true, min: 0, exklusivMin: true, max: 1_000_000_000, nachkomma: 3 },
410
+ quantity: { type: 'number', required: true, min: 0, exclusiveMin: true, max: 1_000_000_000, decimals: 3 },
349
411
  /** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
350
- unit: { typ: 'enum', pflicht: false, werte: INVOICE_UNITS },
412
+ unit: { type: 'enum', required: false, values: INVOICE_UNITS },
351
413
  /** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
352
- kind: { typ: 'enum', pflicht: false, werte: ITEM_KINDS },
414
+ kind: { type: 'enum', required: false, values: ITEM_KINDS },
353
415
  /** Einzelpreis in ganzen Cent. Alternative zu `unitPriceMicros`. */
354
- unitPriceCents: { typ: 'integer', pflicht: false, min: 0, max: 100_000_000 },
416
+ unitPriceCents: { type: 'integer', required: false, min: 0, max: 100_000_000 },
355
417
  /** Einzelpreis in Mikro-Euro (10⁻⁶ €). Alternative zu `unitPriceCents`. */
356
- unitPriceMicros: { typ: 'integer', pflicht: false, min: 0, max: 1_000_000_000_000 },
357
- vatRate: { typ: 'enum', pflicht: true, werte: VAT_RATES },
358
- discountPct: { typ: 'number', pflicht: false, min: 0, max: 100, nachkomma: 2 },
418
+ unitPriceMicros: { type: 'integer', required: false, min: 0, max: 1_000_000_000_000 },
419
+ vatRate: { type: 'enum', required: true, values: VAT_RATES },
420
+ discountPct: { type: 'number', required: false, min: 0, max: 100, decimals: 2 },
359
421
  });
360
422
  /** Genau einer der beiden Preise je Position (§ 9.1). */
361
- export const POSITION_PREIS_GENAU_EINS = Object.freeze([
423
+ export const ITEM_PRICE_EXACTLY_ONE = Object.freeze([
362
424
  Object.freeze(['unitPriceCents']),
363
425
  Object.freeze(['unitPriceMicros']),
364
426
  ]);
365
427
  const positionen = {
366
- typ: 'list',
367
- pflicht: true,
428
+ type: 'list',
429
+ required: true,
368
430
  min: 1,
369
431
  max: 500,
370
- eintrag: {
371
- typ: 'object', pflicht: true, felder: POSITION_FELDER, genauEins: POSITION_PREIS_GENAU_EINS,
432
+ item: {
433
+ type: 'object', required: true, fields: ITEM_FIELDS, exactlyOne: ITEM_PRICE_EXACTLY_ONE,
372
434
  },
373
435
  };
374
436
  /**
@@ -378,9 +440,9 @@ const positionen = {
378
440
  * aber **nicht gedruckt**: die Rechnung wird aufbewahrt und vervielfaeltigt,
379
441
  * und dem Empfaenger nuetzt sie nichts.
380
442
  */
381
- export const PAYMENT_FELDER = Object.freeze({
382
- method: { typ: 'enum', pflicht: true, werte: INVOICE_PAYMENT_METHODS },
383
- amountCents: { typ: 'integer', pflicht: false, min: 1, max: 100_000_000 },
443
+ export const PAYMENT_FIELDS = Object.freeze({
444
+ method: { type: 'enum', required: true, values: INVOICE_PAYMENT_METHODS },
445
+ amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
384
446
  paidAt: datum(),
385
447
  reference: text(100),
386
448
  /**
@@ -388,23 +450,23 @@ export const PAYMENT_FELDER = Object.freeze({
388
450
  * Zahlung per App am Tresen). Dann ist sie ein Barumsatz. Zu `transfer` passt
389
451
  * das nicht — eine Ueberweisung erfolgt nie vor Ort — und wird abgewiesen.
390
452
  */
391
- onSite: { typ: 'boolean', pflicht: false },
453
+ onSite: { type: 'boolean', required: false },
392
454
  });
393
- export const RECHNUNG_ANFRAGEN = Object.freeze({
455
+ export const INVOICE_REQUESTS = Object.freeze({
394
456
  createCustomer: {
395
- customer: { typ: 'object', pflicht: true, felder: KUNDE_FELDER },
457
+ customer: { type: 'object', required: true, fields: CUSTOMER_FIELDS },
396
458
  idempotencyKey: idempotencyKey(false),
397
459
  },
398
460
  getCustomer: {
399
461
  customerId: id,
400
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
462
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
401
463
  },
402
464
  updateCustomer: {
403
465
  customerId: idPflicht,
404
- customer: { typ: 'object', pflicht: true, felder: KUNDE_PATCH },
466
+ customer: { type: 'object', required: true, fields: CUSTOMER_PATCH },
405
467
  },
406
468
  searchCustomers: {
407
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
469
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
408
470
  vatId: text(20),
409
471
  email: text(254),
410
472
  name: text(200),
@@ -419,23 +481,23 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
419
481
  * muss passen (`tax_scheme_mismatch`) — so faellt eine falsche Zuordnung
420
482
  * im Fremdsystem auf, statt eine falsche Rechnung zu erzeugen.
421
483
  */
422
- taxScheme: { typ: 'enum', pflicht: false, werte: TAX_SCHEMES },
484
+ taxScheme: { type: 'enum', required: false, values: TAX_SCHEMES },
423
485
  /** Pflicht bei `domesticReverseCharge`, sonst nicht erlaubt. */
424
- reverseChargeReason: { typ: 'enum', pflicht: false, werte: Object.keys(REVERSE_CHARGE_REASONS) },
425
- priceMode: { typ: 'enum', pflicht: true, werte: PRICE_MODES },
486
+ reverseChargeReason: { type: 'enum', required: false, values: Object.keys(REVERSE_CHARGE_REASONS) },
487
+ priceMode: { type: 'enum', required: true, values: PRICE_MODES },
426
488
  serviceStart: datum(true),
427
489
  serviceEnd: datum(),
428
- paymentTermDays: { typ: 'integer', pflicht: false, min: 0, max: 365 },
490
+ paymentTermDays: { type: 'integer', required: false, min: 0, max: 365 },
429
491
  orderReference: text(200),
430
492
  intro: text(2000),
431
493
  note: text(2000),
432
494
  paymentReference: text(140),
433
- girocode: { typ: 'boolean', pflicht: false },
434
- tracking: { typ: 'boolean', pflicht: false },
495
+ girocode: { type: 'boolean', required: false },
496
+ tracking: { type: 'boolean', required: false },
435
497
  items: positionen,
436
- metadata: { typ: 'map', pflicht: false, maxSchluessel: 20, schluesselMuster: '^[a-zA-Z0-9_]{1,40}$', wertMax: 500 },
498
+ metadata: { type: 'map', required: false, maxKeys: 20, keyPattern: '^[a-zA-Z0-9_]{1,40}$', valueMax: 500 },
437
499
  /** Sprache dieser Rechnung; sonst die des Kunden, sonst `de`. */
438
- language: { typ: 'enum', pflicht: false, werte: INVOICE_LANGUAGES },
500
+ language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
439
501
  /** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
440
502
  brandId: id,
441
503
  /**
@@ -443,36 +505,36 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
443
505
  * Festschreiben. Sonst gaebe es einen Moment, in dem die Rechnung offen ist
444
506
  * und ein sofort geholtes PDF Zahlungsinformationen traegt.
445
507
  */
446
- payment: { typ: 'object', pflicht: false, felder: PAYMENT_FELDER },
508
+ payment: { type: 'object', required: false, fields: PAYMENT_FIELDS },
447
509
  /**
448
510
  * Probelauf: alles pruefen und rechnen wie beim Ausstellen, aber nichts
449
511
  * festschreiben — keine Nummer, kein Dokument, keine Zahlung, kein
450
512
  * Idempotenz-Eintrag. Die Antwort traegt `preview` statt `invoice`.
451
513
  */
452
- dryRun: { typ: 'boolean', pflicht: false },
514
+ dryRun: { type: 'boolean', required: false },
453
515
  },
454
516
  cancelInvoice: {
455
517
  idempotencyKey: idempotencyKey(true),
456
518
  invoiceId: idPflicht,
457
- reason: { typ: 'enum', pflicht: true, werte: CREDIT_NOTE_REASONS },
519
+ reason: { type: 'enum', required: true, values: CREDIT_NOTE_REASONS },
458
520
  note: text(2000),
459
521
  },
460
522
  createCreditNote: {
461
523
  idempotencyKey: idempotencyKey(true),
462
524
  invoiceId: idPflicht,
463
- reason: { typ: 'enum', pflicht: true, werte: CREDIT_NOTE_REASONS },
525
+ reason: { type: 'enum', required: true, values: CREDIT_NOTE_REASONS },
464
526
  note: text(2000),
465
527
  items: positionen,
466
528
  },
467
529
  getInvoice: {
468
530
  invoiceId: id,
469
- number: { typ: 'string', pflicht: false, min: 1, max: 100 },
531
+ number: { type: 'string', required: false, min: 1, max: 100 },
470
532
  },
471
533
  listInvoices: {
472
534
  from: datum(),
473
535
  to: datum(),
474
- status: { typ: 'enum', pflicht: false, werte: INVOICE_LIST_STATUS },
475
- docType: { typ: 'enum', pflicht: false, werte: DOC_TYPES },
536
+ status: { type: 'enum', required: false, values: INVOICE_LIST_STATUS },
537
+ docType: { type: 'enum', required: false, values: DOC_TYPES },
476
538
  customerId: id,
477
539
  limit,
478
540
  cursor,
@@ -480,30 +542,30 @@ export const RECHNUNG_ANFRAGEN = Object.freeze({
480
542
  getInvoicePdf: {
481
543
  invoiceId: idPflicht,
482
544
  /** Andere Sprache als die der Rechnung: gekennzeichnete Uebersetzungskopie, keine eigene Rechnung. */
483
- language: { typ: 'enum', pflicht: false, werte: INVOICE_LANGUAGES },
545
+ language: { type: 'enum', required: false, values: INVOICE_LANGUAGES },
484
546
  },
485
547
  getInvoiceXml: {
486
548
  invoiceId: idPflicht,
487
- format: { typ: 'enum', pflicht: false, werte: EINVOICE_FORMATS },
549
+ format: { type: 'enum', required: false, values: EINVOICE_FORMATS },
488
550
  },
489
551
  getInvoiceSetupStatus: {},
490
552
  listBrands: {},
491
553
  recordInvoicePayment: {
492
554
  idempotencyKey: idempotencyKey(true),
493
555
  invoiceId: idPflicht,
494
- method: { typ: 'enum', pflicht: true, werte: INVOICE_PAYMENT_METHODS },
495
- amountCents: { typ: 'integer', pflicht: false, min: 1, max: 100_000_000 },
556
+ method: { type: 'enum', required: true, values: INVOICE_PAYMENT_METHODS },
557
+ amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
496
558
  paidAt: datum(),
497
559
  reference: text(100),
498
- onSite: { typ: 'boolean', pflicht: false },
560
+ onSite: { type: 'boolean', required: false },
499
561
  },
500
562
  });
501
563
  /** Genau eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
502
- export const RECHNUNG_GENAU_EINS = Object.freeze({
564
+ export const INVOICE_EXACTLY_ONE = Object.freeze({
503
565
  getCustomer: [['customerId', 'externalId']],
504
566
  getInvoice: [['invoiceId', 'number']],
505
567
  });
506
568
  /** Mindestens eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
507
- export const RECHNUNG_MINDESTENS_EINS = Object.freeze({
569
+ export const INVOICE_AT_LEAST_ONE = Object.freeze({
508
570
  searchCustomers: [['externalId', 'vatId', 'email', 'name']],
509
571
  });
@@ -1,3 +1,4 @@
1
+ import { KasseneckApiError } from '../client/errors.js';
1
2
  import type { Receipt } from './receipt.js';
2
3
  /**
3
4
  * Storno-Metadaten — Zwilling von `functions/storno-core.js`.
@@ -8,42 +9,53 @@ import type { Receipt } from './receipt.js';
8
9
  * Storno-Beleg) und die Liste der Stornos am Original (`cancellations`), aus
9
10
  * der sich die Restmengen ergeben.
10
11
  */
11
- /** Grund-Katalog: Codes wie im Backend, Anzeigetext fuer Bon und Bedienung. */
12
+ /**
13
+ * Grund-Katalog: Codes wie unter `/v3` (Katalog `STORNO_GRUND` des
14
+ * Backends), Anzeigetext fuer Bon und Bedienung. Der Anzeigetext bleibt
15
+ * deutsch, er steht so am Beleg.
16
+ */
12
17
  export declare const CANCELLATION_REASONS: Readonly<{
13
- readonly fehleingabe: "Fehleingabe";
14
- readonly kunde_storniert: "Kunde hat storniert";
15
- readonly falsche_zahlart: "Falsche Zahlart";
16
- readonly doppelt_erfasst: "Doppelt erfasst";
17
- readonly sonstiges: "Sonstiges";
18
+ readonly input_error: "Fehleingabe";
19
+ readonly customer_cancelled: "Kunde hat storniert";
20
+ readonly wrong_payment_method: "Falsche Zahlart";
21
+ readonly duplicate: "Doppelt erfasst";
22
+ readonly other: "Sonstiges";
18
23
  }>;
19
24
  export type CancellationReason = keyof typeof CANCELLATION_REASONS;
20
25
  export declare function isCancellationReason(value: unknown): value is CancellationReason;
21
26
  /**
22
- * Stabile Fehlercodes von `cancelReceipt` — Zwilling von
23
- * `functions/gemeinsam/storno-core.js` STORNO_FEHLERCODES. Das Backend legt sie bei
27
+ * Stabile Fehlercodes von `cancelReceipt` unter `/v3` (Vokabular
28
+ * `errorCodes.cancellation`, gleiche Reihenfolge). Das Backend legt sie bei
24
29
  * jedem fachlichen Fehler als `code` neben die Meldung; das Paket reicht sie
25
- * als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text** —
30
+ * als [KasseneckApiError.code] durch. **Entscheide am Code, nie am Text:**
26
31
  * die deutsche Meldung darf sich aendern, der Code nicht.
27
32
  *
28
- * Nur Auth-/Parameterfehler (Sitzung abgelaufen, Pflichtfeld fehlt) kommen
29
- * ohne Code; dort bleibt `code` undefined.
30
- *
31
- * Die vier `STORNO_PAYMENTS_…`/`STORNO_REFUND_…`-Codes gehoeren zur
32
- * Rueckzahlung je Zahlung (mehrere Zahlungen je Beleg); Formfehler an
33
- * `payments` selbst melden die Codes aus [PAYMENT_ERROR_CODES].
34
- * `STORNO_OUTCOME_UNKNOWN` heisst: der Storno-Beleg kann schon signiert sein,
35
- * die Reservierung bleibt offen – nicht erneut stornieren, die Belegliste
36
- * nach ein paar Minuten neu laden (unter `/v3`: `cancellation_outcome_unknown`).
33
+ * Formfehler an `payments` selbst melden die Codes aus
34
+ * [PAYMENT_ERROR_CODES]. `cancellation_outcome_unknown` heisst: der Storno
35
+ * ist moeglicherweise gebucht (`outcome: 'unknown'`). Nie wiederholen,
36
+ * sondern das Original nachlesen (`getReceipt`, `cancellations[]`).
37
37
  *
38
- * Die Werte hier sind die von `/v1` und intern. Unter `/v3` heissen die
39
- * Storno-Codes nach dem /v3-Vokabular anders (`already_cancelled`,
40
- * `cancellation_payments_required`, functions/gemeinsam/api-vokabular-v3.js);
41
- * diese Namen kommen mit der Umstellung des Pakets auf `/v3`.
42
- * [isCancellationErrorCode] prueft darum exakt.
38
+ * Dahinter (ab 1.0) die Codes, die Anmeldung und Rand auf diesem Endpunkt
39
+ * erzeugen koennen: `errorCodes.auth` ohne die sieben des Partner-Zugangs und
40
+ * `errorCodes.edge` (`not_found`, `dialect_mismatch`, `response_translation_failed`
41
+ * ...), zuletzt die Codes des Pakets (`route_missing`, `response_unreadable`).
42
+ * Die Zahlungscodes (`payment_method_not_supported` ...) stehen in
43
+ * [PAYMENT_ERROR_CODES]. Ein Code ausserhalb bleibt ueber
44
+ * `KasseneckApiError.code` lesbar.
43
45
  */
44
- export declare const CANCELLATION_ERROR_CODES: readonly ["beleg_nicht_gefunden", "belegart_nicht_stornierbar", "trainingsbeleg", "bereits_storniert", "position_ungueltig", "menge_ueber_rest", "grund_unbekannt", "anmerkung_zu_lang", "items_ungueltig", "kasse_nicht_zugewiesen", "keine_berechtigung", "nur_eigene_belege", "kasse_unvollstaendig", "storno_fehlgeschlagen", "STORNO_PAYMENTS_REQUIRED", "STORNO_REFUND_EXCEEDS_PAYMENT", "STORNO_REFUND_REFERENCE_REQUIRED", "STORNO_REFUND_REFERENCE_UNKNOWN", "STORNO_OUTCOME_UNKNOWN"];
46
+ export declare const CANCELLATION_ERROR_CODES: readonly ["receipt_not_found", "receipt_type_not_cancellable", "training_receipt", "already_cancelled", "invalid_line", "quantity_exceeds_remaining", "unknown_reason", "note_too_long", "invalid_items", "cashregister_not_assigned", "not_permitted", "own_receipts_only", "cashregister_incomplete", "cancellation_failed", "cancellation_payments_required", "cancellation_refund_exceeds_payment", "cancellation_refund_reference_required", "cancellation_refund_reference_unknown", "cancellation_outcome_unknown", "account_not_found", "admin_required", "cashregister_not_found", "cashregister_token_invalid", "cashregister_token_missing", "dialect_mismatch", "internal_translation_error", "live_not_enabled", "method_not_allowed", "mfa_required", "not_found", "register_user_no_business", "register_user_not_allowed", "register_user_not_found", "response_translation_failed", "session_expired", "session_other_cashregister", "unauthorized", "user_disabled", "user_verification_failed", "validation", "route_missing", "response_unreadable"];
45
47
  export type CancellationErrorCode = (typeof CANCELLATION_ERROR_CODES)[number];
46
48
  export declare function isCancellationErrorCode(value: unknown): value is CancellationErrorCode;
49
+ /** Der Code eines geworfenen Fehlers, wenn er in [CANCELLATION_ERROR_CODES] steht; sonst `undefined`. */
50
+ export declare function cancellationErrorCode(error: unknown): CancellationErrorCode | undefined;
51
+ /**
52
+ * Kurzform fuer `catch (e) { if (isCancellationError(e, 'already_cancelled')) … }`.
53
+ * Ohne `code`: traegt der Fehler ueberhaupt einen Code aus [CANCELLATION_ERROR_CODES]?
54
+ */
55
+ export declare function isCancellationError(error: unknown, code?: CancellationErrorCode): error is KasseneckApiError;
56
+ /** Stornostand eines Belegs in der Belegliste (Katalog `STORNO_STAND`). */
57
+ export declare const CANCELLATION_STATUSES: readonly ["none", "partial", "full"];
58
+ export type CancellationStatus = (typeof CANCELLATION_STATUSES)[number];
47
59
  /** Bezug eines Storno-Belegs auf sein Original. */
48
60
  export interface CancellationOf {
49
61
  receiptId: string;
@@ -100,3 +112,10 @@ export declare const CANCELLATION_RESERVATION_MS = 120000;
100
112
  * (Reste anzeigen, bevor der Server gefragt wird). Die Wahrheit hat der Server.
101
113
  */
102
114
  export declare function remainingQuantities(receipt: Receipt, nowMs?: number): number[];
115
+ /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort von `cancelReceipt`. */
116
+ export interface CancellationFieldError {
117
+ field: string;
118
+ message: string;
119
+ }
120
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
121
+ export declare function cancellationFieldErrors(error: unknown): CancellationFieldError[];