@kreiseck/kasseneck-api 1.7.1 → 1.8.0

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 (113) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/README.md +170 -1
  3. package/dist/cjs/client/aufrufe.d.ts +9 -7
  4. package/dist/cjs/client/aufrufe.js +57 -2
  5. package/dist/cjs/client/errors.js +2 -0
  6. package/dist/cjs/client/index.d.ts +1 -1
  7. package/dist/cjs/client/index.js +2 -1
  8. package/dist/cjs/client/transport.d.ts +27 -3
  9. package/dist/cjs/client/transport.js +29 -3
  10. package/dist/cjs/index.d.ts +1 -1
  11. package/dist/cjs/index.js +3 -2
  12. package/dist/cjs/inventory/api.d.ts +21 -2
  13. package/dist/cjs/inventory/api.js +22 -3
  14. package/dist/cjs/inventory/fehler.d.ts +6 -0
  15. package/dist/cjs/inventory/fehler.js +12 -0
  16. package/dist/cjs/inventory/index.d.ts +6 -4
  17. package/dist/cjs/inventory/index.js +33 -3
  18. package/dist/cjs/inventory/inventur.d.ts +104 -0
  19. package/dist/cjs/inventory/inventur.js +245 -0
  20. package/dist/cjs/inventory/lesen.d.ts +20 -1
  21. package/dist/cjs/inventory/lesen.js +307 -0
  22. package/dist/cjs/inventory/typen.d.ts +410 -1
  23. package/dist/cjs/inventory/vertrag.d.ts +94 -8
  24. package/dist/cjs/inventory/vertrag.js +117 -5
  25. package/dist/cjs/invoice/vertrag.d.ts +1 -1
  26. package/dist/cjs/invoice/vertrag.js +2 -0
  27. package/dist/cjs/models/cancellation.d.ts +1 -1
  28. package/dist/cjs/models/cancellation.js +2 -0
  29. package/dist/cjs/models/payment-errors.d.ts +1 -1
  30. package/dist/cjs/models/payment-errors.js +2 -0
  31. package/dist/cjs/models/receipt-email.d.ts +1 -1
  32. package/dist/cjs/models/receipt-email.js +2 -0
  33. package/dist/cjs/models/receipt-errors.d.ts +1 -1
  34. package/dist/cjs/models/receipt-errors.js +2 -0
  35. package/dist/cjs/pos/errors.d.ts +4 -3
  36. package/dist/cjs/pos/errors.js +23 -2
  37. package/dist/cjs/pos/index.d.ts +4 -1
  38. package/dist/cjs/pos/index.js +9 -2
  39. package/dist/cjs/pos/inventur.d.ts +104 -0
  40. package/dist/cjs/pos/inventur.js +117 -0
  41. package/dist/cjs/pos/texte.d.ts +82 -0
  42. package/dist/cjs/pos/texte.js +35 -0
  43. package/dist/cjs/register/errors.d.ts +1 -1
  44. package/dist/cjs/register/errors.js +2 -0
  45. package/dist/cjs/stored/vokabular.d.ts +1 -1
  46. package/dist/cjs/stored/vokabular.js +1 -1
  47. package/dist/cjs/version.d.ts +1 -1
  48. package/dist/cjs/version.js +1 -1
  49. package/dist/esm/client/aufrufe.d.ts +9 -7
  50. package/dist/esm/client/aufrufe.js +57 -2
  51. package/dist/esm/client/errors.js +2 -0
  52. package/dist/esm/client/index.d.ts +1 -1
  53. package/dist/esm/client/index.js +1 -1
  54. package/dist/esm/client/transport.d.ts +27 -3
  55. package/dist/esm/client/transport.js +28 -3
  56. package/dist/esm/index.d.ts +1 -1
  57. package/dist/esm/index.js +1 -1
  58. package/dist/esm/inventory/api.d.ts +21 -2
  59. package/dist/esm/inventory/api.js +23 -4
  60. package/dist/esm/inventory/fehler.d.ts +6 -0
  61. package/dist/esm/inventory/fehler.js +11 -0
  62. package/dist/esm/inventory/index.d.ts +6 -4
  63. package/dist/esm/inventory/index.js +5 -3
  64. package/dist/esm/inventory/inventur.d.ts +104 -0
  65. package/dist/esm/inventory/inventur.js +226 -0
  66. package/dist/esm/inventory/lesen.d.ts +20 -1
  67. package/dist/esm/inventory/lesen.js +301 -0
  68. package/dist/esm/inventory/typen.d.ts +410 -1
  69. package/dist/esm/inventory/vertrag.d.ts +94 -8
  70. package/dist/esm/inventory/vertrag.js +116 -4
  71. package/dist/esm/invoice/vertrag.d.ts +1 -1
  72. package/dist/esm/invoice/vertrag.js +2 -0
  73. package/dist/esm/models/cancellation.d.ts +1 -1
  74. package/dist/esm/models/cancellation.js +2 -0
  75. package/dist/esm/models/payment-errors.d.ts +1 -1
  76. package/dist/esm/models/payment-errors.js +2 -0
  77. package/dist/esm/models/receipt-email.d.ts +1 -1
  78. package/dist/esm/models/receipt-email.js +2 -0
  79. package/dist/esm/models/receipt-errors.d.ts +1 -1
  80. package/dist/esm/models/receipt-errors.js +2 -0
  81. package/dist/esm/pos/errors.d.ts +4 -3
  82. package/dist/esm/pos/errors.js +23 -2
  83. package/dist/esm/pos/index.d.ts +4 -1
  84. package/dist/esm/pos/index.js +2 -1
  85. package/dist/esm/pos/inventur.d.ts +104 -0
  86. package/dist/esm/pos/inventur.js +109 -0
  87. package/dist/esm/pos/texte.d.ts +82 -0
  88. package/dist/esm/pos/texte.js +35 -0
  89. package/dist/esm/register/errors.d.ts +1 -1
  90. package/dist/esm/register/errors.js +2 -0
  91. package/dist/esm/stored/vokabular.d.ts +1 -1
  92. package/dist/esm/stored/vokabular.js +1 -1
  93. package/dist/esm/version.d.ts +1 -1
  94. package/dist/esm/version.js +1 -1
  95. package/fixtures/hobex-hps-codes.json +1 -1
  96. package/fixtures/invoice-api.schema.json +1 -1
  97. package/fixtures/invoice-texts.json +1 -1
  98. package/fixtures/pos-texts.json +94 -1
  99. package/fixtures/stocktake-quantity-cases.json +55 -0
  100. package/fixtures/surface.json +151 -8
  101. package/fixtures/v3/antworten/belege.json +1 -1
  102. package/fixtures/v3/antworten/belegmail.json +1 -1
  103. package/fixtures/v3/antworten/kasse-belege.json +1 -1
  104. package/fixtures/v3/antworten/kasse.json +2958 -3
  105. package/fixtures/v3/antworten/lager.json +1727 -3
  106. package/fixtures/v3/antworten/rechnungen.json +1 -1
  107. package/fixtures/v3/antworten/storno.json +1 -1
  108. package/fixtures/v3/stored/belege.json +1 -1
  109. package/fixtures/v3/stored/kasse.json +414 -3
  110. package/fixtures/v3/stored/rechnungen.json +1 -1
  111. package/fixtures/v3/v3-vokabular.json +475 -8
  112. package/fixtures/v3/zahlbetrag-faelle.json +1 -1
  113. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  "default": {
5
5
  "sha256": "bf1e7c100e328517c72d5badf31904183efe22d1fddec308e2fe2722068854bc",
6
6
  "head": [],
7
- "inputsSha256": "10b8007647d9d9ba2a1c904b320f1ad5a97f66ab2ae3f4511ba18bfcbd616dea",
7
+ "inputsSha256": "9c4add97fe3a9d18691f91e9176108b595037684e76f2a573c4d4c970e4ab884",
8
8
  "backendPackage": "@kreiseck/kasseneck-api@0.33.0",
9
9
  "inputs": [
10
10
  "functions-kasse/test/unit/fixtures/kassen-welt.js",
@@ -19,12 +19,12 @@
19
19
  ]
20
20
  },
21
21
  "kasse": {
22
- "sha256": "eefa51fff36bc4fccd530c9f2693c66f0aec1aadfef9756014ca150954e8eace",
22
+ "sha256": "ed6ffc06c1ea7f29a4dacfdf1732057aea3fb2c4a4d3d066eefdca7c20752cf6",
23
23
  "head": [
24
24
  "channel",
25
25
  "note"
26
26
  ],
27
- "inputsSha256": "35cb1bb7c33a3eb238dd7a4a38ef604df1170e108afb3a8800fbf17ea6d3a3cb",
27
+ "inputsSha256": "77a128d593f133cc6d3244757f64b39bb471ebda729101bbe00c0fef835c463f",
28
28
  "backendPackage": "@kreiseck/kasseneck-api@0.14.0",
29
29
  "inputs": [
30
30
  "functions-kasse/gemeinsam/api-rand.js",
@@ -13370,6 +13370,2961 @@
13370
13370
  }
13371
13371
  }
13372
13372
  ]
