@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
@@ -5,10 +5,10 @@
5
5
  * Aus dieser Datei entstehen drei Dinge, damit sie nicht auseinanderlaufen
6
6
  * koennen:
7
7
  *
8
- * 1. `fixtures/rechnung-api.schema.json` (`npm run fixtures:rechnung`) — das
8
+ * 1. `fixtures/invoice-api.schema.json` (`npm run fixtures:rechnung`) — das
9
9
  * Backend liest es aus dem vendorierten Paket und vergleicht es in beide
10
10
  * Richtungen mit seiner eigenen Pruefung; der Dart-Zwilling zieht es byteweise.
11
- * 2. Die Listen unter `rechnung` in `fixtures/oberflaeche.json` (Codes, Gruende,
11
+ * 2. Die Listen unter `rechnung` in `fixtures/surface.json` (Codes, Gruende,
12
12
  * Enums) — ueber denselben Namensraum-Scan wie der Partner-Teil.
13
13
  * 3. Die TypeScript-Typen in `typen.ts`.
14
14
  *
@@ -19,9 +19,9 @@
19
19
  * Nummer, Summen — ist bewusst **nicht** setzbar.
20
20
  */
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
- exports.RECHNUNG_MINDESTENS_EINS = exports.RECHNUNG_GENAU_EINS = exports.RECHNUNG_ANFRAGEN = exports.PAYMENT_FELDER = exports.POSITION_PREIS_GENAU_EINS = exports.POSITION_FELDER = exports.KUNDE_FELDER = exports.INVOICE_SETUP_REQUIREMENTS = exports.RECHNUNG_EINHEITEN_CODES = exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.ITEM_KINDS = exports.REVERSE_CHARGE_REASONS = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_ERROR_CODES = exports.RECHNUNG_AUFRUFE = exports.RECHNUNG_VERTRAG_VERSION = void 0;
23
- exports.RECHNUNG_VERTRAG_VERSION = 1;
24
- exports.RECHNUNG_AUFRUFE = [
22
+ exports.INVOICE_AT_LEAST_ONE = exports.INVOICE_EXACTLY_ONE = exports.INVOICE_REQUESTS = exports.PAYMENT_FIELDS = exports.ITEM_PRICE_EXACTLY_ONE = exports.ITEM_FIELDS = exports.CUSTOMER_FIELDS = exports.INVOICE_SETUP_REQUIREMENTS = exports.INVOICE_UNIT_CODES = exports.INVOICE_UNITS = exports.INVOICE_NOTICE_CODES = exports.INVOICE_PAYMENT_METHODS = exports.INVOICE_LANGUAGES = exports.WRITE_OFF_REASON_CODES = exports.EINVOICE_MISSING_CODES = exports.EINVOICE_FORMATS = exports.DOC_TYPES = exports.INVOICE_LIST_STATUS = exports.CUSTOMER_TYPES = exports.VAT_RATES = exports.PRICE_MODES = exports.ITEM_KINDS = exports.REVERSE_CHARGE_REASONS = exports.TAX_SCHEMES = exports.CREDIT_NOTE_REASONS = exports.INVOICE_REQUEST_ERROR_CODES = exports.INVOICE_ERROR_CODES = exports.INVOICE_ENDPOINTS = exports.INVOICE_CONTRACT_VERSION = void 0;
23
+ exports.INVOICE_CONTRACT_VERSION = 2;
24
+ exports.INVOICE_ENDPOINTS = [
25
25
  'createCustomer',
26
26
  'getCustomer',
27
27
  'updateCustomer',
@@ -72,6 +72,38 @@ exports.INVOICE_ERROR_CODES = [
72
72
  'einvoice_unavailable', // zu dieser Rechnung entsteht keine E-Rechnung, Grund in `reason`
73
73
  'amount_too_large', // Betrag ueber der Grenze des Ganzzahlkerns; erst ab dessen Umstieg gesendet
74
74
  ];
75
+ /**
76
+ * Codes, die Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen,
77
+ * soweit sie nicht schon in [INVOICE_ERROR_CODES] stehen: `errorCodes.auth`
78
+ * ohne die sieben des Partner-Zugangs, `errorCodes.edge` (sortiert) und
79
+ * zuletzt `route_missing` (Code des Pakets). [INVOICE_ERROR_CODES] bleibt
80
+ * genau der Katalog des Servers (das Backend vergleicht ihn mit dem Schema);
81
+ * die Helfer in `./invoice` erkennen beide Listen.
82
+ */
83
+ exports.INVOICE_REQUEST_ERROR_CODES = [
84
+ 'account_not_found',
85
+ 'admin_required',
86
+ 'cashregister_not_assigned',
87
+ 'cashregister_not_found',
88
+ 'cashregister_token_invalid',
89
+ 'cashregister_token_missing',
90
+ 'dialect_mismatch',
91
+ 'internal_translation_error',
92
+ 'live_not_enabled',
93
+ 'method_not_allowed',
94
+ 'mfa_required',
95
+ 'not_found',
96
+ 'register_user_no_business',
97
+ 'register_user_not_allowed',
98
+ 'register_user_not_found',
99
+ 'response_translation_failed',
100
+ 'session_expired',
101
+ 'session_other_cashregister',
102
+ 'unauthorized',
103
+ 'user_disabled',
104
+ 'user_verification_failed',
105
+ 'route_missing',
106
+ ];
75
107
  /** Gruende einer Gutschrift. Der Server druckt den deutschen Anzeigetext. */
76
108
  exports.CREDIT_NOTE_REASONS = [
77
109
  'cancellation',
@@ -84,12 +116,13 @@ exports.CREDIT_NOTE_REASONS = [
84
116
  * Der Steuerfall einer Rechnung. Er wird vom Server **abgeleitet** (Kundenland,
85
117
  * Kundenart, UID, Ware oder Leistung); eine mitgeschickte Angabe muss dazu
86
118
  * passen, sonst `tax_scheme_mismatch`. Neue Faelle stehen hinten, damit
87
- * gespeicherte Reihenfolgen gueltig bleiben.
119
+ * gespeicherte Reihenfolgen gueltig bleiben. Unter `/v1` hiess `intraCommunitySupply` noch
120
+ * `igLieferung`; unter `/v3` weist der Server den alten Namen mit `validation` ab.
88
121
  *
89
122
  * - `normal` oesterreichische Umsatzsteuer
90
123
  * - `smallBusiness` Kleinunternehmer (§ 6 Abs. 1 Z 27 UStG)
91
124
  * - `reverseCharge` Leistung an ein Unternehmen in der EU (Art. 196 MwSt-RL)
92
- * - `igLieferung` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
125
+ * - `intraCommunitySupply` Ware an ein Unternehmen in der EU (Art. 6 Abs. 1 UStG)
93
126
  * - `exportThirdCountry` Ware ins Drittland (§ 6 Abs. 1 Z 1 UStG)
94
127
  * - `domesticReverseCharge` Uebergang der Steuerschuld im Inland, Grund aus `REVERSE_CHARGE_REASONS`
95
128
  * - `oss` B2C in der EU ueber den One-Stop-Shop, Satz des Ziellandes
@@ -99,7 +132,7 @@ exports.TAX_SCHEMES = [
99
132
  'normal',
100
133
  'smallBusiness',
101
134
  'reverseCharge',
102
- 'igLieferung',
135
+ 'intraCommunitySupply',
103
136
  'exportThirdCountry',
104
137
  'domesticReverseCharge',
105
138
  'oss',
@@ -110,23 +143,23 @@ exports.TAX_SCHEMES = [
110
143
  * kein `domesticReverseCharge`: die Bedingungen sind je Fall verschieden, und
111
144
  * keine davon laesst sich aus Betrag und Land erraten.
112
145
  *
113
- * `schwelleCents` ist das Entgelt, ab dem der Fall greift — maßgeblich ist das
146
+ * `thresholdCents` ist das Entgelt, ab dem der Fall greift – maßgeblich ist das
114
147
  * **in der Rechnung ausgewiesene** Entgelt, nicht der Einzelpreis; ein
115
148
  * einheitlicher Liefervorgang darf dafuer nicht auf mehrere Rechnungen
116
149
  * aufgeteilt werden (UStR Rz 2605d).
117
150
  */
118
151
  exports.REVERSE_CHARGE_REASONS = Object.freeze({
119
- construction: { stelle: '§ 19 Abs. 1a UStG', schwelleCents: null },
120
- scrap: { stelle: 'Schrott-UStV, BGBl. II Nr. 129/2007', schwelleCents: null },
121
- mobile_devices: { stelle: '§ 19 Abs. 1e lit. b UStG', schwelleCents: 500_000 },
122
- it_devices: { stelle: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', schwelleCents: 500_000 },
123
- metals: { stelle: '§ 2 Z 4 UStBBKV', schwelleCents: null },
124
- emission_certificates: { stelle: '§ 19 Abs. 1e lit. a UStG', schwelleCents: null },
125
- gas_electricity: { stelle: '§ 2 Z 2 UStBBKV', schwelleCents: null },
126
- energy_certificates: { stelle: '§ 2 Z 3 UStBBKV', schwelleCents: null },
127
- investment_gold: { stelle: '§ 2 Z 5 UStBBKV', schwelleCents: null },
128
- security_transfer: { stelle: '§ 19 Abs. 1b UStG', schwelleCents: null },
129
- foreign_supplier: { stelle: '§ 19 Abs. 1 zweiter Satz UStG', schwelleCents: null },
152
+ construction: { legalBasis: '§ 19 Abs. 1a UStG', thresholdCents: null },
153
+ scrap: { legalBasis: 'Schrott-UStV, BGBl. II Nr. 129/2007', thresholdCents: null },
154
+ mobile_devices: { legalBasis: '§ 19 Abs. 1e lit. b UStG', thresholdCents: 500_000 },
155
+ it_devices: { legalBasis: '§ 2 Z 1 UStBBKV, BGBl. II Nr. 369/2013', thresholdCents: 500_000 },
156
+ metals: { legalBasis: '§ 2 Z 4 UStBBKV', thresholdCents: null },
157
+ emission_certificates: { legalBasis: '§ 19 Abs. 1e lit. a UStG', thresholdCents: null },
158
+ gas_electricity: { legalBasis: '§ 2 Z 2 UStBBKV', thresholdCents: null },
159
+ energy_certificates: { legalBasis: '§ 2 Z 3 UStBBKV', thresholdCents: null },
160
+ investment_gold: { legalBasis: '§ 2 Z 5 UStBBKV', thresholdCents: null },
161
+ security_transfer: { legalBasis: '§ 19 Abs. 1b UStG', thresholdCents: null },
162
+ foreign_supplier: { legalBasis: '§ 19 Abs. 1 zweiter Satz UStG', thresholdCents: null },
130
163
  });
131
164
  /** Ware oder Leistung — ohne das laesst sich ig. Lieferung nicht von Reverse Charge trennen. */
132
165
  exports.ITEM_KINDS = ['goods', 'service'];
@@ -134,8 +167,37 @@ exports.PRICE_MODES = ['net', 'gross'];
134
167
  exports.VAT_RATES = [0, 10, 13, 20];
135
168
  exports.CUSTOMER_TYPES = ['private', 'company'];
136
169
  exports.INVOICE_LIST_STATUS = ['final', 'paid', 'cancelled', 'open', 'overdue'];
137
- exports.DOC_TYPES = ['RE', 'GU'];
170
+ /**
171
+ * Belegart: Rechnung oder Gutschrift (unter `/v1` `RE` bzw. `GU`). Das Vorzeichen
172
+ * steht in der Belegart, nie im Betrag.
173
+ */
174
+ exports.DOC_TYPES = ['invoice', 'credit_note'];
138
175
  exports.EINVOICE_FORMATS = ['ubl', 'cii'];
176
+ /**
177
+ * Was einer EN-16931-konformen E-Rechnung fehlt: `einvoice.missing` jeder
178
+ * Rechnungssicht und `data.missing` bei `einvoice_incomplete` bzw.
179
+ * `invoice_requirements_missing`. Unter `/v1` standen hier deutsche Woerter
180
+ * (`Straße`, `PLZ`, …).
181
+ */
182
+ exports.EINVOICE_MISSING_CODES = [
183
+ 'name',
184
+ 'street',
185
+ 'zip',
186
+ 'city',
187
+ 'country',
188
+ 'vat_id',
189
+ 'order_reference',
190
+ 'order_reference_format',
191
+ ];
192
+ /** Warum eine Rechnung abgeschrieben wurde (`writeOffReasonCode` in `getInvoice`). */
193
+ exports.WRITE_OFF_REASON_CODES = [
194
+ 'uncollectible',
195
+ 'time_barred',
196
+ 'waived',
197
+ 'disputed',
198
+ 'settled_externally',
199
+ 'other',
200
+ ];
139
201
  /**
140
202
  * Sprachen einer Rechnung. Die Sprache wird beim Festschreiben eingefroren;
141
203
  * fehlt sie an Kunde oder Rechnung, gilt `de`. Behoerden bekommen immer `de`
@@ -168,9 +230,9 @@ exports.INVOICE_NOTICE_CODES = [
168
230
  ];
169
231
  /**
170
232
  * Einheiten einer Position. Die API nimmt nur diese Schluessel an; gedruckt
171
- * wird das Kuerzel in der Sprache der Rechnung (`RECHNUNG_TEXTE`,
172
- * `einheit.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
173
- * (`RECHNUNG_EINHEITEN_CODES`). Ohne Angabe gilt `piece`.
233
+ * wird das Kuerzel in der Sprache der Rechnung (`INVOICE_TEXTS`,
234
+ * `unit_symbol.<schluessel>`), die E-Rechnung fuehrt den UN/ECE-Code
235
+ * (`INVOICE_UNIT_CODES`). Ohne Angabe gilt `piece`.
174
236
  */
175
237
  exports.INVOICE_UNITS = [
176
238
  'piece',
@@ -229,7 +291,7 @@ exports.INVOICE_UNITS = [
229
291
  * Laufmeter; Lizenz, Benutzer, Geraet als Stueck). Die Validatoren der
230
292
  * E-Rechnung pruefen jeden Code im Backend (Beispiel `api-einheiten`).
231
293
  */
232
- exports.RECHNUNG_EINHEITEN_CODES = Object.freeze({
294
+ exports.INVOICE_UNIT_CODES = Object.freeze({
233
295
  piece: 'C62',
234
296
  pair: 'PR',
235
297
  set: 'SET',
@@ -306,16 +368,16 @@ exports.INVOICE_SETUP_REQUIREMENTS = [
306
368
  'bank_account',
307
369
  'number_format',
308
370
  ];
309
- const text = (max, pflicht = false, extra = {}) => ({ typ: 'string', pflicht, max, ...(pflicht && extra.min === undefined ? { min: 1 } : {}), ...extra });
310
- const idempotencyKey = (pflicht) => ({ typ: 'string', pflicht, min: 1, max: 120 });
311
- const id = { typ: 'string', pflicht: false, min: 1, max: 128 };
312
- const idPflicht = { typ: 'string', pflicht: true, min: 1, max: 128 };
313
- const datum = (pflicht = false) => ({ typ: 'string', pflicht, min: 10, max: 10, format: 'date' });
314
- const limit = { typ: 'integer', pflicht: false, min: 1, max: 100 };
315
- const cursor = { typ: 'string', pflicht: false, min: 1, max: 500 };
371
+ const text = (max, required = false, extra = {}) => ({ type: 'string', required, max, ...(required && extra.min === undefined ? { min: 1 } : {}), ...extra });
372
+ const idempotencyKey = (required) => ({ type: 'string', required, min: 1, max: 120 });
373
+ const id = { type: 'string', required: false, min: 1, max: 128 };
374
+ const idPflicht = { type: 'string', required: true, min: 1, max: 128 };
375
+ const datum = (required = false) => ({ type: 'string', required, min: 10, max: 10, format: 'date' });
376
+ const limit = { type: 'integer', required: false, min: 1, max: 100 };
377
+ const cursor = { type: 'string', required: false, min: 1, max: 500 };
316
378
  /** Kunde, wie das Fremdsystem ihn schickt. `vatId` ist die UID-Nummer. */
317
- exports.KUNDE_FELDER = Object.freeze({
318
- type: { typ: 'enum', pflicht: true, werte: exports.CUSTOMER_TYPES },
379
+ exports.CUSTOMER_FIELDS = Object.freeze({
380
+ type: { type: 'enum', required: true, values: exports.CUSTOMER_TYPES },
319
381
  name: text(200, true),
320
382
  legalForm: text(40),
321
383
  email: text(254, false, { format: 'email' }),
@@ -327,14 +389,14 @@ exports.KUNDE_FELDER = Object.freeze({
327
389
  country: text(2, true, { min: 2, format: 'country' }),
328
390
  vatId: text(20, false, { format: 'vatId' }),
329
391
  shortCode: text(8, false, { format: 'shortCode' }),
330
- isAuthority: { typ: 'boolean', pflicht: false },
392
+ isAuthority: { type: 'boolean', required: false },
331
393
  note: text(1000),
332
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
394
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
333
395
  /** Sprache der Rechnungen an diesen Kunden; fehlt = `de`. */
334
- language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
396
+ language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
335
397
  });
336
398
  /** Beim Aendern ist jedes Kundenfeld optional. */
337
- const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.KUNDE_FELDER).map(([name, feld]) => [name, { ...feld, pflicht: false }])));
399
+ const CUSTOMER_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.CUSTOMER_FIELDS).map(([name, feld]) => [name, { ...feld, required: false }])));
338
400
  /**
339
401
  * Eine Rechnungs- oder Gutschriftsposition.
340
402
  *
@@ -345,33 +407,33 @@ const KUNDE_PATCH = Object.freeze(Object.fromEntries(Object.entries(exports.KUND
345
407
  * unterhalb eines Cents (Verbrauchsabrechnung, Stueckpreise im Zehntelcent),
346
408
  * die bisher gerundet eingereicht werden mussten.
347
409
  */
348
- exports.POSITION_FELDER = Object.freeze({
410
+ exports.ITEM_FIELDS = Object.freeze({
349
411
  description: text(300, true),
350
412
  subtitle: text(1000),
351
- quantity: { typ: 'number', pflicht: true, min: 0, exklusivMin: true, max: 1_000_000_000, nachkomma: 3 },
413
+ quantity: { type: 'number', required: true, min: 0, exclusiveMin: true, max: 1_000_000_000, decimals: 3 },
352
414
  /** Einheit aus `INVOICE_UNITS`; ohne Angabe `piece`. */
353
- unit: { typ: 'enum', pflicht: false, werte: exports.INVOICE_UNITS },
415
+ unit: { type: 'enum', required: false, values: exports.INVOICE_UNITS },
354
416
  /** Ware oder Leistung; ohne Angabe `goods`. Entscheidet ueber den Steuerfall. */
355
- kind: { typ: 'enum', pflicht: false, werte: exports.ITEM_KINDS },
417
+ kind: { type: 'enum', required: false, values: exports.ITEM_KINDS },
356
418
  /** Einzelpreis in ganzen Cent. Alternative zu `unitPriceMicros`. */
357
- unitPriceCents: { typ: 'integer', pflicht: false, min: 0, max: 100_000_000 },
419
+ unitPriceCents: { type: 'integer', required: false, min: 0, max: 100_000_000 },
358
420
  /** Einzelpreis in Mikro-Euro (10⁻⁶ €). Alternative zu `unitPriceCents`. */
359
- unitPriceMicros: { typ: 'integer', pflicht: false, min: 0, max: 1_000_000_000_000 },
360
- vatRate: { typ: 'enum', pflicht: true, werte: exports.VAT_RATES },
361
- discountPct: { typ: 'number', pflicht: false, min: 0, max: 100, nachkomma: 2 },
421
+ unitPriceMicros: { type: 'integer', required: false, min: 0, max: 1_000_000_000_000 },
422
+ vatRate: { type: 'enum', required: true, values: exports.VAT_RATES },
423
+ discountPct: { type: 'number', required: false, min: 0, max: 100, decimals: 2 },
362
424
  });
363
425
  /** Genau einer der beiden Preise je Position (§ 9.1). */
364
- exports.POSITION_PREIS_GENAU_EINS = Object.freeze([
426
+ exports.ITEM_PRICE_EXACTLY_ONE = Object.freeze([
365
427
  Object.freeze(['unitPriceCents']),
366
428
  Object.freeze(['unitPriceMicros']),
367
429
  ]);
368
430
  const positionen = {
369
- typ: 'list',
370
- pflicht: true,
431
+ type: 'list',
432
+ required: true,
371
433
  min: 1,
372
434
  max: 500,
373
- eintrag: {
374
- typ: 'object', pflicht: true, felder: exports.POSITION_FELDER, genauEins: exports.POSITION_PREIS_GENAU_EINS,
435
+ item: {
436
+ type: 'object', required: true, fields: exports.ITEM_FIELDS, exactlyOne: exports.ITEM_PRICE_EXACTLY_ONE,
375
437
  },
376
438
  };
377
439
  /**
@@ -381,9 +443,9 @@ const positionen = {
381
443
  * aber **nicht gedruckt**: die Rechnung wird aufbewahrt und vervielfaeltigt,
382
444
  * und dem Empfaenger nuetzt sie nichts.
383
445
  */
384
- exports.PAYMENT_FELDER = Object.freeze({
385
- method: { typ: 'enum', pflicht: true, werte: exports.INVOICE_PAYMENT_METHODS },
386
- amountCents: { typ: 'integer', pflicht: false, min: 1, max: 100_000_000 },
446
+ exports.PAYMENT_FIELDS = Object.freeze({
447
+ method: { type: 'enum', required: true, values: exports.INVOICE_PAYMENT_METHODS },
448
+ amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
387
449
  paidAt: datum(),
388
450
  reference: text(100),
389
451
  /**
@@ -391,23 +453,23 @@ exports.PAYMENT_FELDER = Object.freeze({
391
453
  * Zahlung per App am Tresen). Dann ist sie ein Barumsatz. Zu `transfer` passt
392
454
  * das nicht — eine Ueberweisung erfolgt nie vor Ort — und wird abgewiesen.
393
455
  */
394
- onSite: { typ: 'boolean', pflicht: false },
456
+ onSite: { type: 'boolean', required: false },
395
457
  });
396
- exports.RECHNUNG_ANFRAGEN = Object.freeze({
458
+ exports.INVOICE_REQUESTS = Object.freeze({
397
459
  createCustomer: {
398
- customer: { typ: 'object', pflicht: true, felder: exports.KUNDE_FELDER },
460
+ customer: { type: 'object', required: true, fields: exports.CUSTOMER_FIELDS },
399
461
  idempotencyKey: idempotencyKey(false),
400
462
  },
401
463
  getCustomer: {
402
464
  customerId: id,
403
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
465
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
404
466
  },
405
467
  updateCustomer: {
406
468
  customerId: idPflicht,
407
- customer: { typ: 'object', pflicht: true, felder: KUNDE_PATCH },
469
+ customer: { type: 'object', required: true, fields: CUSTOMER_PATCH },
408
470
  },
409
471
  searchCustomers: {
410
- externalId: { typ: 'string', pflicht: false, min: 1, max: 120 },
472
+ externalId: { type: 'string', required: false, min: 1, max: 120 },
411
473
  vatId: text(20),
412
474
  email: text(254),
413
475
  name: text(200),
@@ -422,23 +484,23 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
422
484
  * muss passen (`tax_scheme_mismatch`) — so faellt eine falsche Zuordnung
423
485
  * im Fremdsystem auf, statt eine falsche Rechnung zu erzeugen.
424
486
  */
425
- taxScheme: { typ: 'enum', pflicht: false, werte: exports.TAX_SCHEMES },
487
+ taxScheme: { type: 'enum', required: false, values: exports.TAX_SCHEMES },
426
488
  /** Pflicht bei `domesticReverseCharge`, sonst nicht erlaubt. */
427
- reverseChargeReason: { typ: 'enum', pflicht: false, werte: Object.keys(exports.REVERSE_CHARGE_REASONS) },
428
- priceMode: { typ: 'enum', pflicht: true, werte: exports.PRICE_MODES },
489
+ reverseChargeReason: { type: 'enum', required: false, values: Object.keys(exports.REVERSE_CHARGE_REASONS) },
490
+ priceMode: { type: 'enum', required: true, values: exports.PRICE_MODES },
429
491
  serviceStart: datum(true),
430
492
  serviceEnd: datum(),
431
- paymentTermDays: { typ: 'integer', pflicht: false, min: 0, max: 365 },
493
+ paymentTermDays: { type: 'integer', required: false, min: 0, max: 365 },
432
494
  orderReference: text(200),
433
495
  intro: text(2000),
434
496
  note: text(2000),
435
497
  paymentReference: text(140),
436
- girocode: { typ: 'boolean', pflicht: false },
437
- tracking: { typ: 'boolean', pflicht: false },
498
+ girocode: { type: 'boolean', required: false },
499
+ tracking: { type: 'boolean', required: false },
438
500
  items: positionen,
439
- metadata: { typ: 'map', pflicht: false, maxSchluessel: 20, schluesselMuster: '^[a-zA-Z0-9_]{1,40}$', wertMax: 500 },
501
+ metadata: { type: 'map', required: false, maxKeys: 20, keyPattern: '^[a-zA-Z0-9_]{1,40}$', valueMax: 500 },
440
502
  /** Sprache dieser Rechnung; sonst die des Kunden, sonst `de`. */
441
- language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
503
+ language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
442
504
  /** Marke (Kennung aus `listBrands`); sonst die Standardmarke. */
443
505
  brandId: id,
444
506
  /**
@@ -446,36 +508,36 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
446
508
  * Festschreiben. Sonst gaebe es einen Moment, in dem die Rechnung offen ist
447
509
  * und ein sofort geholtes PDF Zahlungsinformationen traegt.
448
510
  */
449
- payment: { typ: 'object', pflicht: false, felder: exports.PAYMENT_FELDER },
511
+ payment: { type: 'object', required: false, fields: exports.PAYMENT_FIELDS },
450
512
  /**
451
513
  * Probelauf: alles pruefen und rechnen wie beim Ausstellen, aber nichts
452
514
  * festschreiben — keine Nummer, kein Dokument, keine Zahlung, kein
453
515
  * Idempotenz-Eintrag. Die Antwort traegt `preview` statt `invoice`.
454
516
  */
455
- dryRun: { typ: 'boolean', pflicht: false },
517
+ dryRun: { type: 'boolean', required: false },
456
518
  },
457
519
  cancelInvoice: {
458
520
  idempotencyKey: idempotencyKey(true),
459
521
  invoiceId: idPflicht,
460
- reason: { typ: 'enum', pflicht: true, werte: exports.CREDIT_NOTE_REASONS },
522
+ reason: { type: 'enum', required: true, values: exports.CREDIT_NOTE_REASONS },
461
523
  note: text(2000),
462
524
  },
463
525
  createCreditNote: {
464
526
  idempotencyKey: idempotencyKey(true),
465
527
  invoiceId: idPflicht,
466
- reason: { typ: 'enum', pflicht: true, werte: exports.CREDIT_NOTE_REASONS },
528
+ reason: { type: 'enum', required: true, values: exports.CREDIT_NOTE_REASONS },
467
529
  note: text(2000),
468
530
  items: positionen,
469
531
  },
470
532
  getInvoice: {
471
533
  invoiceId: id,
472
- number: { typ: 'string', pflicht: false, min: 1, max: 100 },
534
+ number: { type: 'string', required: false, min: 1, max: 100 },
473
535
  },
474
536
  listInvoices: {
475
537
  from: datum(),
476
538
  to: datum(),
477
- status: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LIST_STATUS },
478
- docType: { typ: 'enum', pflicht: false, werte: exports.DOC_TYPES },
539
+ status: { type: 'enum', required: false, values: exports.INVOICE_LIST_STATUS },
540
+ docType: { type: 'enum', required: false, values: exports.DOC_TYPES },
479
541
  customerId: id,
480
542
  limit,
481
543
  cursor,
@@ -483,30 +545,30 @@ exports.RECHNUNG_ANFRAGEN = Object.freeze({
483
545
  getInvoicePdf: {
484
546
  invoiceId: idPflicht,
485
547
  /** Andere Sprache als die der Rechnung: gekennzeichnete Uebersetzungskopie, keine eigene Rechnung. */
486
- language: { typ: 'enum', pflicht: false, werte: exports.INVOICE_LANGUAGES },
548
+ language: { type: 'enum', required: false, values: exports.INVOICE_LANGUAGES },
487
549
  },
488
550
  getInvoiceXml: {
489
551
  invoiceId: idPflicht,
490
- format: { typ: 'enum', pflicht: false, werte: exports.EINVOICE_FORMATS },
552
+ format: { type: 'enum', required: false, values: exports.EINVOICE_FORMATS },
491
553
  },
492
554
  getInvoiceSetupStatus: {},
493
555
  listBrands: {},
494
556
  recordInvoicePayment: {
495
557
  idempotencyKey: idempotencyKey(true),
496
558
  invoiceId: idPflicht,
497
- method: { typ: 'enum', pflicht: true, werte: exports.INVOICE_PAYMENT_METHODS },
498
- amountCents: { typ: 'integer', pflicht: false, min: 1, max: 100_000_000 },
559
+ method: { type: 'enum', required: true, values: exports.INVOICE_PAYMENT_METHODS },
560
+ amountCents: { type: 'integer', required: false, min: 1, max: 100_000_000 },
499
561
  paidAt: datum(),
500
562
  reference: text(100),
501
- onSite: { typ: 'boolean', pflicht: false },
563
+ onSite: { type: 'boolean', required: false },
502
564
  },
503
565
  });
504
566
  /** Genau eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
505
- exports.RECHNUNG_GENAU_EINS = Object.freeze({
567
+ exports.INVOICE_EXACTLY_ONE = Object.freeze({
506
568
  getCustomer: [['customerId', 'externalId']],
507
569
  getInvoice: [['invoiceId', 'number']],
508
570
  });
509
571
  /** Mindestens eines dieser Felder muss gesetzt sein (je Aufruf, je Gruppe). */
510
- exports.RECHNUNG_MINDESTENS_EINS = Object.freeze({
572
+ exports.INVOICE_AT_LEAST_ONE = Object.freeze({
511
573
  searchCustomers: [['externalId', 'vatId', 'email', 'name']],
512
574
  });
@@ -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[];