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

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