@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
@@ -2,7 +2,7 @@
2
2
  * Die Aufrufe der Rechnungs-API — Kunden, Rechnungen, Gutschriften, Dateien.
3
3
  *
4
4
  * Jede Funktion nimmt den Transport als ersten Parameter und ist einzeln
5
- * importierbar; die Fassade [createRechnungApi] bindet ihn nur einmal.
5
+ * importierbar; die Fassade [createInvoiceApi] bindet ihn nur einmal.
6
6
  *
7
7
  * **Geprueft wird hier nichts Fachliches.** Die Anfrage geht unveraendert an
8
8
  * das Backend, das sie gegen denselben Vertrag prueft (`vertrag.ts`) und einen
@@ -17,6 +17,7 @@
17
17
  * der Aufruf `KasseneckValidationError` mit `scope:'response'`.
18
18
  */
19
19
  import { KasseneckValidationError } from '../client/errors.js';
20
+ import { EINVOICE_FORMATS } from './vertrag.js';
20
21
  function objekt(wert) {
21
22
  return wert !== null && typeof wert === 'object' && !Array.isArray(wert)
22
23
  ? wert
@@ -69,30 +70,30 @@ function kennungVerlangen(aufruf, kennung, felder) {
69
70
  /** Anfrageobjekt als Nutzlast — flache Kopie, damit der Aufrufer sein Objekt behaelt. */
70
71
  const nutzlast = (anfrage) => ({ ...anfrage });
71
72
  // ---- Kunden -----------------------------------------------------------------
72
- export async function createCustomer(rufen, customer, optionen = {}) {
73
+ export async function createCustomer(transport, customer, options = {}) {
73
74
  const params = { customer };
74
- if (optionen.idempotencyKey)
75
- params['idempotencyKey'] = optionen.idempotencyKey;
76
- const daten = await rufen('createCustomer', params);
75
+ if (options.idempotencyKey)
76
+ params['idempotencyKey'] = options.idempotencyKey;
77
+ const daten = await transport('createCustomer', params);
77
78
  return pflichtObjekt('createCustomer', daten, 'customer');
78
79
  }
79
- export async function getCustomer(rufen, kennung) {
80
- kennungVerlangen('getCustomer', kennung, '{ customerId } oder { externalId }');
81
- const daten = await rufen('getCustomer', nutzlast(kennung));
80
+ export async function getCustomer(transport, ref) {
81
+ kennungVerlangen('getCustomer', ref, '{ customerId } oder { externalId }');
82
+ const daten = await transport('getCustomer', nutzlast(ref));
82
83
  return pflichtObjekt('getCustomer', daten, 'customer');
83
84
  }
84
- export async function updateCustomer(rufen, customerId, patch) {
85
- const daten = await rufen('updateCustomer', { customerId, customer: patch });
85
+ export async function updateCustomer(transport, customerId, patch) {
86
+ const daten = await transport('updateCustomer', { customerId, customer: patch });
86
87
  return pflichtObjekt('updateCustomer', daten, 'customer');
87
88
  }
88
- export async function searchCustomers(rufen, suche) {
89
- const daten = await rufen('searchCustomers', nutzlast(suche));
89
+ export async function searchCustomers(transport, search) {
90
+ const daten = await transport('searchCustomers', nutzlast(search));
90
91
  const { eintraege, nextCursor } = seite('searchCustomers', daten, 'customers');
91
92
  return { customers: eintraege, nextCursor };
92
93
  }
93
94
  // ---- Rechnungen -------------------------------------------------------------
94
- export async function issueInvoice(rufen, anfrage) {
95
- const daten = await rufen('issueInvoice', nutzlast(anfrage));
95
+ export async function issueInvoice(transport, request) {
96
+ const daten = await transport('issueInvoice', nutzlast(request));
96
97
  const ergebnis = {
97
98
  invoice: pflichtObjekt('issueInvoice', daten, 'invoice'),
98
99
  replayed: objekt(daten)['replayed'] === true,
@@ -112,16 +113,16 @@ export async function issueInvoice(rufen, anfrage) {
112
113
  * danach unveraendert ausstellen. Verbindlich ist das Ausstellen — zwischen
113
114
  * Probelauf und Ausstellen kann sich der Kunde oder das Konto aendern.
114
115
  */
115
- export async function previewInvoice(rufen, anfrage) {
116
- const daten = await rufen('issueInvoice', { ...nutzlast(anfrage), dryRun: true });
116
+ export async function previewInvoice(transport, request) {
117
+ const daten = await transport('issueInvoice', { ...nutzlast(request), dryRun: true });
117
118
  const ergebnis = { preview: pflichtObjekt('issueInvoice', daten, 'preview') };
118
119
  const notice = hinweise(daten);
119
120
  if (notice)
120
121
  ergebnis.notice = notice;
121
122
  return ergebnis;
122
123
  }
123
- export async function cancelInvoice(rufen, anfrage) {
124
- const daten = await rufen('cancelInvoice', nutzlast(anfrage));
124
+ export async function cancelInvoice(transport, request) {
125
+ const daten = await transport('cancelInvoice', nutzlast(request));
125
126
  return {
126
127
  creditNote: pflichtObjekt('cancelInvoice', daten, 'creditNote'),
127
128
  original: pflichtObjekt('cancelInvoice', daten, 'original'),
@@ -129,21 +130,21 @@ export async function cancelInvoice(rufen, anfrage) {
129
130
  replayed: objekt(daten)['replayed'] === true,
130
131
  };
131
132
  }
132
- export async function createCreditNote(rufen, anfrage) {
133
- const daten = await rufen('createCreditNote', nutzlast(anfrage));
133
+ export async function createCreditNote(transport, request) {
134
+ const daten = await transport('createCreditNote', nutzlast(request));
134
135
  return {
135
136
  creditNote: pflichtObjekt('createCreditNote', daten, 'creditNote'),
136
137
  remainingCents: zahl(objekt(daten)['remainingCents']),
137
138
  replayed: objekt(daten)['replayed'] === true,
138
139
  };
139
140
  }
140
- export async function getInvoice(rufen, kennung) {
141
- kennungVerlangen('getInvoice', kennung, '{ invoiceId } oder { number }');
142
- const daten = await rufen('getInvoice', nutzlast(kennung));
141
+ export async function getInvoice(transport, ref) {
142
+ kennungVerlangen('getInvoice', ref, '{ invoiceId } oder { number }');
143
+ const daten = await transport('getInvoice', nutzlast(ref));
143
144
  return pflichtObjekt('getInvoice', daten, 'invoice');
144
145
  }
145
- export async function listInvoices(rufen, abfrage = {}) {
146
- const daten = await rufen('listInvoices', nutzlast(abfrage));
146
+ export async function listInvoices(transport, query = {}) {
147
+ const daten = await transport('listInvoices', nutzlast(query));
147
148
  const { eintraege, nextCursor } = seite('listInvoices', daten, 'invoices');
148
149
  return { invoices: eintraege, nextCursor };
149
150
  }
@@ -153,8 +154,8 @@ export async function listInvoices(rufen, abfrage = {}) {
153
154
  * ohne Freigabe und vor der Live-Freischaltung — genau dann braucht man die
154
155
  * Antwort. Vor dem ersten `issueInvoice` aufrufen und `missing` anzeigen.
155
156
  */
156
- export async function getInvoiceSetupStatus(rufen) {
157
- const daten = objekt(await rufen('getInvoiceSetupStatus', {}));
157
+ export async function getInvoiceSetupStatus(transport) {
158
+ const daten = objekt(await transport('getInvoiceSetupStatus', {}));
158
159
  if (typeof daten['ready'] !== 'boolean' || !Array.isArray(daten['missing'])) {
159
160
  throw new KasseneckValidationError('getInvoiceSetupStatus', 'Antwort ohne ready/missing', 'response');
160
161
  }
@@ -171,11 +172,11 @@ export async function getInvoiceSetupStatus(rufen) {
171
172
  * eine **Uebersetzungskopie**: dieselbe Nummer, auf jeder Seite als Uebersetzung
172
173
  * gekennzeichnet, ohne eingebettete E-Rechnung — keine eigene Rechnung.
173
174
  */
174
- export function getInvoicePdf(rufenBinaer, invoiceId, optionen = {}) {
175
+ export function getInvoicePdf(binaryTransport, invoiceId, options = {}) {
175
176
  const params = { invoiceId };
176
- if (optionen.language)
177
- params['language'] = optionen.language;
178
- return rufenBinaer('getInvoicePdf', params);
177
+ if (options.language)
178
+ params['language'] = options.language;
179
+ return binaryTransport('getInvoicePdf', params);
179
180
  }
180
181
  /**
181
182
  * Eine Zahlung nachtragen, die nach dem Ausstellen eingetroffen ist
@@ -186,8 +187,8 @@ export function getInvoicePdf(rufenBinaer, invoiceId, optionen = {}) {
186
187
  * zusaetzlich `notice` — eine Barzahlung ist ein Barumsatz und braucht einen
187
188
  * Beleg (§ 132a BAO), den dieser Vermerk nicht ersetzt.
188
189
  */
189
- export async function recordInvoicePayment(rufen, anfrage) {
190
- const daten = await rufen('recordInvoicePayment', nutzlast(anfrage));
190
+ export async function recordInvoicePayment(transport, request) {
191
+ const daten = await transport('recordInvoicePayment', nutzlast(request));
191
192
  const roh = objekt(daten);
192
193
  const ergebnis = {
193
194
  invoice: pflichtObjekt('recordInvoicePayment', daten, 'invoice'),
@@ -200,22 +201,31 @@ export async function recordInvoicePayment(rufen, anfrage) {
200
201
  return ergebnis;
201
202
  }
202
203
  /** Die Marken des Kontos — die Kennung geht als `brandId` in `issueInvoice`. */
203
- export async function listBrands(rufen) {
204
- const brands = objekt(await rufen('listBrands', {}))['brands'];
204
+ export async function listBrands(transport) {
205
+ const brands = objekt(await transport('listBrands', {}))['brands'];
205
206
  if (!Array.isArray(brands))
206
207
  throw new KasseneckValidationError('listBrands', 'Antwort ohne brands', 'response');
207
208
  return brands;
208
209
  }
209
210
  /**
210
- * Die E-Rechnung als XML-Text. Sie kommt im gewohnten Umschlag (`data.xml`)
211
- * und nicht als rohe Datei: so bleibt ein fachlicher Fehler
212
- * (`einvoice_incomplete` mit `missing[]`) ein gewoehnlicher Fehler.
211
+ * Die E-Rechnung samt Format und Dateiname, genau wie der Server sie schickt.
212
+ * Sie kommt im gewohnten Umschlag (`data.xml`) und nicht als rohe Datei: so
213
+ * bleibt ein fachlicher Fehler (`einvoice_incomplete` mit `missing[]`) ein
214
+ * gewoehnlicher Fehler. Den Dateinamen nicht selbst bauen, sondern
215
+ * `filename` nehmen (`invoice-<Nummer>.xml`).
213
216
  */
214
- export async function getInvoiceXml(rufen, invoiceId, format = 'ubl') {
215
- const daten = await rufen('getInvoiceXml', { invoiceId, format });
216
- const xml = objekt(daten)['xml'];
217
+ export async function getInvoiceXml(transport, invoiceId, format = 'ubl') {
218
+ const daten = objekt(await transport('getInvoiceXml', { invoiceId, format }));
219
+ const { xml, filename } = daten;
220
+ const gesendet = daten['format'];
217
221
  if (typeof xml !== 'string' || !xml) {
218
222
  throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne xml', 'response');
219
223
  }
220
- return xml;
224
+ if (typeof gesendet !== 'string' || !EINVOICE_FORMATS.includes(gesendet)) {
225
+ throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne gueltiges format', 'response');
226
+ }
227
+ if (typeof filename !== 'string' || !filename) {
228
+ throw new KasseneckValidationError('getInvoiceXml', 'Antwort ohne filename', 'response');
229
+ }
230
+ return { xml, format: gesendet, filename };
221
231
  }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Fehler der Rechnungs-API auswerten: am Code, nie am Text.
3
+ *
4
+ * Es zaehlen die Codes des Vertrags ([INVOICE_ERROR_CODES]) und die, die
5
+ * Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen
6
+ * ([INVOICE_REQUEST_ERROR_CODES], z. B. `dialect_mismatch`, `not_found`,
7
+ * `route_missing`). Ein fremder Code ist fuer diese Helfer kein
8
+ * Rechnungs-Fehler: wer darauf verzweigt, soll es bewusst ueber
9
+ * `KasseneckApiError.code` tun.
10
+ */
11
+ import type { KasseneckApiError } from '../client/errors.js';
12
+ import { type InvoiceErrorCode, type InvoiceRequestErrorCode } from './vertrag.js';
13
+ /** Ein Code, den ein Rechnungsaufruf liefern kann. */
14
+ export type InvoiceApiErrorCode = InvoiceErrorCode | InvoiceRequestErrorCode;
15
+ /** `true` fuer einen Code aus [INVOICE_ERROR_CODES] oder [INVOICE_REQUEST_ERROR_CODES]. */
16
+ export declare function isInvoiceErrorCode(value: unknown): value is InvoiceApiErrorCode;
17
+ /** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Rechnungs-API ist. */
18
+ export declare function invoiceErrorCode(error: unknown): InvoiceApiErrorCode | undefined;
19
+ /**
20
+ * Kurzform fuer `catch (e) { if (isInvoiceError(e, 'customer_exists')) … }`.
21
+ * Ohne `code`: ist es ueberhaupt ein Fehler der Rechnungs-API?
22
+ */
23
+ export declare function isInvoiceError(error: unknown, code?: InvoiceApiErrorCode): error is KasseneckApiError;
24
+ /** Ein Feldfehler aus `data.errors[]` einer `validation`-Antwort. */
25
+ export interface InvoiceFieldError {
26
+ /** Feldpfad in der gesendeten Anfrage, z. B. `items[2].vatRate` oder `customer.vatId`. */
27
+ field: string;
28
+ message: string;
29
+ }
30
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
31
+ export declare function invoiceFieldErrors(error: unknown): InvoiceFieldError[];
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Fehler der Rechnungs-API auswerten: am Code, nie am Text.
3
+ *
4
+ * Es zaehlen die Codes des Vertrags ([INVOICE_ERROR_CODES]) und die, die
5
+ * Anmeldung und Rand auf jedem Rechnungsaufruf erzeugen koennen
6
+ * ([INVOICE_REQUEST_ERROR_CODES], z. B. `dialect_mismatch`, `not_found`,
7
+ * `route_missing`). Ein fremder Code ist fuer diese Helfer kein
8
+ * Rechnungs-Fehler: wer darauf verzweigt, soll es bewusst ueber
9
+ * `KasseneckApiError.code` tun.
10
+ */
11
+ import { bekannterCode, feldfehlerVon } from '../client/fehlercodes.js';
12
+ import { INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, } from './vertrag.js';
13
+ const BEKANNT = new Set([...INVOICE_ERROR_CODES, ...INVOICE_REQUEST_ERROR_CODES]);
14
+ /** `true` fuer einen Code aus [INVOICE_ERROR_CODES] oder [INVOICE_REQUEST_ERROR_CODES]. */
15
+ export function isInvoiceErrorCode(value) {
16
+ return typeof value === 'string' && BEKANNT.has(value);
17
+ }
18
+ /** Der Fehlercode eines geworfenen Fehlers; `undefined`, wenn es keiner der Rechnungs-API ist. */
19
+ export function invoiceErrorCode(error) {
20
+ return bekannterCode(error, BEKANNT);
21
+ }
22
+ /**
23
+ * Kurzform fuer `catch (e) { if (isInvoiceError(e, 'customer_exists')) … }`.
24
+ * Ohne `code`: ist es ueberhaupt ein Fehler der Rechnungs-API?
25
+ */
26
+ export function isInvoiceError(error, code) {
27
+ const gefunden = invoiceErrorCode(error);
28
+ return gefunden !== undefined && (code === undefined || gefunden === code);
29
+ }
30
+ /** Die Feldfehler einer `validation`-Antwort; leer, wenn es keine sind. */
31
+ export function invoiceFieldErrors(error) {
32
+ return feldfehlerVon(error);
33
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * `@kreiseck/kasseneck-api/invoice` – Rechnungen (§ 11 UStG, keine Belege)
3
+ * und Kunden ueber die Rechnungs-API.
4
+ *
5
+ * Ein eigener Unterpfad wie `partner`: der `api_key` eines Kontos, mit dem
6
+ * Rechnungen ausgestellt werden, gehoert auf einen **Server** und soll nicht
7
+ * versehentlich in ein Browser-Buendel der Kasse wandern.
8
+ *
9
+ * Die Beschreibung der Endpunkte steht in der Referenz des Backends
10
+ * (`docs/api/rechnungen.md`). Was hier steht, ist der Vertrag als Daten und die
11
+ * Benutzung des Clients.
12
+ */
13
+ export { createInvoiceApi, type InvoiceApi, type InvoiceApiOptions } from './api.js';
14
+ export { invoiceKeyAuth, type InvoiceKeyAuthOptions } from './auth.js';
15
+ export { isInvoiceError, isInvoiceErrorCode, invoiceErrorCode, invoiceFieldErrors, type InvoiceApiErrorCode, type InvoiceFieldError, } from './fehler.js';
16
+ export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, previewInvoice, recordInvoicePayment, searchCustomers, updateCustomer, } from './endpunkte.js';
17
+ export type { Brand, CancelInvoiceRequest, CancelResult, CreditNoteRequest, CreditNoteResult, Customer, CustomerInput, CustomerPage, CustomerSearch, EInvoiceStatus, Invoice, InvoiceDetail, InvoiceDetailPayment, InvoiceItem, InvoiceItemInput, InvoiceListQuery, InvoicePage, InvoiceRecipient, InvoiceSetupGap, InvoiceSetupStatus, InvoiceTotals, InvoiceXml, InvoiceNotice, InvoicePayment, InvoicePreview, InvoiceRateTotals, IssueInvoiceRequest, IssueResult, PaymentInput, PreviewResult, RecordPaymentRequest, RecordPaymentResult, } from './typen.js';
18
+ export { INVOICE_TEXTS, invoiceText, type InvoiceTextKey } from './texte.js';
19
+ export { computeInvoiceTotals, ZERO_RATED_TAX_SCHEMES, type TotalsItem } from './summen.js';
20
+ export { proratedPriceMicros, MAX_AMOUNT_CENTS, itemFromEuro, formatUnitPrice, CalcError, calculateInvoice, roundDiv, vatRateMapKey, formatVatRate, type CalcResult, type CalcErrorCode, type CalcOptions, type CalcItem, type RateTotal, type ItemConversion, type ConversionReason, type LineAmount, } from './calc.js';
21
+ export { INVOICE_CONTRACT_VERSION, INVOICE_ENDPOINTS, INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, EINVOICE_MISSING_CODES, WRITE_OFF_REASON_CODES, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, INVOICE_UNIT_CODES, INVOICE_SETUP_REQUIREMENTS, CUSTOMER_FIELDS, ITEM_FIELDS, ITEM_PRICE_EXACTLY_ONE, INVOICE_REQUESTS, INVOICE_EXACTLY_ONE, INVOICE_AT_LEAST_ONE, type InvoiceEndpoint, type InvoiceErrorCode, type InvoiceRequestErrorCode, type CreditNoteReason, type TaxScheme, type PriceMode, type VatRatePercent, type CustomerType, type InvoiceListStatus, type DocType, type EInvoiceFormat, type EInvoiceMissingCode, type WriteOffReasonCode, type InvoiceLanguage, type InvoicePaymentMethod, type ItemKind, type ReverseChargeReason, type InvoiceNoticeCode, type InvoiceUnit, type InvoiceSetupRequirement, type FieldFormat, type Field, } from './vertrag.js';
@@ -0,0 +1,20 @@
1
+ /**
2
+ * `@kreiseck/kasseneck-api/invoice` – Rechnungen (§ 11 UStG, keine Belege)
3
+ * und Kunden ueber die Rechnungs-API.
4
+ *
5
+ * Ein eigener Unterpfad wie `partner`: der `api_key` eines Kontos, mit dem
6
+ * Rechnungen ausgestellt werden, gehoert auf einen **Server** und soll nicht
7
+ * versehentlich in ein Browser-Buendel der Kasse wandern.
8
+ *
9
+ * Die Beschreibung der Endpunkte steht in der Referenz des Backends
10
+ * (`docs/api/rechnungen.md`). Was hier steht, ist der Vertrag als Daten und die
11
+ * Benutzung des Clients.
12
+ */
13
+ export { createInvoiceApi } from './api.js';
14
+ export { invoiceKeyAuth } from './auth.js';
15
+ export { isInvoiceError, isInvoiceErrorCode, invoiceErrorCode, invoiceFieldErrors, } from './fehler.js';
16
+ export { cancelInvoice, createCreditNote, createCustomer, getCustomer, getInvoice, getInvoicePdf, getInvoiceSetupStatus, getInvoiceXml, issueInvoice, listBrands, listInvoices, previewInvoice, recordInvoicePayment, searchCustomers, updateCustomer, } from './endpunkte.js';
17
+ export { INVOICE_TEXTS, invoiceText } from './texte.js';
18
+ export { computeInvoiceTotals, ZERO_RATED_TAX_SCHEMES } from './summen.js';
19
+ export { proratedPriceMicros, MAX_AMOUNT_CENTS, itemFromEuro, formatUnitPrice, CalcError, calculateInvoice, roundDiv, vatRateMapKey, formatVatRate, } from './calc.js';
20
+ export { INVOICE_CONTRACT_VERSION, INVOICE_ENDPOINTS, INVOICE_ERROR_CODES, INVOICE_REQUEST_ERROR_CODES, CREDIT_NOTE_REASONS, TAX_SCHEMES, PRICE_MODES, VAT_RATES, CUSTOMER_TYPES, INVOICE_LIST_STATUS, DOC_TYPES, EINVOICE_FORMATS, EINVOICE_MISSING_CODES, WRITE_OFF_REASON_CODES, INVOICE_LANGUAGES, INVOICE_PAYMENT_METHODS, ITEM_KINDS, REVERSE_CHARGE_REASONS, INVOICE_NOTICE_CODES, INVOICE_UNITS, INVOICE_UNIT_CODES, INVOICE_SETUP_REQUIREMENTS, CUSTOMER_FIELDS, ITEM_FIELDS, ITEM_PRICE_EXACTLY_ONE, INVOICE_REQUESTS, INVOICE_EXACTLY_ONE, INVOICE_AT_LEAST_ONE, } from './vertrag.js';
@@ -3,14 +3,14 @@
3
3
  * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
4
4
  *
5
5
  * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
6
- * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
7
- * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
6
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`calculateInvoice` in
7
+ * `…/invoice/calc`). An Halbcent-Grenzen weicht diese Funktion davon um
8
8
  * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
9
9
  * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
10
10
  * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
11
11
  * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
12
- * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
13
- * nimmt `rechnungRechnen` oder `previewInvoice`.
12
+ * Dart-Zwilling pruefen gegen `fixtures/invoice-totals.json`. Neuer Code
13
+ * nimmt `calculateInvoice` oder `previewInvoice`.
14
14
  *
15
15
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
16
16
  *
@@ -23,17 +23,17 @@
23
23
  * ist das Brutto der vereinbarte Preis und bleibt, wie die Zeilen es ergeben.
24
24
  * Bei einem steuerfreien Steuerfall zaehlt jede Zeile zu 0 %.
25
25
  *
26
- * `fixtures/rechnung-summen.json` haelt die Prueffaelle; Backend und
26
+ * `fixtures/invoice-totals.json` haelt die Prueffaelle; Backend und
27
27
  * Dart-Zwilling pruefen gegen dieselbe Datei. Verbindlich bleibt, was der
28
28
  * Server rechnet — mit `previewInvoice` laesst sich das vorab abfragen.
29
29
  */
30
30
  import type { InvoiceTotals } from './typen.js';
31
31
  import type { PriceMode, TaxScheme } from './vertrag.js';
32
- import { STEUERFREIE_FAELLE } from './rechnen.js';
32
+ import { ZERO_RATED_TAX_SCHEMES } from './calc.js';
33
33
  /** Aus dem Kern uebernommen, damit Kern und Huelle nie auseinanderlaufen. */
34
- export { STEUERFREIE_FAELLE };
34
+ export { ZERO_RATED_TAX_SCHEMES };
35
35
  /** Was fuer die Summe zaehlt — `InvoiceItemInput` passt unveraendert. */
36
- export interface SummenPosition {
36
+ export interface TotalsItem {
37
37
  quantity: number;
38
38
  unitPriceCents: number;
39
39
  vatRate: number;
@@ -50,8 +50,8 @@ export interface SummenPosition {
50
50
  *
51
51
  * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
52
52
  * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
53
- * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
54
- * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
55
- * `positionAusEuro`) oder `previewInvoice` verwenden.
53
+ * Rechnung abweichen. Stattdessen `calculateInvoice` aus
54
+ * `@kreiseck/kasseneck-api/invoice/calc` (Euro-Positionen ueber
55
+ * `itemFromEuro`) oder `previewInvoice` verwenden.
56
56
  */
57
- export declare function rechnungSummen(items: readonly SummenPosition[], priceMode: PriceMode, taxScheme?: TaxScheme): InvoiceTotals;
57
+ export declare function computeInvoiceTotals(items: readonly TotalsItem[], priceMode: PriceMode, taxScheme?: TaxScheme): InvoiceTotals;
@@ -3,14 +3,14 @@
3
3
  * Gleitkomma). Gedacht fuer Shops, die kassieren, bevor die Rechnung entsteht.
4
4
  *
5
5
  * **Veraltet.** Seit dem 23.09.2026, 17:05 Uhr stellt der Server jede neue
6
- * Rechnung ueber den exakten Ganzzahl-Kern aus (`rechnungRechnen` in
7
- * `…/rechnung/rechnen`). An Halbcent-Grenzen weicht diese Funktion davon um
6
+ * Rechnung ueber den exakten Ganzzahl-Kern aus (`calculateInvoice` in
7
+ * `…/invoice/calc`). An Halbcent-Grenzen weicht diese Funktion davon um
8
8
  * einen Cent je Satz ab (21,35 EUR netto zu 10 %: hier 23,48 EUR, auf der
9
9
  * Rechnung 23,49 EUR). Die Formel bleibt trotzdem, wie sie ist: der Server
10
10
  * schaltet den Kern je Konto ueber einen Schalter und rechnet Entwuerfe
11
11
  * ausserhalb des Ausstellens teils weiter nach Weg 2, und Backend und
12
- * Dart-Zwilling pruefen gegen `fixtures/rechnung-summen.json`. Neuer Code
13
- * nimmt `rechnungRechnen` oder `previewInvoice`.
12
+ * Dart-Zwilling pruefen gegen `fixtures/invoice-totals.json`. Neuer Code
13
+ * nimmt `calculateInvoice` oder `previewInvoice`.
14
14
  *
15
15
  * Die Regel (je USt-Satz, Betraege in Cent, kaufmaennisch gerundet):
16
16
  *
@@ -23,13 +23,13 @@
23
23
  * ist das Brutto der vereinbarte Preis und bleibt, wie die Zeilen es ergeben.
24
24
  * Bei einem steuerfreien Steuerfall zaehlt jede Zeile zu 0 %.
25
25
  *
26
- * `fixtures/rechnung-summen.json` haelt die Prueffaelle; Backend und
26
+ * `fixtures/invoice-totals.json` haelt die Prueffaelle; Backend und
27
27
  * Dart-Zwilling pruefen gegen dieselbe Datei. Verbindlich bleibt, was der
28
28
  * Server rechnet — mit `previewInvoice` laesst sich das vorab abfragen.
29
29
  */
30
- import { STEUERFREIE_FAELLE } from './rechnen.js';
30
+ import { ZERO_RATED_TAX_SCHEMES } from './calc.js';
31
31
  /** Aus dem Kern uebernommen, damit Kern und Huelle nie auseinanderlaufen. */
32
- export { STEUERFREIE_FAELLE };
32
+ export { ZERO_RATED_TAX_SCHEMES };
33
33
  /** Auf Cent gerundete Euro — dieselbe Rundung wie am Server (halber Cent vom Nullpunkt weg). */
34
34
  function euroRund(n) {
35
35
  return ((n < 0 ? -1 : 1) * Math.round((Math.abs(n) + Number.EPSILON) * 100)) / 100;
@@ -51,12 +51,12 @@ function centRund(x) {
51
51
  *
52
52
  * @deprecated Seit 0.27.3: rechnet nach der frueheren Formel (Weg 2) und kann
53
53
  * an Halbcent-Grenzen um einen Cent je Satz von einer heute ausgestellten
54
- * Rechnung abweichen. Stattdessen `rechnungRechnen` aus
55
- * `@kreiseck/kasseneck-api/rechnung/rechnen` (Euro-Positionen ueber
56
- * `positionAusEuro`) oder `previewInvoice` verwenden.
54
+ * Rechnung abweichen. Stattdessen `calculateInvoice` aus
55
+ * `@kreiseck/kasseneck-api/invoice/calc` (Euro-Positionen ueber
56
+ * `itemFromEuro`) oder `previewInvoice` verwenden.
57
57
  */
58
- export function rechnungSummen(items, priceMode, taxScheme = 'normal') {
59
- const steuerfrei = STEUERFREIE_FAELLE.includes(taxScheme);
58
+ export function computeInvoiceTotals(items, priceMode, taxScheme = 'normal') {
59
+ const steuerfrei = ZERO_RATED_TAX_SCHEMES.includes(taxScheme);
60
60
  const bruttoPreise = priceMode === 'gross' && !steuerfrei;
61
61
  // Ungerundete Zeilen je Satz, in Euro wie am Server.
62
62
  const jeSatz = new Map();
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Texte von Rechnung und Gutschrift in jeder Sprache der Rechnungs-API — eine
3
+ * Quelle fuer das Backend (PDF, E-Rechnung, Mail) und das Web (Statusseite).
4
+ * Das Backend liest sie aus `fixtures/invoice-texts.json` (`npm run
5
+ * fixtures:rechnungstexte`).
6
+ *
7
+ * Datum und Betraege stehen NICHT hier: sie bleiben in jeder Sprache
8
+ * oesterreichisch formatiert (15.09.2026, € 1.234,56) und werden vom Aufrufer
9
+ * eingesetzt. Platzhalter in {geschweiften} Klammern; jede Sprache hat dieselben
10
+ * Schluessel und je Schluessel dieselben Platzhalter (test/rechnung-texte.test.ts).
11
+ * Die Schluessel sind seit 1.0 englisch (alt und neu in
12
+ * `fixtures/renames-1.0.json`), die Texte bleiben, wie sie sind.
13
+ *
14
+ * Steuerhinweise nennen in jeder Sprache die Gesetzesstelle — § 11 UStG verlangt
15
+ * einen Hinweis, keinen Wortlaut; die Fundstelle macht ihn eindeutig.
16
+ */
17
+ import type { InvoiceLanguage } from './vertrag.js';
18
+ declare const DE: {
19
+ readonly 'pdf.title.invoice': "RECHNUNG";
20
+ readonly 'pdf.title.credit_note': "GUTSCHRIFT";
21
+ readonly 'pdf.badge.paid': "BEZAHLT";
22
+ readonly 'pdf.badge.direct_debit': "SEPA-LASTSCHRIFT";
23
+ readonly 'pdf.meta.number.invoice': "Rechnungsnr.";
24
+ readonly 'pdf.meta.number.credit_note': "Gutschriftsnr.";
25
+ readonly 'pdf.meta.date.invoice': "Rechnungsdatum";
26
+ readonly 'pdf.meta.date.credit_note': "Gutschriftsdatum";
27
+ readonly 'pdf.meta.service_period': "Leistungszeitraum";
28
+ readonly 'pdf.meta.due_date': "Fälligkeit";
29
+ readonly 'pdf.reference.credit_note': "Gutschrift zu Rechnung {number}";
30
+ readonly 'pdf.reference.dated': " vom {date}";
31
+ readonly 'pdf.label.invoice': "Rechnung {number}";
32
+ readonly 'pdf.label.credit_note': "Gutschrift {number}";
33
+ readonly 'pdf.vat_id': "UID: {vatId}";
34
+ readonly 'pdf.table.pos': "POS";
35
+ readonly 'pdf.table.description': "BESCHREIBUNG";
36
+ readonly 'pdf.table.quantity': "MENGE";
37
+ readonly 'pdf.table.vat': "UST";
38
+ readonly 'pdf.table.unit_net': "EINZEL NETTO";
39
+ readonly 'pdf.table.amount_net': "BETRAG NETTO";
40
+ readonly 'pdf.table.unit_gross': "EINZEL BRUTTO";
41
+ readonly 'pdf.table.amount_gross': "BETRAG BRUTTO";
42
+ readonly 'pdf.item.discount': "abzüglich {percent} % Rabatt";
43
+ readonly 'pdf.totals.subtotal': "Zwischensumme netto";
44
+ readonly 'pdf.totals.vat': "Umsatzsteuer {rate}%";
45
+ readonly 'pdf.totals.included_vat': "darin {rate}% USt von {net} netto";
46
+ readonly 'pdf.totals.grand_total.invoice': "Gesamtbetrag";
47
+ readonly 'pdf.totals.grand_total.credit_note': "Gutschriftsbetrag";
48
+ readonly 'tax.small_business': "Gemäß § 6 Abs. 1 Z 27 UStG wird keine Umsatzsteuer verrechnet (Kleinunternehmer).";
49
+ readonly 'tax.intra_community_supply.title': "Steuerfreie innergemeinschaftliche Lieferung. ";
50
+ readonly 'tax.intra_community_supply.text': "Gemäß Art. 6 Abs. 1 UStG (Art. 138 MwSt-RL 2006/112/EG). Die Erwerbsbesteuerung erfolgt durch den Abnehmer im Bestimmungsland.";
51
+ readonly 'tax.export_third_country': "Steuerfreie Ausfuhrlieferung (§ 6 Abs. 1 Z 1 UStG).";
52
+ readonly 'tax.reverse_charge.title': "Steuerschuldnerschaft des Leistungsempfängers. ";
53
+ readonly 'tax.reverse_charge.text': "Übergang der Steuerschuld gem. Art. 196 MwSt-RL 2006/112/EG (innergemeinschaftliche Leistung). Die Leistung ist nicht steuerfrei — die Umsatzsteuer schuldet und entrichtet der Leistungsempfänger in seinem Land.";
54
+ readonly 'tax.vat_id_line': "UID Leistungserbringer: {seller} · UID Leistungsempfänger: {buyer}";
55
+ readonly 'tax.reverse_charge_reason.construction': "Bauleistung gemäß § 19 Abs. 1a UStG.";
56
+ readonly 'tax.reverse_charge_reason.scrap': "Schrott und Abfallstoffe gemäß Schrott-Umsatzsteuerverordnung (BGBl. II Nr. 129/2007).";
57
+ readonly 'tax.reverse_charge_reason.mobile_devices': "Mobilfunkgeräte bzw. integrierte Schaltkreise gemäß § 19 Abs. 1e lit. b UStG.";
58
+ readonly 'tax.reverse_charge_reason.it_devices': "Laptops, Tablets bzw. Videospielkonsolen gemäß § 2 Z 1 Umsatzsteuerbetrugsbekämpfungsverordnung (BGBl. II Nr. 369/2013).";
59
+ readonly 'tax.reverse_charge_reason.metals': "Metalle gemäß § 2 Z 4 Umsatzsteuerbetrugsbekämpfungsverordnung.";
60
+ readonly 'tax.reverse_charge_reason.emission_certificates': "Treibhausgasemissionszertifikate gemäß § 19 Abs. 1e lit. a UStG.";
61
+ readonly 'tax.reverse_charge_reason.gas_electricity': "Lieferung von Gas oder Elektrizität an einen Wiederverkäufer gemäß § 2 Z 2 Umsatzsteuerbetrugsbekämpfungsverordnung.";
62
+ readonly 'tax.reverse_charge_reason.energy_certificates': "Gas- und Elektrizitätszertifikate gemäß § 2 Z 3 Umsatzsteuerbetrugsbekämpfungsverordnung.";
63
+ readonly 'tax.reverse_charge_reason.investment_gold': "Steuerpflichtige Lieferung von Anlagegold gemäß § 2 Z 5 Umsatzsteuerbetrugsbekämpfungsverordnung.";
64
+ readonly 'tax.reverse_charge_reason.security_transfer': "Lieferung von Sicherungs- bzw. Vorbehaltseigentum gemäß § 19 Abs. 1b UStG.";
65
+ readonly 'tax.reverse_charge_reason.foreign_supplier': "Leistung eines nicht im Inland ansässigen Unternehmers gemäß § 19 Abs. 1 zweiter Satz UStG.";
66
+ readonly 'tax.domestic_reverse_charge.text': "Die Umsatzsteuer schuldet und entrichtet der Leistungsempfänger. Die Leistung ist nicht steuerfrei.";
67
+ readonly 'tax.outside_scope.title': "Nicht steuerbarer Umsatz. ";
68
+ readonly 'tax.outside_scope.text': "Der Leistungsort liegt gemäß § 3a Abs. 6 UStG im Ansässigkeitsstaat des Leistungsempfängers; in Österreich fällt keine Umsatzsteuer an.";
69
+ readonly 'pdf.payment.title': "ZAHLUNGSINFORMATIONEN";
70
+ readonly 'pdf.payment.recipient': "Empfänger";
71
+ readonly 'pdf.payment.iban': "IBAN";
72
+ readonly 'pdf.payment.bic': "BIC";
73
+ readonly 'pdf.payment.payment_reference': "Verwendungszweck";
74
+ readonly 'pdf.payment.note_until': "Zahlbar ohne Abzug bis {date}. Vielen Dank für Ihren Auftrag.";
75
+ readonly 'pdf.payment.note': "Zahlbar ohne Abzug. Vielen Dank für Ihren Auftrag.";
76
+ readonly 'pdf.payment.qr': "Mit Banking-App scannen & zahlen";
77
+ readonly 'pdf.paid.text': "Diese Rechnung ist beglichen. Es ist nichts weiter zu tun.";
78
+ readonly 'pdf.paid.date': "Bezahlt am";
79
+ readonly 'pdf.paid.payment_method': "Zahlungsart";
80
+ readonly 'payment_method.cash': "Bar";
81
+ readonly 'payment_method.transfer': "Überweisung";
82
+ readonly 'payment_method.card': "Karte";
83
+ readonly 'payment_method.online': "Online";
84
+ readonly 'pdf.direct_debit.text': "Der Betrag wird per SEPA-Lastschrift eingezogen. Sie müssen nichts veranlassen.";
85
+ readonly 'pdf.direct_debit.collection_date': "Einzug am";
86
+ readonly 'pdf.direct_debit.account': "Konto";
87
+ readonly 'pdf.direct_debit.mandate_reference': "Mandatsreferenz";
88
+ readonly 'pdf.direct_debit.mandate_date': "Mandat vom";
89
+ readonly 'pdf.direct_debit.warning': "Bitte für Deckung sorgen — die Kosten einer Rücklastschrift werden weiterverrechnet.";
90
+ readonly 'pdf.refund.text': "Der Betrag wird auf dem ursprünglichen Zahlungsweg erstattet. Sie müssen nichts veranlassen.";
91
+ readonly 'pdf.refund.reference': "Bezug";
92
+ readonly 'pdf.refund.amount': "Erstattungsbetrag";
93
+ readonly 'pdf.status.title': "Zahlungsstatus online verfolgen";
94
+ readonly 'pdf.status.text': "Zahlung bzw. Einzug prüfen und Benachrichtigungen aktivieren.";
95
+ readonly 'pdf.status.link': "Link";
96
+ readonly 'pdf.status.password': "Passwort";
97
+ readonly 'pdf.footer.contact': "Kontakt";
98
+ readonly 'pdf.footer.register': "Register & Steuer";
99
+ readonly 'pdf.footer.registered_office': "Sitz: {place}";
100
+ readonly 'pdf.footer.note': "Erstellt mit Kasseneck — ein Produkt der Kreiseck";
101
+ readonly 'pdf.page': "Seite {number} / {total}";
102
+ readonly 'country.AT': "Österreich";
103
+ readonly 'country.DE': "Deutschland";
104
+ readonly 'country.CH': "Schweiz";
105
+ readonly 'country.IT': "Italien";
106
+ readonly 'country.LI': "Liechtenstein";
107
+ readonly 'copy.invoice': "Übersetzung – keine eigene Rechnung · Original: Rechnung Nr. {number} vom {date}";
108
+ readonly 'copy.credit_note': "Übersetzung – keine eigene Gutschrift · Original: Gutschrift Nr. {number} vom {date}";
109
+ readonly 'credit_note.intro': "Grund: {reason}";
110
+ readonly 'credit_note.reason.cancellation': "Stornierung";
111
+ readonly 'credit_note.reason.price_reduction': "Preisnachlass";
112
+ readonly 'credit_note.reason.return': "Rücksendung";
113
+ readonly 'credit_note.reason.incorrect_invoice': "Fehlerhafte Rechnung";
114
+ readonly 'credit_note.reason.other': "Sonstiges";
115
+ readonly 'einvoice.exemption.reverse_charge': "Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)";
116
+ readonly 'einvoice.exemption.small_business': "Steuerbefreit — Kleinunternehmer gemäß §6 Abs. 1 Z 27 UStG";
117
+ readonly 'einvoice.exemption.intra_community_supply': "Steuerfreie innergemeinschaftliche Lieferung gemäß Art. 6 Abs. 1 UStG";
118
+ readonly 'einvoice.exemption.outside_scope': "Nicht steuerbarer Umsatz — Leistungsort im Ausland (§ 3a Abs. 6 UStG)";
119
+ readonly 'einvoice.exemption.export_third_country': "Steuerfreie Ausfuhrlieferung gemäß §6 Abs. 1 Z 1 UStG";
120
+ readonly 'einvoice.payable_until': "Zahlbar bis {date}";
121
+ readonly 'unit_symbol.piece': "Stk";
122
+ readonly 'unit_symbol.pair': "Paar";
123
+ readonly 'unit_symbol.set': "Set";
124
+ readonly 'unit_symbol.dozen': "Dtzd.";
125
+ readonly 'unit_symbol.second': "Sek.";
126
+ readonly 'unit_symbol.minute': "Min.";
127
+ readonly 'unit_symbol.hour': "Std";
128
+ readonly 'unit_symbol.day': "Tag";
129
+ readonly 'unit_symbol.night': "Nacht";
130
+ readonly 'unit_symbol.week': "Woche";
131
+ readonly 'unit_symbol.month': "Monat";
132
+ readonly 'unit_symbol.quarter': "Quartal";
133
+ readonly 'unit_symbol.half_year': "Halbjahr";
134
+ readonly 'unit_symbol.year': "Jahr";
135
+ readonly 'unit_symbol.milligram': "mg";
136
+ readonly 'unit_symbol.gram': "g";
137
+ readonly 'unit_symbol.kilogram': "kg";
138
+ readonly 'unit_symbol.tonne': "t";
139
+ readonly 'unit_symbol.millimetre': "mm";
140
+ readonly 'unit_symbol.centimetre': "cm";
141
+ readonly 'unit_symbol.metre': "m";
142
+ readonly 'unit_symbol.running_metre': "lfm";
143
+ readonly 'unit_symbol.kilometre': "km";
144
+ readonly 'unit_symbol.square_metre': "m²";
145
+ readonly 'unit_symbol.hectare': "ha";
146
+ readonly 'unit_symbol.millilitre': "ml";
147
+ readonly 'unit_symbol.litre': "l";
148
+ readonly 'unit_symbol.cubic_metre': "m³";
149
+ readonly 'unit_symbol.kilowatt_hour': "kWh";
150
+ readonly 'unit_symbol.megawatt_hour': "MWh";
151
+ readonly 'unit_symbol.gigabyte': "GB";
152
+ readonly 'unit_symbol.terabyte': "TB";
153
+ readonly 'unit_symbol.flat_rate': "Pauschal";
154
+ readonly 'unit_symbol.person': "Pers.";
155
+ readonly 'unit_symbol.licence': "Lizenz";
156
+ readonly 'unit_symbol.user': "Benutzer";
157
+ readonly 'unit_symbol.device': "Gerät";
158
+ readonly 'unit_symbol.session': "Sitzung";
159
+ readonly 'unit_symbol.trip': "Fahrt";
160
+ readonly 'unit_symbol.page': "Seite";
161
+ readonly 'unit_symbol.sheet': "Blatt";
162
+ readonly 'unit_symbol.package': "Pkg.";
163
+ readonly 'unit_symbol.box': "Box";
164
+ readonly 'unit_symbol.carton': "Karton";
165
+ readonly 'unit_symbol.bottle': "Fl.";
166
+ readonly 'unit_symbol.can': "Dose";
167
+ readonly 'unit_symbol.roll': "Rolle";
168
+ readonly 'unit_symbol.bag': "Sack";
169
+ readonly 'unit_symbol.pallet': "Palette";
170
+ readonly 'unit_name.piece': "Stück";
171
+ readonly 'unit_name.pair': "Paar";
172
+ readonly 'unit_name.set': "Set";
173
+ readonly 'unit_name.dozen': "Dutzend";
174
+ readonly 'unit_name.second': "Sekunde";
175
+ readonly 'unit_name.minute': "Minute";
176
+ readonly 'unit_name.hour': "Stunde";
177
+ readonly 'unit_name.day': "Tag";
178
+ readonly 'unit_name.night': "Nacht";
179
+ readonly 'unit_name.week': "Woche";
180
+ readonly 'unit_name.month': "Monat";
181
+ readonly 'unit_name.quarter': "Quartal";
182
+ readonly 'unit_name.half_year': "Halbjahr";
183
+ readonly 'unit_name.year': "Jahr";
184
+ readonly 'unit_name.milligram': "Milligramm";
185
+ readonly 'unit_name.gram': "Gramm";
186
+ readonly 'unit_name.kilogram': "Kilogramm";
187
+ readonly 'unit_name.tonne': "Tonne";
188
+ readonly 'unit_name.millimetre': "Millimeter";
189
+ readonly 'unit_name.centimetre': "Zentimeter";
190
+ readonly 'unit_name.metre': "Meter";
191
+ readonly 'unit_name.running_metre': "Laufmeter";
192
+ readonly 'unit_name.kilometre': "Kilometer";
193
+ readonly 'unit_name.square_metre': "Quadratmeter";
194
+ readonly 'unit_name.hectare': "Hektar";
195
+ readonly 'unit_name.millilitre': "Milliliter";
196
+ readonly 'unit_name.litre': "Liter";
197
+ readonly 'unit_name.cubic_metre': "Kubikmeter";
198
+ readonly 'unit_name.kilowatt_hour': "Kilowattstunde";
199
+ readonly 'unit_name.megawatt_hour': "Megawattstunde";
200
+ readonly 'unit_name.gigabyte': "Gigabyte";
201
+ readonly 'unit_name.terabyte': "Terabyte";
202
+ readonly 'unit_name.flat_rate': "Pauschale";
203
+ readonly 'unit_name.person': "Person";
204
+ readonly 'unit_name.licence': "Lizenz";
205
+ readonly 'unit_name.user': "Benutzer";
206
+ readonly 'unit_name.device': "Gerät";
207
+ readonly 'unit_name.session': "Sitzung";
208
+ readonly 'unit_name.trip': "Fahrt";
209
+ readonly 'unit_name.page': "Seite";
210
+ readonly 'unit_name.sheet': "Blatt";
211
+ readonly 'unit_name.package': "Packung";
212
+ readonly 'unit_name.box': "Box";
213
+ readonly 'unit_name.carton': "Karton";
214
+ readonly 'unit_name.bottle': "Flasche";
215
+ readonly 'unit_name.can': "Dose";
216
+ readonly 'unit_name.roll': "Rolle";
217
+ readonly 'unit_name.bag': "Sack";
218
+ readonly 'unit_name.pallet': "Palette";
219
+ };
220
+ export type InvoiceTextKey = keyof typeof DE;
221
+ export declare const INVOICE_TEXTS: Readonly<Record<InvoiceLanguage, Readonly<Record<InvoiceTextKey, string>>>>;
222
+ /** Ein Text der gewaehlten Sprache mit eingesetzten Werten; ein fehlender Wert ist ein Programmierfehler. */
223
+ export declare function invoiceText(language: InvoiceLanguage, key: InvoiceTextKey, values?: Readonly<Record<string, string | number>>): string;
224
+ export {};