13373
+ },
13374
+ "listMyStocktakes": {
13375
+ "codebase": "kasse",
13376
+ "cases": [
13377
+ {
13378
+ "case": "without_token",
13379
+ "method": "POST",
13380
+ "caller": "none",
13381
+ "params": {},
13382
+ "httpStatus": 200,
13383
+ "headers": {
13384
+ "Kasseneck-Api-Version": "v3",
13385
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13386
+ },
13387
+ "response": {
13388
+ "status": "error",
13389
+ "message": "Ungültiger Request: Authorization key erwartet.",
13390
+ "data": {
13391
+ "code": "unauthorized"
13392
+ },
13393
+ "code": "unauthorized"
13394
+ }
13395
+ },
13396
+ {
13397
+ "case": "session_wrong",
13398
+ "method": "POST",
13399
+ "caller": "register_user_wrong_session",
13400
+ "params": {},
13401
+ "httpStatus": 200,
13402
+ "headers": {
13403
+ "Kasseneck-Api-Version": "v3",
13404
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13405
+ },
13406
+ "response": {
13407
+ "status": "error",
13408
+ "message": "Sitzung abgelaufen oder übernommen — bitte neu anmelden.",
13409
+ "data": {
13410
+ "code": "session_expired"
13411
+ },
13412
+ "code": "session_expired"
13413
+ }
13414
+ },
13415
+ {
13416
+ "case": "module_off",
13417
+ "method": "POST",
13418
+ "caller": "owner",
13419
+ "params": {},
13420
+ "httpStatus": 200,
13421
+ "headers": {
13422
+ "Kasseneck-Api-Version": "v3",
13423
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13424
+ },
13425
+ "response": {
13426
+ "status": "error",
13427
+ "message": "Modul „Lager\" ist nicht aktiv.",
13428
+ "data": {
13429
+ "code": "module_inactive"
13430
+ },
13431
+ "code": "module_inactive"
13432
+ }
13433
+ },
13434
+ {
13435
+ "case": "cashier_without_permission",
13436
+ "method": "POST",
13437
+ "caller": "register_user_cashier",
13438
+ "params": {},
13439
+ "httpStatus": 200,
13440
+ "headers": {
13441
+ "Kasseneck-Api-Version": "v3",
13442
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13443
+ },
13444
+ "response": {
13445
+ "status": "error",
13446
+ "message": "Keine Berechtigung für diesen Lagervorgang.",
13447
+ "data": {
13448
+ "code": "not_permitted"
13449
+ },
13450
+ "code": "not_permitted"
13451
+ }
13452
+ },
13453
+ {
13454
+ "case": "success_cashier",
13455
+ "method": "POST",
13456
+ "caller": "register_user_cashier",
13457
+ "params": {},
13458
+ "httpStatus": 200,
13459
+ "headers": {
13460
+ "Kasseneck-Api-Version": "v3",
13461
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13462
+ },
13463
+ "response": {
13464
+ "status": "success",
13465
+ "message": "",
13466
+ "data": {
13467
+ "stocktakes": [
13468
+ {
13469
+ "id": "inv_wagen",
13470
+ "name": "Inventur auto1 26.09.2026",
13471
+ "locationId": "auto1",
13472
+ "scope": {
13473
+ "type": "articles",
13474
+ "groupIds": [],
13475
+ "articleIds": [
13476
+ "art_kaffee"
13477
+ ]
13478
+ },
13479
+ "type": "perpetual",
13480
+ "keyDate": null,
13481
+ "blind": false,
13482
+ "status": "counting",
13483
+ "progress": {
13484
+ "items": 1,
13485
+ "recountOpen": false
13486
+ },
13487
+ "createdAt": "2026-09-26T06:00:01.000Z",
13488
+ "createdBy": {
13489
+ "type": "owner",
13490
+ "id": "kw_betrieb1",
13491
+ "name": null
13492
+ },
13493
+ "source": "panel",
13494
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13495
+ "review": null,
13496
+ "closing": null,
13497
+ "cancellation": null
13498
+ },
13499
+ {
13500
+ "id": "inv_laden",
13501
+ "name": "Inventur haupt 26.09.2026",
13502
+ "locationId": "haupt",
13503
+ "scope": {
13504
+ "type": "all",
13505
+ "groupIds": [],
13506
+ "articleIds": []
13507
+ },
13508
+ "type": "key_date",
13509
+ "keyDate": "2026-09-30",
13510
+ "blind": true,
13511
+ "status": "counting",
13512
+ "progress": {
13513
+ "items": 2,
13514
+ "recountOpen": false
13515
+ },
13516
+ "createdAt": "2026-09-26T06:00:00.000Z",
13517
+ "createdBy": {
13518
+ "type": "owner",
13519
+ "id": "kw_betrieb1",
13520
+ "name": null
13521
+ },
13522
+ "source": "panel",
13523
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13524
+ "review": null,
13525
+ "closing": null,
13526
+ "cancellation": null
13527
+ }
13528
+ ]
13529
+ }
13530
+ }
13531
+ },
13532
+ {
13533
+ "case": "success_manager",
13534
+ "method": "POST",
13535
+ "caller": "register_user_manager",
13536
+ "params": {},
13537
+ "httpStatus": 200,
13538
+ "headers": {
13539
+ "Kasseneck-Api-Version": "v3",
13540
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13541
+ },
13542
+ "response": {
13543
+ "status": "success",
13544
+ "message": "",
13545
+ "data": {
13546
+ "stocktakes": [
13547
+ {
13548
+ "id": "inv_wagen",
13549
+ "name": "Inventur auto1 26.09.2026",
13550
+ "locationId": "auto1",
13551
+ "scope": {
13552
+ "type": "articles",
13553
+ "groupIds": [],
13554
+ "articleIds": [
13555
+ "art_kaffee"
13556
+ ]
13557
+ },
13558
+ "type": "perpetual",
13559
+ "keyDate": null,
13560
+ "blind": false,
13561
+ "status": "counting",
13562
+ "progress": {
13563
+ "items": 1,
13564
+ "recountOpen": false
13565
+ },
13566
+ "createdAt": "2026-09-26T06:00:01.000Z",
13567
+ "createdBy": {
13568
+ "type": "owner",
13569
+ "id": "kw_betrieb1",
13570
+ "name": null
13571
+ },
13572
+ "source": "panel",
13573
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13574
+ "review": null,
13575
+ "closing": null,
13576
+ "cancellation": null
13577
+ },
13578
+ {
13579
+ "id": "inv_laden",
13580
+ "name": "Inventur haupt 26.09.2026",
13581
+ "locationId": "haupt",
13582
+ "scope": {
13583
+ "type": "all",
13584
+ "groupIds": [],
13585
+ "articleIds": []
13586
+ },
13587
+ "type": "key_date",
13588
+ "keyDate": "2026-09-30",
13589
+ "blind": true,
13590
+ "status": "counting",
13591
+ "progress": {
13592
+ "items": 2,
13593
+ "recountOpen": false
13594
+ },
13595
+ "createdAt": "2026-09-26T06:00:00.000Z",
13596
+ "createdBy": {
13597
+ "type": "owner",
13598
+ "id": "kw_betrieb1",
13599
+ "name": null
13600
+ },
13601
+ "source": "panel",
13602
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13603
+ "review": null,
13604
+ "closing": null,
13605
+ "cancellation": null
13606
+ }
13607
+ ]
13608
+ }
13609
+ }
13610
+ },
13611
+ {
13612
+ "case": "success_owner",
13613
+ "method": "POST",
13614
+ "caller": "owner",
13615
+ "params": {},
13616
+ "httpStatus": 200,
13617
+ "headers": {
13618
+ "Kasseneck-Api-Version": "v3",
13619
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13620
+ },
13621
+ "response": {
13622
+ "status": "success",
13623
+ "message": "",
13624
+ "data": {
13625
+ "stocktakes": [
13626
+ {
13627
+ "id": "inv_keller",
13628
+ "name": "Inventur keller 26.09.2026",
13629
+ "locationId": "keller",
13630
+ "scope": {
13631
+ "type": "all",
13632
+ "groupIds": [],
13633
+ "articleIds": []
13634
+ },
13635
+ "type": "perpetual",
13636
+ "keyDate": null,
13637
+ "blind": true,
13638
+ "status": "review",
13639
+ "progress": {
13640
+ "items": 2,
13641
+ "recountOpen": false
13642
+ },
13643
+ "createdAt": "2026-09-26T06:00:02.000Z",
13644
+ "createdBy": {
13645
+ "type": "owner",
13646
+ "id": "kw_betrieb1",
13647
+ "name": null
13648
+ },
13649
+ "source": "panel",
13650
+ "updatedAt": "2026-09-26T07:59:00.000Z",
13651
+ "review": {
13652
+ "startedAt": "2026-09-26T07:58:00.000Z",
13653
+ "startedBy": {
13654
+ "type": "owner",
13655
+ "id": "kw_betrieb1",
13656
+ "name": null
13657
+ },
13658
+ "complete": true,
13659
+ "expectedAsOf": "2026-09-26T07:58:00.000Z",
13660
+ "recountUncounted": 1
13661
+ },
13662
+ "closing": null,
13663
+ "cancellation": null
13664
+ },
13665
+ {
13666
+ "id": "inv_wagen",
13667
+ "name": "Inventur auto1 26.09.2026",
13668
+ "locationId": "auto1",
13669
+ "scope": {
13670
+ "type": "articles",
13671
+ "groupIds": [],
13672
+ "articleIds": [
13673
+ "art_kaffee"
13674
+ ]
13675
+ },
13676
+ "type": "perpetual",
13677
+ "keyDate": null,
13678
+ "blind": false,
13679
+ "status": "counting",
13680
+ "progress": {
13681
+ "items": 1,
13682
+ "recountOpen": false
13683
+ },
13684
+ "createdAt": "2026-09-26T06:00:01.000Z",
13685
+ "createdBy": {
13686
+ "type": "owner",
13687
+ "id": "kw_betrieb1",
13688
+ "name": null
13689
+ },
13690
+ "source": "panel",
13691
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13692
+ "review": null,
13693
+ "closing": null,
13694
+ "cancellation": null
13695
+ },
13696
+ {
13697
+ "id": "inv_laden",
13698
+ "name": "Inventur haupt 26.09.2026",
13699
+ "locationId": "haupt",
13700
+ "scope": {
13701
+ "type": "all",
13702
+ "groupIds": [],
13703
+ "articleIds": []
13704
+ },
13705
+ "type": "key_date",
13706
+ "keyDate": "2026-09-30",
13707
+ "blind": true,
13708
+ "status": "counting",
13709
+ "progress": {
13710
+ "items": 2,
13711
+ "recountOpen": false
13712
+ },
13713
+ "createdAt": "2026-09-26T06:00:00.000Z",
13714
+ "createdBy": {
13715
+ "type": "owner",
13716
+ "id": "kw_betrieb1",
13717
+ "name": null
13718
+ },
13719
+ "source": "panel",
13720
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13721
+ "review": null,
13722
+ "closing": null,
13723
+ "cancellation": null
13724
+ }
13725
+ ]
13726
+ }
13727
+ }
13728
+ },
13729
+ {
13730
+ "case": "success_location",
13731
+ "method": "POST",
13732
+ "caller": "register_user_manager",
13733
+ "params": {
13734
+ "locationId": "auto1"
13735
+ },
13736
+ "httpStatus": 200,
13737
+ "headers": {
13738
+ "Kasseneck-Api-Version": "v3",
13739
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13740
+ },
13741
+ "response": {
13742
+ "status": "success",
13743
+ "message": "",
13744
+ "data": {
13745
+ "stocktakes": [
13746
+ {
13747
+ "id": "inv_wagen",
13748
+ "name": "Inventur auto1 26.09.2026",
13749
+ "locationId": "auto1",
13750
+ "scope": {
13751
+ "type": "articles",
13752
+ "groupIds": [],
13753
+ "articleIds": [
13754
+ "art_kaffee"
13755
+ ]
13756
+ },
13757
+ "type": "perpetual",
13758
+ "keyDate": null,
13759
+ "blind": false,
13760
+ "status": "counting",
13761
+ "progress": {
13762
+ "items": 1,
13763
+ "recountOpen": false
13764
+ },
13765
+ "createdAt": "2026-09-26T06:00:01.000Z",
13766
+ "createdBy": {
13767
+ "type": "owner",
13768
+ "id": "kw_betrieb1",
13769
+ "name": null
13770
+ },
13771
+ "source": "panel",
13772
+ "updatedAt": "2026-09-26T06:00:00.000Z",
13773
+ "review": null,
13774
+ "closing": null,
13775
+ "cancellation": null
13776
+ }
13777
+ ]
13778
+ }
13779
+ }
13780
+ },
13781
+ {
13782
+ "case": "success_owner_closed",
13783
+ "method": "POST",
13784
+ "caller": "owner",
13785
+ "params": {
13786
+ "status": "closed"
13787
+ },
13788
+ "httpStatus": 200,
13789
+ "headers": {
13790
+ "Kasseneck-Api-Version": "v3",
13791
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13792
+ },
13793
+ "response": {
13794
+ "status": "success",
13795
+ "message": "",
13796
+ "data": {
13797
+ "stocktakes": [
13798
+ {
13799
+ "id": "inv_alt",
13800
+ "name": "Inventur alt 26.09.2026",
13801
+ "locationId": "alt",
13802
+ "scope": {
13803
+ "type": "all",
13804
+ "groupIds": [],
13805
+ "articleIds": []
13806
+ },
13807
+ "type": "perpetual",
13808
+ "keyDate": null,
13809
+ "blind": true,
13810
+ "status": "closed",
13811
+ "progress": {
13812
+ "items": 2,
13813
+ "recountOpen": false
13814
+ },
13815
+ "createdAt": "2026-09-25T06:00:00.000Z",
13816
+ "createdBy": {
13817
+ "type": "owner",
13818
+ "id": "kw_betrieb1",
13819
+ "name": null
13820
+ },
13821
+ "source": "panel",
13822
+ "updatedAt": "2026-09-25T08:00:00.000Z",
13823
+ "review": {
13824
+ "startedAt": "2026-09-25T07:00:00.000Z",
13825
+ "startedBy": {
13826
+ "type": "owner",
13827
+ "id": "kw_betrieb1",
13828
+ "name": null
13829
+ },
13830
+ "complete": true,
13831
+ "expectedAsOf": "2026-09-25T07:00:00.000Z",
13832
+ "recountUncounted": 0
13833
+ },
13834
+ "closing": {
13835
+ "startedAt": "2026-09-25T07:33:20.000Z",
13836
+ "startedBy": {
13837
+ "type": "owner",
13838
+ "id": "kw_betrieb1",
13839
+ "name": null
13840
+ },
13841
+ "uncountedAsZero": false,
13842
+ "parts": 1,
13843
+ "bookedParts": 1,
13844
+ "completedAt": "2026-09-25T08:00:00.000Z"
13845
+ },
13846
+ "totals": {
13847
+ "items": 2,
13848
+ "counted": 1,
13849
+ "uncounted": 1,
13850
+ "recounted": 0,
13851
+ "withDifference": 1,
13852
+ "needsCheck": 0,
13853
+ "notBooked": 0,
13854
+ "differenceValueCents": -640,
13855
+ "inventoryValueCents": 2560
13856
+ },
13857
+ "warnings": [
13858
+ {
13859
+ "code": "uncounted_items",
13860
+ "items": 1
13861
+ }
13862
+ ],
13863
+ "seal": {
13864
+ "fromDay": "2026-09-01",
13865
+ "toDay": "2026-09-24",
13866
+ "daysChecked": 24,
13867
+ "verified": true,
13868
+ "firstBreak": null,
13869
+ "gaps": [],
13870
+ "gapCount": 0
13871
+ },
13872
+ "checksum": "5f0c2b0a0e1d9c8b7a6958473625140312f0e1d2c3b4a5968778695a4b3c2d1e",
13873
+ "inventoryAsOf": "count_date",
13874
+ "pdf": {
13875
+ "available": true,
13876
+ "valuesSha256": "0a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f60718293a4b5c6d7e8f9",
13877
+ "quantitiesSha256": "9f8e7d6c5b4a39281706f5e4d3c2b1a09f8e7d6c5b4a39281706f5e4d3c2b1a0"
13878
+ },
13879
+ "cancellation": null
13880
+ }
13881
+ ]
13882
+ }
13883
+ }
13884
+ },
13885
+ {
13886
+ "case": "success_owner_cancelled",
13887
+ "method": "POST",
13888
+ "caller": "owner",
13889
+ "params": {
13890
+ "status": "cancelled"
13891
+ },
13892
+ "httpStatus": 200,
13893
+ "headers": {
13894
+ "Kasseneck-Api-Version": "v3",
13895
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13896
+ },
13897
+ "response": {
13898
+ "status": "success",
13899
+ "message": "",
13900
+ "data": {
13901
+ "stocktakes": [
13902
+ {
13903
+ "id": "inv_abbruch",
13904
+ "name": "Inventur keller 26.09.2026",
13905
+ "locationId": "keller",
13906
+ "scope": {
13907
+ "type": "all",
13908
+ "groupIds": [],
13909
+ "articleIds": []
13910
+ },
13911
+ "type": "perpetual",
13912
+ "keyDate": null,
13913
+ "blind": true,
13914
+ "status": "cancelled",
13915
+ "progress": {
13916
+ "items": 2,
13917
+ "recountOpen": false
13918
+ },
13919
+ "createdAt": "2026-09-24T06:00:00.000Z",
13920
+ "createdBy": {
13921
+ "type": "owner",
13922
+ "id": "kw_betrieb1",
13923
+ "name": null
13924
+ },
13925
+ "source": "panel",
13926
+ "updatedAt": "2026-09-24T08:13:20.000Z",
13927
+ "review": null,
13928
+ "closing": null,
13929
+ "cancellation": {
13930
+ "reason": "Falscher Standort gewählt",
13931
+ "cancelledAt": "2026-09-24T08:13:20.000Z",
13932
+ "cancelledBy": {
13933
+ "type": "owner",
13934
+ "id": "kw_betrieb1",
13935
+ "name": null
13936
+ }
13937
+ }
13938
+ }
13939
+ ]
13940
+ }
13941
+ }
13942
+ },
13943
+ {
13944
+ "case": "status_unknown",
13945
+ "method": "POST",
13946
+ "caller": "register_user_manager",
13947
+ "params": {
13948
+ "status": "gibtsnicht"
13949
+ },
13950
+ "httpStatus": 200,
13951
+ "headers": {
13952
+ "Kasseneck-Api-Version": "v3",
13953
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13954
+ },
13955
+ "response": {
13956
+ "status": "error",
13957
+ "message": "Bitte Eingaben prüfen.",
13958
+ "data": {
13959
+ "errors": [
13960
+ {
13961
+ "field": "status",
13962
+ "message": "Unbekannter Status."
13963
+ }
13964
+ ],
13965
+ "code": "validation"
13966
+ },
13967
+ "code": "validation"
13968
+ }
13969
+ },
13970
+ {
13971
+ "case": "preflight_options",
13972
+ "method": "OPTIONS",
13973
+ "caller": "other",
13974
+ "params": {
13975
+ "$body": {}
13976
+ },
13977
+ "httpStatus": 200,
13978
+ "headers": {
13979
+ "Kasseneck-Api-Version": "v3",
13980
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
13981
+ },
13982
+ "response": {
13983
+ "status": "error",
13984
+ "message": "Bitte verwenden Sie eine POST-Anfrage",
13985
+ "data": {
13986
+ "code": "method_not_allowed"
13987
+ },
13988
+ "code": "method_not_allowed"
13989
+ }
13990
+ }
13991
+ ]
13992
+ },
13993
+ "listMyStocktakeItems": {
13994
+ "codebase": "kasse",
13995
+ "cases": [
13996
+ {
13997
+ "case": "without_token",
13998
+ "method": "POST",
13999
+ "caller": "none",
14000
+ "params": {
14001
+ "stocktakeId": "inv_laden"
14002
+ },
14003
+ "httpStatus": 200,
14004
+ "headers": {
14005
+ "Kasseneck-Api-Version": "v3",
14006
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14007
+ },
14008
+ "response": {
14009
+ "status": "error",
14010
+ "message": "Ungültiger Request: Authorization key erwartet.",
14011
+ "data": {
14012
+ "code": "unauthorized"
14013
+ },
14014
+ "code": "unauthorized"
14015
+ }
14016
+ },
14017
+ {
14018
+ "case": "data_missing",
14019
+ "method": "POST",
14020
+ "caller": "register_user_manager",
14021
+ "params": {},
14022
+ "httpStatus": 200,
14023
+ "headers": {
14024
+ "Kasseneck-Api-Version": "v3",
14025
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14026
+ },
14027
+ "response": {
14028
+ "status": "error",
14029
+ "message": "Ungültige Daten: Nicht alle erforderlichen Parameter wurden übergeben oder Typen stimmen nicht überein: stocktakeId",
14030
+ "data": {
14031
+ "code": "validation",
14032
+ "errors": [
14033
+ {
14034
+ "field": "stocktakeId",
14035
+ "message": "Pflichtfeld fehlt."
14036
+ }
14037
+ ]
14038
+ },
14039
+ "code": "validation"
14040
+ }
14041
+ },
14042
+ {
14043
+ "case": "module_off",
14044
+ "method": "POST",
14045
+ "caller": "owner",
14046
+ "params": {
14047
+ "stocktakeId": "inv_laden"
14048
+ },
14049
+ "httpStatus": 200,
14050
+ "headers": {
14051
+ "Kasseneck-Api-Version": "v3",
14052
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14053
+ },
14054
+ "response": {
14055
+ "status": "error",
14056
+ "message": "Modul „Lager\" ist nicht aktiv.",
14057
+ "data": {
14058
+ "code": "module_inactive"
14059
+ },
14060
+ "code": "module_inactive"
14061
+ }
14062
+ },
14063
+ {
14064
+ "case": "cashier_without_permission",
14065
+ "method": "POST",
14066
+ "caller": "register_user_cashier",
14067
+ "params": {
14068
+ "stocktakeId": "inv_laden"
14069
+ },
14070
+ "httpStatus": 200,
14071
+ "headers": {
14072
+ "Kasseneck-Api-Version": "v3",
14073
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14074
+ },
14075
+ "response": {
14076
+ "status": "error",
14077
+ "message": "Keine Berechtigung für diesen Lagervorgang.",
14078
+ "data": {
14079
+ "code": "not_permitted"
14080
+ },
14081
+ "code": "not_permitted"
14082
+ }
14083
+ },
14084
+ {
14085
+ "case": "stocktake_unknown",
14086
+ "method": "POST",
14087
+ "caller": "register_user_manager",
14088
+ "params": {
14089
+ "stocktakeId": "gibtsnicht"
14090
+ },
14091
+ "httpStatus": 200,
14092
+ "headers": {
14093
+ "Kasseneck-Api-Version": "v3",
14094
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14095
+ },
14096
+ "response": {
14097
+ "status": "error",
14098
+ "message": "Inventur nicht gefunden.",
14099
+ "data": {
14100
+ "code": "stocktake_not_found"
14101
+ },
14102
+ "code": "stocktake_not_found"
14103
+ }
14104
+ },
14105
+ {
14106
+ "case": "success_cashier",
14107
+ "method": "POST",
14108
+ "caller": "register_user_cashier",
14109
+ "params": {
14110
+ "stocktakeId": "inv_laden"
14111
+ },
14112
+ "httpStatus": 200,
14113
+ "headers": {
14114
+ "Kasseneck-Api-Version": "v3",
14115
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14116
+ },
14117
+ "response": {
14118
+ "status": "success",
14119
+ "message": "",
14120
+ "data": {
14121
+ "items": [
14122
+ {
14123
+ "articleId": "art_kaffee",
14124
+ "condition": "sellable",
14125
+ "name": "Kaffee",
14126
+ "number": null,
14127
+ "unit": "Stk",
14128
+ "round": 1,
14129
+ "counted": true,
14130
+ "quantity": 12000,
14131
+ "counts": 2,
14132
+ "firstCountedAt": "2026-09-26T07:50:00.000Z",
14133
+ "referenceTime": "2026-09-26T07:55:00.000Z",
14134
+ "countedBy": [
14135
+ {
14136
+ "type": "register_user",
14137
+ "id": "ru_kellner",
14138
+ "name": "Ben Kellner"
14139
+ },
14140
+ {
14141
+ "type": "register_user",
14142
+ "id": "ru_chef",
14143
+ "name": "Anna Chef"
14144
+ }
14145
+ ],
14146
+ "serialNumbers": [],
14147
+ "recountRequested": false,
14148
+ "addedLater": false
14149
+ },
14150
+ {
14151
+ "articleId": "art_kuchen",
14152
+ "condition": "sellable",
14153
+ "name": "Kuchen",
14154
+ "number": null,
14155
+ "unit": "Stk",
14156
+ "round": 1,
14157
+ "counted": false,
14158
+ "quantity": null,
14159
+ "counts": 0,
14160
+ "firstCountedAt": null,
14161
+ "referenceTime": null,
14162
+ "countedBy": [],
14163
+ "serialNumbers": [],
14164
+ "recountRequested": false,
14165
+ "addedLater": false
14166
+ }
14167
+ ],
14168
+ "nextCursor": null
14169
+ }
14170
+ }
14171
+ },
14172
+ {
14173
+ "case": "success_cashier_check",
14174
+ "method": "POST",
14175
+ "caller": "register_user_cashier",
14176
+ "params": {
14177
+ "stocktakeId": "inv_keller"
14178
+ },
14179
+ "httpStatus": 200,
14180
+ "headers": {
14181
+ "Kasseneck-Api-Version": "v3",
14182
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14183
+ },
14184
+ "response": {
14185
+ "status": "success",
14186
+ "message": "",
14187
+ "data": {
14188
+ "items": [
14189
+ {
14190
+ "articleId": "art_kaffee",
14191
+ "condition": "sellable",
14192
+ "name": "Kaffee",
14193
+ "number": null,
14194
+ "unit": "Stk",
14195
+ "round": 1,
14196
+ "counted": true,
14197
+ "quantity": 9000,
14198
+ "counts": 1,
14199
+ "firstCountedAt": "2026-09-26T07:45:00.000Z",
14200
+ "referenceTime": "2026-09-26T07:45:00.000Z",
14201
+ "countedBy": [
14202
+ {
14203
+ "type": "register_user",
14204
+ "id": "ru_chef",
14205
+ "name": "Anna Chef"
14206
+ }
14207
+ ],
14208
+ "serialNumbers": [],
14209
+ "recountRequested": false,
14210
+ "addedLater": false
14211
+ },
14212
+ {
14213
+ "articleId": "art_kuchen",
14214
+ "condition": "sellable",
14215
+ "name": "Kuchen",
14216
+ "number": null,
14217
+ "unit": "Stk",
14218
+ "round": 2,
14219
+ "counted": false,
14220
+ "quantity": null,
14221
+ "counts": 0,
14222
+ "firstCountedAt": null,
14223
+ "referenceTime": null,
14224
+ "countedBy": [],
14225
+ "serialNumbers": [],
14226
+ "recountRequested": true,
14227
+ "recount": {
14228
+ "reason": "Kiste hinten nachzählen",
14229
+ "requestedAt": "2026-09-26T07:58:20.000Z",
14230
+ "requestedBy": {
14231
+ "type": "owner",
14232
+ "id": "kw_betrieb1",
14233
+ "name": null
14234
+ },
14235
+ "round": 2
14236
+ },
14237
+ "addedLater": false
14238
+ }
14239
+ ],
14240
+ "nextCursor": null
14241
+ }
14242
+ }
14243
+ },
14244
+ {
14245
+ "case": "success_manager_check",
14246
+ "method": "POST",
14247
+ "caller": "register_user_manager",
14248
+ "params": {
14249
+ "stocktakeId": "inv_keller"
14250
+ },
14251
+ "httpStatus": 200,
14252
+ "headers": {
14253
+ "Kasseneck-Api-Version": "v3",
14254
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14255
+ },
14256
+ "response": {
14257
+ "status": "success",
14258
+ "message": "",
14259
+ "data": {
14260
+ "items": [
14261
+ {
14262
+ "articleId": "art_kaffee",
14263
+ "condition": "sellable",
14264
+ "name": "Kaffee",
14265
+ "number": null,
14266
+ "unit": "Stk",
14267
+ "round": 1,
14268
+ "counted": true,
14269
+ "quantity": 9000,
14270
+ "counts": 1,
14271
+ "firstCountedAt": "2026-09-26T07:45:00.000Z",
14272
+ "referenceTime": "2026-09-26T07:45:00.000Z",
14273
+ "countedBy": [
14274
+ {
14275
+ "type": "register_user",
14276
+ "id": "ru_chef",
14277
+ "name": "Anna Chef"
14278
+ }
14279
+ ],
14280
+ "serialNumbers": [],
14281
+ "recountRequested": false,
14282
+ "addedLater": false,
14283
+ "expectedQuantity": 10000,
14284
+ "differenceQuantity": -1000,
14285
+ "needsCheck": true,
14286
+ "checkReasons": [
14287
+ "movements_between_counts"
14288
+ ],
14289
+ "expectedAsOf": "2026-09-26T07:58:00.000Z",
14290
+ "missingSerialNumbers": [],
14291
+ "extraSerialNumbers": []
14292
+ },
14293
+ {
14294
+ "articleId": "art_kuchen",
14295
+ "condition": "sellable",
14296
+ "name": "Kuchen",
14297
+ "number": null,
14298
+ "unit": "Stk",
14299
+ "round": 2,
14300
+ "counted": false,
14301
+ "quantity": null,
14302
+ "counts": 0,
14303
+ "firstCountedAt": null,
14304
+ "referenceTime": null,
14305
+ "countedBy": [],
14306
+ "serialNumbers": [],
14307
+ "recountRequested": true,
14308
+ "recount": {
14309
+ "reason": "Kiste hinten nachzählen",
14310
+ "requestedAt": "2026-09-26T07:58:20.000Z",
14311
+ "requestedBy": {
14312
+ "type": "owner",
14313
+ "id": "kw_betrieb1",
14314
+ "name": null
14315
+ },
14316
+ "round": 2
14317
+ },
14318
+ "addedLater": false,
14319
+ "expectedQuantity": null,
14320
+ "differenceQuantity": null,
14321
+ "needsCheck": false,
14322
+ "checkReasons": [],
14323
+ "expectedAsOf": null
14324
+ }
14325
+ ],
14326
+ "nextCursor": null
14327
+ }
14328
+ }
14329
+ },
14330
+ {
14331
+ "case": "success_owner_check",
14332
+ "method": "POST",
14333
+ "caller": "owner",
14334
+ "params": {
14335
+ "stocktakeId": "inv_keller"
14336
+ },
14337
+ "httpStatus": 200,
14338
+ "headers": {
14339
+ "Kasseneck-Api-Version": "v3",
14340
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14341
+ },
14342
+ "response": {
14343
+ "status": "success",
14344
+ "message": "",
14345
+ "data": {
14346
+ "items": [
14347
+ {
14348
+ "articleId": "art_kaffee",
14349
+ "condition": "sellable",
14350
+ "name": "Kaffee",
14351
+ "number": null,
14352
+ "unit": "Stk",
14353
+ "round": 1,
14354
+ "counted": true,
14355
+ "quantity": 9000,
14356
+ "counts": 1,
14357
+ "firstCountedAt": "2026-09-26T07:45:00.000Z",
14358
+ "referenceTime": "2026-09-26T07:45:00.000Z",
14359
+ "countedBy": [
14360
+ {
14361
+ "type": "register_user",
14362
+ "id": "ru_chef",
14363
+ "name": "Anna Chef"
14364
+ }
14365
+ ],
14366
+ "serialNumbers": [],
14367
+ "recountRequested": false,
14368
+ "addedLater": false,
14369
+ "expectedQuantity": 10000,
14370
+ "differenceQuantity": -1000,
14371
+ "needsCheck": true,
14372
+ "checkReasons": [
14373
+ "movements_between_counts"
14374
+ ],
14375
+ "expectedAsOf": "2026-09-26T07:58:00.000Z",
14376
+ "differenceValueCents": -320,
14377
+ "missingSerialNumbers": [],
14378
+ "extraSerialNumbers": []
14379
+ },
14380
+ {
14381
+ "articleId": "art_kuchen",
14382
+ "condition": "sellable",
14383
+ "name": "Kuchen",
14384
+ "number": null,
14385
+ "unit": "Stk",
14386
+ "round": 2,
14387
+ "counted": false,
14388
+ "quantity": null,
14389
+ "counts": 0,
14390
+ "firstCountedAt": null,
14391
+ "referenceTime": null,
14392
+ "countedBy": [],
14393
+ "serialNumbers": [],
14394
+ "recountRequested": true,
14395
+ "recount": {
14396
+ "reason": "Kiste hinten nachzählen",
14397
+ "requestedAt": "2026-09-26T07:58:20.000Z",
14398
+ "requestedBy": {
14399
+ "type": "owner",
14400
+ "id": "kw_betrieb1",
14401
+ "name": null
14402
+ },
14403
+ "round": 2
14404
+ },
14405
+ "addedLater": false,
14406
+ "expectedQuantity": null,
14407
+ "differenceQuantity": null,
14408
+ "needsCheck": false,
14409
+ "checkReasons": [],
14410
+ "expectedAsOf": null,
14411
+ "differenceValueCents": null
14412
+ }
14413
+ ],
14414
+ "nextCursor": null
14415
+ }
14416
+ }
14417
+ },
14418
+ {
14419
+ "case": "success_owner_closed",
14420
+ "method": "POST",
14421
+ "caller": "owner",
14422
+ "params": {
14423
+ "stocktakeId": "inv_alt"
14424
+ },
14425
+ "httpStatus": 200,
14426
+ "headers": {
14427
+ "Kasseneck-Api-Version": "v3",
14428
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14429
+ },
14430
+ "response": {
14431
+ "status": "success",
14432
+ "message": "",
14433
+ "data": {
14434
+ "items": [
14435
+ {
14436
+ "articleId": "art_kaffee",
14437
+ "condition": "sellable",
14438
+ "name": "Kaffee",
14439
+ "number": null,
14440
+ "unit": "Stk",
14441
+ "round": 1,
14442
+ "counted": true,
14443
+ "quantity": 8000,
14444
+ "counts": 1,
14445
+ "firstCountedAt": "2026-09-25T07:16:40.000Z",
14446
+ "referenceTime": "2026-09-25T07:16:40.000Z",
14447
+ "countedBy": [
14448
+ {
14449
+ "type": "owner",
14450
+ "id": "kw_betrieb1",
14451
+ "name": null
14452
+ }
14453
+ ],
14454
+ "serialNumbers": [],
14455
+ "recountRequested": false,
14456
+ "addedLater": false,
14457
+ "expectedQuantity": 10000,
14458
+ "differenceQuantity": -2000,
14459
+ "needsCheck": false,
14460
+ "checkReasons": [],
14461
+ "expectedAsOf": "2026-09-25T07:00:00.000Z",
14462
+ "differenceValueCents": -640,
14463
+ "missingSerialNumbers": [],
14464
+ "extraSerialNumbers": [],
14465
+ "bookedQuantity": -2000,
14466
+ "notBooked": null,
14467
+ "inventory": {
14468
+ "quantity": 8000,
14469
+ "unitValueMicros": 3200000,
14470
+ "valueCents": 2560,
14471
+ "countedOn": "2026-09-24"
14472
+ }
14473
+ },
14474
+ {
14475
+ "articleId": "art_kuchen",
14476
+ "condition": "sellable",
14477
+ "name": "Kuchen",
14478
+ "number": null,
14479
+ "unit": "Stk",
14480
+ "round": 1,
14481
+ "counted": false,
14482
+ "quantity": null,
14483
+ "counts": 0,
14484
+ "firstCountedAt": null,
14485
+ "referenceTime": null,
14486
+ "countedBy": [],
14487
+ "serialNumbers": [],
14488
+ "recountRequested": false,
14489
+ "addedLater": false,
14490
+ "expectedQuantity": 4000,
14491
+ "differenceQuantity": null,
14492
+ "needsCheck": true,
14493
+ "checkReasons": [
14494
+ "not_counted"
14495
+ ],
14496
+ "expectedAsOf": "2026-09-25T07:00:00.000Z",
14497
+ "differenceValueCents": null,
14498
+ "missingSerialNumbers": [],
14499
+ "extraSerialNumbers": [],
14500
+ "bookedQuantity": null,
14501
+ "notBooked": null,
14502
+ "inventory": null
14503
+ }
14504
+ ],
14505
+ "nextCursor": null
14506
+ }
14507
+ }
14508
+ },
14509
+ {
14510
+ "case": "success_stock",
14511
+ "method": "POST",
14512
+ "caller": "register_user_manager",
14513
+ "params": {
14514
+ "stocktakeId": "inv_wagen"
14515
+ },
14516
+ "httpStatus": 200,
14517
+ "headers": {
14518
+ "Kasseneck-Api-Version": "v3",
14519
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14520
+ },
14521
+ "response": {
14522
+ "status": "success",
14523
+ "message": "",
14524
+ "data": {
14525
+ "items": [
14526
+ {
14527
+ "articleId": "art_kaffee",
14528
+ "condition": "sellable",
14529
+ "name": "Kaffee",
14530
+ "number": null,
14531
+ "unit": "Stk",
14532
+ "round": 1,
14533
+ "counted": false,
14534
+ "quantity": null,
14535
+ "counts": 0,
14536
+ "firstCountedAt": null,
14537
+ "referenceTime": null,
14538
+ "countedBy": [],
14539
+ "serialNumbers": [],
14540
+ "recountRequested": false,
14541
+ "addedLater": false,
14542
+ "bookStockNow": 3000
14543
+ }
14544
+ ],
14545
+ "nextCursor": null
14546
+ }
14547
+ }
14548
+ },
14549
+ {
14550
+ "case": "success_open",
14551
+ "method": "POST",
14552
+ "caller": "register_user_manager",
14553
+ "params": {
14554
+ "stocktakeId": "inv_laden",
14555
+ "openOnly": true
14556
+ },
14557
+ "httpStatus": 200,
14558
+ "headers": {
14559
+ "Kasseneck-Api-Version": "v3",
14560
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14561
+ },
14562
+ "response": {
14563
+ "status": "success",
14564
+ "message": "",
14565
+ "data": {
14566
+ "items": [
14567
+ {
14568
+ "articleId": "art_kuchen",
14569
+ "condition": "sellable",
14570
+ "name": "Kuchen",
14571
+ "number": null,
14572
+ "unit": "Stk",
14573
+ "round": 1,
14574
+ "counted": false,
14575
+ "quantity": null,
14576
+ "counts": 0,
14577
+ "firstCountedAt": null,
14578
+ "referenceTime": null,
14579
+ "countedBy": [],
14580
+ "serialNumbers": [],
14581
+ "recountRequested": false,
14582
+ "addedLater": false
14583
+ }
14584
+ ],
14585
+ "nextCursor": null
14586
+ }
14587
+ }
14588
+ },
14589
+ {
14590
+ "case": "success_page",
14591
+ "method": "POST",
14592
+ "caller": "register_user_manager",
14593
+ "params": {
14594
+ "stocktakeId": "inv_laden",
14595
+ "limit": 1
14596
+ },
14597
+ "httpStatus": 200,
14598
+ "headers": {
14599
+ "Kasseneck-Api-Version": "v3",
14600
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14601
+ },
14602
+ "response": {
14603
+ "status": "success",
14604
+ "message": "",
14605
+ "data": {
14606
+ "items": [
14607
+ {
14608
+ "articleId": "art_kaffee",
14609
+ "condition": "sellable",
14610
+ "name": "Kaffee",
14611
+ "number": null,
14612
+ "unit": "Stk",
14613
+ "round": 1,
14614
+ "counted": true,
14615
+ "quantity": 12000,
14616
+ "counts": 2,
14617
+ "firstCountedAt": "2026-09-26T07:50:00.000Z",
14618
+ "referenceTime": "2026-09-26T07:55:00.000Z",
14619
+ "countedBy": [
14620
+ {
14621
+ "type": "register_user",
14622
+ "id": "ru_kellner",
14623
+ "name": "Ben Kellner"
14624
+ },
14625
+ {
14626
+ "type": "register_user",
14627
+ "id": "ru_chef",
14628
+ "name": "Anna Chef"
14629
+ }
14630
+ ],
14631
+ "serialNumbers": [],
14632
+ "recountRequested": false,
14633
+ "addedLater": false
14634
+ }
14635
+ ],
14636
+ "nextCursor": "eyJpZCI6ImFydF9rYWZmZWVfX3ZlcmthdWZiYXIifQ"
14637
+ }
14638
+ }
14639
+ },
14640
+ {
14641
+ "case": "success_next_page",
14642
+ "method": "POST",
14643
+ "caller": "register_user_manager",
14644
+ "params": {
14645
+ "stocktakeId": "inv_laden",
14646
+ "limit": 1,
14647
+ "cursor": "eyJpZCI6ImFydF9rYWZmZWVfX3ZlcmthdWZiYXIifQ"
14648
+ },
14649
+ "httpStatus": 200,
14650
+ "headers": {
14651
+ "Kasseneck-Api-Version": "v3",
14652
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14653
+ },
14654
+ "response": {
14655
+ "status": "success",
14656
+ "message": "",
14657
+ "data": {
14658
+ "items": [
14659
+ {
14660
+ "articleId": "art_kuchen",
14661
+ "condition": "sellable",
14662
+ "name": "Kuchen",
14663
+ "number": null,
14664
+ "unit": "Stk",
14665
+ "round": 1,
14666
+ "counted": false,
14667
+ "quantity": null,
14668
+ "counts": 0,
14669
+ "firstCountedAt": null,
14670
+ "referenceTime": null,
14671
+ "countedBy": [],
14672
+ "serialNumbers": [],
14673
+ "recountRequested": false,
14674
+ "addedLater": false
14675
+ }
14676
+ ],
14677
+ "nextCursor": null
14678
+ }
14679
+ }
14680
+ },
14681
+ {
14682
+ "case": "cursor_invalid",
14683
+ "method": "POST",
14684
+ "caller": "register_user_manager",
14685
+ "params": {
14686
+ "stocktakeId": "inv_laden",
14687
+ "cursor": "gibtsnicht"
14688
+ },
14689
+ "httpStatus": 200,
14690
+ "headers": {
14691
+ "Kasseneck-Api-Version": "v3",
14692
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14693
+ },
14694
+ "response": {
14695
+ "status": "error",
14696
+ "message": "Der Blätter-Zeiger ist ungültig oder abgelaufen.",
14697
+ "data": {
14698
+ "code": "invalid_cursor"
14699
+ },
14700
+ "code": "invalid_cursor"
14701
+ }
14702
+ },
14703
+ {
14704
+ "case": "preflight_options",
14705
+ "method": "OPTIONS",
14706
+ "caller": "other",
14707
+ "params": {
14708
+ "$body": {}
14709
+ },
14710
+ "httpStatus": 200,
14711
+ "headers": {
14712
+ "Kasseneck-Api-Version": "v3",
14713
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14714
+ },
14715
+ "response": {
14716
+ "status": "error",
14717
+ "message": "Bitte verwenden Sie eine POST-Anfrage",
14718
+ "data": {
14719
+ "code": "method_not_allowed"
14720
+ },
14721
+ "code": "method_not_allowed"
14722
+ }
14723
+ }
14724
+ ]
14725
+ },
14726
+ "listMyStocktakeCounts": {
14727
+ "codebase": "kasse",
14728
+ "cases": [
14729
+ {
14730
+ "case": "without_token",
14731
+ "method": "POST",
14732
+ "caller": "none",
14733
+ "params": {
14734
+ "stocktakeId": "inv_laden"
14735
+ },
14736
+ "httpStatus": 200,
14737
+ "headers": {
14738
+ "Kasseneck-Api-Version": "v3",
14739
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14740
+ },
14741
+ "response": {
14742
+ "status": "error",
14743
+ "message": "Ungültiger Request: Authorization key erwartet.",
14744
+ "data": {
14745
+ "code": "unauthorized"
14746
+ },
14747
+ "code": "unauthorized"
14748
+ }
14749
+ },
14750
+ {
14751
+ "case": "data_missing",
14752
+ "method": "POST",
14753
+ "caller": "register_user_manager",
14754
+ "params": {},
14755
+ "httpStatus": 200,
14756
+ "headers": {
14757
+ "Kasseneck-Api-Version": "v3",
14758
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14759
+ },
14760
+ "response": {
14761
+ "status": "error",
14762
+ "message": "Ungültige Daten: Nicht alle erforderlichen Parameter wurden übergeben oder Typen stimmen nicht überein: stocktakeId",
14763
+ "data": {
14764
+ "code": "validation",
14765
+ "errors": [
14766
+ {
14767
+ "field": "stocktakeId",
14768
+ "message": "Pflichtfeld fehlt."
14769
+ }
14770
+ ]
14771
+ },
14772
+ "code": "validation"
14773
+ }
14774
+ },
14775
+ {
14776
+ "case": "module_off",
14777
+ "method": "POST",
14778
+ "caller": "owner",
14779
+ "params": {
14780
+ "stocktakeId": "inv_laden"
14781
+ },
14782
+ "httpStatus": 200,
14783
+ "headers": {
14784
+ "Kasseneck-Api-Version": "v3",
14785
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14786
+ },
14787
+ "response": {
14788
+ "status": "error",
14789
+ "message": "Modul „Lager\" ist nicht aktiv.",
14790
+ "data": {
14791
+ "code": "module_inactive"
14792
+ },
14793
+ "code": "module_inactive"
14794
+ }
14795
+ },
14796
+ {
14797
+ "case": "cashier_without_permission",
14798
+ "method": "POST",
14799
+ "caller": "register_user_cashier",
14800
+ "params": {
14801
+ "stocktakeId": "inv_laden"
14802
+ },
14803
+ "httpStatus": 200,
14804
+ "headers": {
14805
+ "Kasseneck-Api-Version": "v3",
14806
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14807
+ },
14808
+ "response": {
14809
+ "status": "error",
14810
+ "message": "Keine Berechtigung für diesen Lagervorgang.",
14811
+ "data": {
14812
+ "code": "not_permitted"
14813
+ },
14814
+ "code": "not_permitted"
14815
+ }
14816
+ },
14817
+ {
14818
+ "case": "stocktake_unknown",
14819
+ "method": "POST",
14820
+ "caller": "register_user_manager",
14821
+ "params": {
14822
+ "stocktakeId": "gibtsnicht"
14823
+ },
14824
+ "httpStatus": 200,
14825
+ "headers": {
14826
+ "Kasseneck-Api-Version": "v3",
14827
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14828
+ },
14829
+ "response": {
14830
+ "status": "error",
14831
+ "message": "Inventur nicht gefunden.",
14832
+ "data": {
14833
+ "code": "stocktake_not_found"
14834
+ },
14835
+ "code": "stocktake_not_found"
14836
+ }
14837
+ },
14838
+ {
14839
+ "case": "success_cashier",
14840
+ "method": "POST",
14841
+ "caller": "register_user_cashier",
14842
+ "params": {
14843
+ "stocktakeId": "inv_laden"
14844
+ },
14845
+ "httpStatus": 200,
14846
+ "headers": {
14847
+ "Kasseneck-Api-Version": "v3",
14848
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14849
+ },
14850
+ "response": {
14851
+ "status": "success",
14852
+ "message": "",
14853
+ "data": {
14854
+ "counts": [
14855
+ {
14856
+ "id": "zk1",
14857
+ "articleId": "art_kaffee",
14858
+ "condition": "sellable",
14859
+ "quantity": 5000,
14860
+ "serialNumbers": [],
14861
+ "round": 1,
14862
+ "countedBy": {
14863
+ "type": "register_user",
14864
+ "id": "ru_kellner",
14865
+ "name": "Ben Kellner"
14866
+ },
14867
+ "source": "register",
14868
+ "cashregisterId": "KASSE1",
14869
+ "countedAt": "2026-09-26T07:50:00.000Z",
14870
+ "note": "Regal oben",
14871
+ "voided": null
14872
+ }
14873
+ ],
14874
+ "nextCursor": null
14875
+ }
14876
+ }
14877
+ },
14878
+ {
14879
+ "case": "success_manager",
14880
+ "method": "POST",
14881
+ "caller": "register_user_manager",
14882
+ "params": {
14883
+ "stocktakeId": "inv_laden"
14884
+ },
14885
+ "httpStatus": 200,
14886
+ "headers": {
14887
+ "Kasseneck-Api-Version": "v3",
14888
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14889
+ },
14890
+ "response": {
14891
+ "status": "success",
14892
+ "message": "",
14893
+ "data": {
14894
+ "counts": [
14895
+ {
14896
+ "id": "zc1",
14897
+ "articleId": "art_kaffee",
14898
+ "condition": "sellable",
14899
+ "quantity": 7000,
14900
+ "serialNumbers": [],
14901
+ "round": 1,
14902
+ "countedBy": {
14903
+ "type": "register_user",
14904
+ "id": "ru_chef",
14905
+ "name": "Anna Chef"
14906
+ },
14907
+ "source": "register",
14908
+ "cashregisterId": "KASSE1",
14909
+ "countedAt": "2026-09-26T07:55:00.000Z",
14910
+ "note": null,
14911
+ "voided": null
14912
+ },
14913
+ {
14914
+ "id": "zc0",
14915
+ "articleId": "art_kuchen",
14916
+ "condition": "sellable",
14917
+ "quantity": 3000,
14918
+ "serialNumbers": [],
14919
+ "round": 1,
14920
+ "countedBy": {
14921
+ "type": "register_user",
14922
+ "id": "ru_chef",
14923
+ "name": "Anna Chef"
14924
+ },
14925
+ "source": "register",
14926
+ "cashregisterId": "KASSE1",
14927
+ "countedAt": "2026-09-26T07:53:20.000Z",
14928
+ "note": null,
14929
+ "voided": {
14930
+ "reason": "Falsches Regal",
14931
+ "voidedAt": "2026-09-26T07:54:10.000Z",
14932
+ "voidedBy": {
14933
+ "type": "register_user",
14934
+ "id": "ru_chef",
14935
+ "name": "Anna Chef"
14936
+ }
14937
+ }
14938
+ },
14939
+ {
14940
+ "id": "zk1",
14941
+ "articleId": "art_kaffee",
14942
+ "condition": "sellable",
14943
+ "quantity": 5000,
14944
+ "serialNumbers": [],
14945
+ "round": 1,
14946
+ "countedBy": {
14947
+ "type": "register_user",
14948
+ "id": "ru_kellner",
14949
+ "name": "Ben Kellner"
14950
+ },
14951
+ "source": "register",
14952
+ "cashregisterId": "KASSE1",
14953
+ "countedAt": "2026-09-26T07:50:00.000Z",
14954
+ "note": "Regal oben",
14955
+ "voided": null
14956
+ }
14957
+ ],
14958
+ "nextCursor": null
14959
+ }
14960
+ }
14961
+ },
14962
+ {
14963
+ "case": "success_manager_only_own",
14964
+ "method": "POST",
14965
+ "caller": "register_user_manager",
14966
+ "params": {
14967
+ "stocktakeId": "inv_laden",
14968
+ "ownOnly": true
14969
+ },
14970
+ "httpStatus": 200,
14971
+ "headers": {
14972
+ "Kasseneck-Api-Version": "v3",
14973
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
14974
+ },
14975
+ "response": {
14976
+ "status": "success",
14977
+ "message": "",
14978
+ "data": {
14979
+ "counts": [
14980
+ {
14981
+ "id": "zc1",
14982
+ "articleId": "art_kaffee",
14983
+ "condition": "sellable",
14984
+ "quantity": 7000,
14985
+ "serialNumbers": [],
14986
+ "round": 1,
14987
+ "countedBy": {
14988
+ "type": "register_user",
14989
+ "id": "ru_chef",
14990
+ "name": "Anna Chef"
14991
+ },
14992
+ "source": "register",
14993
+ "cashregisterId": "KASSE1",
14994
+ "countedAt": "2026-09-26T07:55:00.000Z",
14995
+ "note": null,
14996
+ "voided": null
14997
+ },
14998
+ {
14999
+ "id": "zc0",
15000
+ "articleId": "art_kuchen",
15001
+ "condition": "sellable",
15002
+ "quantity": 3000,
15003
+ "serialNumbers": [],
15004
+ "round": 1,
15005
+ "countedBy": {
15006
+ "type": "register_user",
15007
+ "id": "ru_chef",
15008
+ "name": "Anna Chef"
15009
+ },
15010
+ "source": "register",
15011
+ "cashregisterId": "KASSE1",
15012
+ "countedAt": "2026-09-26T07:53:20.000Z",
15013
+ "note": null,
15014
+ "voided": {
15015
+ "reason": "Falsches Regal",
15016
+ "voidedAt": "2026-09-26T07:54:10.000Z",
15017
+ "voidedBy": {
15018
+ "type": "register_user",
15019
+ "id": "ru_chef",
15020
+ "name": "Anna Chef"
15021
+ }
15022
+ }
15023
+ }
15024
+ ],
15025
+ "nextCursor": null
15026
+ }
15027
+ }
15028
+ },
15029
+ {
15030
+ "case": "success_article",
15031
+ "method": "POST",
15032
+ "caller": "register_user_manager",
15033
+ "params": {
15034
+ "stocktakeId": "inv_laden",
15035
+ "articleId": "art_kuchen"
15036
+ },
15037
+ "httpStatus": 200,
15038
+ "headers": {
15039
+ "Kasseneck-Api-Version": "v3",
15040
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15041
+ },
15042
+ "response": {
15043
+ "status": "success",
15044
+ "message": "",
15045
+ "data": {
15046
+ "counts": [
15047
+ {
15048
+ "id": "zc0",
15049
+ "articleId": "art_kuchen",
15050
+ "condition": "sellable",
15051
+ "quantity": 3000,
15052
+ "serialNumbers": [],
15053
+ "round": 1,
15054
+ "countedBy": {
15055
+ "type": "register_user",
15056
+ "id": "ru_chef",
15057
+ "name": "Anna Chef"
15058
+ },
15059
+ "source": "register",
15060
+ "cashregisterId": "KASSE1",
15061
+ "countedAt": "2026-09-26T07:53:20.000Z",
15062
+ "note": null,
15063
+ "voided": {
15064
+ "reason": "Falsches Regal",
15065
+ "voidedAt": "2026-09-26T07:54:10.000Z",
15066
+ "voidedBy": {
15067
+ "type": "register_user",
15068
+ "id": "ru_chef",
15069
+ "name": "Anna Chef"
15070
+ }
15071
+ }
15072
+ }
15073
+ ],
15074
+ "nextCursor": null
15075
+ }
15076
+ }
15077
+ },
15078
+ {
15079
+ "case": "success_page",
15080
+ "method": "POST",
15081
+ "caller": "register_user_manager",
15082
+ "params": {
15083
+ "stocktakeId": "inv_laden",
15084
+ "limit": 1
15085
+ },
15086
+ "httpStatus": 200,
15087
+ "headers": {
15088
+ "Kasseneck-Api-Version": "v3",
15089
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15090
+ },
15091
+ "response": {
15092
+ "status": "success",
15093
+ "message": "",
15094
+ "data": {
15095
+ "counts": [
15096
+ {
15097
+ "id": "zc1",
15098
+ "articleId": "art_kaffee",
15099
+ "condition": "sellable",
15100
+ "quantity": 7000,
15101
+ "serialNumbers": [],
15102
+ "round": 1,
15103
+ "countedBy": {
15104
+ "type": "register_user",
15105
+ "id": "ru_chef",
15106
+ "name": "Anna Chef"
15107
+ },
15108
+ "source": "register",
15109
+ "cashregisterId": "KASSE1",
15110
+ "countedAt": "2026-09-26T07:55:00.000Z",
15111
+ "note": null,
15112
+ "voided": null
15113
+ }
15114
+ ],
15115
+ "nextCursor": "eyJpZCI6InpjMSJ9"
15116
+ }
15117
+ }
15118
+ },
15119
+ {
15120
+ "case": "cursor_invalid",
15121
+ "method": "POST",
15122
+ "caller": "register_user_manager",
15123
+ "params": {
15124
+ "stocktakeId": "inv_laden",
15125
+ "cursor": "zc1"
15126
+ },
15127
+ "httpStatus": 200,
15128
+ "headers": {
15129
+ "Kasseneck-Api-Version": "v3",
15130
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15131
+ },
15132
+ "response": {
15133
+ "status": "error",
15134
+ "message": "Der Blätter-Zeiger ist ungültig oder abgelaufen.",
15135
+ "data": {
15136
+ "code": "invalid_cursor"
15137
+ },
15138
+ "code": "invalid_cursor"
15139
+ }
15140
+ },
15141
+ {
15142
+ "case": "preflight_options",
15143
+ "method": "OPTIONS",
15144
+ "caller": "other",
15145
+ "params": {
15146
+ "$body": {}
15147
+ },
15148
+ "httpStatus": 200,
15149
+ "headers": {
15150
+ "Kasseneck-Api-Version": "v3",
15151
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15152
+ },
15153
+ "response": {
15154
+ "status": "error",
15155
+ "message": "Bitte verwenden Sie eine POST-Anfrage",
15156
+ "data": {
15157
+ "code": "method_not_allowed"
15158
+ },
15159
+ "code": "method_not_allowed"
15160
+ }
15161
+ }
15162
+ ]
15163
+ },
15164
+ "recordMyStocktakeCount": {
15165
+ "codebase": "kasse",
15166
+ "cases": [
15167
+ {
15168
+ "case": "without_token",
15169
+ "method": "POST",
15170
+ "caller": "none",
15171
+ "params": {
15172
+ "stocktakeId": "inv_laden",
15173
+ "articleId": "art_kuchen",
15174
+ "quantity": 3000,
15175
+ "idempotencyKey": "k-kuchen-1"
15176
+ },
15177
+ "httpStatus": 200,
15178
+ "headers": {
15179
+ "Kasseneck-Api-Version": "v3",
15180
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15181
+ },
15182
+ "response": {
15183
+ "status": "error",
15184
+ "message": "Ungültiger Request: Authorization key erwartet.",
15185
+ "data": {
15186
+ "code": "unauthorized"
15187
+ },
15188
+ "code": "unauthorized"
15189
+ }
15190
+ },
15191
+ {
15192
+ "case": "data_missing",
15193
+ "method": "POST",
15194
+ "caller": "register_user_manager",
15195
+ "params": {
15196
+ "articleId": "art_kuchen",
15197
+ "quantity": 3000,
15198
+ "idempotencyKey": "k"
15199
+ },
15200
+ "httpStatus": 200,
15201
+ "headers": {
15202
+ "Kasseneck-Api-Version": "v3",
15203
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15204
+ },
15205
+ "response": {
15206
+ "status": "error",
15207
+ "message": "Ungültige Daten: Nicht alle erforderlichen Parameter wurden übergeben oder Typen stimmen nicht überein: stocktakeId",
15208
+ "data": {
15209
+ "code": "validation",
15210
+ "errors": [
15211
+ {
15212
+ "field": "stocktakeId",
15213
+ "message": "Pflichtfeld fehlt."
15214
+ }
15215
+ ]
15216
+ },
15217
+ "code": "validation"
15218
+ }
15219
+ },
15220
+ {
15221
+ "case": "module_off",
15222
+ "method": "POST",
15223
+ "caller": "owner",
15224
+ "params": {
15225
+ "stocktakeId": "inv_laden",
15226
+ "articleId": "art_kuchen",
15227
+ "quantity": 3000,
15228
+ "idempotencyKey": "k-kuchen-1"
15229
+ },
15230
+ "httpStatus": 200,
15231
+ "headers": {
15232
+ "Kasseneck-Api-Version": "v3",
15233
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15234
+ },
15235
+ "response": {
15236
+ "status": "error",
15237
+ "message": "Modul „Lager\" ist nicht aktiv.",
15238
+ "data": {
15239
+ "code": "module_inactive"
15240
+ },
15241
+ "code": "module_inactive"
15242
+ }
15243
+ },
15244
+ {
15245
+ "case": "cashier_without_permission",
15246
+ "method": "POST",
15247
+ "caller": "register_user_cashier",
15248
+ "params": {
15249
+ "stocktakeId": "inv_laden",
15250
+ "articleId": "art_kuchen",
15251
+ "quantity": 3000,
15252
+ "idempotencyKey": "k-kuchen-1"
15253
+ },
15254
+ "httpStatus": 200,
15255
+ "headers": {
15256
+ "Kasseneck-Api-Version": "v3",
15257
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15258
+ },
15259
+ "response": {
15260
+ "status": "error",
15261
+ "message": "Keine Berechtigung für diesen Lagervorgang.",
15262
+ "data": {
15263
+ "code": "not_permitted"
15264
+ },
15265
+ "code": "not_permitted"
15266
+ }
15267
+ },
15268
+ {
15269
+ "case": "foreign_cashregister",
15270
+ "method": "POST",
15271
+ "caller": "register_user_cashier",
15272
+ "params": {
15273
+ "stocktakeId": "inv_laden",
15274
+ "articleId": "art_kuchen",
15275
+ "quantity": 3000,
15276
+ "idempotencyKey": "k-kuchen-1",
15277
+ "cashregisterId": "KASSE2"
15278
+ },
15279
+ "httpStatus": 200,
15280
+ "headers": {
15281
+ "Kasseneck-Api-Version": "v3",
15282
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15283
+ },
15284
+ "response": {
15285
+ "status": "error",
15286
+ "message": "Diese Kasse ist dem Benutzer nicht zugewiesen.",
15287
+ "data": {
15288
+ "code": "cashregister_not_assigned"
15289
+ },
15290
+ "code": "cashregister_not_assigned"
15291
+ }
15292
+ },
15293
+ {
15294
+ "case": "stocktake_unknown",
15295
+ "method": "POST",
15296
+ "caller": "register_user_manager",
15297
+ "params": {
15298
+ "stocktakeId": "gibtsnicht",
15299
+ "articleId": "art_kuchen",
15300
+ "quantity": 3000,
15301
+ "idempotencyKey": "k-kuchen-1"
15302
+ },
15303
+ "httpStatus": 200,
15304
+ "headers": {
15305
+ "Kasseneck-Api-Version": "v3",
15306
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15307
+ },
15308
+ "response": {
15309
+ "status": "error",
15310
+ "message": "Inventur nicht gefunden.",
15311
+ "data": {
15312
+ "code": "stocktake_not_found"
15313
+ },
15314
+ "code": "stocktake_not_found"
15315
+ }
15316
+ },
15317
+ {
15318
+ "case": "key_missing",
15319
+ "method": "POST",
15320
+ "caller": "register_user_manager",
15321
+ "params": {
15322
+ "stocktakeId": "inv_laden",
15323
+ "articleId": "art_kuchen",
15324
+ "quantity": 3000
15325
+ },
15326
+ "httpStatus": 200,
15327
+ "headers": {
15328
+ "Kasseneck-Api-Version": "v3",
15329
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15330
+ },
15331
+ "response": {
15332
+ "status": "error",
15333
+ "message": "idempotencyKey fehlt.",
15334
+ "data": {
15335
+ "code": "idempotency_key_required"
15336
+ },
15337
+ "code": "idempotency_key_required"
15338
+ }
15339
+ },
15340
+ {
15341
+ "case": "quantity_invalid",
15342
+ "method": "POST",
15343
+ "caller": "register_user_manager",
15344
+ "params": {
15345
+ "stocktakeId": "inv_laden",
15346
+ "articleId": "art_kuchen",
15347
+ "quantity": -1000,
15348
+ "idempotencyKey": "k-kuchen-1"
15349
+ },
15350
+ "httpStatus": 200,
15351
+ "headers": {
15352
+ "Kasseneck-Api-Version": "v3",
15353
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15354
+ },
15355
+ "response": {
15356
+ "status": "error",
15357
+ "message": "Die Menge muss eine ganze Zahl ≥ 0 sein.",
15358
+ "data": {
15359
+ "code": "invalid_quantity"
15360
+ },
15361
+ "code": "invalid_quantity"
15362
+ }
15363
+ },
15364
+ {
15365
+ "case": "condition_invalid",
15366
+ "method": "POST",
15367
+ "caller": "register_user_manager",
15368
+ "params": {
15369
+ "stocktakeId": "inv_laden",
15370
+ "articleId": "art_kuchen",
15371
+ "quantity": 3000,
15372
+ "idempotencyKey": "k-kuchen-1",
15373
+ "condition": "broken"
15374
+ },
15375
+ "httpStatus": 200,
15376
+ "headers": {
15377
+ "Kasseneck-Api-Version": "v3",
15378
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15379
+ },
15380
+ "response": {
15381
+ "status": "error",
15382
+ "message": "Bitte Eingaben prüfen.",
15383
+ "data": {
15384
+ "errors": [
15385
+ {
15386
+ "field": "condition",
15387
+ "message": "Zustand: sellable oder defective."
15388
+ }
15389
+ ],
15390
+ "code": "validation"
15391
+ },
15392
+ "code": "validation"
15393
+ }
15394
+ },
15395
+ {
15396
+ "case": "article_unknown",
15397
+ "method": "POST",
15398
+ "caller": "register_user_manager",
15399
+ "params": {
15400
+ "stocktakeId": "inv_laden",
15401
+ "articleId": "art_gibtsnicht",
15402
+ "quantity": 3000,
15403
+ "idempotencyKey": "k-kuchen-1"
15404
+ },
15405
+ "httpStatus": 200,
15406
+ "headers": {
15407
+ "Kasseneck-Api-Version": "v3",
15408
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15409
+ },
15410
+ "response": {
15411
+ "status": "error",
15412
+ "message": "Artikel nicht gefunden.",
15413
+ "data": {
15414
+ "code": "article_not_found"
15415
+ },
15416
+ "code": "article_not_found"
15417
+ }
15418
+ },
15419
+ {
15420
+ "case": "not_in_scope",
15421
+ "method": "POST",
15422
+ "caller": "register_user_manager",
15423
+ "params": {
15424
+ "stocktakeId": "inv_wagen",
15425
+ "articleId": "art_kuchen",
15426
+ "quantity": 3000,
15427
+ "idempotencyKey": "k-kuchen-1"
15428
+ },
15429
+ "httpStatus": 200,
15430
+ "headers": {
15431
+ "Kasseneck-Api-Version": "v3",
15432
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15433
+ },
15434
+ "response": {
15435
+ "status": "error",
15436
+ "message": "Der Artikel gehört nicht zu dieser Inventur.",
15437
+ "data": {
15438
+ "code": "article_not_in_scope"
15439
+ },
15440
+ "code": "article_not_in_scope"
15441
+ }
15442
+ },
15443
+ {
15444
+ "case": "not_open",
15445
+ "method": "POST",
15446
+ "caller": "register_user_manager",
15447
+ "params": {
15448
+ "stocktakeId": "inv_keller",
15449
+ "articleId": "art_kaffee",
15450
+ "quantity": 3000,
15451
+ "idempotencyKey": "k-kuchen-1"
15452
+ },
15453
+ "httpStatus": 200,
15454
+ "headers": {
15455
+ "Kasseneck-Api-Version": "v3",
15456
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15457
+ },
15458
+ "response": {
15459
+ "status": "error",
15460
+ "message": "Hier wird gerade nicht gezählt.",
15461
+ "data": {
15462
+ "code": "stocktake_not_open"
15463
+ },
15464
+ "code": "stocktake_not_open"
15465
+ }
15466
+ },
15467
+ {
15468
+ "case": "closed",
15469
+ "method": "POST",
15470
+ "caller": "register_user_manager",
15471
+ "params": {
15472
+ "stocktakeId": "inv_alt",
15473
+ "articleId": "art_kuchen",
15474
+ "quantity": 3000,
15475
+ "idempotencyKey": "k-kuchen-1"
15476
+ },
15477
+ "httpStatus": 200,
15478
+ "headers": {
15479
+ "Kasseneck-Api-Version": "v3",
15480
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15481
+ },
15482
+ "response": {
15483
+ "status": "error",
15484
+ "message": "Die Inventur ist abgeschlossen oder abgebrochen.",
15485
+ "data": {
15486
+ "code": "stocktake_closed"
15487
+ },
15488
+ "code": "stocktake_closed"
15489
+ }
15490
+ },
15491
+ {
15492
+ "case": "success_manager",
15493
+ "method": "POST",
15494
+ "caller": "register_user_manager",
15495
+ "params": {
15496
+ "stocktakeId": "inv_laden",
15497
+ "articleId": "art_kuchen",
15498
+ "quantity": 3000,
15499
+ "idempotencyKey": "k-kuchen-1",
15500
+ "cashregisterId": "KASSE1",
15501
+ "note": "Regal 3"
15502
+ },
15503
+ "httpStatus": 200,
15504
+ "headers": {
15505
+ "Kasseneck-Api-Version": "v3",
15506
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15507
+ },
15508
+ "response": {
15509
+ "status": "success",
15510
+ "message": "",
15511
+ "data": {
15512
+ "count": {
15513
+ "id": "e4594b57b42d4757228bc6466f2f07a157cf9e04c99b5c7dfff4db933003ea1b",
15514
+ "articleId": "art_kuchen",
15515
+ "condition": "sellable",
15516
+ "quantity": 3000,
15517
+ "serialNumbers": [],
15518
+ "round": 1,
15519
+ "countedBy": {
15520
+ "type": "register_user",
15521
+ "id": "ru_chef",
15522
+ "name": "Anna Chef"
15523
+ },
15524
+ "source": "register",
15525
+ "cashregisterId": "KASSE1",
15526
+ "countedAt": "2026-09-26T08:00:00.000Z",
15527
+ "note": "Regal 3",
15528
+ "voided": null
15529
+ },
15530
+ "item": {
15531
+ "articleId": "art_kuchen",
15532
+ "condition": "sellable",
15533
+ "name": "Kuchen",
15534
+ "number": null,
15535
+ "unit": "Stk",
15536
+ "round": 1,
15537
+ "counted": true,
15538
+ "quantity": 3000,
15539
+ "counts": 1,
15540
+ "firstCountedAt": "2026-09-26T08:00:00.000Z",
15541
+ "referenceTime": "2026-09-26T08:00:00.000Z",
15542
+ "countedBy": [
15543
+ {
15544
+ "type": "register_user",
15545
+ "id": "ru_chef",
15546
+ "name": "Anna Chef"
15547
+ }
15548
+ ],
15549
+ "recountRequested": false,
15550
+ "addedLater": false
15551
+ }
15552
+ }
15553
+ }
15554
+ },
15555
+ {
15556
+ "case": "success_cashier",
15557
+ "method": "POST",
15558
+ "caller": "register_user_cashier",
15559
+ "params": {
15560
+ "stocktakeId": "inv_laden",
15561
+ "articleId": "art_kaffee",
15562
+ "quantity": 1000,
15563
+ "idempotencyKey": "k-kuchen-1",
15564
+ "cashregisterId": "KASSE1"
15565
+ },
15566
+ "httpStatus": 200,
15567
+ "headers": {
15568
+ "Kasseneck-Api-Version": "v3",
15569
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15570
+ },
15571
+ "response": {
15572
+ "status": "success",
15573
+ "message": "",
15574
+ "data": {
15575
+ "count": {
15576
+ "id": "e4594b57b42d4757228bc6466f2f07a157cf9e04c99b5c7dfff4db933003ea1b",
15577
+ "articleId": "art_kaffee",
15578
+ "condition": "sellable",
15579
+ "quantity": 1000,
15580
+ "serialNumbers": [],
15581
+ "round": 1,
15582
+ "countedBy": {
15583
+ "type": "register_user",
15584
+ "id": "ru_kellner",
15585
+ "name": "Ben Kellner"
15586
+ },
15587
+ "source": "register",
15588
+ "cashregisterId": "KASSE1",
15589
+ "countedAt": "2026-09-26T08:00:00.000Z",
15590
+ "note": null,
15591
+ "voided": null
15592
+ },
15593
+ "item": {
15594
+ "articleId": "art_kaffee",
15595
+ "condition": "sellable",
15596
+ "name": "Kaffee",
15597
+ "number": null,
15598
+ "unit": "Stk",
15599
+ "round": 1,
15600
+ "counted": true,
15601
+ "quantity": 13000,
15602
+ "counts": 3,
15603
+ "firstCountedAt": "2026-09-26T07:50:00.000Z",
15604
+ "referenceTime": "2026-09-26T08:00:00.000Z",
15605
+ "countedBy": [
15606
+ {
15607
+ "type": "register_user",
15608
+ "id": "ru_kellner",
15609
+ "name": "Ben Kellner"
15610
+ },
15611
+ {
15612
+ "type": "register_user",
15613
+ "id": "ru_chef",
15614
+ "name": "Anna Chef"
15615
+ }
15616
+ ],
15617
+ "recountRequested": false,
15618
+ "addedLater": false
15619
+ }
15620
+ }
15621
+ }
15622
+ },
15623
+ {
15624
+ "case": "success_owner_defective",
15625
+ "method": "POST",
15626
+ "caller": "owner",
15627
+ "params": {
15628
+ "stocktakeId": "inv_laden",
15629
+ "articleId": "art_kuchen",
15630
+ "quantity": 1000,
15631
+ "idempotencyKey": "k-kuchen-1",
15632
+ "condition": "defective"
15633
+ },
15634
+ "httpStatus": 200,
15635
+ "headers": {
15636
+ "Kasseneck-Api-Version": "v3",
15637
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15638
+ },
15639
+ "response": {
15640
+ "status": "success",
15641
+ "message": "",
15642
+ "data": {
15643
+ "count": {
15644
+ "id": "e4594b57b42d4757228bc6466f2f07a157cf9e04c99b5c7dfff4db933003ea1b",
15645
+ "articleId": "art_kuchen",
15646
+ "condition": "defective",
15647
+ "quantity": 1000,
15648
+ "serialNumbers": [],
15649
+ "round": 1,
15650
+ "countedBy": {
15651
+ "type": "owner",
15652
+ "id": "kw_betrieb1",
15653
+ "name": null
15654
+ },
15655
+ "source": "panel",
15656
+ "cashregisterId": null,
15657
+ "countedAt": "2026-09-26T08:00:00.000Z",
15658
+ "note": null,
15659
+ "voided": null
15660
+ },
15661
+ "item": {
15662
+ "articleId": "art_kuchen",
15663
+ "condition": "defective",
15664
+ "name": "Kuchen",
15665
+ "number": null,
15666
+ "unit": "Stk",
15667
+ "round": 1,
15668
+ "counted": true,
15669
+ "quantity": 1000,
15670
+ "counts": 1,
15671
+ "firstCountedAt": "2026-09-26T08:00:00.000Z",
15672
+ "referenceTime": "2026-09-26T08:00:00.000Z",
15673
+ "countedBy": [
15674
+ {
15675
+ "type": "owner",
15676
+ "id": "kw_betrieb1",
15677
+ "name": null
15678
+ }
15679
+ ],
15680
+ "recountRequested": false,
15681
+ "addedLater": true
15682
+ }
15683
+ }
15684
+ }
15685
+ },
15686
+ {
15687
+ "case": "success_same_key",
15688
+ "method": "POST",
15689
+ "caller": "register_user_manager",
15690
+ "params": {
15691
+ "stocktakeId": "inv_laden",
15692
+ "articleId": "art_kuchen",
15693
+ "quantity": 3000,
15694
+ "idempotencyKey": "k-kuchen-1"
15695
+ },
15696
+ "httpStatus": 200,
15697
+ "headers": {
15698
+ "Kasseneck-Api-Version": "v3",
15699
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15700
+ },
15701
+ "response": {
15702
+ "status": "success",
15703
+ "message": "",
15704
+ "data": {
15705
+ "count": {
15706
+ "id": "e4594b57b42d4757228bc6466f2f07a157cf9e04c99b5c7dfff4db933003ea1b",
15707
+ "articleId": "art_kuchen",
15708
+ "condition": "sellable",
15709
+ "quantity": 3000,
15710
+ "serialNumbers": [],
15711
+ "round": 1,
15712
+ "countedBy": {
15713
+ "type": "register_user",
15714
+ "id": "ru_chef",
15715
+ "name": "Anna Chef"
15716
+ },
15717
+ "source": "register",
15718
+ "cashregisterId": null,
15719
+ "countedAt": "2026-09-26T07:59:00.000Z",
15720
+ "note": null,
15721
+ "voided": null
15722
+ },
15723
+ "item": {
15724
+ "articleId": "art_kuchen",
15725
+ "condition": "sellable",
15726
+ "name": "Kuchen",
15727
+ "number": null,
15728
+ "unit": "Stk",
15729
+ "round": 1,
15730
+ "counted": true,
15731
+ "quantity": 3000,
15732
+ "counts": 1,
15733
+ "firstCountedAt": "2026-09-26T07:59:00.000Z",
15734
+ "referenceTime": "2026-09-26T07:59:00.000Z",
15735
+ "countedBy": [
15736
+ {
15737
+ "type": "register_user",
15738
+ "id": "ru_chef",
15739
+ "name": "Anna Chef"
15740
+ }
15741
+ ],
15742
+ "recountRequested": false,
15743
+ "addedLater": false
15744
+ }
15745
+ }
15746
+ }
15747
+ },
15748
+ {
15749
+ "case": "key_conflict",
15750
+ "method": "POST",
15751
+ "caller": "register_user_manager",
15752
+ "params": {
15753
+ "stocktakeId": "inv_laden",
15754
+ "articleId": "art_kuchen",
15755
+ "quantity": 4000,
15756
+ "idempotencyKey": "k-kuchen-1"
15757
+ },
15758
+ "httpStatus": 200,
15759
+ "headers": {
15760
+ "Kasseneck-Api-Version": "v3",
15761
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15762
+ },
15763
+ "response": {
15764
+ "status": "error",
15765
+ "message": "Derselbe idempotencyKey wurde mit anderem Inhalt verwendet.",
15766
+ "data": {
15767
+ "code": "idempotency_conflict"
15768
+ },
15769
+ "code": "idempotency_conflict"
15770
+ }
15771
+ },
15772
+ {
15773
+ "case": "preflight_options",
15774
+ "method": "OPTIONS",
15775
+ "caller": "other",
15776
+ "params": {
15777
+ "$body": {}
15778
+ },
15779
+ "httpStatus": 200,
15780
+ "headers": {
15781
+ "Kasseneck-Api-Version": "v3",
15782
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15783
+ },
15784
+ "response": {
15785
+ "status": "error",
15786
+ "message": "Bitte verwenden Sie eine POST-Anfrage",
15787
+ "data": {
15788
+ "code": "method_not_allowed"
15789
+ },
15790
+ "code": "method_not_allowed"
15791
+ }
15792
+ }
15793
+ ]
15794
+ },
15795
+ "voidMyStocktakeCount": {
15796
+ "codebase": "kasse",
15797
+ "cases": [
15798
+ {
15799
+ "case": "without_token",
15800
+ "method": "POST",
15801
+ "caller": "none",
15802
+ "params": {
15803
+ "stocktakeId": "inv_laden",
15804
+ "countId": "zk1",
15805
+ "reason": "Doppelt gezählt",
15806
+ "idempotencyKey": "s-zk1"
15807
+ },
15808
+ "httpStatus": 200,
15809
+ "headers": {
15810
+ "Kasseneck-Api-Version": "v3",
15811
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15812
+ },
15813
+ "response": {
15814
+ "status": "error",
15815
+ "message": "Ungültiger Request: Authorization key erwartet.",
15816
+ "data": {
15817
+ "code": "unauthorized"
15818
+ },
15819
+ "code": "unauthorized"
15820
+ }
15821
+ },
15822
+ {
15823
+ "case": "data_missing",
15824
+ "method": "POST",
15825
+ "caller": "register_user_manager",
15826
+ "params": {
15827
+ "stocktakeId": "inv_laden",
15828
+ "reason": "x",
15829
+ "idempotencyKey": "k"
15830
+ },
15831
+ "httpStatus": 200,
15832
+ "headers": {
15833
+ "Kasseneck-Api-Version": "v3",
15834
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15835
+ },
15836
+ "response": {
15837
+ "status": "error",
15838
+ "message": "Ungültige Daten: Nicht alle erforderlichen Parameter wurden übergeben oder Typen stimmen nicht überein: stocktakeId, countId",
15839
+ "data": {
15840
+ "code": "validation",
15841
+ "errors": [
15842
+ {
15843
+ "field": "countId",
15844
+ "message": "Pflichtfeld fehlt."
15845
+ }
15846
+ ]
15847
+ },
15848
+ "code": "validation"
15849
+ }
15850
+ },
15851
+ {
15852
+ "case": "module_off",
15853
+ "method": "POST",
15854
+ "caller": "owner",
15855
+ "params": {
15856
+ "stocktakeId": "inv_laden",
15857
+ "countId": "zk1",
15858
+ "reason": "Doppelt gezählt",
15859
+ "idempotencyKey": "s-zk1"
15860
+ },
15861
+ "httpStatus": 200,
15862
+ "headers": {
15863
+ "Kasseneck-Api-Version": "v3",
15864
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15865
+ },
15866
+ "response": {
15867
+ "status": "error",
15868
+ "message": "Modul „Lager\" ist nicht aktiv.",
15869
+ "data": {
15870
+ "code": "module_inactive"
15871
+ },
15872
+ "code": "module_inactive"
15873
+ }
15874
+ },
15875
+ {
15876
+ "case": "cashier_without_permission",
15877
+ "method": "POST",
15878
+ "caller": "register_user_cashier",
15879
+ "params": {
15880
+ "stocktakeId": "inv_laden",
15881
+ "countId": "zk1",
15882
+ "reason": "Doppelt gezählt",
15883
+ "idempotencyKey": "s-zk1"
15884
+ },
15885
+ "httpStatus": 200,
15886
+ "headers": {
15887
+ "Kasseneck-Api-Version": "v3",
15888
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15889
+ },
15890
+ "response": {
15891
+ "status": "error",
15892
+ "message": "Keine Berechtigung für diesen Lagervorgang.",
15893
+ "data": {
15894
+ "code": "not_permitted"
15895
+ },
15896
+ "code": "not_permitted"
15897
+ }
15898
+ },
15899
+ {
15900
+ "case": "stocktake_unknown",
15901
+ "method": "POST",
15902
+ "caller": "register_user_manager",
15903
+ "params": {
15904
+ "stocktakeId": "gibtsnicht",
15905
+ "countId": "zk1",
15906
+ "reason": "Doppelt gezählt",
15907
+ "idempotencyKey": "s-zk1"
15908
+ },
15909
+ "httpStatus": 200,
15910
+ "headers": {
15911
+ "Kasseneck-Api-Version": "v3",
15912
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15913
+ },
15914
+ "response": {
15915
+ "status": "error",
15916
+ "message": "Inventur nicht gefunden.",
15917
+ "data": {
15918
+ "code": "stocktake_not_found"
15919
+ },
15920
+ "code": "stocktake_not_found"
15921
+ }
15922
+ },
15923
+ {
15924
+ "case": "count_unknown",
15925
+ "method": "POST",
15926
+ "caller": "register_user_manager",
15927
+ "params": {
15928
+ "stocktakeId": "inv_laden",
15929
+ "countId": "gibtsnicht",
15930
+ "reason": "Doppelt gezählt",
15931
+ "idempotencyKey": "s-zk1"
15932
+ },
15933
+ "httpStatus": 200,
15934
+ "headers": {
15935
+ "Kasseneck-Api-Version": "v3",
15936
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15937
+ },
15938
+ "response": {
15939
+ "status": "error",
15940
+ "message": "Zählung nicht gefunden.",
15941
+ "data": {
15942
+ "code": "count_not_found"
15943
+ },
15944
+ "code": "count_not_found"
15945
+ }
15946
+ },
15947
+ {
15948
+ "case": "reason_missing",
15949
+ "method": "POST",
15950
+ "caller": "register_user_manager",
15951
+ "params": {
15952
+ "stocktakeId": "inv_laden",
15953
+ "countId": "zk1",
15954
+ "reason": "",
15955
+ "idempotencyKey": "s-zk1"
15956
+ },
15957
+ "httpStatus": 200,
15958
+ "headers": {
15959
+ "Kasseneck-Api-Version": "v3",
15960
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15961
+ },
15962
+ "response": {
15963
+ "status": "error",
15964
+ "message": "Bitte Eingaben prüfen.",
15965
+ "data": {
15966
+ "errors": [
15967
+ {
15968
+ "field": "reason",
15969
+ "message": "Grund mit 1 bis 500 Zeichen."
15970
+ }
15971
+ ],
15972
+ "code": "validation"
15973
+ },
15974
+ "code": "validation"
15975
+ }
15976
+ },
15977
+ {
15978
+ "case": "key_missing",
15979
+ "method": "POST",
15980
+ "caller": "register_user_manager",
15981
+ "params": {
15982
+ "stocktakeId": "inv_laden",
15983
+ "countId": "zk1",
15984
+ "reason": "Doppelt gezählt"
15985
+ },
15986
+ "httpStatus": 200,
15987
+ "headers": {
15988
+ "Kasseneck-Api-Version": "v3",
15989
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
15990
+ },
15991
+ "response": {
15992
+ "status": "error",
15993
+ "message": "idempotencyKey fehlt.",
15994
+ "data": {
15995
+ "code": "idempotency_key_required"
15996
+ },
15997
+ "code": "idempotency_key_required"
15998
+ }
15999
+ },
16000
+ {
16001
+ "case": "foreign_count",
16002
+ "method": "POST",
16003
+ "caller": "register_user_cashier",
16004
+ "params": {
16005
+ "stocktakeId": "inv_laden",
16006
+ "countId": "zc1",
16007
+ "reason": "Doppelt gezählt",
16008
+ "idempotencyKey": "s-zk1"
16009
+ },
16010
+ "httpStatus": 200,
16011
+ "headers": {
16012
+ "Kasseneck-Api-Version": "v3",
16013
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16014
+ },
16015
+ "response": {
16016
+ "status": "error",
16017
+ "message": "Fremde Zählungen storniert nur, wer Inventuren prüfen und abschließen darf.",
16018
+ "data": {
16019
+ "code": "not_permitted"
16020
+ },
16021
+ "code": "not_permitted"
16022
+ }
16023
+ },
16024
+ {
16025
+ "case": "already_cancelled",
16026
+ "method": "POST",
16027
+ "caller": "register_user_manager",
16028
+ "params": {
16029
+ "stocktakeId": "inv_laden",
16030
+ "countId": "zc0",
16031
+ "reason": "Doppelt gezählt",
16032
+ "idempotencyKey": "s-zk1"
16033
+ },
16034
+ "httpStatus": 200,
16035
+ "headers": {
16036
+ "Kasseneck-Api-Version": "v3",
16037
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16038
+ },
16039
+ "response": {
16040
+ "status": "error",
16041
+ "message": "Die Zählung ist schon storniert.",
16042
+ "data": {
16043
+ "code": "count_already_voided"
16044
+ },
16045
+ "code": "count_already_voided"
16046
+ }
16047
+ },
16048
+ {
16049
+ "case": "not_open",
16050
+ "method": "POST",
16051
+ "caller": "register_user_manager",
16052
+ "params": {
16053
+ "stocktakeId": "inv_keller",
16054
+ "countId": "zp1",
16055
+ "reason": "Doppelt gezählt",
16056
+ "idempotencyKey": "s-zk1"
16057
+ },
16058
+ "httpStatus": 200,
16059
+ "headers": {
16060
+ "Kasseneck-Api-Version": "v3",
16061
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16062
+ },
16063
+ "response": {
16064
+ "status": "error",
16065
+ "message": "Hier wird gerade nicht gezählt.",
16066
+ "data": {
16067
+ "code": "stocktake_not_open"
16068
+ },
16069
+ "code": "stocktake_not_open"
16070
+ }
16071
+ },
16072
+ {
16073
+ "case": "success_cashier",
16074
+ "method": "POST",
16075
+ "caller": "register_user_cashier",
16076
+ "params": {
16077
+ "stocktakeId": "inv_laden",
16078
+ "countId": "zk1",
16079
+ "reason": "Doppelt gezählt",
16080
+ "idempotencyKey": "s-zk1"
16081
+ },
16082
+ "httpStatus": 200,
16083
+ "headers": {
16084
+ "Kasseneck-Api-Version": "v3",
16085
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16086
+ },
16087
+ "response": {
16088
+ "status": "success",
16089
+ "message": "",
16090
+ "data": {
16091
+ "count": {
16092
+ "id": "zk1",
16093
+ "articleId": "art_kaffee",
16094
+ "condition": "sellable",
16095
+ "quantity": 5000,
16096
+ "serialNumbers": [],
16097
+ "round": 1,
16098
+ "countedBy": {
16099
+ "type": "register_user",
16100
+ "id": "ru_kellner",
16101
+ "name": "Ben Kellner"
16102
+ },
16103
+ "source": "register",
16104
+ "cashregisterId": "KASSE1",
16105
+ "countedAt": "2026-09-26T07:50:00.000Z",
16106
+ "note": "Regal oben",
16107
+ "voided": {
16108
+ "reason": "Doppelt gezählt",
16109
+ "voidedAt": "2026-09-26T08:00:00.000Z",
16110
+ "voidedBy": {
16111
+ "type": "register_user",
16112
+ "id": "ru_kellner",
16113
+ "name": "Ben Kellner"
16114
+ }
16115
+ }
16116
+ },
16117
+ "item": {
16118
+ "articleId": "art_kaffee",
16119
+ "condition": "sellable",
16120
+ "name": "Kaffee",
16121
+ "number": null,
16122
+ "unit": "Stk",
16123
+ "round": 1,
16124
+ "counted": true,
16125
+ "quantity": 7000,
16126
+ "counts": 1,
16127
+ "firstCountedAt": "2026-09-26T07:55:00.000Z",
16128
+ "referenceTime": "2026-09-26T07:55:00.000Z",
16129
+ "countedBy": [
16130
+ {
16131
+ "type": "register_user",
16132
+ "id": "ru_chef",
16133
+ "name": "Anna Chef"
16134
+ }
16135
+ ],
16136
+ "recountRequested": false,
16137
+ "addedLater": false
16138
+ }
16139
+ }
16140
+ }
16141
+ },
16142
+ {
16143
+ "case": "success_manager",
16144
+ "method": "POST",
16145
+ "caller": "register_user_manager",
16146
+ "params": {
16147
+ "stocktakeId": "inv_laden",
16148
+ "countId": "zk1",
16149
+ "reason": "Doppelt gezählt",
16150
+ "idempotencyKey": "s-zk1"
16151
+ },
16152
+ "httpStatus": 200,
16153
+ "headers": {
16154
+ "Kasseneck-Api-Version": "v3",
16155
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16156
+ },
16157
+ "response": {
16158
+ "status": "success",
16159
+ "message": "",
16160
+ "data": {
16161
+ "count": {
16162
+ "id": "zk1",
16163
+ "articleId": "art_kaffee",
16164
+ "condition": "sellable",
16165
+ "quantity": 5000,
16166
+ "serialNumbers": [],
16167
+ "round": 1,
16168
+ "countedBy": {
16169
+ "type": "register_user",
16170
+ "id": "ru_kellner",
16171
+ "name": "Ben Kellner"
16172
+ },
16173
+ "source": "register",
16174
+ "cashregisterId": "KASSE1",
16175
+ "countedAt": "2026-09-26T07:50:00.000Z",
16176
+ "note": "Regal oben",
16177
+ "voided": {
16178
+ "reason": "Doppelt gezählt",
16179
+ "voidedAt": "2026-09-26T08:00:00.000Z",
16180
+ "voidedBy": {
16181
+ "type": "register_user",
16182
+ "id": "ru_chef",
16183
+ "name": "Anna Chef"
16184
+ }
16185
+ }
16186
+ },
16187
+ "item": {
16188
+ "articleId": "art_kaffee",
16189
+ "condition": "sellable",
16190
+ "name": "Kaffee",
16191
+ "number": null,
16192
+ "unit": "Stk",
16193
+ "round": 1,
16194
+ "counted": true,
16195
+ "quantity": 7000,
16196
+ "counts": 1,
16197
+ "firstCountedAt": "2026-09-26T07:55:00.000Z",
16198
+ "referenceTime": "2026-09-26T07:55:00.000Z",
16199
+ "countedBy": [
16200
+ {
16201
+ "type": "register_user",
16202
+ "id": "ru_chef",
16203
+ "name": "Anna Chef"
16204
+ }
16205
+ ],
16206
+ "recountRequested": false,
16207
+ "addedLater": false
16208
+ }
16209
+ }
16210
+ }
16211
+ },
16212
+ {
16213
+ "case": "success_same_key",
16214
+ "method": "POST",
16215
+ "caller": "register_user_manager",
16216
+ "params": {
16217
+ "stocktakeId": "inv_laden",
16218
+ "countId": "zk1",
16219
+ "reason": "Doppelt gezählt",
16220
+ "idempotencyKey": "s-zk1"
16221
+ },
16222
+ "httpStatus": 200,
16223
+ "headers": {
16224
+ "Kasseneck-Api-Version": "v3",
16225
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16226
+ },
16227
+ "response": {
16228
+ "status": "success",
16229
+ "message": "",
16230
+ "data": {
16231
+ "count": {
16232
+ "id": "zk1",
16233
+ "articleId": "art_kaffee",
16234
+ "condition": "sellable",
16235
+ "quantity": 5000,
16236
+ "serialNumbers": [],
16237
+ "round": 1,
16238
+ "countedBy": {
16239
+ "type": "register_user",
16240
+ "id": "ru_kellner",
16241
+ "name": "Ben Kellner"
16242
+ },
16243
+ "source": "register",
16244
+ "cashregisterId": "KASSE1",
16245
+ "countedAt": "2026-09-26T07:50:00.000Z",
16246
+ "note": "Regal oben",
16247
+ "voided": {
16248
+ "reason": "Doppelt gezählt",
16249
+ "voidedAt": "2026-09-26T07:59:00.000Z",
16250
+ "voidedBy": {
16251
+ "type": "register_user",
16252
+ "id": "ru_chef",
16253
+ "name": "Anna Chef"
16254
+ }
16255
+ }
16256
+ },
16257
+ "item": {
16258
+ "articleId": "art_kaffee",
16259
+ "condition": "sellable",
16260
+ "name": "Kaffee",
16261
+ "number": null,
16262
+ "unit": "Stk",
16263
+ "round": 1,
16264
+ "counted": true,
16265
+ "quantity": 7000,
16266
+ "counts": 1,
16267
+ "firstCountedAt": "2026-09-26T07:55:00.000Z",
16268
+ "referenceTime": "2026-09-26T07:55:00.000Z",
16269
+ "countedBy": [
16270
+ {
16271
+ "type": "register_user",
16272
+ "id": "ru_chef",
16273
+ "name": "Anna Chef"
16274
+ }
16275
+ ],
16276
+ "recountRequested": false,
16277
+ "addedLater": false
16278
+ }
16279
+ }
16280
+ }
16281
+ },
16282
+ {
16283
+ "case": "key_conflict",
16284
+ "method": "POST",
16285
+ "caller": "register_user_manager",
16286
+ "params": {
16287
+ "stocktakeId": "inv_laden",
16288
+ "countId": "zc1",
16289
+ "reason": "Doppelt gezählt",
16290
+ "idempotencyKey": "s-zk1"
16291
+ },
16292
+ "httpStatus": 200,
16293
+ "headers": {
16294
+ "Kasseneck-Api-Version": "v3",
16295
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16296
+ },
16297
+ "response": {
16298
+ "status": "error",
16299
+ "message": "Derselbe idempotencyKey wurde mit anderem Inhalt verwendet.",
16300
+ "data": {
16301
+ "code": "idempotency_conflict"
16302
+ },
16303
+ "code": "idempotency_conflict"
16304
+ }
16305
+ },
16306
+ {
16307
+ "case": "preflight_options",
16308
+ "method": "OPTIONS",
16309
+ "caller": "other",
16310
+ "params": {
16311
+ "$body": {}
16312
+ },
16313
+ "httpStatus": 200,
16314
+ "headers": {
16315
+ "Kasseneck-Api-Version": "v3",
16316
+ "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
16317
+ },
16318
+ "response": {
16319
+ "status": "error",
16320
+ "message": "Bitte verwenden Sie eine POST-Anfrage",
16321
+ "data": {
16322
+ "code": "method_not_allowed"
16323
+ },
16324
+ "code": "method_not_allowed"
16325
+ }
16326
+ }
16327
+ ]
13373
16328
  }
13374
16329
  }
13375
16330
  }