@kreiseck/kasseneck-api 0.30.0 → 1.0.0-rc.1

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 (717) hide show
  1. package/CHANGELOG.md +433 -0
  2. package/README.de.md +11 -7
  3. package/README.md +486 -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 +78 -19
  13. package/dist/cjs/client/errors.js +107 -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 +214 -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 +222 -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/{esm/rechnung → cjs/invoice}/vertrag.d.ts +97 -71
  48. package/dist/cjs/{rechnung → invoice}/vertrag.js +144 -82
  49. package/dist/cjs/models/cancellation.d.ts +53 -21
  50. package/dist/cjs/models/cancellation.js +94 -42
  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-payment.d.ts +2 -1
  66. package/dist/cjs/models/receipt-summary.d.ts +10 -4
  67. package/dist/cjs/models/receipt-summary.js +10 -4
  68. package/dist/cjs/models/receipt.d.ts +31 -2
  69. package/dist/cjs/models/receipt.js +28 -1
  70. package/dist/cjs/models/voucher.d.ts +7 -6
  71. package/dist/cjs/models/voucher.js +2 -7
  72. package/dist/cjs/partner/ablauf.d.ts +10 -10
  73. package/dist/cjs/partner/ablauf.js +29 -29
  74. package/dist/cjs/partner/api.d.ts +26 -23
  75. package/dist/cjs/partner/api.js +11 -13
  76. package/dist/cjs/partner/auth.d.ts +1 -1
  77. package/dist/cjs/partner/auth.js +2 -2
  78. package/dist/cjs/partner/betrieb.d.ts +7 -7
  79. package/dist/cjs/partner/betrieb.js +10 -10
  80. package/dist/cjs/partner/endpunkte.d.ts +27 -14
  81. package/dist/cjs/partner/endpunkte.js +80 -39
  82. package/dist/cjs/partner/fehler.d.ts +60 -30
  83. package/dist/cjs/partner/fehler.js +99 -43
  84. package/dist/cjs/partner/index.d.ts +13 -12
  85. package/dist/cjs/partner/index.js +35 -22
  86. package/dist/cjs/partner/secret.d.ts +3 -3
  87. package/dist/cjs/partner/secret.js +6 -6
  88. package/dist/cjs/partner/typen.d.ts +129 -71
  89. package/dist/cjs/partner/typen.js +76 -3
  90. package/dist/cjs/partner/webhook-signatur.d.ts +2 -2
  91. package/dist/cjs/partner/webhook-signatur.js +12 -12
  92. package/dist/cjs/partner/webhooks.d.ts +60 -32
  93. package/dist/cjs/partner/webhooks.js +40 -34
  94. package/dist/cjs/payments/hobex-hps/transaction-response.js +28 -28
  95. package/dist/cjs/payments/hobex.d.ts +2 -2
  96. package/dist/cjs/payments/hobex.js +4 -4
  97. package/dist/cjs/payments/stripe.d.ts +2 -2
  98. package/dist/cjs/payments/stripe.js +4 -4
  99. package/dist/cjs/pos/artikel.d.ts +90 -0
  100. package/dist/cjs/pos/artikel.js +89 -0
  101. package/dist/cjs/pos/client.d.ts +27 -0
  102. package/dist/cjs/pos/client.js +144 -0
  103. package/dist/cjs/pos/drucker.d.ts +86 -0
  104. package/dist/cjs/pos/drucker.js +78 -0
  105. package/dist/cjs/pos/errors.d.ts +36 -0
  106. package/dist/cjs/pos/errors.js +95 -0
  107. package/dist/cjs/pos/index.d.ts +15 -0
  108. package/dist/cjs/pos/index.js +102 -0
  109. package/dist/cjs/pos/settings.d.ts +313 -0
  110. package/dist/cjs/pos/settings.js +376 -0
  111. package/dist/cjs/pos/texte.d.ts +883 -0
  112. package/dist/cjs/pos/texte.js +489 -0
  113. package/dist/cjs/{kasse → pos}/trinkgeld.d.ts +1 -1
  114. package/dist/cjs/{kasse → pos}/trinkgeld.js +2 -2
  115. package/dist/cjs/printing/escpos.d.ts +29 -29
  116. package/dist/cjs/printing/escpos.js +61 -61
  117. package/dist/cjs/printing/index.d.ts +2 -2
  118. package/dist/cjs/printing/index.js +17 -17
  119. package/dist/cjs/printing/qr-groesse.d.ts +38 -38
  120. package/dist/cjs/printing/qr-groesse.js +47 -47
  121. package/dist/cjs/printing/webusb.d.ts +2 -2
  122. package/dist/cjs/printing/webusb.js +4 -4
  123. package/dist/cjs/react/index.d.ts +21 -21
  124. package/dist/cjs/react/index.js +40 -30
  125. package/dist/cjs/receipt/bild.d.ts +4 -4
  126. package/dist/cjs/receipt/bild.js +11 -11
  127. package/dist/cjs/receipt/blatt.d.ts +46 -46
  128. package/dist/cjs/receipt/blatt.js +59 -59
  129. package/dist/cjs/receipt/discount.d.ts +1 -1
  130. package/dist/cjs/receipt/discount.js +8 -8
  131. package/dist/cjs/receipt/due.d.ts +86 -0
  132. package/dist/cjs/receipt/due.js +261 -0
  133. package/dist/cjs/receipt/epos.d.ts +22 -22
  134. package/dist/cjs/receipt/epos.js +45 -45
  135. package/dist/cjs/receipt/grid.d.ts +10 -10
  136. package/dist/cjs/receipt/grid.js +20 -20
  137. package/dist/cjs/receipt/index.d.ts +9 -8
  138. package/dist/cjs/receipt/index.js +26 -23
  139. package/dist/cjs/receipt/layout-escpos.d.ts +24 -24
  140. package/dist/cjs/receipt/layout-escpos.js +49 -49
  141. package/dist/cjs/receipt/layout.d.ts +28 -23
  142. package/dist/cjs/receipt/layout.js +45 -21
  143. package/dist/cjs/receipt/marke-daten.d.ts +8 -8
  144. package/dist/cjs/receipt/marke-daten.js +8 -8
  145. package/dist/cjs/receipt/marke.d.ts +7 -7
  146. package/dist/cjs/receipt/marke.js +10 -10
  147. package/dist/cjs/register/errors.d.ts +61 -0
  148. package/dist/cjs/register/errors.js +112 -0
  149. package/dist/cjs/register/index.d.ts +14 -1
  150. package/dist/cjs/register/index.js +20 -1
  151. package/dist/cjs/register/pairing.d.ts +55 -36
  152. package/dist/cjs/register/pairing.js +33 -29
  153. package/dist/cjs/register/session.d.ts +5 -5
  154. package/dist/cjs/register/session.js +7 -7
  155. package/dist/cjs/stored/draht.d.ts +45 -0
  156. package/dist/cjs/stored/draht.js +220 -0
  157. package/dist/cjs/stored/einstellungen.d.ts +23 -0
  158. package/dist/cjs/stored/einstellungen.js +200 -0
  159. package/dist/cjs/stored/index.d.ts +109 -0
  160. package/dist/cjs/stored/index.js +225 -0
  161. package/dist/cjs/stored/vokabular.d.ts +18 -0
  162. package/dist/cjs/stored/vokabular.js +389 -0
  163. package/dist/cjs/version.d.ts +7 -0
  164. package/dist/cjs/version.js +10 -0
  165. package/dist/cjs/vienna-time.d.ts +1 -1
  166. package/dist/cjs/vienna-time.js +2 -2
  167. package/dist/esm/client/api.d.ts +7 -6
  168. package/dist/esm/client/api.js +4 -4
  169. package/dist/esm/client/aufrufe.d.ts +29 -5
  170. package/dist/esm/client/aufrufe.js +111 -1
  171. package/dist/esm/client/auth.d.ts +2 -0
  172. package/dist/esm/client/auth.js +16 -1
  173. package/dist/esm/client/cashregisters.d.ts +1 -1
  174. package/dist/esm/client/cashregisters.js +2 -2
  175. package/dist/esm/client/errors.d.ts +78 -19
  176. package/dist/esm/client/errors.js +105 -27
  177. package/dist/esm/client/fehlercodes.d.ts +9 -0
  178. package/dist/esm/client/fehlercodes.js +32 -0
  179. package/dist/esm/client/index.d.ts +5 -5
  180. package/dist/esm/client/index.js +5 -5
  181. package/dist/esm/client/receipts.d.ts +131 -124
  182. package/dist/esm/client/receipts.js +213 -140
  183. package/dist/esm/client/reports.d.ts +26 -4
  184. package/dist/esm/client/reports.js +36 -4
  185. package/dist/esm/client/status.d.ts +3 -3
  186. package/dist/esm/client/status.js +7 -7
  187. package/dist/esm/client/transport.d.ts +56 -4
  188. package/dist/esm/client/transport.js +221 -24
  189. package/dist/esm/enums/vat-rate.d.ts +2 -2
  190. package/dist/esm/enums/vat-rate.js +1 -1
  191. package/dist/esm/index.d.ts +4 -3
  192. package/dist/esm/index.js +4 -3
  193. package/dist/{cjs/rechnung → esm/invoice}/api.d.ts +18 -17
  194. package/dist/esm/{rechnung → invoice}/api.js +6 -6
  195. package/dist/{cjs/rechnung → esm/invoice}/auth.d.ts +2 -2
  196. package/dist/esm/{rechnung → invoice}/auth.js +4 -4
  197. package/dist/{cjs/rechnung/rechnen.d.ts → esm/invoice/calc.d.ts} +27 -27
  198. package/dist/esm/{rechnung/rechnen.js → invoice/calc.js} +45 -45
  199. package/dist/{cjs/rechnung → esm/invoice}/endpunkte.d.ts +23 -21
  200. package/dist/esm/{rechnung → invoice}/endpunkte.js +52 -42
  201. package/dist/esm/invoice/fehler.d.ts +31 -0
  202. package/dist/esm/invoice/fehler.js +33 -0
  203. package/dist/esm/invoice/index.d.ts +21 -0
  204. package/dist/esm/invoice/index.js +20 -0
  205. package/dist/esm/{rechnung → invoice}/summen.d.ts +12 -12
  206. package/dist/esm/{rechnung → invoice}/summen.js +12 -12
  207. package/dist/esm/invoice/texte.d.ts +224 -0
  208. package/dist/esm/invoice/texte.js +421 -0
  209. package/dist/{cjs/rechnung → esm/invoice}/typen.d.ts +32 -11
  210. package/dist/{cjs/rechnung → esm/invoice}/vertrag.d.ts +97 -71
  211. package/dist/esm/{rechnung → invoice}/vertrag.js +143 -81
  212. package/dist/esm/models/cancellation.d.ts +53 -21
  213. package/dist/esm/models/cancellation.js +90 -41
  214. package/dist/esm/models/hobex-receipt.d.ts +3 -3
  215. package/dist/esm/models/hobex-receipt.js +35 -35
  216. package/dist/esm/models/index.d.ts +6 -5
  217. package/dist/esm/models/index.js +6 -5
  218. package/dist/esm/models/payment-errors.d.ts +32 -15
  219. package/dist/esm/models/payment-errors.js +77 -32
  220. package/dist/esm/models/receipt-company.d.ts +6 -5
  221. package/dist/esm/models/receipt-company.js +4 -4
  222. package/dist/esm/models/receipt-email.d.ts +32 -18
  223. package/dist/esm/models/receipt-email.js +65 -23
  224. package/dist/esm/models/receipt-errors.d.ts +39 -0
  225. package/dist/esm/models/receipt-errors.js +87 -0
  226. package/dist/esm/models/receipt-item.d.ts +9 -1
  227. package/dist/esm/models/receipt-item.js +3 -0
  228. package/dist/esm/models/receipt-payment.d.ts +2 -1
  229. package/dist/esm/models/receipt-summary.d.ts +10 -4
  230. package/dist/esm/models/receipt-summary.js +9 -3
  231. package/dist/esm/models/receipt.d.ts +31 -2
  232. package/dist/esm/models/receipt.js +28 -2
  233. package/dist/esm/models/voucher.d.ts +7 -6
  234. package/dist/esm/models/voucher.js +2 -7
  235. package/dist/esm/partner/ablauf.d.ts +10 -10
  236. package/dist/esm/partner/ablauf.js +27 -27
  237. package/dist/esm/partner/api.d.ts +26 -23
  238. package/dist/esm/partner/api.js +13 -15
  239. package/dist/esm/partner/auth.d.ts +1 -1
  240. package/dist/esm/partner/auth.js +2 -2
  241. package/dist/esm/partner/betrieb.d.ts +7 -7
  242. package/dist/esm/partner/betrieb.js +8 -8
  243. package/dist/esm/partner/endpunkte.d.ts +27 -14
  244. package/dist/esm/partner/endpunkte.js +79 -39
  245. package/dist/esm/partner/fehler.d.ts +60 -30
  246. package/dist/esm/partner/fehler.js +91 -35
  247. package/dist/esm/partner/index.d.ts +13 -12
  248. package/dist/esm/partner/index.js +12 -11
  249. package/dist/esm/partner/secret.d.ts +3 -3
  250. package/dist/esm/partner/secret.js +5 -5
  251. package/dist/esm/partner/typen.d.ts +129 -71
  252. package/dist/esm/partner/typen.js +75 -2
  253. package/dist/esm/partner/webhook-signatur.d.ts +2 -2
  254. package/dist/esm/partner/webhook-signatur.js +12 -12
  255. package/dist/esm/partner/webhooks.d.ts +60 -32
  256. package/dist/esm/partner/webhooks.js +38 -32
  257. package/dist/esm/payments/hobex-hps/transaction-response.js +28 -28
  258. package/dist/esm/payments/hobex.d.ts +2 -2
  259. package/dist/esm/payments/hobex.js +4 -4
  260. package/dist/esm/payments/stripe.d.ts +2 -2
  261. package/dist/esm/payments/stripe.js +4 -4
  262. package/dist/esm/pos/artikel.d.ts +90 -0
  263. package/dist/esm/pos/artikel.js +79 -0
  264. package/dist/esm/pos/client.d.ts +27 -0
  265. package/dist/esm/pos/client.js +137 -0
  266. package/dist/esm/pos/drucker.d.ts +86 -0
  267. package/dist/esm/pos/drucker.js +71 -0
  268. package/dist/esm/pos/errors.d.ts +36 -0
  269. package/dist/esm/pos/errors.js +88 -0
  270. package/dist/esm/pos/index.d.ts +15 -0
  271. package/dist/esm/pos/index.js +20 -0
  272. package/dist/esm/pos/settings.d.ts +313 -0
  273. package/dist/esm/pos/settings.js +367 -0
  274. package/dist/esm/pos/texte.d.ts +883 -0
  275. package/dist/esm/pos/texte.js +481 -0
  276. package/dist/esm/{kasse → pos}/trinkgeld.d.ts +1 -1
  277. package/dist/esm/{kasse → pos}/trinkgeld.js +2 -2
  278. package/dist/esm/printing/escpos.d.ts +29 -29
  279. package/dist/esm/printing/escpos.js +56 -56
  280. package/dist/esm/printing/index.d.ts +2 -2
  281. package/dist/esm/printing/index.js +2 -2
  282. package/dist/esm/printing/qr-groesse.d.ts +38 -38
  283. package/dist/esm/printing/qr-groesse.js +42 -42
  284. package/dist/esm/printing/webusb.d.ts +2 -2
  285. package/dist/esm/printing/webusb.js +4 -4
  286. package/dist/esm/react/index.d.ts +21 -21
  287. package/dist/esm/react/index.js +39 -29
  288. package/dist/esm/receipt/bild.d.ts +4 -4
  289. package/dist/esm/receipt/bild.js +11 -11
  290. package/dist/esm/receipt/blatt.d.ts +46 -46
  291. package/dist/esm/receipt/blatt.js +55 -55
  292. package/dist/esm/receipt/discount.d.ts +1 -1
  293. package/dist/esm/receipt/discount.js +7 -7
  294. package/dist/esm/receipt/due.d.ts +86 -0
  295. package/dist/esm/receipt/due.js +257 -0
  296. package/dist/esm/receipt/epos.d.ts +22 -22
  297. package/dist/esm/receipt/epos.js +47 -47
  298. package/dist/esm/receipt/grid.d.ts +10 -10
  299. package/dist/esm/receipt/grid.js +18 -18
  300. package/dist/esm/receipt/index.d.ts +9 -8
  301. package/dist/esm/receipt/index.js +9 -8
  302. package/dist/esm/receipt/layout-escpos.d.ts +24 -24
  303. package/dist/esm/receipt/layout-escpos.js +51 -51
  304. package/dist/esm/receipt/layout.d.ts +28 -23
  305. package/dist/esm/receipt/layout.js +44 -20
  306. package/dist/esm/receipt/marke-daten.d.ts +8 -8
  307. package/dist/esm/receipt/marke-daten.js +7 -7
  308. package/dist/esm/receipt/marke.d.ts +7 -7
  309. package/dist/esm/receipt/marke.js +10 -10
  310. package/dist/esm/register/errors.d.ts +61 -0
  311. package/dist/esm/register/errors.js +104 -0
  312. package/dist/esm/register/index.d.ts +14 -1
  313. package/dist/esm/register/index.js +13 -0
  314. package/dist/esm/register/pairing.d.ts +55 -36
  315. package/dist/esm/register/pairing.js +33 -29
  316. package/dist/esm/register/session.d.ts +5 -5
  317. package/dist/esm/register/session.js +7 -7
  318. package/dist/esm/stored/draht.d.ts +45 -0
  319. package/dist/esm/stored/draht.js +208 -0
  320. package/dist/esm/stored/einstellungen.d.ts +23 -0
  321. package/dist/esm/stored/einstellungen.js +196 -0
  322. package/dist/esm/stored/index.d.ts +109 -0
  323. package/dist/esm/stored/index.js +217 -0
  324. package/dist/esm/stored/vokabular.d.ts +18 -0
  325. package/dist/esm/stored/vokabular.js +386 -0
  326. package/dist/esm/version.d.ts +7 -0
  327. package/dist/esm/version.js +7 -0
  328. package/dist/esm/vienna-time.d.ts +1 -1
  329. package/dist/esm/vienna-time.js +2 -2
  330. package/fixtures/{erwartet/storno-rabatt.lines.json → expected/cancellation-discount.lines.json} +2 -2
  331. package/fixtures/expected/cancellation-discount.sheet32.json +248 -0
  332. package/fixtures/{erwartet/storno-rabatt.blatt48.json → expected/cancellation-discount.sheet48.json} +119 -119
  333. package/fixtures/{erwartet/storno-voll.lines.json → expected/cancellation-full.lines.json} +2 -2
  334. package/fixtures/expected/cancellation-full.sheet32.json +218 -0
  335. package/fixtures/{erwartet/storno-voll.blatt48.json → expected/cancellation-full.sheet48.json} +107 -107
  336. package/fixtures/{erwartet/storno-teil.lines.json → expected/cancellation-partial.lines.json} +2 -2
  337. package/fixtures/expected/cancellation-partial.sheet32.json +206 -0
  338. package/fixtures/{erwartet/storno-teil.blatt48.json → expected/cancellation-partial.sheet48.json} +101 -101
  339. package/fixtures/{erwartet/storno-split-voll.lines.json → expected/cancellation-split-full.lines.json} +2 -2
  340. package/fixtures/expected/cancellation-split-full.sheet32.json +320 -0
  341. package/fixtures/{erwartet/storno-split-voll.blatt48.json → expected/cancellation-split-full.sheet48.json} +158 -158
  342. package/fixtures/{erwartet/storno-split-teil.lines.json → expected/cancellation-split-partial.lines.json} +2 -2
  343. package/fixtures/expected/cancellation-split-partial.sheet32.json +230 -0
  344. package/fixtures/{erwartet/storno-split-teil.blatt48.json → expected/cancellation-split-partial.sheet48.json} +113 -113
  345. package/fixtures/{erwartet/karte-eigener.lines.json → expected/card-custom.lines.json} +1 -1
  346. package/fixtures/expected/card-custom.sheet32.json +158 -0
  347. package/fixtures/{erwartet/karte-eigener.blatt48.json → expected/card-custom.sheet48.json} +80 -80
  348. package/fixtures/{erwartet/karte-gptom-ios.lines.json → expected/card-gptom-ios.lines.json} +1 -1
  349. package/fixtures/expected/card-gptom-ios.sheet32.json +230 -0
  350. package/fixtures/{erwartet/karte-gptom-ios.blatt48.json → expected/card-gptom-ios.sheet48.json} +116 -116
  351. package/fixtures/{erwartet/karte-gptom.lines.json → expected/card-gptom.lines.json} +1 -1
  352. package/fixtures/expected/card-gptom.sheet32.json +230 -0
  353. package/fixtures/{erwartet/karte-gptom.blatt48.json → expected/card-gptom.sheet48.json} +116 -116
  354. package/fixtures/{erwartet/karte-hobex-cloud.lines.json → expected/card-hobex-cloud.lines.json} +1 -1
  355. package/fixtures/expected/card-hobex-cloud.sheet32.json +200 -0
  356. package/fixtures/{erwartet/karte-hobex-cloud.blatt48.json → expected/card-hobex-cloud.sheet48.json} +101 -101
  357. package/fixtures/{erwartet/karte-hobex-hps.lines.json → expected/card-hobex-hps.lines.json} +1 -1
  358. package/fixtures/expected/card-hobex-hps.sheet32.json +224 -0
  359. package/fixtures/{erwartet/karte-hobex-hps.blatt48.json → expected/card-hobex-hps.sheet48.json} +113 -113
  360. package/fixtures/{erwartet/karte-mypos.lines.json → expected/card-mypos.lines.json} +1 -1
  361. package/fixtures/expected/card-mypos.sheet32.json +254 -0
  362. package/fixtures/{erwartet/karte-mypos.blatt48.json → expected/card-mypos.sheet48.json} +122 -122
  363. package/fixtures/{erwartet/karte-stripe-eps.lines.json → expected/card-stripe-eps.lines.json} +1 -1
  364. package/fixtures/expected/card-stripe-eps.sheet32.json +194 -0
  365. package/fixtures/{erwartet/karte-stripe-eps.blatt48.json → expected/card-stripe-eps.sheet48.json} +98 -98
  366. package/fixtures/{erwartet/karte-stripe.lines.json → expected/card-stripe.lines.json} +1 -1
  367. package/fixtures/expected/card-stripe.sheet32.json +212 -0
  368. package/fixtures/{erwartet/karte-stripe.blatt48.json → expected/card-stripe.sheet48.json} +107 -107
  369. package/fixtures/{erwartet/karte-sumup.lines.json → expected/card-sumup.lines.json} +1 -1
  370. package/fixtures/expected/card-sumup.sheet32.json +218 -0
  371. package/fixtures/{erwartet/karte-sumup.blatt48.json → expected/card-sumup.sheet48.json} +104 -104
  372. package/fixtures/{erwartet/rabattzeilen.lines.json → expected/discount-lines.lines.json} +1 -1
  373. package/fixtures/expected/discount-lines.sheet32.json +200 -0
  374. package/fixtures/{erwartet/rabattzeilen.blatt48.json → expected/discount-lines.sheet48.json} +98 -98
  375. package/fixtures/{erwartet/rabatt-chef-trinkgeld.lines.json → expected/discount-owner-tip.lines.json} +1 -1
  376. package/fixtures/expected/discount-owner-tip.sheet32.json +212 -0
  377. package/fixtures/{erwartet/rabatt-chef-trinkgeld.blatt48.json → expected/discount-owner-tip.sheet48.json} +104 -104
  378. package/fixtures/{erwartet/rabatt-einfach.lines.json → expected/discount-simple.lines.json} +1 -1
  379. package/fixtures/expected/discount-simple.sheet32.json +182 -0
  380. package/fixtures/{erwartet/rabatt-einfach.blatt48.json → expected/discount-simple.sheet48.json} +89 -89
  381. package/fixtures/{erwartet/rabatt-trinkgeld.lines.json → expected/discount-tip.lines.json} +1 -1
  382. package/fixtures/expected/discount-tip.sheet32.json +212 -0
  383. package/fixtures/{erwartet/rabatt-trinkgeld.blatt48.json → expected/discount-tip.sheet48.json} +104 -104
  384. package/fixtures/{erwartet/rabatt-wertgutschein.lines.json → expected/discount-value-voucher.lines.json} +1 -1
  385. package/fixtures/expected/discount-value-voucher.sheet32.json +218 -0
  386. package/fixtures/{erwartet/rabatt-wertgutschein.blatt48.json → expected/discount-value-voucher.sheet48.json} +107 -107
  387. package/fixtures/{erwartet/langer-artikelname.lines.json → expected/long-item-name.lines.json} +1 -1
  388. package/fixtures/expected/long-item-name.sheet32.json +176 -0
  389. package/fixtures/{erwartet/langer-artikelname.blatt48.json → expected/long-item-name.sheet48.json} +86 -86
  390. package/fixtures/{erwartet/verkauf-karte.lines.json → expected/sale-card.lines.json} +1 -1
  391. package/fixtures/expected/sale-card.sheet32.json +176 -0
  392. package/fixtures/{erwartet/verkauf-karte.blatt48.json → expected/sale-card.sheet48.json} +86 -86
  393. package/fixtures/{erwartet/verkauf-bar.lines.json → expected/sale-cash.lines.json} +1 -1
  394. package/fixtures/expected/sale-cash.sheet32.json +176 -0
  395. package/fixtures/{erwartet/verkauf-bar.blatt48.json → expected/sale-cash.sheet48.json} +86 -86
  396. package/fixtures/{erwartet/verkauf-kleinunternehmer.lines.json → expected/sale-small-business.lines.json} +1 -1
  397. package/fixtures/expected/sale-small-business.sheet32.json +182 -0
  398. package/fixtures/{erwartet/verkauf-kleinunternehmer.blatt48.json → expected/sale-small-business.sheet48.json} +89 -89
  399. package/fixtures/{erwartet/signaturausfall-verkauf.lines.json → expected/signature-outage-sale.lines.json} +1 -1
  400. package/fixtures/expected/signature-outage-sale.sheet32.json +194 -0
  401. package/fixtures/{erwartet/signaturausfall-verkauf.blatt48.json → expected/signature-outage-sale.sheet48.json} +92 -92
  402. package/fixtures/{erwartet/split-karte-karte-bar.lines.json → expected/split-card-card-cash.lines.json} +1 -1
  403. package/fixtures/expected/split-card-card-cash.sheet32.json +356 -0
  404. package/fixtures/{erwartet/split-karte-karte-bar.blatt48.json → expected/split-card-card-cash.sheet48.json} +170 -170
  405. package/fixtures/{erwartet/split-bar-rueckgeld.lines.json → expected/split-cash-change.lines.json} +1 -1
  406. package/fixtures/expected/split-cash-change.sheet32.json +194 -0
  407. package/fixtures/{erwartet/split-bar-rueckgeld.blatt48.json → expected/split-cash-change.sheet48.json} +92 -92
  408. package/fixtures/{erwartet/split-langer-betrag.lines.json → expected/split-long-amount.lines.json} +1 -1
  409. package/fixtures/expected/split-long-amount.sheet32.json +266 -0
  410. package/fixtures/{erwartet/split-langer-betrag.blatt48.json → expected/split-long-amount.sheet48.json} +131 -131
  411. package/fixtures/{erwartet/split-eine-karte-trinkgeld.lines.json → expected/split-one-card-tip.lines.json} +1 -1
  412. package/fixtures/expected/split-one-card-tip.sheet32.json +242 -0
  413. package/fixtures/{erwartet/split-eine-karte-trinkgeld.blatt48.json → expected/split-one-card-tip.sheet48.json} +113 -113
  414. package/fixtures/{erwartet/split-tischrunde-trinkgeld.lines.json → expected/split-table-round-tip.lines.json} +1 -1
  415. package/fixtures/expected/split-table-round-tip.sheet32.json +470 -0
  416. package/fixtures/{erwartet/split-tischrunde-trinkgeld.blatt48.json → expected/split-table-round-tip.sheet48.json} +218 -218
  417. package/fixtures/{erwartet/split-trinkgeld-karte.lines.json → expected/split-tip-card.lines.json} +1 -1
  418. package/fixtures/expected/split-tip-card.sheet32.json +272 -0
  419. package/fixtures/{erwartet/split-trinkgeld-karte.blatt48.json → expected/split-tip-card.sheet48.json} +128 -128
  420. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.lines.json → expected/split-two-cards-same-provider.lines.json} +1 -1
  421. package/fixtures/expected/split-two-cards-same-provider.sheet32.json +326 -0
  422. package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.blatt48.json → expected/split-two-cards-same-provider.sheet48.json} +149 -149
  423. package/fixtures/{erwartet/testkasse-verkauf.lines.json → expected/test-cashregister-sale.lines.json} +3 -3
  424. package/fixtures/expected/test-cashregister-sale.sheet32.json +224 -0
  425. package/fixtures/{erwartet/testkasse-verkauf.blatt48.json → expected/test-cashregister-sale.sheet48.json} +110 -110
  426. package/fixtures/{erwartet/testsignatur-verkauf.lines.json → expected/test-signature-sale.lines.json} +3 -3
  427. package/fixtures/expected/test-signature-sale.sheet32.json +236 -0
  428. package/fixtures/{erwartet/testsignatur-verkauf.blatt48.json → expected/test-signature-sale.sheet48.json} +110 -110
  429. package/fixtures/{erwartet → expected}/training.lines.json +2 -2
  430. package/fixtures/expected/training.sheet32.json +236 -0
  431. package/fixtures/{erwartet/training.blatt48.json → expected/training.sheet48.json} +110 -110
  432. package/fixtures/{erwartet/null-jahr.lines.json → expected/zero-annual.lines.json} +2 -2
  433. package/fixtures/expected/zero-annual.sheet32.json +212 -0
  434. package/fixtures/{erwartet/null-jahr.blatt48.json → expected/zero-annual.sheet48.json} +95 -95
  435. package/fixtures/{erwartet/null-schluss.lines.json → expected/zero-final.lines.json} +2 -2
  436. package/fixtures/expected/zero-final.sheet32.json +206 -0
  437. package/fixtures/{erwartet/null-schluss.blatt48.json → expected/zero-final.sheet48.json} +95 -95
  438. package/fixtures/{erwartet/null-pruef.lines.json → expected/zero-manual.lines.json} +2 -2
  439. package/fixtures/expected/zero-manual.sheet32.json +206 -0
  440. package/fixtures/{erwartet/null-pruef.blatt48.json → expected/zero-manual.sheet48.json} +95 -95
  441. package/fixtures/{erwartet/null-monat.lines.json → expected/zero-monthly.lines.json} +2 -2
  442. package/fixtures/expected/zero-monthly.sheet32.json +206 -0
  443. package/fixtures/{erwartet/null-monat.blatt48.json → expected/zero-monthly.sheet48.json} +95 -95
  444. package/fixtures/{erwartet/null-ausfall.lines.json → expected/zero-outage-end.lines.json} +2 -2
  445. package/fixtures/expected/zero-outage-end.sheet32.json +206 -0
  446. package/fixtures/{erwartet/null-ausfall.blatt48.json → expected/zero-outage-end.sheet48.json} +95 -95
  447. package/fixtures/{erwartet/null-start.lines.json → expected/zero-start.lines.json} +2 -2
  448. package/fixtures/expected/zero-start.sheet32.json +206 -0
  449. package/fixtures/{erwartet/null-start.blatt48.json → expected/zero-start.sheet48.json} +95 -95
  450. package/fixtures/hobex-hps-codes.json +40 -40
  451. package/fixtures/invoice-api-examples/brands-ok.json +8 -0
  452. package/fixtures/{rechnung-api-beispiele/credit-fehler-grund.json → invoice-api-examples/credit-error-reason.json} +6 -6
  453. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/credit-ok.json +6 -6
  454. package/fixtures/{rechnung-api-beispiele/customer-fehler-uid.json → invoice-api-examples/customer-error-vat-id.json} +4 -4
  455. package/fixtures/invoice-api-examples/customer-get-error-both.json +15 -0
  456. package/fixtures/{rechnung-api-beispiele → invoice-api-examples}/customer-ok.json +4 -4
  457. package/fixtures/{rechnung-api-beispiele/customer-search-fehler-leer.json → invoice-api-examples/customer-search-error-empty.json} +4 -4
  458. package/fixtures/{rechnung-api-beispiele/issue-rabatt.json → invoice-api-examples/issue-discount.json} +6 -6
  459. package/fixtures/{rechnung-api-beispiele/issue-englisch.json → invoice-api-examples/issue-english.json} +7 -7
  460. package/fixtures/{rechnung-api-beispiele/issue-fehler-cent.json → invoice-api-examples/issue-error-cent.json} +6 -6
  461. package/fixtures/{rechnung-api-beispiele/issue-fehler-sprache.json → invoice-api-examples/issue-error-language.json} +5 -5
  462. package/fixtures/{rechnung-api-beispiele/issue-fehler-negativ.json → invoice-api-examples/issue-error-negative.json} +6 -6
  463. package/fixtures/{rechnung-api-beispiele/issue-fehler-zahlungsart.json → invoice-api-examples/issue-error-payment-method.json} +8 -6
  464. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-beide.json → invoice-api-examples/issue-error-price-both.json} +6 -6
  465. package/fixtures/{rechnung-api-beispiele/issue-fehler-preis-fehlt.json → invoice-api-examples/issue-error-price-missing.json} +6 -6
  466. package/fixtures/{rechnung-api-beispiele/issue-fehler-menge.json → invoice-api-examples/issue-error-quantity.json} +6 -6
  467. package/fixtures/{rechnung-api-beispiele/issue-fehler-satz.json → invoice-api-examples/issue-error-rate.json} +6 -6
  468. package/fixtures/{rechnung-api-beispiele/issue-fehler-einheit.json → invoice-api-examples/issue-error-unit.json} +5 -5
  469. package/fixtures/{rechnung-api-beispiele/issue-fehler-unbekannt.json → invoice-api-examples/issue-error-unknown.json} +6 -6
  470. package/fixtures/{rechnung-api-beispiele/issue-brutto-20.json → invoice-api-examples/issue-gross-20.json} +6 -6
  471. package/fixtures/{rechnung-api-beispiele/issue-mikropreis.json → invoice-api-examples/issue-micro-price.json} +6 -6
  472. package/fixtures/{rechnung-api-beispiele/issue-gemischt.json → invoice-api-examples/issue-mixed.json} +6 -6
  473. package/fixtures/{rechnung-api-beispiele/issue-netto-20.json → invoice-api-examples/issue-net-20.json} +6 -6
  474. package/fixtures/{rechnung-api-beispiele/issue-bezahlt.json → invoice-api-examples/issue-paid.json} +7 -7
  475. package/fixtures/{rechnung-api-beispiele/issue-kleinunternehmer.json → invoice-api-examples/issue-small-business.json} +6 -6
  476. package/fixtures/invoice-api-examples/payment-error-on-site.json +17 -0
  477. package/fixtures/invoice-api-examples/payment-error-without-key.json +16 -0
  478. package/fixtures/invoice-api-examples/payment-recorded-later.json +14 -0
  479. package/fixtures/{rechnung-api-beispiele/setup-status-fehler-feld.json → invoice-api-examples/setup-status-error-field.json} +4 -4
  480. package/fixtures/invoice-api-examples/setup-status-ok.json +8 -0
  481. package/fixtures/{rechnung-api.schema.json → invoice-api.schema.json} +24 -24
  482. package/fixtures/{rechnung-rechnen-zufall.json → invoice-calc-random.json} +828 -828
  483. package/fixtures/{rechnung-rechnen.json → invoice-calc.json} +47 -47
  484. package/fixtures/invoice-texts.json +464 -0
  485. package/fixtures/{rechnung-summen.json → invoice-totals.json} +25 -25
  486. package/fixtures/{position-aus-euro.json → item-from-euro.json} +26 -26
  487. package/fixtures/manifest.json +252 -252
  488. package/fixtures/pos-message-cases.json +32 -0
  489. package/fixtures/pos-settings-defaults.json +149 -0
  490. package/fixtures/pos-texts.json +957 -0
  491. package/fixtures/receipt-due-generated.json +1218 -0
  492. package/fixtures/{belege/storno-rabatt.json → receipts/cancellation-discount.json} +3 -3
  493. package/fixtures/{belege/storno-voll.json → receipts/cancellation-full.json} +3 -3
  494. package/fixtures/{belege/storno-teil.json → receipts/cancellation-partial.json} +3 -3
  495. package/fixtures/{belege/storno-split-voll.json → receipts/cancellation-split-full.json} +3 -3
  496. package/fixtures/{belege/storno-split-teil.json → receipts/cancellation-split-partial.json} +3 -3
  497. package/fixtures/{belege/karte-eigener.json → receipts/card-custom.json} +2 -2
  498. package/fixtures/{belege/karte-gptom-ios.json → receipts/card-gptom-ios.json} +2 -2
  499. package/fixtures/{belege/karte-gptom.json → receipts/card-gptom.json} +2 -2
  500. package/fixtures/{belege/karte-hobex-cloud.json → receipts/card-hobex-cloud.json} +2 -2
  501. package/fixtures/{belege/karte-hobex-hps.json → receipts/card-hobex-hps.json} +2 -2
  502. package/fixtures/{belege/karte-mypos.json → receipts/card-mypos.json} +2 -2
  503. package/fixtures/{belege/karte-stripe-eps.json → receipts/card-stripe-eps.json} +2 -2
  504. package/fixtures/{belege/karte-stripe.json → receipts/card-stripe.json} +2 -2
  505. package/fixtures/{belege/karte-sumup.json → receipts/card-sumup.json} +2 -2
  506. package/fixtures/{belege/rabattzeilen.json → receipts/discount-lines.json} +2 -2
  507. package/fixtures/{belege/rabatt-chef-trinkgeld.json → receipts/discount-owner-tip.json} +2 -2
  508. package/fixtures/{belege/rabatt-einfach.json → receipts/discount-simple.json} +2 -2
  509. package/fixtures/{belege/rabatt-trinkgeld.json → receipts/discount-tip.json} +2 -2
  510. package/fixtures/{belege/rabatt-wertgutschein.json → receipts/discount-value-voucher.json} +2 -2
  511. package/fixtures/{belege/langer-artikelname.json → receipts/long-item-name.json} +2 -2
  512. package/fixtures/{belege/verkauf-karte.json → receipts/sale-card.json} +2 -2
  513. package/fixtures/{belege/verkauf-bar.json → receipts/sale-cash.json} +2 -2
  514. package/fixtures/{belege/verkauf-kleinunternehmer.json → receipts/sale-small-business.json} +1 -1
  515. package/fixtures/{belege/signaturausfall-verkauf.json → receipts/signature-outage-sale.json} +2 -2
  516. package/fixtures/{belege/split-karte-karte-bar.json → receipts/split-card-card-cash.json} +2 -2
  517. package/fixtures/{belege/split-bar-rueckgeld.json → receipts/split-cash-change.json} +2 -2
  518. package/fixtures/{belege/split-langer-betrag.json → receipts/split-long-amount.json} +2 -2
  519. package/fixtures/{belege/split-eine-karte-trinkgeld.json → receipts/split-one-card-tip.json} +2 -2
  520. package/fixtures/{belege/split-tischrunde-trinkgeld.json → receipts/split-table-round-tip.json} +2 -2
  521. package/fixtures/{belege/split-trinkgeld-karte.json → receipts/split-tip-card.json} +2 -2
  522. package/fixtures/{belege/split-zwei-karten-gleicher-anbieter.json → receipts/split-two-cards-same-provider.json} +2 -2
  523. package/fixtures/{belege/testsignatur-verkauf.json → receipts/test-cashregister-sale.json} +3 -3
  524. package/fixtures/{belege/testkasse-verkauf.json → receipts/test-signature-sale.json} +3 -3
  525. package/fixtures/{belege → receipts}/training.json +2 -2
  526. package/fixtures/{belege/null-jahr.json → receipts/zero-annual.json} +5 -5
  527. package/fixtures/{belege/null-schluss.json → receipts/zero-final.json} +5 -5
  528. package/fixtures/{belege/null-pruef.json → receipts/zero-manual.json} +5 -5
  529. package/fixtures/{belege/null-monat.json → receipts/zero-monthly.json} +5 -5
  530. package/fixtures/{belege/null-ausfall.json → receipts/zero-outage-end.json} +5 -5
  531. package/fixtures/{belege/null-start.json → receipts/zero-start.json} +5 -5
  532. package/fixtures/renames-1.0.json +1490 -0
  533. package/fixtures/{kasse-settings-standard.json → stored/pos-settings-defaults.json} +10 -8
  534. package/fixtures/surface.json +877 -0
  535. package/fixtures/v3/README.md +125 -0
  536. package/fixtures/v3/antworten/belege.json +4738 -0
  537. package/fixtures/v3/antworten/belegmail.json +154 -0
  538. package/fixtures/v3/antworten/kasse-belege.json +4304 -0
  539. package/fixtures/v3/antworten/kasse.json +12716 -0
  540. package/fixtures/v3/antworten/rechnungen.json +1712 -0
  541. package/fixtures/v3/antworten/storno.json +737 -0
  542. package/fixtures/v3/stored/belege.json +502 -0
  543. package/fixtures/v3/stored/kasse.json +3461 -0
  544. package/fixtures/v3/stored/rechnungen.json +750 -0
  545. package/fixtures/v3/v3-vokabular.json +3375 -0
  546. package/fixtures/v3/zahlbetrag-faelle.json +794 -0
  547. package/package.json +32 -18
  548. package/dist/cjs/kasse/artikel.d.ts +0 -83
  549. package/dist/cjs/kasse/artikel.js +0 -79
  550. package/dist/cjs/kasse/client.d.ts +0 -10
  551. package/dist/cjs/kasse/client.js +0 -38
  552. package/dist/cjs/kasse/drucker.d.ts +0 -59
  553. package/dist/cjs/kasse/drucker.js +0 -50
  554. package/dist/cjs/kasse/index.d.ts +0 -13
  555. package/dist/cjs/kasse/index.js +0 -79
  556. package/dist/cjs/kasse/settings.d.ts +0 -227
  557. package/dist/cjs/kasse/settings.js +0 -169
  558. package/dist/cjs/kasse/texte.d.ts +0 -458
  559. package/dist/cjs/kasse/texte.js +0 -244
  560. package/dist/cjs/rechnung/fehler.d.ts +0 -21
  561. package/dist/cjs/rechnung/fehler.js +0 -44
  562. package/dist/cjs/rechnung/index.d.ts +0 -21
  563. package/dist/cjs/rechnung/index.js +0 -82
  564. package/dist/cjs/rechnung/texte.d.ts +0 -222
  565. package/dist/cjs/rechnung/texte.js +0 -425
  566. package/dist/esm/kasse/artikel.d.ts +0 -83
  567. package/dist/esm/kasse/artikel.js +0 -70
  568. package/dist/esm/kasse/client.d.ts +0 -10
  569. package/dist/esm/kasse/client.js +0 -33
  570. package/dist/esm/kasse/drucker.d.ts +0 -59
  571. package/dist/esm/kasse/drucker.js +0 -45
  572. package/dist/esm/kasse/index.d.ts +0 -13
  573. package/dist/esm/kasse/index.js +0 -18
  574. package/dist/esm/kasse/settings.d.ts +0 -227
  575. package/dist/esm/kasse/settings.js +0 -165
  576. package/dist/esm/kasse/texte.d.ts +0 -458
  577. package/dist/esm/kasse/texte.js +0 -238
  578. package/dist/esm/rechnung/fehler.d.ts +0 -21
  579. package/dist/esm/rechnung/fehler.js +0 -39
  580. package/dist/esm/rechnung/index.d.ts +0 -21
  581. package/dist/esm/rechnung/index.js +0 -20
  582. package/dist/esm/rechnung/texte.d.ts +0 -222
  583. package/dist/esm/rechnung/texte.js +0 -421
  584. package/fixtures/erwartet/karte-eigener.blatt32.json +0 -158
  585. package/fixtures/erwartet/karte-gptom-ios.blatt32.json +0 -230
  586. package/fixtures/erwartet/karte-gptom.blatt32.json +0 -230
  587. package/fixtures/erwartet/karte-hobex-cloud.blatt32.json +0 -200
  588. package/fixtures/erwartet/karte-hobex-hps.blatt32.json +0 -224
  589. package/fixtures/erwartet/karte-mypos.blatt32.json +0 -254
  590. package/fixtures/erwartet/karte-stripe-eps.blatt32.json +0 -194
  591. package/fixtures/erwartet/karte-stripe.blatt32.json +0 -212
  592. package/fixtures/erwartet/karte-sumup.blatt32.json +0 -218
  593. package/fixtures/erwartet/langer-artikelname.blatt32.json +0 -176
  594. package/fixtures/erwartet/null-ausfall.blatt32.json +0 -206
  595. package/fixtures/erwartet/null-jahr.blatt32.json +0 -212
  596. package/fixtures/erwartet/null-monat.blatt32.json +0 -206
  597. package/fixtures/erwartet/null-pruef.blatt32.json +0 -206
  598. package/fixtures/erwartet/null-schluss.blatt32.json +0 -206
  599. package/fixtures/erwartet/null-start.blatt32.json +0 -206
  600. package/fixtures/erwartet/rabatt-chef-trinkgeld.blatt32.json +0 -212
  601. package/fixtures/erwartet/rabatt-einfach.blatt32.json +0 -182
  602. package/fixtures/erwartet/rabatt-trinkgeld.blatt32.json +0 -212
  603. package/fixtures/erwartet/rabatt-wertgutschein.blatt32.json +0 -218
  604. package/fixtures/erwartet/rabattzeilen.blatt32.json +0 -200
  605. package/fixtures/erwartet/signaturausfall-verkauf.blatt32.json +0 -194
  606. package/fixtures/erwartet/split-bar-rueckgeld.blatt32.json +0 -194
  607. package/fixtures/erwartet/split-eine-karte-trinkgeld.blatt32.json +0 -242
  608. package/fixtures/erwartet/split-karte-karte-bar.blatt32.json +0 -356
  609. package/fixtures/erwartet/split-langer-betrag.blatt32.json +0 -266
  610. package/fixtures/erwartet/split-tischrunde-trinkgeld.blatt32.json +0 -470
  611. package/fixtures/erwartet/split-trinkgeld-karte.blatt32.json +0 -272
  612. package/fixtures/erwartet/split-zwei-karten-gleicher-anbieter.blatt32.json +0 -326
  613. package/fixtures/erwartet/storno-rabatt.blatt32.json +0 -248
  614. package/fixtures/erwartet/storno-split-teil.blatt32.json +0 -230
  615. package/fixtures/erwartet/storno-split-voll.blatt32.json +0 -320
  616. package/fixtures/erwartet/storno-teil.blatt32.json +0 -206
  617. package/fixtures/erwartet/storno-voll.blatt32.json +0 -218
  618. package/fixtures/erwartet/testkasse-verkauf.blatt32.json +0 -224
  619. package/fixtures/erwartet/testsignatur-verkauf.blatt32.json +0 -236
  620. package/fixtures/erwartet/training.blatt32.json +0 -236
  621. package/fixtures/erwartet/verkauf-bar.blatt32.json +0 -176
  622. package/fixtures/erwartet/verkauf-karte.blatt32.json +0 -176
  623. package/fixtures/erwartet/verkauf-kleinunternehmer.blatt32.json +0 -182
  624. package/fixtures/kasse-meldungen-faelle.json +0 -32
  625. package/fixtures/kasse-texte.json +0 -513
  626. package/fixtures/oberflaeche.json +0 -557
  627. package/fixtures/rechnung-api-beispiele/brands-ok.json +0 -8
  628. package/fixtures/rechnung-api-beispiele/customer-get-fehler-beide.json +0 -15
  629. package/fixtures/rechnung-api-beispiele/setup-status-ok.json +0 -8
  630. package/fixtures/rechnung-api-beispiele/zahlung-fehler-ohne-schluessel.json +0 -14
  631. package/fixtures/rechnung-api-beispiele/zahlung-fehler-vor-ort.json +0 -15
  632. package/fixtures/rechnung-api-beispiele/zahlung-nachtrag.json +0 -14
  633. package/fixtures/rechnung-texte.json +0 -464
  634. /package/dist/cjs/{rechnung → invoice}/typen.js +0 -0
  635. /package/dist/esm/{rechnung → invoice}/typen.js +0 -0
  636. /package/fixtures/{erwartet/storno-rabatt.grid32.txt → expected/cancellation-discount.grid32.txt} +0 -0
  637. /package/fixtures/{erwartet/storno-rabatt.grid48.txt → expected/cancellation-discount.grid48.txt} +0 -0
  638. /package/fixtures/{erwartet/storno-voll.grid32.txt → expected/cancellation-full.grid32.txt} +0 -0
  639. /package/fixtures/{erwartet/storno-voll.grid48.txt → expected/cancellation-full.grid48.txt} +0 -0
  640. /package/fixtures/{erwartet/storno-teil.grid32.txt → expected/cancellation-partial.grid32.txt} +0 -0
  641. /package/fixtures/{erwartet/storno-teil.grid48.txt → expected/cancellation-partial.grid48.txt} +0 -0
  642. /package/fixtures/{erwartet/storno-split-voll.grid32.txt → expected/cancellation-split-full.grid32.txt} +0 -0
  643. /package/fixtures/{erwartet/storno-split-voll.grid48.txt → expected/cancellation-split-full.grid48.txt} +0 -0
  644. /package/fixtures/{erwartet/storno-split-teil.grid32.txt → expected/cancellation-split-partial.grid32.txt} +0 -0
  645. /package/fixtures/{erwartet/storno-split-teil.grid48.txt → expected/cancellation-split-partial.grid48.txt} +0 -0
  646. /package/fixtures/{erwartet/karte-eigener.grid32.txt → expected/card-custom.grid32.txt} +0 -0
  647. /package/fixtures/{erwartet/karte-eigener.grid48.txt → expected/card-custom.grid48.txt} +0 -0
  648. /package/fixtures/{erwartet/karte-gptom-ios.grid32.txt → expected/card-gptom-ios.grid32.txt} +0 -0
  649. /package/fixtures/{erwartet/karte-gptom-ios.grid48.txt → expected/card-gptom-ios.grid48.txt} +0 -0
  650. /package/fixtures/{erwartet/karte-gptom.grid32.txt → expected/card-gptom.grid32.txt} +0 -0
  651. /package/fixtures/{erwartet/karte-gptom.grid48.txt → expected/card-gptom.grid48.txt} +0 -0
  652. /package/fixtures/{erwartet/karte-hobex-cloud.grid32.txt → expected/card-hobex-cloud.grid32.txt} +0 -0
  653. /package/fixtures/{erwartet/karte-hobex-cloud.grid48.txt → expected/card-hobex-cloud.grid48.txt} +0 -0
  654. /package/fixtures/{erwartet/karte-hobex-hps.grid32.txt → expected/card-hobex-hps.grid32.txt} +0 -0
  655. /package/fixtures/{erwartet/karte-hobex-hps.grid48.txt → expected/card-hobex-hps.grid48.txt} +0 -0
  656. /package/fixtures/{erwartet/karte-mypos.grid32.txt → expected/card-mypos.grid32.txt} +0 -0
  657. /package/fixtures/{erwartet/karte-mypos.grid48.txt → expected/card-mypos.grid48.txt} +0 -0
  658. /package/fixtures/{erwartet/karte-stripe-eps.grid32.txt → expected/card-stripe-eps.grid32.txt} +0 -0
  659. /package/fixtures/{erwartet/karte-stripe-eps.grid48.txt → expected/card-stripe-eps.grid48.txt} +0 -0
  660. /package/fixtures/{erwartet/karte-stripe.grid32.txt → expected/card-stripe.grid32.txt} +0 -0
  661. /package/fixtures/{erwartet/karte-stripe.grid48.txt → expected/card-stripe.grid48.txt} +0 -0
  662. /package/fixtures/{erwartet/karte-sumup.grid32.txt → expected/card-sumup.grid32.txt} +0 -0
  663. /package/fixtures/{erwartet/karte-sumup.grid48.txt → expected/card-sumup.grid48.txt} +0 -0
  664. /package/fixtures/{erwartet/rabattzeilen.grid32.txt → expected/discount-lines.grid32.txt} +0 -0
  665. /package/fixtures/{erwartet/rabattzeilen.grid48.txt → expected/discount-lines.grid48.txt} +0 -0
  666. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid32.txt → expected/discount-owner-tip.grid32.txt} +0 -0
  667. /package/fixtures/{erwartet/rabatt-chef-trinkgeld.grid48.txt → expected/discount-owner-tip.grid48.txt} +0 -0
  668. /package/fixtures/{erwartet/rabatt-einfach.grid32.txt → expected/discount-simple.grid32.txt} +0 -0
  669. /package/fixtures/{erwartet/rabatt-einfach.grid48.txt → expected/discount-simple.grid48.txt} +0 -0
  670. /package/fixtures/{erwartet/rabatt-trinkgeld.grid32.txt → expected/discount-tip.grid32.txt} +0 -0
  671. /package/fixtures/{erwartet/rabatt-trinkgeld.grid48.txt → expected/discount-tip.grid48.txt} +0 -0
  672. /package/fixtures/{erwartet/rabatt-wertgutschein.grid32.txt → expected/discount-value-voucher.grid32.txt} +0 -0
  673. /package/fixtures/{erwartet/rabatt-wertgutschein.grid48.txt → expected/discount-value-voucher.grid48.txt} +0 -0
  674. /package/fixtures/{erwartet/logo-probe-hoch.raster32.txt → expected/logo-sample-tall.raster32.txt} +0 -0
  675. /package/fixtures/{erwartet/logo-probe.raster32.txt → expected/logo-sample.raster32.txt} +0 -0
  676. /package/fixtures/{erwartet/langer-artikelname.grid32.txt → expected/long-item-name.grid32.txt} +0 -0
  677. /package/fixtures/{erwartet/langer-artikelname.grid48.txt → expected/long-item-name.grid48.txt} +0 -0
  678. /package/fixtures/{erwartet/verkauf-karte.grid32.txt → expected/sale-card.grid32.txt} +0 -0
  679. /package/fixtures/{erwartet/verkauf-karte.grid48.txt → expected/sale-card.grid48.txt} +0 -0
  680. /package/fixtures/{erwartet/verkauf-bar.grid32.txt → expected/sale-cash.grid32.txt} +0 -0
  681. /package/fixtures/{erwartet/verkauf-bar.grid48.txt → expected/sale-cash.grid48.txt} +0 -0
  682. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid32.txt → expected/sale-small-business.grid32.txt} +0 -0
  683. /package/fixtures/{erwartet/verkauf-kleinunternehmer.grid48.txt → expected/sale-small-business.grid48.txt} +0 -0
  684. /package/fixtures/{erwartet/signaturausfall-verkauf.grid32.txt → expected/signature-outage-sale.grid32.txt} +0 -0
  685. /package/fixtures/{erwartet/signaturausfall-verkauf.grid48.txt → expected/signature-outage-sale.grid48.txt} +0 -0
  686. /package/fixtures/{erwartet/split-karte-karte-bar.grid32.txt → expected/split-card-card-cash.grid32.txt} +0 -0
  687. /package/fixtures/{erwartet/split-karte-karte-bar.grid48.txt → expected/split-card-card-cash.grid48.txt} +0 -0
  688. /package/fixtures/{erwartet/split-bar-rueckgeld.grid32.txt → expected/split-cash-change.grid32.txt} +0 -0
  689. /package/fixtures/{erwartet/split-bar-rueckgeld.grid48.txt → expected/split-cash-change.grid48.txt} +0 -0
  690. /package/fixtures/{erwartet/split-langer-betrag.grid32.txt → expected/split-long-amount.grid32.txt} +0 -0
  691. /package/fixtures/{erwartet/split-langer-betrag.grid48.txt → expected/split-long-amount.grid48.txt} +0 -0
  692. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid32.txt → expected/split-one-card-tip.grid32.txt} +0 -0
  693. /package/fixtures/{erwartet/split-eine-karte-trinkgeld.grid48.txt → expected/split-one-card-tip.grid48.txt} +0 -0
  694. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid32.txt → expected/split-table-round-tip.grid32.txt} +0 -0
  695. /package/fixtures/{erwartet/split-tischrunde-trinkgeld.grid48.txt → expected/split-table-round-tip.grid48.txt} +0 -0
  696. /package/fixtures/{erwartet/split-trinkgeld-karte.grid32.txt → expected/split-tip-card.grid32.txt} +0 -0
  697. /package/fixtures/{erwartet/split-trinkgeld-karte.grid48.txt → expected/split-tip-card.grid48.txt} +0 -0
  698. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid32.txt → expected/split-two-cards-same-provider.grid32.txt} +0 -0
  699. /package/fixtures/{erwartet/split-zwei-karten-gleicher-anbieter.grid48.txt → expected/split-two-cards-same-provider.grid48.txt} +0 -0
  700. /package/fixtures/{erwartet/testkasse-verkauf.grid32.txt → expected/test-cashregister-sale.grid32.txt} +0 -0
  701. /package/fixtures/{erwartet/testkasse-verkauf.grid48.txt → expected/test-cashregister-sale.grid48.txt} +0 -0
  702. /package/fixtures/{erwartet/testsignatur-verkauf.grid32.txt → expected/test-signature-sale.grid32.txt} +0 -0
  703. /package/fixtures/{erwartet/testsignatur-verkauf.grid48.txt → expected/test-signature-sale.grid48.txt} +0 -0
  704. /package/fixtures/{erwartet → expected}/training.grid32.txt +0 -0
  705. /package/fixtures/{erwartet → expected}/training.grid48.txt +0 -0
  706. /package/fixtures/{erwartet/null-jahr.grid32.txt → expected/zero-annual.grid32.txt} +0 -0
  707. /package/fixtures/{erwartet/null-jahr.grid48.txt → expected/zero-annual.grid48.txt} +0 -0
  708. /package/fixtures/{erwartet/null-schluss.grid32.txt → expected/zero-final.grid32.txt} +0 -0
  709. /package/fixtures/{erwartet/null-schluss.grid48.txt → expected/zero-final.grid48.txt} +0 -0
  710. /package/fixtures/{erwartet/null-pruef.grid32.txt → expected/zero-manual.grid32.txt} +0 -0
  711. /package/fixtures/{erwartet/null-pruef.grid48.txt → expected/zero-manual.grid48.txt} +0 -0
  712. /package/fixtures/{erwartet/null-monat.grid32.txt → expected/zero-monthly.grid32.txt} +0 -0
  713. /package/fixtures/{erwartet/null-monat.grid48.txt → expected/zero-monthly.grid48.txt} +0 -0
  714. /package/fixtures/{erwartet/null-ausfall.grid32.txt → expected/zero-outage-end.grid32.txt} +0 -0
  715. /package/fixtures/{erwartet/null-ausfall.grid48.txt → expected/zero-outage-end.grid48.txt} +0 -0
  716. /package/fixtures/{erwartet/null-start.grid32.txt → expected/zero-start.grid32.txt} +0 -0
  717. /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,39 +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/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.
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[]`).
30
37
  *
31
- * Die vier `STORNO_…`-Codes am Ende gehoeren zur Rueckzahlung je Zahlung
32
- * (mehrere Zahlungen je Beleg); Formfehler an `payments` selbst melden die
33
- * Codes aus [PAYMENT_ERROR_CODES].
34
- *
35
- * Die Werte hier sind die von `/v1` und intern. Unter `/v3` heissen die
36
- * Storno-Codes nach dem /v3-Vokabular anders (`already_cancelled`,
37
- * `cancellation_payments_required`, functions/gemeinsam/api-vokabular-v3.js);
38
- * diese Namen kommen mit der Umstellung des Pakets auf `/v3`.
39
- * [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.
40
45
  */
41
- 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"];
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"];
42
47
  export type CancellationErrorCode = (typeof CANCELLATION_ERROR_CODES)[number];
43
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];
44
59
  /** Bezug eines Storno-Belegs auf sein Original. */
45
60
  export interface CancellationOf {
46
61
  receiptId: string;
@@ -78,6 +93,16 @@ export interface Cancellation {
78
93
  * nichts gewaehrt (Altbestand vor dieser Regel) — der naechste Storno holt nach.
79
94
  */
80
95
  promoAdjustmentCents?: Record<string, number>;
96
+ /**
97
+ * Rueckzahlung je Zahlung, die DIESER Storno-Eintrag auf eine Zahlung des
98
+ * Originals verbucht hat (`refundOf`) -- Zahlungs-ID auf positive Cent,
99
+ * Zwilling von `functions/gemeinsam/storno-core.js` `refundedByPayment`.
100
+ * Ueber alle Eintraege darf je Zahlung nie mehr zurueck, als bezahlt wurde
101
+ * (siehe dort `restJeZahlung`). Ein Eintrag ohne das Feld (vor dieser Regel
102
+ * oder ohne Zahlungsmodell gebucht) zaehlt dabei 0 je Zahlung. Auch am
103
+ * `pending`-Eintrag vorhanden, sobald reserviert wird.
104
+ */
105
+ refundedByPayment?: Record<string, number>;
81
106
  }
82
107
  /** Ab wann eine liegengebliebene Reservierung nicht mehr zaehlt (wie im Backend). */
83
108
  export declare const CANCELLATION_RESERVATION_MS = 120000;
@@ -87,3 +112,10 @@ export declare const CANCELLATION_RESERVATION_MS = 120000;
87
112
  * (Reste anzeigen, bevor der Server gefragt wird). Die Wahrheit hat der Server.
88
113
  */
89
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[];