{
  "_hinweis": "Vertrags-Export /v3, erzeugt aus den echten Handlern (npm run vertrag:v3 in functions/ und functions-kasse/). Nicht von Hand pflegen.",
  "_quelle": {
    "sha256": "6d19c6313438a44d5f522bcaf248de293c6e285dd891185a773e05e9eef6f45b",
    "inputsSha256": "f5333df7ca3e38be59541e24fcca5c0cd3dc59a1f897a06218db220e3f35fea3",
    "backendPackage": "@kreiseck/kasseneck-api@0.14.0",
    "inputs": [
      "functions-kasse/article-endpoints.js",
      "functions-kasse/articles-core.js",
      "functions-kasse/gemeinsam/api-rand.js",
      "functions-kasse/gemeinsam/api-vokabular-v3.js",
      "functions-kasse/gemeinsam/webhook-versand.js",
      "functions-kasse/inventur-core.js",
      "functions-kasse/inventur-daten.js",
      "functions-kasse/inventur-endpoints.js",
      "functions-kasse/inventur-lauf.js",
      "functions-kasse/konto-webhook-core.js",
      "functions-kasse/lager-api-artikel.js",
      "functions-kasse/lager-api-buchen.js",
      "functions-kasse/lager-api-core.js",
      "functions-kasse/lager-api-endpoints.js",
      "functions-kasse/lager-api-ereignisse.js",
      "functions-kasse/lager-api-idempotenz.js",
      "functions-kasse/lager-api-inventur.js",
      "functions-kasse/lager-api-reservierung.js",
      "functions-kasse/lager-api-varianten.js",
      "functions-kasse/lager-buchung.js",
      "functions-kasse/lager-core.js",
      "functions-kasse/lager-endpoints.js",
      "functions-kasse/lager-laeufe.js",
      "functions-kasse/lager-reservierung-core.js",
      "functions-kasse/lager-reservierung.js",
      "functions-kasse/lager-trigger.js",
      "functions-kasse/lager-verkauf-core.js",
      "functions-kasse/lager-vorgaenge.js",
      "functions-kasse/test/unit/fixtures/v3-waechter.js",
      "functions-kasse/test/unit/v3-vertrag-export-lager.test.js",
      "functions-kasse/varianten-core.js",
      "functions/test/unit/fixtures/vertrag-v3/ablage.js"
    ]
  },
  "channel": "api",
  "note": "Lager-API (Stufe 5a, Artikel schreiben, Buchen und Reservierung 5b, Variantengruppen 5c, Inventur Lager-Kern Stufe 3) unter /v3: Faelle in Ablaufreihenfolge (ein Konto, Standort haupt); Inventuren antworten mit stocktake (Kopf), item (Position) und count (Zaehlung): blind, solange counting (kein expected*/difference*), Soll, Differenz und notBooked ab review, Werte nur mit Schalter kosten, Wiederholung = gespeicherte erste Antwort (Zaehlen: Schluessel je Inventur), Pruefen und Abschliessen laufen im Hintergrund (review.complete, closing.parts/bookedParts), der Abschluss bucht Bewegungen type stocktake (stock.changed mit cause stocktake), getStocktakePdf liefert application/pdf, ueber 9 MB JSON download mit signiertem Link (15 Minuten; im Export mit kleiner Grenze, PDF als Platzhalter); Variantengruppen antworten mit variantGroup (Merkmale, Vorgaben, Varianten mit articleId und variantAttributes; Wiederholung = gespeicherte Antwort), jede Variante ist ein Artikel (addVariant antwortet wie createArticle, listArticles { variantGroupId } liest sie), Stilllegen der Gruppe legt alle Varianten still und meldet variant_group.updated; Reservierungen antworten mit reservation (wie getReservation; Wiederholung = gespeicherte Antwort), laufen ueber einen Auftrag zum Ablaufzeitpunkt ab (Verlaengern ersetzt ihn), werden ueber issueInvoice (items[].reservationId) beim Buchen der Rechnung eingeloest und melden reservation.expired/released/redeemed; Buchungen antworten mit operationId, movementIds, lotIds und warnings[] (Hinweise aus warningCodes.inventory, kein Fehler); Preise duerfen ohne Schalter kosten gesendet werden, Werte kommen nur mit ihm zurueck; Mindestbestand je Standort = minStockByLocation (Tausendstel, Schwelle fuer below_minimum, gemessen an available = onHand − reserved), minStock ist ein Altfeld ohne Wirkung darauf; dazu webhookEvents = zugestellte Konto-Webhooks (Huelle wie gesendet, ohne Probesendungen). Secrets als Platzhalter.",
  "cases": [
    {
      "channel": "api",
      "name": "create_webhook",
      "endpoint": "createWebhook",
      "path": "/v3/createWebhook",
      "params": {
        "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
        "events": [
          "stock.changed",
          "stock.below_minimum",
          "article.created",
          "article.updated",
          "article.deactivated"
        ],
        "description": "Webshop Kornblum"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "secret": "whsec_EXAMPLEDF1171A2AAAAAAAAAAAAAAAAA",
          "webhook": {
            "id": "3pJJwmZZjQTW",
            "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
            "createdAt": "2026-10-06T06:00:02.000Z",
            "events": [
              "stock.changed",
              "stock.below_minimum",
              "article.created",
              "article.updated",
              "article.deactivated"
            ],
            "active": true,
            "description": "Webshop Kornblum",
            "lastDelivery": null,
            "consecutiveFailures": 0
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_locations",
      "endpoint": "listLocations",
      "path": "/v3/listLocations",
      "params": {},
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "locations": [
            {
              "id": "lager1",
              "name": "Lager Kornblum",
              "type": "warehouse",
              "address": {
                "street": "Mühlgasse 4",
                "zip": "5020",
                "city": "Salzburg",
                "country": "AT"
              },
              "licensePlate": null,
              "active": true
            },
            {
              "id": "lieferwagen",
              "name": "Lieferwagen",
              "type": "vehicle",
              "address": null,
              "licensePlate": "S-123AB",
              "active": true
            },
            {
              "id": "haupt",
              "name": "Hauptstandort",
              "type": "store",
              "address": null,
              "licensePlate": null,
              "active": true
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "get_article",
      "endpoint": "getArticle",
      "path": "/v3/getArticle",
      "params": {
        "articleId": "roggenbrot"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "roggenbrot",
            "name": "Roggenbrot 1 kg",
            "description": null,
            "unitPriceCents": 450,
            "vatRate": 10,
            "unit": "Stk",
            "number": "A-100",
            "ean": "9001234567896",
            "internalCode": null,
            "groupId": "brot",
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": 5000,
            "active": true,
            "createdAt": "2026-10-01T04:00:00.000Z",
            "updatedAt": "2026-10-06T06:00:04.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 5000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_get_article_not_found",
      "endpoint": "getArticle",
      "path": "/v3/getArticle",
      "params": {
        "articleId": "gibt_es_nicht"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Artikel nicht gefunden.",
        "data": {
          "code": "article_not_found"
        },
        "code": "article_not_found"
      }
    },
    {
      "channel": "api",
      "name": "list_articles_first_page",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "limit": 2
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "articles": [
            {
              "id": "kipferl",
              "name": "Butterkipferl",
              "description": null,
              "unitPriceCents": 130,
              "vatRate": 10,
              "unit": "Stk",
              "number": "A-200",
              "ean": null,
              "internalCode": "KB-200",
              "groupId": "gebaeck",
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": true,
              "createdAt": "2026-10-01T04:30:00.000Z",
              "updatedAt": "2026-10-06T06:00:04.000Z",
              "stockLocationIds": [
                "haupt",
                "lieferwagen"
              ],
              "minStockByLocation": {}
            },
            {
              "id": "roggenbrot",
              "name": "Roggenbrot 1 kg",
              "description": null,
              "unitPriceCents": 450,
              "vatRate": 10,
              "unit": "Stk",
              "number": "A-100",
              "ean": "9001234567896",
              "internalCode": null,
              "groupId": "brot",
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": 5000,
              "active": true,
              "createdAt": "2026-10-01T04:00:00.000Z",
              "updatedAt": "2026-10-06T06:00:04.000Z",
              "stockLocationIds": [
                "haupt"
              ],
              "minStockByLocation": {
                "haupt": 5000
              }
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjY2NDA0MDAwMDAwLCJpZCI6InJvZ2dlbmJyb3QifQ"
        }
      }
    },
    {
      "channel": "api",
      "name": "list_articles_next_page",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "limit": 2,
        "cursor": "eyJ6ZWl0IjoxNzkxMjY2NDA0MDAwMDAwLCJpZCI6InJvZ2dlbmJyb3QifQ"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "articles": [
            {
              "id": "semmel",
              "name": "Kaisersemmel",
              "description": null,
              "unitPriceCents": 120,
              "vatRate": 10,
              "unit": "Stk",
              "number": "A-300",
              "ean": null,
              "internalCode": "KB-300",
              "groupId": "gebaeck",
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": false,
              "createdAt": "2026-10-06T06:00:04.000Z",
              "updatedAt": "2026-10-06T06:00:04.001Z",
              "stockLocationIds": [
                "haupt"
              ],
              "minStockByLocation": {}
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_articles_updated_since",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "updatedSince": "2026-10-05T04:15:00.000Z",
        "active": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "articles": [
            {
              "id": "kipferl",
              "name": "Butterkipferl",
              "description": null,
              "unitPriceCents": 130,
              "vatRate": 10,
              "unit": "Stk",
              "number": "A-200",
              "ean": null,
              "internalCode": "KB-200",
              "groupId": "gebaeck",
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": true,
              "createdAt": "2026-10-01T04:30:00.000Z",
              "updatedAt": "2026-10-06T06:00:04.000Z",
              "stockLocationIds": [
                "haupt",
                "lieferwagen"
              ],
              "minStockByLocation": {}
            },
            {
              "id": "roggenbrot",
              "name": "Roggenbrot 1 kg",
              "description": null,
              "unitPriceCents": 450,
              "vatRate": 10,
              "unit": "Stk",
              "number": "A-100",
              "ean": "9001234567896",
              "internalCode": null,
              "groupId": "brot",
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": 5000,
              "active": true,
              "createdAt": "2026-10-01T04:00:00.000Z",
              "updatedAt": "2026-10-06T06:00:04.000Z",
              "stockLocationIds": [
                "haupt"
              ],
              "minStockByLocation": {
                "haupt": 5000
              }
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "error_list_articles_invalid_cursor",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "cursor": "kaputt"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Der Blätter-Zeiger ist ungültig.",
        "data": {
          "code": "invalid_cursor"
        },
        "code": "invalid_cursor"
      }
    },
    {
      "channel": "api",
      "name": "error_list_articles_validation",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "limit": 500
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "limit",
              "message": "Limit muss eine ganze Zahl von 1 bis 200 sein."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "lookup_article_by_ean",
      "endpoint": "lookupArticleByCode",
      "path": "/v3/lookupArticleByCode",
      "params": {
        "code": "9001234567896"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "roggenbrot",
            "name": "Roggenbrot 1 kg",
            "description": null,
            "unitPriceCents": 450,
            "vatRate": 10,
            "unit": "Stk",
            "number": "A-100",
            "ean": "9001234567896",
            "internalCode": null,
            "groupId": "brot",
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": 5000,
            "active": true,
            "createdAt": "2026-10-01T04:00:00.000Z",
            "updatedAt": "2026-10-06T06:00:04.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 5000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_lookup_article_unknown_code",
      "endpoint": "lookupArticleByCode",
      "path": "/v3/lookupArticleByCode",
      "params": {
        "code": "4006381333931"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Artikel nicht gefunden.",
        "data": {
          "code": "article_not_found"
        },
        "code": "article_not_found"
      }
    },
    {
      "channel": "api",
      "name": "get_stock",
      "endpoint": "getStock",
      "path": "/v3/getStock",
      "params": {
        "articleId": "roggenbrot"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stock": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "onHand": 4000,
              "reserved": 0,
              "available": 4000,
              "defective": 0,
              "sequence": 2,
              "updatedAt": "2026-10-06T06:00:04.000Z"
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock",
      "endpoint": "listStock",
      "path": "/v3/listStock",
      "params": {
        "locationId": "haupt"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stock": [
            {
              "articleId": "kipferl",
              "locationId": "haupt",
              "onHand": 40000,
              "reserved": 0,
              "available": 40000,
              "defective": 0,
              "sequence": 1,
              "updatedAt": "2026-10-06T06:00:03.000Z"
            },
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "onHand": 4000,
              "reserved": 0,
              "available": 4000,
              "defective": 0,
              "sequence": 2,
              "updatedAt": "2026-10-06T06:00:04.000Z"
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_below_minimum",
      "endpoint": "listStock",
      "path": "/v3/listStock",
      "params": {
        "belowMinimum": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stock": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "onHand": 4000,
              "reserved": 0,
              "available": 4000,
              "defective": 0,
              "sequence": 2,
              "updatedAt": "2026-10-06T06:00:04.000Z"
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "articleId": "roggenbrot"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "auto2_0",
              "articleId": "roggenbrot",
              "type": "loss",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": -8000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 4000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto2",
              "source": {
                "id": null,
                "position": null,
                "type": "panel",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:00:04.000Z",
              "lots": [
                {
                  "lotId": "auto1_L0",
                  "quantity": 8000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            },
            {
              "id": "auto1_0",
              "articleId": "roggenbrot",
              "type": "goods_receipt",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 12000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 12000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto1",
              "source": {
                "id": null,
                "position": null,
                "type": "panel",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:00:03.000Z",
              "lots": [
                {
                  "lotId": "auto1_L0",
                  "quantity": 12000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements_goods_receipt",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "locationId": "haupt",
        "type": "goods_receipt",
        "source": "panel"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "auto1_1",
              "articleId": "kipferl",
              "type": "goods_receipt",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 40000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 40000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto1",
              "source": {
                "id": null,
                "position": null,
                "type": "panel",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:00:03.000Z",
              "lots": [
                {
                  "lotId": "auto1_L1",
                  "quantity": 40000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            },
            {
              "id": "auto1_0",
              "articleId": "roggenbrot",
              "type": "goods_receipt",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 12000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 12000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto1",
              "source": {
                "id": null,
                "position": null,
                "type": "panel",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:00:03.000Z",
              "lots": [
                {
                  "lotId": "auto1_L0",
                  "quantity": 12000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "error_list_stock_movements_validation",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "articleId": "roggenbrot",
        "locationId": "haupt"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "locationId",
              "message": "Bitte nur nach articleId ODER locationId filtern."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "get_article_with_costs",
      "endpoint": "getArticle",
      "path": "/v3/getArticle",
      "params": {
        "articleId": "roggenbrot"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "roggenbrot",
            "name": "Roggenbrot 1 kg",
            "description": null,
            "unitPriceCents": 450,
            "vatRate": 10,
            "unit": "Stk",
            "number": "A-100",
            "ean": "9001234567896",
            "internalCode": null,
            "groupId": "brot",
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": 5000,
            "active": true,
            "createdAt": "2026-10-01T04:00:00.000Z",
            "updatedAt": "2026-10-06T06:00:04.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 5000
            },
            "purchasePriceMicros": 1200000
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_with_costs",
      "endpoint": "listStock",
      "path": "/v3/listStock",
      "params": {
        "articleId": "roggenbrot"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stock": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "onHand": 4000,
              "reserved": 0,
              "available": 4000,
              "defective": 0,
              "sequence": 2,
              "updatedAt": "2026-10-06T06:00:04.000Z"
            }
          ],
          "nextCursor": null,
          "values": [
            {
              "articleId": "roggenbrot",
              "stockValueCents": 480,
              "averageCostMicros": 1200000
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements_with_costs",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "articleId": "roggenbrot",
        "limit": 1
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "auto2_0",
              "articleId": "roggenbrot",
              "type": "loss",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": -8000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 4000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto2",
              "source": {
                "id": null,
                "position": null,
                "type": "panel",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:00:04.000Z",
              "lots": [
                {
                  "lotId": "auto1_L0",
                  "quantity": 8000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z",
                  "valueCents": 960
                }
              ],
              "valueDeltaCents": -960,
              "consumedValueCents": 960
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjY2NDA0MDAwLCJpZCI6ImF1dG8yXzAifQ"
        }
      }
    },
    {
      "channel": "api",
      "name": "list_webhooks",
      "endpoint": "listWebhooks",
      "path": "/v3/listWebhooks",
      "params": {},
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "webhooks": [
            {
              "id": "3pJJwmZZjQTW",
              "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
              "createdAt": "2026-10-06T06:00:02.000Z",
              "events": [
                "stock.changed",
                "stock.below_minimum",
                "article.created",
                "article.updated",
                "article.deactivated"
              ],
              "active": true,
              "description": "Webshop Kornblum",
              "lastDelivery": {
                "at": "2026-10-06T06:00:04.000Z",
                "status": "delivered",
                "statusCode": 200
              },
              "consecutiveFailures": 0
            }
          ],
          "events": [
            "stock.changed",
            "stock.below_minimum",
            "article.created",
            "article.updated",
            "article.deactivated",
            "reservation.expired",
            "reservation.released",
            "reservation.redeemed",
            "variant_group.created",
            "variant_group.updated"
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "update_webhook",
      "endpoint": "updateWebhook",
      "path": "/v3/updateWebhook",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "events": [
          "stock.changed",
          "stock.below_minimum"
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "webhook": {
            "id": "3pJJwmZZjQTW",
            "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
            "createdAt": "2026-10-06T06:00:02.000Z",
            "events": [
              "stock.changed",
              "stock.below_minimum"
            ],
            "active": true,
            "description": "Webshop Kornblum",
            "lastDelivery": {
              "at": "2026-10-06T06:00:04.000Z",
              "status": "delivered",
              "statusCode": 200
            },
            "consecutiveFailures": 0
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_update_webhook_not_found",
      "endpoint": "updateWebhook",
      "path": "/v3/updateWebhook",
      "params": {
        "webhookId": "gibt_es_nicht",
        "active": false
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Webhook nicht gefunden.",
        "data": {
          "code": "webhook_not_found"
        },
        "code": "webhook_not_found"
      }
    },
    {
      "channel": "api",
      "name": "send_webhook_test",
      "endpoint": "sendWebhookTest",
      "path": "/v3/sendWebhookTest",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "event": "stock.below_minimum"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "eventId": "evt_Rq6FfqGQDbALsgsNFC86",
          "event": "stock.below_minimum",
          "deliveries": [
            {
              "deliveryId": "auto9",
              "webhookId": "3pJJwmZZjQTW",
              "status": "delivered",
              "statusCode": 200
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "error_send_webhook_test_not_subscribed",
      "endpoint": "sendWebhookTest",
      "path": "/v3/sendWebhookTest",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "event": "article.created"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Der Webhook abonniert das Ereignis article.created nicht.",
        "data": {
          "code": "event_not_subscribed"
        },
        "code": "event_not_subscribed"
      }
    },
    {
      "channel": "api",
      "name": "list_webhook_deliveries",
      "endpoint": "listWebhookDeliveries",
      "path": "/v3/listWebhookDeliveries",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "limit": 3
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "deliveries": [
            {
              "deliveryId": "auto9",
              "webhookId": "3pJJwmZZjQTW",
              "eventId": "evt_Rq6FfqGQDbALsgsNFC86",
              "status": "delivered",
              "statusCode": 200,
              "createdAt": "2026-10-06T06:00:29.000Z",
              "test": true,
              "event": "stock.below_minimum",
              "attempts": 1,
              "response": "ok",
              "error": null,
              "lastAttemptAt": "2026-10-06T06:00:29.000Z",
              "nextAttemptAt": null
            },
            {
              "deliveryId": "auto3",
              "webhookId": "3pJJwmZZjQTW",
              "eventId": "evt_wKLtZJFBjowUBsa875du",
              "status": "delivered",
              "statusCode": 200,
              "createdAt": "2026-10-06T06:00:04.000Z",
              "test": false,
              "event": "stock.below_minimum",
              "attempts": 1,
              "response": "ok",
              "error": null,
              "lastAttemptAt": "2026-10-06T06:00:04.000Z",
              "nextAttemptAt": null
            },
            {
              "deliveryId": "auto4",
              "webhookId": "3pJJwmZZjQTW",
              "eventId": "evt_6SjOpc8E0wUJamYx4wDc",
              "status": "delivered",
              "statusCode": 200,
              "createdAt": "2026-10-06T06:00:04.000Z",
              "test": false,
              "event": "stock.changed",
              "attempts": 1,
              "response": "ok",
              "error": null,
              "lastAttemptAt": "2026-10-06T06:00:04.000Z",
              "nextAttemptAt": null
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "rotate_webhook_secret",
      "endpoint": "rotateWebhookSecret",
      "path": "/v3/rotateWebhookSecret",
      "params": {
        "webhookId": "3pJJwmZZjQTW"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "secret": "whsec_EXAMPLECD6279ACAAAAAAAAAAAAAAAAA",
          "webhook": {
            "id": "3pJJwmZZjQTW",
            "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
            "createdAt": "2026-10-06T06:00:02.000Z",
            "events": [
              "stock.changed",
              "stock.below_minimum"
            ],
            "active": true,
            "description": "Webshop Kornblum",
            "lastDelivery": {
              "at": "2026-10-06T06:00:29.000Z",
              "status": "delivered",
              "statusCode": 200
            },
            "consecutiveFailures": 0
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_webhook_invalid_url",
      "endpoint": "createWebhook",
      "path": "/v3/createWebhook",
      "params": {
        "url": "http://shop.baeckerei-kornblum.at/hook",
        "events": [
          "stock.changed"
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "invalid_webhook_url",
          "errors": [
            {
              "field": "url",
              "message": "Bitte die vollständige Adresse mit https:// angeben, z. B. https://api.firma.at/kasseneck-webhook"
            }
          ]
        },
        "code": "invalid_webhook_url"
      }
    },
    {
      "channel": "api",
      "name": "error_create_webhook_limit",
      "endpoint": "createWebhook",
      "path": "/v3/createWebhook",
      "params": {
        "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook-6",
        "events": [
          "stock.changed"
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Höchstens 5 Webhooks je Konto.",
        "data": {
          "code": "webhook_limit"
        },
        "code": "webhook_limit"
      }
    },
    {
      "channel": "api",
      "name": "update_webhook_inactive",
      "endpoint": "updateWebhook",
      "path": "/v3/updateWebhook",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "active": false
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "webhook": {
            "id": "3pJJwmZZjQTW",
            "url": "https://shop.baeckerei-kornblum.at/kasseneck-webhook",
            "createdAt": "2026-10-06T06:00:02.000Z",
            "events": [
              "stock.changed",
              "stock.below_minimum"
            ],
            "active": false,
            "description": "Webshop Kornblum",
            "lastDelivery": {
              "at": "2026-10-06T06:00:29.000Z",
              "status": "delivered",
              "statusCode": 200
            },
            "consecutiveFailures": 0
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_send_webhook_test_inactive",
      "endpoint": "sendWebhookTest",
      "path": "/v3/sendWebhookTest",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "event": "stock.changed"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Dieser Webhook ist inaktiv – zum Testen zuerst aktivieren.",
        "data": {
          "code": "webhook_inactive"
        },
        "code": "webhook_inactive"
      }
    },
    {
      "channel": "api",
      "name": "error_send_webhook_test_daily_limit",
      "endpoint": "sendWebhookTest",
      "path": "/v3/sendWebhookTest",
      "params": {
        "webhookId": "3pJJwmZZjQTW",
        "event": "stock.changed"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version",
        "Retry-After": "57511"
      },
      "response": {
        "status": "error",
        "message": "Höchstens 20 Probesendungen je Tag – morgen wieder.",
        "data": {
          "code": "rate_limited",
          "retryAfterSec": 57511
        },
        "code": "rate_limited"
      }
    },
    {
      "channel": "api",
      "name": "delete_webhook",
      "endpoint": "deleteWebhook",
      "path": "/v3/deleteWebhook",
      "params": {
        "webhookId": "3pJJwmZZjQTW"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "webhookId": "3pJJwmZZjQTW",
          "deleted": true
        }
      }
    },
    {
      "channel": "api",
      "name": "error_delete_webhook_not_found",
      "endpoint": "deleteWebhook",
      "path": "/v3/deleteWebhook",
      "params": {
        "webhookId": "3pJJwmZZjQTW"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Webhook nicht gefunden.",
        "data": {
          "code": "webhook_not_found"
        },
        "code": "webhook_not_found"
      }
    },
    {
      "channel": "api",
      "name": "create_article",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1001",
        "name": "Kaisersemmel",
        "description": "Handgeschlagen, mit Mohn bestreut",
        "unitPriceCents": 65,
        "vatRate": 10,
        "stockTracked": true,
        "stockLocationIds": [
          "haupt"
        ],
        "minStockByLocation": {
          "haupt": 20000
        },
        "externalIds": {
          "shop": "1001"
        },
        "metadata": {
          "seoSlug": "kaisersemmel-mohn"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto29",
            "name": "Kaisersemmel",
            "description": "Handgeschlagen, mit Mohn bestreut",
            "unitPriceCents": 65,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "1",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "1001"
            },
            "metadata": {
              "seoSlug": "kaisersemmel-mohn"
            },
            "createdAt": "2026-10-06T06:01:32.000Z",
            "updatedAt": "2026-10-06T06:01:32.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 20000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_article_replayed",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1001",
        "name": "Kaisersemmel",
        "description": "Handgeschlagen, mit Mohn bestreut",
        "unitPriceCents": 65,
        "vatRate": 10,
        "stockTracked": true,
        "stockLocationIds": [
          "haupt"
        ],
        "minStockByLocation": {
          "haupt": 20000
        },
        "externalIds": {
          "shop": "1001"
        },
        "metadata": {
          "seoSlug": "kaisersemmel-mohn"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto29",
            "name": "Kaisersemmel",
            "description": "Handgeschlagen, mit Mohn bestreut",
            "unitPriceCents": 65,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "1",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "1001"
            },
            "metadata": {
              "seoSlug": "kaisersemmel-mohn"
            },
            "createdAt": "2026-10-06T06:01:32.000Z",
            "updatedAt": "2026-10-06T06:01:32.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 20000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_article_idempotency_conflict",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1001",
        "name": "Kaisersemmel",
        "description": "Handgeschlagen, mit Mohn bestreut",
        "unitPriceCents": 70,
        "vatRate": 10,
        "stockTracked": true,
        "stockLocationIds": [
          "haupt"
        ],
        "minStockByLocation": {
          "haupt": 20000
        },
        "externalIds": {
          "shop": "1001"
        },
        "metadata": {
          "seoSlug": "kaisersemmel-mohn"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Derselbe idempotencyKey wurde mit anderem Inhalt verwendet.",
        "data": {
          "code": "idempotency_conflict"
        },
        "code": "idempotency_conflict"
      }
    },
    {
      "channel": "api",
      "name": "create_article_foreign",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1002",
        "name": "Bio-Hafermilch 1 l",
        "ean": "9001234567810",
        "unitPriceCents": 249,
        "vatRate": 10,
        "stockTracked": true,
        "stockKind": "quantity"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto30",
            "name": "Bio-Hafermilch 1 l",
            "description": null,
            "unitPriceCents": 249,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": "9001234567810",
            "internalCode": null,
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "createdAt": "2026-10-06T06:01:35.000Z",
            "updatedAt": "2026-10-06T06:01:35.000Z",
            "stockLocationIds": [],
            "minStockByLocation": {}
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_article_code_taken",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1003",
        "name": "Roggenbrot",
        "ean": "9001234567896"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Diese EAN gehört schon zu einem anderen Artikel.",
        "data": {
          "code": "code_taken",
          "field": "ean",
          "articleId": "roggenbrot"
        },
        "code": "code_taken"
      }
    },
    {
      "channel": "api",
      "name": "error_create_article_external_id_taken",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1004",
        "name": "Semmel",
        "externalIds": {
          "shop": "1001"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Kennung shop gehört schon zu einem anderen Artikel.",
        "data": {
          "code": "external_id_taken",
          "field": "externalIds.shop",
          "articleId": "auto29"
        },
        "code": "external_id_taken"
      }
    },
    {
      "channel": "api",
      "name": "error_create_article_validation",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1005",
        "name": "Mohnweckerl",
        "ean": "9001234567897",
        "minStock": 1500
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "ean",
              "message": "GTIN/EAN aus 8 bis 14 Ziffern mit gültiger Prüfziffer."
            },
            {
              "field": "minStock",
              "message": "Tausendstel ≥ 0 in ganzen Einheiten (Vielfaches von 1000) oder null."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "error_create_article_idempotency_key_required",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "name": "Mohnweckerl"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "idempotencyKey fehlt.",
        "data": {
          "code": "idempotency_key_required"
        },
        "code": "idempotency_key_required"
      }
    },
    {
      "channel": "api",
      "name": "create_article_with_costs",
      "endpoint": "createArticle",
      "path": "/v3/createArticle",
      "params": {
        "idempotencyKey": "shop-artikel-1006",
        "name": "Nussbeugel",
        "unitPriceCents": 320,
        "vatRate": 10,
        "purchasePriceMicros": 1150000
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto33",
            "name": "Nussbeugel",
            "description": null,
            "unitPriceCents": 320,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "2",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": false,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "createdAt": "2026-10-06T06:01:40.000Z",
            "updatedAt": "2026-10-06T06:01:40.000Z",
            "stockLocationIds": [],
            "minStockByLocation": {},
            "purchasePriceMicros": 1150000
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "update_article",
      "endpoint": "updateArticle",
      "path": "/v3/updateArticle",
      "params": {
        "idempotencyKey": "shop-update-1001-1",
        "articleId": "auto29",
        "unitPriceCents": 70,
        "description": null,
        "metadata": {
          "seoSlug": "kaisersemmel"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto29",
            "name": "Kaisersemmel",
            "description": null,
            "unitPriceCents": 70,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "1",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "1001"
            },
            "metadata": {
              "seoSlug": "kaisersemmel"
            },
            "createdAt": "2026-10-06T06:01:32.000Z",
            "updatedAt": "2026-10-06T06:01:41.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "haupt": 20000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "update_article_min_stock_by_location",
      "endpoint": "updateArticle",
      "path": "/v3/updateArticle",
      "params": {
        "idempotencyKey": "shop-update-1001-2",
        "articleId": "auto29",
        "minStockByLocation": {
          "haupt": null,
          "lieferwagen": 10000
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto29",
            "name": "Kaisersemmel",
            "description": null,
            "unitPriceCents": 70,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "1",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "1001"
            },
            "metadata": {
              "seoSlug": "kaisersemmel"
            },
            "createdAt": "2026-10-06T06:01:32.000Z",
            "updatedAt": "2026-10-06T06:01:42.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "lieferwagen": 10000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_update_article_stock_kind_locked",
      "endpoint": "updateArticle",
      "path": "/v3/updateArticle",
      "params": {
        "idempotencyKey": "shop-update-rb-1",
        "articleId": "roggenbrot",
        "stockKind": "serial"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Bestandsart ist nach der ersten Lagerbewegung fest.",
        "data": {
          "code": "stock_kind_locked"
        },
        "code": "stock_kind_locked"
      }
    },
    {
      "channel": "api",
      "name": "error_update_article_not_found",
      "endpoint": "updateArticle",
      "path": "/v3/updateArticle",
      "params": {
        "idempotencyKey": "shop-update-x-1",
        "articleId": "gibt_es_nicht",
        "name": "x"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Artikel nicht gefunden.",
        "data": {
          "code": "article_not_found"
        },
        "code": "article_not_found"
      }
    },
    {
      "channel": "api",
      "name": "deactivate_article",
      "endpoint": "deactivateArticle",
      "path": "/v3/deactivateArticle",
      "params": {
        "idempotencyKey": "shop-deactivate-1001",
        "articleId": "auto29"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto29",
            "name": "Kaisersemmel",
            "description": null,
            "unitPriceCents": 70,
            "vatRate": 10,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "1",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": false,
            "externalIds": {
              "shop": "1001"
            },
            "metadata": {
              "seoSlug": "kaisersemmel"
            },
            "createdAt": "2026-10-06T06:01:32.000Z",
            "updatedAt": "2026-10-06T06:01:45.000Z",
            "stockLocationIds": [
              "haupt"
            ],
            "minStockByLocation": {
              "lieferwagen": 10000
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_update_article_inactive",
      "endpoint": "updateArticle",
      "path": "/v3/updateArticle",
      "params": {
        "idempotencyKey": "shop-update-1001-3",
        "articleId": "auto29",
        "name": "Kaisersemmel neu"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Der Artikel ist stillgelegt und lässt sich nicht mehr ändern.",
        "data": {
          "code": "article_inactive"
        },
        "code": "article_inactive"
      }
    },
    {
      "channel": "api",
      "name": "receive_goods_dry_run",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000,
            "totalCents": 2400,
            "expiresOn": "2026-10-12",
            "batch": "C-41"
          },
          {
            "articleId": "kipferl",
            "quantity": 60000,
            "unitPriceMicros": 380000
          }
        ],
        "landedCosts": [
          {
            "type": "freight",
            "amountCents": 450
          },
          {
            "type": "cash_discount",
            "amountCents": 50
          }
        ],
        "allocation": "value",
        "supplier": {
          "name": "Mühle Hollerer",
          "address": "Mühlgasse 4, 5020 Salzburg"
        },
        "reference": "LS-2026-118",
        "note": "Frühlieferung",
        "dryRun": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "preview": [
            {
              "articleId": "roggenbrot",
              "quantity": 20000,
              "expiresOn": "2026-10-12",
              "batch": "C-41",
              "serialNumbers": [],
              "priceFromArticle": false
            },
            {
              "articleId": "kipferl",
              "quantity": 60000,
              "expiresOn": null,
              "batch": null,
              "serialNumbers": [],
              "priceFromArticle": false
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "receive_goods_dry_run_with_costs",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000,
            "totalCents": 2400,
            "expiresOn": "2026-10-12",
            "batch": "C-41"
          },
          {
            "articleId": "kipferl",
            "quantity": 60000,
            "unitPriceMicros": 380000
          }
        ],
        "landedCosts": [
          {
            "type": "freight",
            "amountCents": 450
          },
          {
            "type": "cash_discount",
            "amountCents": 50
          }
        ],
        "allocation": "value",
        "supplier": {
          "name": "Mühle Hollerer",
          "address": "Mühlgasse 4, 5020 Salzburg"
        },
        "reference": "LS-2026-118",
        "note": "Frühlieferung",
        "dryRun": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "preview": [
            {
              "articleId": "roggenbrot",
              "quantity": 20000,
              "expiresOn": "2026-10-12",
              "batch": "C-41",
              "serialNumbers": [],
              "priceFromArticle": false,
              "baseCents": 2400,
              "landedCostCents": 205,
              "valueCents": 2605,
              "unitCostMicros": 1302500
            },
            {
              "articleId": "kipferl",
              "quantity": 60000,
              "expiresOn": null,
              "batch": null,
              "serialNumbers": [],
              "priceFromArticle": false,
              "baseCents": 2280,
              "landedCostCents": 195,
              "valueCents": 2475,
              "unitCostMicros": 412500
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "receive_goods",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "idempotencyKey": "shop-we-118",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000,
            "totalCents": 2400,
            "expiresOn": "2026-10-12",
            "batch": "C-41"
          },
          {
            "articleId": "kipferl",
            "quantity": 60000,
            "unitPriceMicros": 380000
          }
        ],
        "landedCosts": [
          {
            "type": "freight",
            "amountCents": 450
          },
          {
            "type": "cash_discount",
            "amountCents": 50
          }
        ],
        "allocation": "value",
        "supplier": {
          "name": "Mühle Hollerer",
          "address": "Mühlgasse 4, 5020 Salzburg"
        },
        "reference": "LS-2026-118",
        "note": "Frühlieferung"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto34",
          "movementIds": [
            "auto34_0",
            "auto34_1"
          ],
          "lotIds": [
            "auto34_L0",
            "auto34_L1"
          ],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "receive_goods_replayed",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "idempotencyKey": "shop-we-118",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000,
            "totalCents": 2400,
            "expiresOn": "2026-10-12",
            "batch": "C-41"
          },
          {
            "articleId": "kipferl",
            "quantity": 60000,
            "unitPriceMicros": 380000
          }
        ],
        "landedCosts": [
          {
            "type": "freight",
            "amountCents": 450
          },
          {
            "type": "cash_discount",
            "amountCents": 50
          }
        ],
        "allocation": "value",
        "supplier": {
          "name": "Mühle Hollerer",
          "address": "Mühlgasse 4, 5020 Salzburg"
        },
        "reference": "LS-2026-118",
        "note": "Frühlieferung"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto34",
          "movementIds": [
            "auto34_0",
            "auto34_1"
          ],
          "lotIds": [
            "auto34_L0",
            "auto34_L1"
          ],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "error_receive_goods_idempotency_conflict",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "idempotencyKey": "shop-we-118",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000,
            "totalCents": 2400,
            "expiresOn": "2026-10-12",
            "batch": "C-41"
          },
          {
            "articleId": "kipferl",
            "quantity": 60000,
            "unitPriceMicros": 380000
          }
        ],
        "landedCosts": [
          {
            "type": "freight",
            "amountCents": 450
          },
          {
            "type": "cash_discount",
            "amountCents": 50
          }
        ],
        "allocation": "value",
        "supplier": {
          "name": "Mühle Hollerer",
          "address": "Mühlgasse 4, 5020 Salzburg"
        },
        "reference": "LS-2026-119",
        "note": "Frühlieferung"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Derselbe idempotencyKey wurde mit anderem Inhalt verwendet.",
        "data": {
          "code": "idempotency_conflict"
        },
        "code": "idempotency_conflict"
      }
    },
    {
      "channel": "api",
      "name": "error_receive_goods_validation",
      "endpoint": "receiveGoods",
      "path": "/v3/receiveGoods",
      "params": {
        "idempotencyKey": "shop-we-120",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 1.5
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "items[0].quantity",
              "message": "Ganze Zahl erwartet."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "transfer_stock",
      "endpoint": "transferStock",
      "path": "/v3/transferStock",
      "params": {
        "idempotencyKey": "shop-um-1",
        "fromLocationId": "haupt",
        "toLocationId": "lieferwagen",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 24000
          }
        ],
        "note": "Tour Nord"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto35",
          "movementIds": [
            "auto35_0",
            "auto35_1"
          ],
          "lotIds": [
            "auto35_L0"
          ],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "error_transfer_stock_exceeds_stock",
      "endpoint": "transferStock",
      "path": "/v3/transferStock",
      "params": {
        "idempotencyKey": "shop-um-2",
        "fromLocationId": "lieferwagen",
        "toLocationId": "haupt",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 30000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Mehr als am Standort vorhanden.",
        "data": {
          "code": "exceeds_stock"
        },
        "code": "exceeds_stock"
      }
    },
    {
      "channel": "api",
      "name": "record_stock_loss",
      "endpoint": "recordStockLoss",
      "path": "/v3/recordStockLoss",
      "params": {
        "idempotencyKey": "shop-ab-1",
        "reason": "breakage",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 20000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto37",
          "movementIds": [
            "auto37_0"
          ],
          "lotIds": [],
          "warnings": [
            {
              "code": "below_minimum",
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "message": "Roggenbrot 1 kg: unter dem Mindestbestand."
            }
          ]
        }
      }
    },
    {
      "channel": "api",
      "name": "record_stock_loss_withdrawal",
      "endpoint": "recordStockLoss",
      "path": "/v3/recordStockLoss",
      "params": {
        "idempotencyKey": "shop-ab-2",
        "reason": "withdrawal",
        "withdrawalType": "staff",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 2000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto38",
          "movementIds": [
            "auto38_0"
          ],
          "lotIds": [],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "error_record_stock_loss_invalid_reason",
      "endpoint": "recordStockLoss",
      "path": "/v3/recordStockLoss",
      "params": {
        "idempotencyKey": "shop-ab-3",
        "reason": "lost",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 1000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Unbekannter Abgangsgrund.",
        "data": {
          "code": "invalid_reason"
        },
        "code": "invalid_reason"
      }
    },
    {
      "channel": "api",
      "name": "error_record_stock_loss_withdrawal_type_required",
      "endpoint": "recordStockLoss",
      "path": "/v3/recordStockLoss",
      "params": {
        "idempotencyKey": "shop-ab-4",
        "reason": "withdrawal",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 1000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bei einer Entnahme ist die Art Pflicht (private, staff, gift, sample).",
        "data": {
          "code": "withdrawal_type_required"
        },
        "code": "withdrawal_type_required"
      }
    },
    {
      "channel": "api",
      "name": "error_record_stock_loss_exceeds_stock",
      "endpoint": "recordStockLoss",
      "path": "/v3/recordStockLoss",
      "params": {
        "idempotencyKey": "shop-ab-5",
        "reason": "theft",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 6000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Mehr als am Standort vorhanden.",
        "data": {
          "code": "exceeds_stock"
        },
        "code": "exceeds_stock"
      }
    },
    {
      "channel": "api",
      "name": "change_stock_condition",
      "endpoint": "changeStockCondition",
      "path": "/v3/changeStockCondition",
      "params": {
        "idempotencyKey": "shop-zu-1",
        "from": "sellable",
        "to": "defective",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 3000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto40",
          "movementIds": [
            "auto40_0",
            "auto40_1"
          ],
          "lotIds": [
            "auto40_L0"
          ],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "error_change_stock_condition_invalid_condition",
      "endpoint": "changeStockCondition",
      "path": "/v3/changeStockCondition",
      "params": {
        "idempotencyKey": "shop-zu-2",
        "from": "sellable",
        "to": "broken",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 1000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Zustand muss sellable oder defective sein.",
        "data": {
          "code": "invalid_condition"
        },
        "code": "invalid_condition"
      }
    },
    {
      "channel": "api",
      "name": "reverse_stock_movement",
      "endpoint": "reverseStockMovement",
      "path": "/v3/reverseStockMovement",
      "params": {
        "idempotencyKey": "shop-gb-1",
        "operationId": "auto40",
        "reason": "Doch einwandfrei"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "operationId": "auto41",
          "movementIds": [
            "auto41_0",
            "auto41_1"
          ],
          "lotIds": [
            "auto41_L0"
          ],
          "warnings": []
        }
      }
    },
    {
      "channel": "api",
      "name": "error_reverse_stock_movement_already_reversed",
      "endpoint": "reverseStockMovement",
      "path": "/v3/reverseStockMovement",
      "params": {
        "idempotencyKey": "shop-gb-2",
        "operationId": "auto40",
        "reason": "Nochmal"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Dieser Vorgang wurde schon gegengebucht.",
        "data": {
          "code": "already_reversed"
        },
        "code": "already_reversed"
      }
    },
    {
      "channel": "api",
      "name": "error_reverse_stock_movement_operation_not_found",
      "endpoint": "reverseStockMovement",
      "path": "/v3/reverseStockMovement",
      "params": {
        "idempotencyKey": "shop-gb-3",
        "operationId": "gibt_es_nicht",
        "reason": "Irrtum"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Vorgang nicht gefunden.",
        "data": {
          "code": "operation_not_found"
        },
        "code": "operation_not_found"
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements_from_api",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "source": "api",
        "limit": 3
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "auto41_1",
              "articleId": "kipferl",
              "type": "condition_in",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 3000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 74000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto41",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:10.000Z",
              "lots": [
                {
                  "lotId": "auto41_L0",
                  "quantity": 3000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            },
            {
              "id": "auto41_0",
              "articleId": "kipferl",
              "type": "condition_out",
              "locationId": "haupt",
              "condition": "defective",
              "quantityDelta": -3000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 71000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "auto41",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:10.000Z",
              "lots": [
                {
                  "lotId": "auto40_L0",
                  "quantity": 3000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            },
            {
              "id": "auto40_1",
              "articleId": "kipferl",
              "type": "condition_in",
              "locationId": "haupt",
              "condition": "defective",
              "quantityDelta": 3000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 71000,
                "defective": 3000,
                "reserved": null
              },
              "operationId": "auto40",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:07.000Z",
              "lots": [
                {
                  "lotId": "auto40_L0",
                  "quantity": 3000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjY2NTI3MDAwLCJpZCI6ImF1dG80MF8xIn0"
        }
      }
    },
    {
      "channel": "api",
      "name": "create_reservation",
      "endpoint": "createReservation",
      "path": "/v3/createReservation",
      "params": {
        "idempotencyKey": "shop-res-1001",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 2000
          },
          {
            "articleId": "kipferl",
            "quantity": 6000,
            "locationId": "lieferwagen"
          }
        ],
        "reference": "Bestellung 1001",
        "expiresInMinutes": 30
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "active",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 0
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-06T06:32:17.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_reservation_replayed",
      "endpoint": "createReservation",
      "path": "/v3/createReservation",
      "params": {
        "idempotencyKey": "shop-res-1001",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 2000
          },
          {
            "articleId": "kipferl",
            "quantity": 6000,
            "locationId": "lieferwagen"
          }
        ],
        "reference": "Bestellung 1001",
        "expiresInMinutes": 30
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "active",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 0
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-06T06:32:17.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_reservation_insufficient_available",
      "endpoint": "createReservation",
      "path": "/v3/createReservation",
      "params": {
        "idempotencyKey": "shop-res-1002",
        "items": [
          {
            "articleId": "roggenbrot",
            "quantity": 3000
          },
          {
            "articleId": "kipferl",
            "quantity": 1000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Nicht genug verfügbarer Bestand für die Reservierung.",
        "data": {
          "code": "insufficient_available",
          "details": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "requested": 3000,
              "available": 2000
            }
          ]
        },
        "code": "insufficient_available"
      }
    },
    {
      "channel": "api",
      "name": "error_create_reservation_validation",
      "endpoint": "createReservation",
      "path": "/v3/createReservation",
      "params": {
        "idempotencyKey": "shop-res-1003",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 1000
          }
        ],
        "expiresInMinutes": 2
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "expiresInMinutes",
              "message": "Ganze Minuten von 5 bis 43200."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "get_reservation",
      "endpoint": "getReservation",
      "path": "/v3/getReservation",
      "params": {
        "reservationId": "auto43"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "active",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 0
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-06T06:32:17.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_get_reservation_not_found",
      "endpoint": "getReservation",
      "path": "/v3/getReservation",
      "params": {
        "reservationId": "gibt_es_nicht"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Reservierung nicht gefunden.",
        "data": {
          "code": "reservation_not_found"
        },
        "code": "reservation_not_found"
      }
    },
    {
      "channel": "api",
      "name": "extend_reservation",
      "endpoint": "extendReservation",
      "path": "/v3/extendReservation",
      "params": {
        "idempotencyKey": "shop-res-1001-verl",
        "reservationId": "auto43",
        "expiresInMinutes": 60
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "active",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 0
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-06T07:02:23.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "release_reservation_partial",
      "endpoint": "releaseReservation",
      "path": "/v3/releaseReservation",
      "params": {
        "idempotencyKey": "shop-res-1001-frei",
        "reservationId": "auto43",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 2000
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "active",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 0
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 2000
              }
            ],
            "expiresAt": "2026-10-06T07:02:23.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_reservation_default_duration",
      "endpoint": "createReservation",
      "path": "/v3/createReservation",
      "params": {
        "idempotencyKey": "shop-res-1004",
        "items": [
          {
            "articleId": "kipferl",
            "quantity": 3000
          }
        ],
        "reference": "Bestellung 1004"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto49",
            "status": "active",
            "reference": "Bestellung 1004",
            "items": [
              {
                "articleId": "kipferl",
                "locationId": "haupt",
                "quantity": 3000,
                "redeemed": 0,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-13T06:02:27.000Z",
            "createdAt": "2026-10-06T06:02:27.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "release_reservation",
      "endpoint": "releaseReservation",
      "path": "/v3/releaseReservation",
      "params": {
        "idempotencyKey": "shop-res-1004-frei",
        "reservationId": "auto49"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto49",
            "status": "released",
            "reference": "Bestellung 1004",
            "items": [
              {
                "articleId": "kipferl",
                "locationId": "haupt",
                "quantity": 3000,
                "redeemed": 0,
                "released": 3000
              }
            ],
            "expiresAt": "2026-10-13T06:02:27.000Z",
            "createdAt": "2026-10-06T06:02:27.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_extend_reservation_not_active",
      "endpoint": "extendReservation",
      "path": "/v3/extendReservation",
      "params": {
        "idempotencyKey": "shop-res-1004-verl",
        "reservationId": "auto49",
        "expiresInMinutes": 30
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Reservierung ist nicht mehr aktiv.",
        "data": {
          "code": "reservation_not_active"
        },
        "code": "reservation_not_active"
      }
    },
    {
      "channel": "api",
      "name": "list_reservations_active",
      "endpoint": "listReservations",
      "path": "/v3/listReservations",
      "params": {
        "status": "active"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservations": [
            {
              "id": "auto43",
              "status": "active",
              "reference": "Bestellung 1001",
              "items": [
                {
                  "articleId": "roggenbrot",
                  "locationId": "haupt",
                  "quantity": 2000,
                  "redeemed": 0,
                  "released": 0
                },
                {
                  "articleId": "kipferl",
                  "locationId": "lieferwagen",
                  "quantity": 6000,
                  "redeemed": 0,
                  "released": 2000
                }
              ],
              "expiresAt": "2026-10-06T07:02:23.000Z",
              "createdAt": "2026-10-06T06:02:17.000Z"
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_reservations_by_reference",
      "endpoint": "listReservations",
      "path": "/v3/listReservations",
      "params": {
        "reference": "Bestellung 1004"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservations": [
            {
              "id": "auto49",
              "status": "released",
              "reference": "Bestellung 1004",
              "items": [
                {
                  "articleId": "kipferl",
                  "locationId": "haupt",
                  "quantity": 3000,
                  "redeemed": 0,
                  "released": 3000
                }
              ],
              "expiresAt": "2026-10-13T06:02:27.000Z",
              "createdAt": "2026-10-06T06:02:27.000Z"
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements_reservation",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "articleId": "kipferl",
        "type": "reservation",
        "limit": 3
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "auto51_0",
              "articleId": "kipferl",
              "type": "reservation",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 0,
              "reservedDelta": -3000,
              "stockAfter": {
                "sellable": 74000,
                "defective": 0,
                "reserved": 0
              },
              "operationId": "auto51",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:29.000Z",
              "lots": []
            },
            {
              "id": "auto50_0",
              "articleId": "kipferl",
              "type": "reservation",
              "locationId": "haupt",
              "condition": "sellable",
              "quantityDelta": 0,
              "reservedDelta": 3000,
              "stockAfter": {
                "sellable": 74000,
                "defective": 0,
                "reserved": 3000
              },
              "operationId": "auto50",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:27.000Z",
              "lots": []
            },
            {
              "id": "auto47_0",
              "articleId": "kipferl",
              "type": "reservation",
              "locationId": "lieferwagen",
              "condition": "sellable",
              "quantityDelta": 0,
              "reservedDelta": -2000,
              "stockAfter": {
                "sellable": 24000,
                "defective": 0,
                "reserved": 4000
              },
              "operationId": "auto47",
              "source": {
                "id": null,
                "position": null,
                "type": "api",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T06:02:25.000Z",
              "lots": []
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjY2NTQ1MDAwLCJpZCI6ImF1dG80N18wIn0"
        }
      }
    },
    {
      "channel": "api",
      "name": "get_reservation_redeemed",
      "endpoint": "getReservation",
      "path": "/v3/getReservation",
      "params": {
        "reservationId": "auto53"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto53",
            "status": "redeemed",
            "reference": "Bestellung 1005",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 1000,
                "redeemed": 1000,
                "released": 0
              }
            ],
            "expiresAt": "2026-10-13T06:02:35.000Z",
            "createdAt": "2026-10-06T06:02:35.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "get_reservation_expired",
      "endpoint": "getReservation",
      "path": "/v3/getReservation",
      "params": {
        "reservationId": "auto43"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "reservation": {
            "id": "auto43",
            "status": "expired",
            "reference": "Bestellung 1001",
            "items": [
              {
                "articleId": "roggenbrot",
                "locationId": "haupt",
                "quantity": 2000,
                "redeemed": 0,
                "released": 2000
              },
              {
                "articleId": "kipferl",
                "locationId": "lieferwagen",
                "quantity": 6000,
                "redeemed": 0,
                "released": 6000
              }
            ],
            "expiresAt": "2026-10-06T07:02:23.000Z",
            "createdAt": "2026-10-06T06:02:17.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_variant_group_matrix",
      "endpoint": "createVariantGroup",
      "path": "/v3/createVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3001",
        "name": "Schürze",
        "attributes": [
          {
            "key": "groesse",
            "label": "Größe",
            "values": [
              "S",
              "M",
              "L"
            ]
          },
          {
            "key": "farbe",
            "label": "Farbe",
            "values": [
              "rot",
              "blau"
            ]
          }
        ],
        "defaults": {
          "unitPriceCents": 2490,
          "vatRate": 20,
          "stockTracked": true
        },
        "createMatrix": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroup": {
            "id": "auto61",
            "name": "Schürze",
            "attributes": [
              {
                "key": "groesse",
                "label": "Größe",
                "values": [
                  "S",
                  "M",
                  "L"
                ]
              },
              {
                "key": "farbe",
                "label": "Farbe",
                "values": [
                  "rot",
                  "blau"
                ]
              }
            ],
            "defaults": {
              "unitPriceCents": 2490,
              "vatRate": 20,
              "stockTracked": true
            },
            "active": true,
            "variants": [
              {
                "articleId": "auto62",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto63",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto64",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto65",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto66",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "L"
                }
              },
              {
                "articleId": "auto67",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "L"
                }
              }
            ],
            "createdAt": "2026-10-06T08:02:41.000Z",
            "updatedAt": "2026-10-06T08:02:41.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_variant_group_variants",
      "endpoint": "createVariantGroup",
      "path": "/v3/createVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3002",
        "name": "Geschirrtuch",
        "attributes": [
          {
            "key": "farbe",
            "label": "Farbe",
            "values": [
              "rot",
              "blau",
              "grün"
            ]
          }
        ],
        "defaults": {
          "unitPriceCents": 590,
          "vatRate": 20,
          "stockTracked": true
        },
        "variants": [
          {
            "variantAttributes": {
              "farbe": "rot"
            },
            "ean": "9001234567827",
            "externalIds": {
              "shop": "3002-rot"
            }
          },
          {
            "variantAttributes": {
              "farbe": "blau"
            },
            "name": "Geschirrtuch Leinen blau",
            "unitPriceCents": 690,
            "externalIds": {
              "shop": "3002-blau"
            }
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroup": {
            "id": "auto69",
            "name": "Geschirrtuch",
            "attributes": [
              {
                "key": "farbe",
                "label": "Farbe",
                "values": [
                  "rot",
                  "blau",
                  "grün"
                ]
              }
            ],
            "defaults": {
              "unitPriceCents": 590,
              "vatRate": 20,
              "stockTracked": true
            },
            "active": true,
            "variants": [
              {
                "articleId": "auto70",
                "variantAttributes": {
                  "farbe": "rot"
                }
              },
              {
                "articleId": "auto71",
                "variantAttributes": {
                  "farbe": "blau"
                }
              }
            ],
            "createdAt": "2026-10-06T08:02:42.000Z",
            "updatedAt": "2026-10-06T08:02:42.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_variant_group_validation",
      "endpoint": "createVariantGroup",
      "path": "/v3/createVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3003",
        "name": "Geschirrtuch",
        "attributes": [
          {
            "key": "farbe",
            "label": "Farbe",
            "values": [
              "rot",
              "blau",
              "grün"
            ]
          }
        ],
        "defaults": {
          "unitPriceCents": 590,
          "vatRate": 20,
          "stockTracked": true
        },
        "variants": [
          {
            "variantAttributes": {
              "farbe": "rot"
            },
            "ean": "9001234567827",
            "externalIds": {
              "shop": "3002-rot"
            }
          },
          {
            "variantAttributes": {
              "farbe": "blau"
            },
            "name": "Geschirrtuch Leinen blau",
            "unitPriceCents": 690,
            "externalIds": {
              "shop": "3002-blau"
            }
          }
        ],
        "createMatrix": true
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Bitte Eingaben prüfen.",
        "data": {
          "code": "validation",
          "errors": [
            {
              "field": "variants",
              "message": "createMatrix und variants schließen sich aus."
            }
          ]
        },
        "code": "validation"
      }
    },
    {
      "channel": "api",
      "name": "error_create_variant_group_too_many_positions",
      "endpoint": "createVariantGroup",
      "path": "/v3/createVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3004",
        "name": "Servietten",
        "attributes": [
          {
            "key": "reihe",
            "label": "Reihe",
            "values": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ]
          },
          {
            "key": "platz",
            "label": "Platz",
            "values": [
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10"
            ]
          }
        ],
        "variants": [
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-1-1",
              "erp": "S-1-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-1-2",
              "erp": "S-1-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-1-3",
              "erp": "S-1-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-1-4",
              "erp": "S-1-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-1-5",
              "erp": "S-1-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-1-6",
              "erp": "S-1-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-1-7",
              "erp": "S-1-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-1-8",
              "erp": "S-1-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-1-9",
              "erp": "S-1-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "1",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-1-10",
              "erp": "S-1-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-2-1",
              "erp": "S-2-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-2-2",
              "erp": "S-2-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-2-3",
              "erp": "S-2-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-2-4",
              "erp": "S-2-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-2-5",
              "erp": "S-2-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-2-6",
              "erp": "S-2-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-2-7",
              "erp": "S-2-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-2-8",
              "erp": "S-2-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-2-9",
              "erp": "S-2-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "2",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-2-10",
              "erp": "S-2-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-3-1",
              "erp": "S-3-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-3-2",
              "erp": "S-3-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-3-3",
              "erp": "S-3-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-3-4",
              "erp": "S-3-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-3-5",
              "erp": "S-3-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-3-6",
              "erp": "S-3-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-3-7",
              "erp": "S-3-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-3-8",
              "erp": "S-3-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-3-9",
              "erp": "S-3-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "3",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-3-10",
              "erp": "S-3-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-4-1",
              "erp": "S-4-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-4-2",
              "erp": "S-4-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-4-3",
              "erp": "S-4-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-4-4",
              "erp": "S-4-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-4-5",
              "erp": "S-4-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-4-6",
              "erp": "S-4-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-4-7",
              "erp": "S-4-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-4-8",
              "erp": "S-4-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-4-9",
              "erp": "S-4-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "4",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-4-10",
              "erp": "S-4-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-5-1",
              "erp": "S-5-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-5-2",
              "erp": "S-5-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-5-3",
              "erp": "S-5-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-5-4",
              "erp": "S-5-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-5-5",
              "erp": "S-5-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-5-6",
              "erp": "S-5-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-5-7",
              "erp": "S-5-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-5-8",
              "erp": "S-5-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-5-9",
              "erp": "S-5-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "5",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-5-10",
              "erp": "S-5-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-6-1",
              "erp": "S-6-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-6-2",
              "erp": "S-6-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-6-3",
              "erp": "S-6-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-6-4",
              "erp": "S-6-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-6-5",
              "erp": "S-6-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-6-6",
              "erp": "S-6-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-6-7",
              "erp": "S-6-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-6-8",
              "erp": "S-6-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-6-9",
              "erp": "S-6-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "6",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-6-10",
              "erp": "S-6-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-7-1",
              "erp": "S-7-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-7-2",
              "erp": "S-7-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-7-3",
              "erp": "S-7-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-7-4",
              "erp": "S-7-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-7-5",
              "erp": "S-7-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-7-6",
              "erp": "S-7-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-7-7",
              "erp": "S-7-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-7-8",
              "erp": "S-7-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-7-9",
              "erp": "S-7-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "7",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-7-10",
              "erp": "S-7-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-8-1",
              "erp": "S-8-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-8-2",
              "erp": "S-8-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-8-3",
              "erp": "S-8-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-8-4",
              "erp": "S-8-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-8-5",
              "erp": "S-8-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-8-6",
              "erp": "S-8-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-8-7",
              "erp": "S-8-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-8-8",
              "erp": "S-8-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-8-9",
              "erp": "S-8-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "8",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-8-10",
              "erp": "S-8-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-9-1",
              "erp": "S-9-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-9-2",
              "erp": "S-9-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-9-3",
              "erp": "S-9-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-9-4",
              "erp": "S-9-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-9-5",
              "erp": "S-9-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-9-6",
              "erp": "S-9-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-9-7",
              "erp": "S-9-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-9-8",
              "erp": "S-9-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-9-9",
              "erp": "S-9-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "9",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-9-10",
              "erp": "S-9-10"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "1"
            },
            "externalIds": {
              "shop": "3004-10-1",
              "erp": "S-10-1"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "2"
            },
            "externalIds": {
              "shop": "3004-10-2",
              "erp": "S-10-2"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "3"
            },
            "externalIds": {
              "shop": "3004-10-3",
              "erp": "S-10-3"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "4"
            },
            "externalIds": {
              "shop": "3004-10-4",
              "erp": "S-10-4"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "5"
            },
            "externalIds": {
              "shop": "3004-10-5",
              "erp": "S-10-5"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "6"
            },
            "externalIds": {
              "shop": "3004-10-6",
              "erp": "S-10-6"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "7"
            },
            "externalIds": {
              "shop": "3004-10-7",
              "erp": "S-10-7"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "8"
            },
            "externalIds": {
              "shop": "3004-10-8",
              "erp": "S-10-8"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "9"
            },
            "externalIds": {
              "shop": "3004-10-9",
              "erp": "S-10-9"
            }
          },
          {
            "variantAttributes": {
              "reihe": "10",
              "platz": "10"
            },
            "externalIds": {
              "shop": "3004-10-10",
              "erp": "S-10-10"
            }
          }
        ]
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Anfrage bräuchte 503 Schreibvorgänge, höchstens 490 passen in einen Vorgang. Bitte weniger Varianten anlegen und den Rest mit addVariant ergänzen.",
        "data": {
          "code": "too_many_positions",
          "field": "variants"
        },
        "code": "too_many_positions"
      }
    },
    {
      "channel": "api",
      "name": "add_variant",
      "endpoint": "addVariant",
      "path": "/v3/addVariant",
      "params": {
        "idempotencyKey": "shop-variante-3002-gruen",
        "variantGroupId": "auto69",
        "variantAttributes": {
          "farbe": "grün"
        },
        "externalIds": {
          "shop": "3002-gruen"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto73",
            "name": "Geschirrtuch grün",
            "description": null,
            "unitPriceCents": 590,
            "vatRate": 20,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "10",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "3002-gruen"
            },
            "variantGroupId": "auto69",
            "variantAttributes": {
              "farbe": "grün"
            },
            "createdAt": "2026-10-06T08:02:45.000Z",
            "updatedAt": "2026-10-06T08:02:45.000Z",
            "stockLocationIds": [],
            "minStockByLocation": {}
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "add_variant_replayed",
      "endpoint": "addVariant",
      "path": "/v3/addVariant",
      "params": {
        "idempotencyKey": "shop-variante-3002-gruen",
        "variantGroupId": "auto69",
        "variantAttributes": {
          "farbe": "grün"
        },
        "externalIds": {
          "shop": "3002-gruen"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "article": {
            "id": "auto73",
            "name": "Geschirrtuch grün",
            "description": null,
            "unitPriceCents": 590,
            "vatRate": 20,
            "unit": "Stk",
            "number": null,
            "ean": null,
            "internalCode": "10",
            "groupId": null,
            "revenueGroupId": null,
            "stockTracked": true,
            "stockKind": "quantity",
            "minStock": null,
            "active": true,
            "externalIds": {
              "shop": "3002-gruen"
            },
            "variantGroupId": "auto69",
            "variantAttributes": {
              "farbe": "grün"
            },
            "createdAt": "2026-10-06T08:02:45.000Z",
            "updatedAt": "2026-10-06T08:02:45.000Z",
            "stockLocationIds": [],
            "minStockByLocation": {}
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_add_variant_exists",
      "endpoint": "addVariant",
      "path": "/v3/addVariant",
      "params": {
        "idempotencyKey": "shop-variante-3002-rot",
        "variantGroupId": "auto69",
        "variantAttributes": {
          "farbe": "rot"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Diese Kombination gibt es in der Variantengruppe schon.",
        "data": {
          "code": "variant_already_exists",
          "field": "variantAttributes",
          "articleId": "auto70"
        },
        "code": "variant_already_exists"
      }
    },
    {
      "channel": "api",
      "name": "error_add_variant_invalid_attributes",
      "endpoint": "addVariant",
      "path": "/v3/addVariant",
      "params": {
        "idempotencyKey": "shop-variante-3002-gelb",
        "variantGroupId": "auto69",
        "variantAttributes": {
          "farbe": "gelb"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Merkmale passen nicht zur Variantengruppe.",
        "data": {
          "code": "invalid_variant_attributes",
          "field": "variantAttributes.farbe",
          "errors": [
            {
              "field": "variantAttributes.farbe",
              "message": "Wert steht nicht in der Werteliste. Erlaubt: rot, blau, grün."
            }
          ]
        },
        "code": "invalid_variant_attributes"
      }
    },
    {
      "channel": "api",
      "name": "update_variant_group_values",
      "endpoint": "updateVariantGroup",
      "path": "/v3/updateVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3001-xl",
        "variantGroupId": "auto61",
        "addAttributeValues": {
          "groesse": [
            "M",
            "XL"
          ]
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroup": {
            "id": "auto61",
            "name": "Schürze",
            "attributes": [
              {
                "key": "groesse",
                "label": "Größe",
                "values": [
                  "S",
                  "M",
                  "L",
                  "XL"
                ]
              },
              {
                "key": "farbe",
                "label": "Farbe",
                "values": [
                  "rot",
                  "blau"
                ]
              }
            ],
            "defaults": {
              "unitPriceCents": 2490,
              "vatRate": 20,
              "stockTracked": true
            },
            "active": true,
            "variants": [
              {
                "articleId": "auto62",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto63",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto64",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto65",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto66",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "L"
                }
              },
              {
                "articleId": "auto67",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "L"
                }
              }
            ],
            "createdAt": "2026-10-06T08:02:41.000Z",
            "updatedAt": "2026-10-06T08:02:49.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "update_variant_group_deactivate",
      "endpoint": "updateVariantGroup",
      "path": "/v3/updateVariantGroup",
      "params": {
        "idempotencyKey": "shop-gruppe-3002-aus",
        "variantGroupId": "auto69",
        "active": false
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroup": {
            "id": "auto69",
            "name": "Geschirrtuch",
            "attributes": [
              {
                "key": "farbe",
                "label": "Farbe",
                "values": [
                  "rot",
                  "blau",
                  "grün"
                ]
              }
            ],
            "defaults": {
              "unitPriceCents": 590,
              "vatRate": 20,
              "stockTracked": true
            },
            "active": false,
            "variants": [
              {
                "articleId": "auto70",
                "variantAttributes": {
                  "farbe": "rot"
                }
              },
              {
                "articleId": "auto71",
                "variantAttributes": {
                  "farbe": "blau"
                }
              },
              {
                "articleId": "auto73",
                "variantAttributes": {
                  "farbe": "grün"
                }
              }
            ],
            "createdAt": "2026-10-06T08:02:42.000Z",
            "updatedAt": "2026-10-06T08:02:50.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_add_variant_group_inactive",
      "endpoint": "addVariant",
      "path": "/v3/addVariant",
      "params": {
        "idempotencyKey": "shop-variante-3002-blau-2",
        "variantGroupId": "auto69",
        "variantAttributes": {
          "farbe": "blau"
        }
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Variantengruppe ist stillgelegt und lässt sich nicht mehr ändern.",
        "data": {
          "code": "variant_group_inactive"
        },
        "code": "variant_group_inactive"
      }
    },
    {
      "channel": "api",
      "name": "get_variant_group",
      "endpoint": "getVariantGroup",
      "path": "/v3/getVariantGroup",
      "params": {
        "variantGroupId": "auto61"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroup": {
            "id": "auto61",
            "name": "Schürze",
            "attributes": [
              {
                "key": "groesse",
                "label": "Größe",
                "values": [
                  "S",
                  "M",
                  "L",
                  "XL"
                ]
              },
              {
                "key": "farbe",
                "label": "Farbe",
                "values": [
                  "rot",
                  "blau"
                ]
              }
            ],
            "defaults": {
              "unitPriceCents": 2490,
              "vatRate": 20,
              "stockTracked": true
            },
            "active": true,
            "variants": [
              {
                "articleId": "auto62",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto63",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "S"
                }
              },
              {
                "articleId": "auto64",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto65",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "M"
                }
              },
              {
                "articleId": "auto66",
                "variantAttributes": {
                  "farbe": "rot",
                  "groesse": "L"
                }
              },
              {
                "articleId": "auto67",
                "variantAttributes": {
                  "farbe": "blau",
                  "groesse": "L"
                }
              }
            ],
            "createdAt": "2026-10-06T08:02:41.000Z",
            "updatedAt": "2026-10-06T08:02:49.000Z"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_get_variant_group_not_found",
      "endpoint": "getVariantGroup",
      "path": "/v3/getVariantGroup",
      "params": {
        "variantGroupId": "gibt_es_nicht"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Variantengruppe nicht gefunden.",
        "data": {
          "code": "variant_group_not_found"
        },
        "code": "variant_group_not_found"
      }
    },
    {
      "channel": "api",
      "name": "list_variant_groups",
      "endpoint": "listVariantGroups",
      "path": "/v3/listVariantGroups",
      "params": {},
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "variantGroups": [
            {
              "id": "auto61",
              "name": "Schürze",
              "attributes": [
                {
                  "key": "groesse",
                  "label": "Größe",
                  "values": [
                    "S",
                    "M",
                    "L",
                    "XL"
                  ]
                },
                {
                  "key": "farbe",
                  "label": "Farbe",
                  "values": [
                    "rot",
                    "blau"
                  ]
                }
              ],
              "defaults": {
                "unitPriceCents": 2490,
                "vatRate": 20,
                "stockTracked": true
              },
              "active": true,
              "variants": [
                {
                  "articleId": "auto62",
                  "variantAttributes": {
                    "farbe": "rot",
                    "groesse": "S"
                  }
                },
                {
                  "articleId": "auto63",
                  "variantAttributes": {
                    "farbe": "blau",
                    "groesse": "S"
                  }
                },
                {
                  "articleId": "auto64",
                  "variantAttributes": {
                    "farbe": "rot",
                    "groesse": "M"
                  }
                },
                {
                  "articleId": "auto65",
                  "variantAttributes": {
                    "farbe": "blau",
                    "groesse": "M"
                  }
                },
                {
                  "articleId": "auto66",
                  "variantAttributes": {
                    "farbe": "rot",
                    "groesse": "L"
                  }
                },
                {
                  "articleId": "auto67",
                  "variantAttributes": {
                    "farbe": "blau",
                    "groesse": "L"
                  }
                }
              ],
              "createdAt": "2026-10-06T08:02:41.000Z",
              "updatedAt": "2026-10-06T08:02:49.000Z"
            },
            {
              "id": "auto69",
              "name": "Geschirrtuch",
              "attributes": [
                {
                  "key": "farbe",
                  "label": "Farbe",
                  "values": [
                    "rot",
                    "blau",
                    "grün"
                  ]
                }
              ],
              "defaults": {
                "unitPriceCents": 590,
                "vatRate": 20,
                "stockTracked": true
              },
              "active": false,
              "variants": [
                {
                  "articleId": "auto70",
                  "variantAttributes": {
                    "farbe": "rot"
                  }
                },
                {
                  "articleId": "auto71",
                  "variantAttributes": {
                    "farbe": "blau"
                  }
                },
                {
                  "articleId": "auto73",
                  "variantAttributes": {
                    "farbe": "grün"
                  }
                }
              ],
              "createdAt": "2026-10-06T08:02:42.000Z",
              "updatedAt": "2026-10-06T08:02:50.000Z"
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_articles_by_variant_group",
      "endpoint": "listArticles",
      "path": "/v3/listArticles",
      "params": {
        "variantGroupId": "auto61",
        "limit": 3
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "articles": [
            {
              "id": "auto62",
              "name": "Schürze S rot",
              "description": null,
              "unitPriceCents": 2490,
              "vatRate": 20,
              "unit": "Stk",
              "number": null,
              "ean": null,
              "internalCode": "3",
              "groupId": null,
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": true,
              "variantGroupId": "auto61",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "S"
              },
              "createdAt": "2026-10-06T08:02:41.000Z",
              "updatedAt": "2026-10-06T08:02:41.000Z",
              "stockLocationIds": [],
              "minStockByLocation": {}
            },
            {
              "id": "auto63",
              "name": "Schürze S blau",
              "description": null,
              "unitPriceCents": 2490,
              "vatRate": 20,
              "unit": "Stk",
              "number": null,
              "ean": null,
              "internalCode": "4",
              "groupId": null,
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": true,
              "variantGroupId": "auto61",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "S"
              },
              "createdAt": "2026-10-06T08:02:41.000Z",
              "updatedAt": "2026-10-06T08:02:41.000Z",
              "stockLocationIds": [],
              "minStockByLocation": {}
            },
            {
              "id": "auto64",
              "name": "Schürze M rot",
              "description": null,
              "unitPriceCents": 2490,
              "vatRate": 20,
              "unit": "Stk",
              "number": null,
              "ean": null,
              "internalCode": "5",
              "groupId": null,
              "revenueGroupId": null,
              "stockTracked": true,
              "stockKind": "quantity",
              "minStock": null,
              "active": true,
              "variantGroupId": "auto61",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "M"
              },
              "createdAt": "2026-10-06T08:02:41.000Z",
              "updatedAt": "2026-10-06T08:02:41.000Z",
              "stockLocationIds": [],
              "minStockByLocation": {}
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjczNzYxMDAwMDAwLCJpZCI6ImF1dG82NCJ9"
        }
      }
    },
    {
      "channel": "api",
      "name": "create_stocktake",
      "endpoint": "createStocktake",
      "path": "/v3/createStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-1",
        "name": "Inventur Lieferwagen Oktober",
        "locationId": "lieferwagen",
        "scope": {
          "type": "groups",
          "groupIds": [
            "gebaeck"
          ]
        },
        "type": "key_date",
        "keyDate": "2026-10-31"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "counting",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:06.000Z",
            "review": null,
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "create_stocktake_replayed",
      "endpoint": "createStocktake",
      "path": "/v3/createStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-1",
        "name": "Inventur Lieferwagen Oktober",
        "locationId": "lieferwagen",
        "scope": {
          "type": "groups",
          "groupIds": [
            "gebaeck"
          ]
        },
        "type": "key_date",
        "keyDate": "2026-10-31"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "counting",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:06.000Z",
            "review": null,
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_create_stocktake_location_busy",
      "endpoint": "createStocktake",
      "path": "/v3/createStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-2",
        "name": "Inventur Lieferwagen Oktober",
        "locationId": "lieferwagen",
        "scope": {
          "type": "groups",
          "groupIds": [
            "gebaeck"
          ]
        },
        "type": "key_date",
        "keyDate": "2026-10-31"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "An diesem Standort läuft schon eine Inventur.",
        "data": {
          "code": "stocktake_location_busy",
          "stocktakeId": "auto78"
        },
        "code": "stocktake_location_busy"
      }
    },
    {
      "channel": "api",
      "name": "record_stocktake_count",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-1",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 12000,
        "note": "Kiste vorne"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "count": {
            "id": "1e4df2db3f4543a42e292a75f390f7b4d6936099a7240184846a6b032a3e6b98",
            "articleId": "kipferl",
            "condition": "sellable",
            "quantity": 12000,
            "serialNumbers": [],
            "round": 1,
            "countedBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "cashregisterId": null,
            "countedAt": "2026-10-06T08:03:11.000Z",
            "note": "Kiste vorne",
            "voided": null
          },
          "item": {
            "articleId": "kipferl",
            "condition": "sellable",
            "name": "Butterkipferl",
            "number": "A-200",
            "unit": "Stk",
            "round": 1,
            "counted": true,
            "quantity": 12000,
            "counts": 1,
            "firstCountedAt": "2026-10-06T08:03:11.000Z",
            "referenceTime": "2026-10-06T08:03:11.000Z",
            "countedBy": [
              {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            ],
            "recountRequested": false,
            "addedLater": false
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "record_stocktake_count_replayed",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-1",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 12000,
        "note": "Kiste vorne"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "count": {
            "id": "1e4df2db3f4543a42e292a75f390f7b4d6936099a7240184846a6b032a3e6b98",
            "articleId": "kipferl",
            "condition": "sellable",
            "quantity": 12000,
            "serialNumbers": [],
            "round": 1,
            "countedBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "cashregisterId": null,
            "countedAt": "2026-10-06T08:03:11.000Z",
            "note": "Kiste vorne",
            "voided": null
          },
          "item": {
            "articleId": "kipferl",
            "condition": "sellable",
            "name": "Butterkipferl",
            "number": "A-200",
            "unit": "Stk",
            "round": 1,
            "counted": true,
            "quantity": 12000,
            "counts": 1,
            "firstCountedAt": "2026-10-06T08:03:11.000Z",
            "referenceTime": "2026-10-06T08:03:11.000Z",
            "countedBy": [
              {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            ],
            "recountRequested": false,
            "addedLater": false
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "record_stocktake_count_second",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-2",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 9000,
        "note": "Kiste hinten"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "count": {
            "id": "c4bcbef939611668aec06aeda0ccb5ffec860093571702e7f569aa9a26f49b8d",
            "articleId": "kipferl",
            "condition": "sellable",
            "quantity": 9000,
            "serialNumbers": [],
            "round": 1,
            "countedBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "cashregisterId": null,
            "countedAt": "2026-10-06T08:03:14.000Z",
            "note": "Kiste hinten",
            "voided": null
          },
          "item": {
            "articleId": "kipferl",
            "condition": "sellable",
            "name": "Butterkipferl",
            "number": "A-200",
            "unit": "Stk",
            "round": 1,
            "counted": true,
            "quantity": 21000,
            "counts": 2,
            "firstCountedAt": "2026-10-06T08:03:11.000Z",
            "referenceTime": "2026-10-06T08:03:14.000Z",
            "countedBy": [
              {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            ],
            "recountRequested": false,
            "addedLater": false
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "void_stocktake_count",
      "endpoint": "voidStocktakeCount",
      "path": "/v3/voidStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-2-storno",
        "stocktakeId": "auto78",
        "countId": "c4bcbef939611668aec06aeda0ccb5ffec860093571702e7f569aa9a26f49b8d",
        "reason": "Kiste doppelt gezählt"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "count": {
            "id": "c4bcbef939611668aec06aeda0ccb5ffec860093571702e7f569aa9a26f49b8d",
            "articleId": "kipferl",
            "condition": "sellable",
            "quantity": 9000,
            "serialNumbers": [],
            "round": 1,
            "countedBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "cashregisterId": null,
            "countedAt": "2026-10-06T08:03:14.000Z",
            "note": "Kiste hinten",
            "voided": {
              "reason": "Kiste doppelt gezählt",
              "voidedAt": "2026-10-06T08:03:16.000Z",
              "voidedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            }
          },
          "item": {
            "articleId": "kipferl",
            "condition": "sellable",
            "name": "Butterkipferl",
            "number": "A-200",
            "unit": "Stk",
            "round": 1,
            "counted": true,
            "quantity": 12000,
            "counts": 1,
            "firstCountedAt": "2026-10-06T08:03:11.000Z",
            "referenceTime": "2026-10-06T08:03:11.000Z",
            "countedBy": [
              {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            ],
            "recountRequested": false,
            "addedLater": false
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_record_stocktake_count_not_in_scope",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-3",
        "stocktakeId": "auto78",
        "articleId": "roggenbrot",
        "quantity": 1000
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Der Artikel gehört nicht zu dieser Inventur.",
        "data": {
          "code": "article_not_in_scope"
        },
        "code": "article_not_in_scope"
      }
    },
    {
      "channel": "api",
      "name": "get_stocktake_counting",
      "endpoint": "getStocktake",
      "path": "/v3/getStocktake",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "counting",
            "progress": {
              "items": 1,
              "counted": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:06.000Z",
            "review": null,
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktakes",
      "endpoint": "listStocktakes",
      "path": "/v3/listStocktakes",
      "params": {},
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktakes": [
            {
              "id": "auto78",
              "name": "Inventur Lieferwagen Oktober",
              "locationId": "lieferwagen",
              "scope": {
                "type": "groups",
                "groupIds": [
                  "gebaeck"
                ],
                "articleIds": []
              },
              "type": "key_date",
              "keyDate": "2026-10-31",
              "blind": true,
              "status": "counting",
              "progress": {
                "items": 1,
                "recountOpen": false
              },
              "createdAt": "2026-10-06T08:03:04.000Z",
              "createdBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "source": "api",
              "updatedAt": "2026-10-06T08:03:06.000Z",
              "review": null,
              "closing": null,
              "cancellation": null
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_items_counting",
      "endpoint": "listStocktakeItems",
      "path": "/v3/listStocktakeItems",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "items": [
            {
              "articleId": "kipferl",
              "condition": "sellable",
              "name": "Butterkipferl",
              "number": "A-200",
              "unit": "Stk",
              "round": 1,
              "counted": true,
              "quantity": 12000,
              "counts": 1,
              "firstCountedAt": "2026-10-06T08:03:11.000Z",
              "referenceTime": "2026-10-06T08:03:11.000Z",
              "countedBy": [
                {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                }
              ],
              "serialNumbers": [],
              "recountRequested": false,
              "addedLater": false
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_counts",
      "endpoint": "listStocktakeCounts",
      "path": "/v3/listStocktakeCounts",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "counts": [
            {
              "id": "c4bcbef939611668aec06aeda0ccb5ffec860093571702e7f569aa9a26f49b8d",
              "articleId": "kipferl",
              "condition": "sellable",
              "quantity": 9000,
              "serialNumbers": [],
              "round": 1,
              "countedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "source": "api",
              "cashregisterId": null,
              "countedAt": "2026-10-06T08:03:14.000Z",
              "note": "Kiste hinten",
              "voided": {
                "reason": "Kiste doppelt gezählt",
                "voidedAt": "2026-10-06T08:03:16.000Z",
                "voidedBy": {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                }
              }
            },
            {
              "id": "1e4df2db3f4543a42e292a75f390f7b4d6936099a7240184846a6b032a3e6b98",
              "articleId": "kipferl",
              "condition": "sellable",
              "quantity": 12000,
              "serialNumbers": [],
              "round": 1,
              "countedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "source": "api",
              "cashregisterId": null,
              "countedAt": "2026-10-06T08:03:11.000Z",
              "note": "Kiste vorne",
              "voided": null
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "review_stocktake",
      "endpoint": "reviewStocktake",
      "path": "/v3/reviewStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-pruefen-1",
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "review",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:24.000Z",
            "review": {
              "startedAt": "2026-10-06T08:03:24.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "complete": false
            },
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_record_stocktake_count_not_open",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-4",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 1000
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Hier wird gerade nicht gezählt.",
        "data": {
          "code": "stocktake_not_open"
        },
        "code": "stocktake_not_open"
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_items_review",
      "endpoint": "listStocktakeItems",
      "path": "/v3/listStocktakeItems",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "items": [
            {
              "articleId": "kipferl",
              "condition": "sellable",
              "name": "Butterkipferl",
              "number": "A-200",
              "unit": "Stk",
              "round": 1,
              "counted": true,
              "quantity": 12000,
              "counts": 1,
              "firstCountedAt": "2026-10-06T08:03:11.000Z",
              "referenceTime": "2026-10-06T08:03:11.000Z",
              "countedBy": [
                {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                }
              ],
              "serialNumbers": [],
              "recountRequested": false,
              "addedLater": false,
              "expectedQuantity": 24000,
              "differenceQuantity": -12000,
              "needsCheck": true,
              "checkReasons": [
                "far_from_key_date"
              ],
              "expectedAsOf": "2026-10-06T08:03:11.000Z",
              "missingSerialNumbers": [],
              "extraSerialNumbers": []
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "recount_stocktake",
      "endpoint": "recountStocktake",
      "path": "/v3/recountStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-nachzaehlen-1",
        "stocktakeId": "auto78",
        "items": [
          {
            "articleId": "kipferl"
          }
        ],
        "reason": "Kiste hinten fehlt"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "review",
            "progress": {
              "items": 1,
              "recountOpen": true
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:30.000Z",
            "review": {
              "startedAt": "2026-10-06T08:03:24.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "complete": true,
              "expectedAsOf": "2026-10-06T08:03:26.000Z",
              "recountUncounted": 0
            },
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "record_stocktake_count_recount",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-5",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 21000
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "count": {
            "id": "b2510ac53ae295926f547a77bb49cb27f257bd0ffb73f7b97dac69c9b1182937",
            "articleId": "kipferl",
            "condition": "sellable",
            "quantity": 21000,
            "serialNumbers": [],
            "round": 2,
            "countedBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "cashregisterId": null,
            "countedAt": "2026-10-06T08:03:33.000Z",
            "note": null,
            "voided": null
          },
          "item": {
            "articleId": "kipferl",
            "condition": "sellable",
            "name": "Butterkipferl",
            "number": "A-200",
            "unit": "Stk",
            "round": 2,
            "counted": true,
            "quantity": 21000,
            "counts": 1,
            "firstCountedAt": "2026-10-06T08:03:33.000Z",
            "referenceTime": "2026-10-06T08:03:33.000Z",
            "countedBy": [
              {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            ],
            "recountRequested": true,
            "recount": {
              "reason": "Kiste hinten fehlt",
              "requestedAt": "2026-10-06T08:03:30.000Z",
              "requestedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "round": 2
            },
            "addedLater": false
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_close_stocktake_recount_open",
      "endpoint": "closeStocktake",
      "path": "/v3/closeStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-schluss-0",
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Es sind noch Positionen zum Nachzählen offen. Bitte nachzählen und erneut prüfen.",
        "data": {
          "code": "stocktake_recount_open"
        },
        "code": "stocktake_recount_open"
      }
    },
    {
      "channel": "api",
      "name": "close_stocktake",
      "endpoint": "closeStocktake",
      "path": "/v3/closeStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-lw-schluss-1",
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "closing",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:03:40.000Z",
            "review": {
              "startedAt": "2026-10-06T08:03:36.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "complete": true,
              "expectedAsOf": "2026-10-06T08:03:38.000Z",
              "recountUncounted": 0
            },
            "closing": {
              "startedAt": "2026-10-06T08:03:40.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "uncountedAsZero": false,
              "parts": null,
              "bookedParts": 0
            },
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "get_stocktake_closed",
      "endpoint": "getStocktake",
      "path": "/v3/getStocktake",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "closed",
            "progress": {
              "items": 1,
              "counted": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:06:12.000Z",
            "review": {
              "startedAt": "2026-10-06T08:03:36.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "complete": true,
              "expectedAsOf": "2026-10-06T08:03:38.000Z",
              "recountUncounted": 0
            },
            "closing": {
              "startedAt": "2026-10-06T08:03:40.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "uncountedAsZero": false,
              "parts": 1,
              "bookedParts": 1,
              "completedAt": "2026-10-06T08:06:12.000Z"
            },
            "totals": {
              "items": 1,
              "counted": 1,
              "uncounted": 0,
              "recounted": 1,
              "withDifference": 1,
              "needsCheck": 1,
              "notBooked": 0
            },
            "warnings": [],
            "seal": {
              "fromDay": null,
              "toDay": "2026-10-05",
              "daysChecked": 0,
              "verified": true,
              "firstBreak": null,
              "gaps": [],
              "gapCount": 0
            },
            "checksum": "5ad6dc60c7f1b9a4062a35c4f70897be77212607c2fea776ec9ad9740dd8c9c6",
            "inventoryAsOf": "count_date",
            "pdf": {
              "available": true,
              "quantitiesSha256": "a271816287c89e663f21ba4afbf51c3ae8a68175ef4558c54ec07636b873f7dc"
            },
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_items_closed",
      "endpoint": "listStocktakeItems",
      "path": "/v3/listStocktakeItems",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "items": [
            {
              "articleId": "kipferl",
              "condition": "sellable",
              "name": "Butterkipferl",
              "number": "A-200",
              "unit": "Stk",
              "round": 2,
              "counted": true,
              "quantity": 21000,
              "counts": 1,
              "firstCountedAt": "2026-10-06T08:03:33.000Z",
              "referenceTime": "2026-10-06T08:03:33.000Z",
              "countedBy": [
                {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                }
              ],
              "serialNumbers": [],
              "recountRequested": true,
              "recount": {
                "reason": "Kiste hinten fehlt",
                "requestedAt": "2026-10-06T08:03:30.000Z",
                "requestedBy": {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                },
                "round": 2
              },
              "addedLater": false,
              "expectedQuantity": 24000,
              "differenceQuantity": -3000,
              "needsCheck": true,
              "checkReasons": [
                "far_from_key_date"
              ],
              "expectedAsOf": "2026-10-06T08:03:33.000Z",
              "missingSerialNumbers": [],
              "extraSerialNumbers": [],
              "bookedQuantity": -3000,
              "notBooked": null,
              "inventory": {
                "quantity": 21000,
                "countedOn": "2026-10-06"
              }
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "get_stocktake_closed_with_costs",
      "endpoint": "getStocktake",
      "path": "/v3/getStocktake",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto78",
            "name": "Inventur Lieferwagen Oktober",
            "locationId": "lieferwagen",
            "scope": {
              "type": "groups",
              "groupIds": [
                "gebaeck"
              ],
              "articleIds": []
            },
            "type": "key_date",
            "keyDate": "2026-10-31",
            "blind": true,
            "status": "closed",
            "progress": {
              "items": 1,
              "counted": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:03:04.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:06:12.000Z",
            "review": {
              "startedAt": "2026-10-06T08:03:36.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "complete": true,
              "expectedAsOf": "2026-10-06T08:03:38.000Z",
              "recountUncounted": 0
            },
            "closing": {
              "startedAt": "2026-10-06T08:03:40.000Z",
              "startedBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              },
              "uncountedAsZero": false,
              "parts": 1,
              "bookedParts": 1,
              "completedAt": "2026-10-06T08:06:12.000Z"
            },
            "totals": {
              "items": 1,
              "counted": 1,
              "uncounted": 0,
              "recounted": 1,
              "withDifference": 1,
              "needsCheck": 1,
              "notBooked": 0,
              "differenceValueCents": -122,
              "inventoryValueCents": 856
            },
            "warnings": [],
            "seal": {
              "fromDay": null,
              "toDay": "2026-10-05",
              "daysChecked": 0,
              "verified": true,
              "firstBreak": null,
              "gaps": [],
              "gapCount": 0
            },
            "checksum": "5ad6dc60c7f1b9a4062a35c4f70897be77212607c2fea776ec9ad9740dd8c9c6",
            "inventoryAsOf": "count_date",
            "pdf": {
              "available": true,
              "valuesSha256": "952eda0669f9b416e1653ba140a1c014db29fa058fb0ef553ba96023bb9627d9",
              "quantitiesSha256": "a271816287c89e663f21ba4afbf51c3ae8a68175ef4558c54ec07636b873f7dc"
            },
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_items_closed_with_costs",
      "endpoint": "listStocktakeItems",
      "path": "/v3/listStocktakeItems",
      "params": {
        "stocktakeId": "auto78",
        "limit": 1
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "items": [
            {
              "articleId": "kipferl",
              "condition": "sellable",
              "name": "Butterkipferl",
              "number": "A-200",
              "unit": "Stk",
              "round": 2,
              "counted": true,
              "quantity": 21000,
              "counts": 1,
              "firstCountedAt": "2026-10-06T08:03:33.000Z",
              "referenceTime": "2026-10-06T08:03:33.000Z",
              "countedBy": [
                {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                }
              ],
              "serialNumbers": [],
              "recountRequested": true,
              "recount": {
                "reason": "Kiste hinten fehlt",
                "requestedAt": "2026-10-06T08:03:30.000Z",
                "requestedBy": {
                  "type": "api",
                  "id": "kornblum",
                  "name": null
                },
                "round": 2
              },
              "addedLater": false,
              "expectedQuantity": 24000,
              "differenceQuantity": -3000,
              "needsCheck": true,
              "checkReasons": [
                "far_from_key_date"
              ],
              "expectedAsOf": "2026-10-06T08:03:33.000Z",
              "differenceValueCents": -122,
              "missingSerialNumbers": [],
              "extraSerialNumbers": [],
              "bookedQuantity": -3000,
              "notBooked": null,
              "inventory": {
                "quantity": 21000,
                "unitValueMicros": 407474,
                "valueCents": 856,
                "countedOn": "2026-10-06"
              }
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "get_stocktake_pdf_download",
      "endpoint": "getStocktakePdf",
      "path": "/v3/getStocktakePdf",
      "params": {
        "stocktakeId": "auto78"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "download": {
            "url": "https://storage.googleapis.com/kasseneck.appspot.com/users/kornblum/lager_inventuren/auto78/inventurprotokoll-mengen.pdf?X-Goog-Expires=900&X-Goog-Signature=EXAMPLE1791274887000",
            "expiresAt": "2026-10-06T08:21:27.000Z",
            "sizeBytes": 44,
            "sha256": "a271816287c89e663f21ba4afbf51c3ae8a68175ef4558c54ec07636b873f7dc",
            "fileName": "stocktake-auto78-quantities.pdf",
            "contentType": "application/pdf"
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_record_stocktake_count_closed",
      "endpoint": "recordStocktakeCount",
      "path": "/v3/recordStocktakeCount",
      "params": {
        "idempotencyKey": "shop-zaehlung-6",
        "stocktakeId": "auto78",
        "articleId": "kipferl",
        "quantity": 1000
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Die Inventur ist abgeschlossen oder abgebrochen.",
        "data": {
          "code": "stocktake_closed"
        },
        "code": "stocktake_closed"
      }
    },
    {
      "channel": "api",
      "name": "list_stock_movements_stocktake",
      "endpoint": "listStockMovements",
      "path": "/v3/listStockMovements",
      "params": {
        "type": "stocktake",
        "limit": 3
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "movements": [
            {
              "id": "inventur_auto78_1_0",
              "articleId": "kipferl",
              "type": "stocktake",
              "locationId": "lieferwagen",
              "condition": "sellable",
              "quantityDelta": -3000,
              "reservedDelta": 0,
              "stockAfter": {
                "sellable": 21000,
                "defective": 0,
                "reserved": null
              },
              "operationId": "inventur_auto78_1",
              "source": {
                "id": "auto78",
                "position": null,
                "type": "stocktake",
                "register": null
              },
              "viennaDay": "2026-10-06",
              "time": "2026-10-06T08:03:42.000Z",
              "lots": [
                {
                  "lotId": "auto35_L0",
                  "quantity": 3000,
                  "expiresOn": null,
                  "batch": null,
                  "serialNumber": null,
                  "receivedAt": "2026-10-06T06:00:03.000Z"
                }
              ]
            }
          ],
          "nextCursor": "eyJ6ZWl0IjoxNzkxMjY2NTEwMDAwLCJpZCI6ImF1dG8zNF8xIn0"
        }
      }
    },
    {
      "channel": "api",
      "name": "create_stocktake_perpetual",
      "endpoint": "createStocktake",
      "path": "/v3/createStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-haupt-1",
        "locationId": "haupt",
        "scope": {
          "type": "articles",
          "articleIds": [
            "roggenbrot"
          ]
        },
        "type": "perpetual",
        "blind": false
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto81",
            "name": "Inventur Hauptstandort 06.10.2026",
            "locationId": "haupt",
            "scope": {
              "type": "articles",
              "groupIds": [],
              "articleIds": [
                "roggenbrot"
              ]
            },
            "type": "perpetual",
            "keyDate": null,
            "blind": false,
            "status": "counting",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:06:31.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:06:33.000Z",
            "review": null,
            "closing": null,
            "cancellation": null
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "list_stocktake_items_not_blind",
      "endpoint": "listStocktakeItems",
      "path": "/v3/listStocktakeItems",
      "params": {
        "stocktakeId": "auto81"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "items": [
            {
              "articleId": "roggenbrot",
              "condition": "sellable",
              "name": "Roggenbrot 1 kg",
              "number": "A-100",
              "unit": "Stk",
              "round": 1,
              "counted": false,
              "quantity": null,
              "counts": 0,
              "firstCountedAt": null,
              "referenceTime": null,
              "countedBy": [],
              "serialNumbers": [],
              "recountRequested": false,
              "addedLater": false,
              "bookStockNow": 3000
            }
          ],
          "nextCursor": null
        }
      }
    },
    {
      "channel": "api",
      "name": "cancel_stocktake",
      "endpoint": "cancelStocktake",
      "path": "/v3/cancelStocktake",
      "params": {
        "idempotencyKey": "shop-inventur-haupt-abbruch",
        "stocktakeId": "auto81",
        "reason": "Falscher Standort"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "success",
        "message": "",
        "data": {
          "stocktake": {
            "id": "auto81",
            "name": "Inventur Hauptstandort 06.10.2026",
            "locationId": "haupt",
            "scope": {
              "type": "articles",
              "groupIds": [],
              "articleIds": [
                "roggenbrot"
              ]
            },
            "type": "perpetual",
            "keyDate": null,
            "blind": false,
            "status": "cancelled",
            "progress": {
              "items": 1,
              "recountOpen": false
            },
            "createdAt": "2026-10-06T08:06:31.000Z",
            "createdBy": {
              "type": "api",
              "id": "kornblum",
              "name": null
            },
            "source": "api",
            "updatedAt": "2026-10-06T08:06:36.000Z",
            "review": null,
            "closing": null,
            "cancellation": {
              "reason": "Falscher Standort",
              "cancelledAt": "2026-10-06T08:06:36.000Z",
              "cancelledBy": {
                "type": "api",
                "id": "kornblum",
                "name": null
              }
            }
          }
        }
      }
    },
    {
      "channel": "api",
      "name": "error_get_stocktake_pdf_not_closed",
      "endpoint": "getStocktakePdf",
      "path": "/v3/getStocktakePdf",
      "params": {
        "stocktakeId": "auto81"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Das Inventurprotokoll gibt es erst nach dem Abschluss.",
        "data": {
          "code": "stocktake_not_closed"
        },
        "code": "stocktake_not_closed"
      }
    },
    {
      "channel": "api",
      "name": "error_get_stocktake_not_found",
      "endpoint": "getStocktake",
      "path": "/v3/getStocktake",
      "params": {
        "stocktakeId": "gibt_es_nicht"
      },
      "httpStatus": 200,
      "headers": {
        "Kasseneck-Api-Version": "v3",
        "Access-Control-Expose-Headers": "Kasseneck-Api-Version"
      },
      "response": {
        "status": "error",
        "message": "Inventur nicht gefunden.",
        "data": {
          "code": "stocktake_not_found"
        },
        "code": "stocktake_not_found"
      }
    }
  ],
  "webhookEvents": [
    {
      "event": "stock.below_minimum",
      "body": {
        "id": "evt_wKLtZJFBjowUBsa875du",
        "type": "stock.below_minimum",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "articleId": "roggenbrot",
          "locationId": "haupt",
          "available": 4000,
          "minStock": 5000
        }
      }
    },
    {
      "event": "stock.changed",
      "body": {
        "id": "evt_6SjOpc8E0wUJamYx4wDc",
        "type": "stock.changed",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "articleId": "kipferl",
          "locationId": "haupt",
          "onHand": 40000,
          "reserved": 0,
          "available": 40000,
          "defective": 0,
          "sequence": 1,
          "updatedAt": "2026-10-06T06:00:03.000Z",
          "cause": "goods_receipt",
          "movementId": "auto1_1"
        }
      }
    },
    {
      "event": "stock.changed",
      "body": {
        "id": "evt_xF1Ox0CUvFfDWlmVM9xp",
        "type": "stock.changed",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "articleId": "roggenbrot",
          "locationId": "haupt",
          "onHand": 4000,
          "reserved": 0,
          "available": 4000,
          "defective": 0,
          "sequence": 2,
          "updatedAt": "2026-10-06T06:00:04.000Z",
          "cause": "loss",
          "movementId": "auto2_0"
        }
      }
    },
    {
      "event": "article.updated",
      "body": {
        "id": "evt_y3OmCZX2aGSmO51tvMVg",
        "type": "article.updated",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "id": "kipferl",
          "name": "Butterkipferl",
          "description": null,
          "unitPriceCents": 130,
          "vatRate": 10,
          "unit": "Stk",
          "number": "A-200",
          "ean": null,
          "internalCode": "KB-200",
          "groupId": "gebaeck",
          "revenueGroupId": null,
          "stockTracked": true,
          "stockKind": "quantity",
          "minStock": null,
          "active": true,
          "createdAt": "2026-10-01T04:30:00.000Z",
          "updatedAt": "2026-10-06T06:00:04.000Z",
          "stockLocationIds": [
            "haupt",
            "lieferwagen"
          ],
          "minStockByLocation": {}
        }
      }
    },
    {
      "event": "article.created",
      "body": {
        "id": "evt_OBMDnXTaeE7t8CbeZjMY",
        "type": "article.created",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "id": "semmel",
          "name": "Kaisersemmel",
          "description": null,
          "unitPriceCents": 120,
          "vatRate": 10,
          "unit": "Stk",
          "number": "A-300",
          "ean": null,
          "internalCode": "KB-300",
          "groupId": "gebaeck",
          "revenueGroupId": null,
          "stockTracked": true,
          "stockKind": "quantity",
          "minStock": null,
          "active": true,
          "createdAt": "2026-10-06T06:00:04.000Z",
          "updatedAt": "2026-10-06T06:00:04.000Z",
          "stockLocationIds": [
            "haupt"
          ],
          "minStockByLocation": {}
        }
      }
    },
    {
      "event": "article.deactivated",
      "body": {
        "id": "evt_VKmC9XoEcVNwBCwlbdw7",
        "type": "article.deactivated",
        "createdAt": 1791266404000,
        "accountId": "kornblum",
        "data": {
          "id": "semmel",
          "name": "Kaisersemmel",
          "description": null,
          "unitPriceCents": 120,
          "vatRate": 10,
          "unit": "Stk",
          "number": "A-300",
          "ean": null,
          "internalCode": "KB-300",
          "groupId": "gebaeck",
          "revenueGroupId": null,
          "stockTracked": true,
          "stockKind": "quantity",
          "minStock": null,
          "active": false,
          "createdAt": "2026-10-06T06:00:04.000Z",
          "updatedAt": "2026-10-06T06:00:04.001Z",
          "stockLocationIds": [
            "haupt"
          ],
          "minStockByLocation": {}
        }
      }
    },
    {
      "event": "reservation.released",
      "body": {
        "id": "evt_Dfmu8JDwcnPAV1FQs0I1",
        "type": "reservation.released",
        "createdAt": 1791266545000,
        "accountId": "kornblum",
        "data": {
          "id": "auto43",
          "status": "active",
          "reference": "Bestellung 1001",
          "items": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "quantity": 2000,
              "redeemed": 0,
              "released": 0
            },
            {
              "articleId": "kipferl",
              "locationId": "lieferwagen",
              "quantity": 6000,
              "redeemed": 0,
              "released": 2000
            }
          ],
          "expiresAt": "2026-10-06T07:02:23.000Z",
          "createdAt": "2026-10-06T06:02:17.000Z"
        }
      }
    },
    {
      "event": "reservation.released",
      "body": {
        "id": "evt_rUOsoTiFTFFLwqzYMk0T",
        "type": "reservation.released",
        "createdAt": 1791266549000,
        "accountId": "kornblum",
        "data": {
          "id": "auto49",
          "status": "released",
          "reference": "Bestellung 1004",
          "items": [
            {
              "articleId": "kipferl",
              "locationId": "haupt",
              "quantity": 3000,
              "redeemed": 0,
              "released": 3000
            }
          ],
          "expiresAt": "2026-10-13T06:02:27.000Z",
          "createdAt": "2026-10-06T06:02:27.000Z"
        }
      }
    },
    {
      "event": "reservation.redeemed",
      "body": {
        "id": "evt_8OrjPFWWKMAG8SzUBqCW",
        "type": "reservation.redeemed",
        "createdAt": 1791266555000,
        "accountId": "kornblum",
        "data": {
          "id": "auto53",
          "status": "redeemed",
          "reference": "Bestellung 1005",
          "items": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "quantity": 1000,
              "redeemed": 1000,
              "released": 0
            }
          ],
          "expiresAt": "2026-10-13T06:02:35.000Z",
          "createdAt": "2026-10-06T06:02:35.000Z"
        }
      }
    },
    {
      "event": "reservation.expired",
      "body": {
        "id": "evt_yURAAwBJvs0LxnT5JTcl",
        "type": "reservation.expired",
        "createdAt": 1791273757000,
        "accountId": "kornblum",
        "data": {
          "id": "auto43",
          "status": "expired",
          "reference": "Bestellung 1001",
          "items": [
            {
              "articleId": "roggenbrot",
              "locationId": "haupt",
              "quantity": 2000,
              "redeemed": 0,
              "released": 2000
            },
            {
              "articleId": "kipferl",
              "locationId": "lieferwagen",
              "quantity": 6000,
              "redeemed": 0,
              "released": 6000
            }
          ],
          "expiresAt": "2026-10-06T07:02:23.000Z",
          "createdAt": "2026-10-06T06:02:17.000Z"
        }
      }
    },
    {
      "event": "variant_group.created",
      "body": {
        "id": "evt_IAR3WQVOsAFKylh1U2BQ",
        "type": "variant_group.created",
        "createdAt": 1791273761000,
        "accountId": "kornblum",
        "data": {
          "id": "auto61",
          "name": "Schürze",
          "attributes": [
            {
              "key": "groesse",
              "label": "Größe",
              "values": [
                "S",
                "M",
                "L"
              ]
            },
            {
              "key": "farbe",
              "label": "Farbe",
              "values": [
                "rot",
                "blau"
              ]
            }
          ],
          "defaults": {
            "unitPriceCents": 2490,
            "vatRate": 20,
            "stockTracked": true
          },
          "active": true,
          "variants": [
            {
              "articleId": "auto62",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "S"
              }
            },
            {
              "articleId": "auto63",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "S"
              }
            },
            {
              "articleId": "auto64",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "M"
              }
            },
            {
              "articleId": "auto65",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "M"
              }
            },
            {
              "articleId": "auto66",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "L"
              }
            },
            {
              "articleId": "auto67",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "L"
              }
            }
          ],
          "createdAt": "2026-10-06T08:02:41.000Z",
          "updatedAt": "2026-10-06T08:02:41.000Z"
        }
      }
    },
    {
      "event": "variant_group.created",
      "body": {
        "id": "evt_40NGWtM80JBIe8b5ZUUm",
        "type": "variant_group.created",
        "createdAt": 1791273762000,
        "accountId": "kornblum",
        "data": {
          "id": "auto69",
          "name": "Geschirrtuch",
          "attributes": [
            {
              "key": "farbe",
              "label": "Farbe",
              "values": [
                "rot",
                "blau",
                "grün"
              ]
            }
          ],
          "defaults": {
            "unitPriceCents": 590,
            "vatRate": 20,
            "stockTracked": true
          },
          "active": true,
          "variants": [
            {
              "articleId": "auto70",
              "variantAttributes": {
                "farbe": "rot"
              }
            },
            {
              "articleId": "auto71",
              "variantAttributes": {
                "farbe": "blau"
              }
            }
          ],
          "createdAt": "2026-10-06T08:02:42.000Z",
          "updatedAt": "2026-10-06T08:02:42.000Z"
        }
      }
    },
    {
      "event": "variant_group.updated",
      "body": {
        "id": "evt_aJdQAftj5BgdB2iC99rF",
        "type": "variant_group.updated",
        "createdAt": 1791273765000,
        "accountId": "kornblum",
        "data": {
          "id": "auto69",
          "name": "Geschirrtuch",
          "attributes": [
            {
              "key": "farbe",
              "label": "Farbe",
              "values": [
                "rot",
                "blau",
                "grün"
              ]
            }
          ],
          "defaults": {
            "unitPriceCents": 590,
            "vatRate": 20,
            "stockTracked": true
          },
          "active": true,
          "variants": [
            {
              "articleId": "auto70",
              "variantAttributes": {
                "farbe": "rot"
              }
            },
            {
              "articleId": "auto71",
              "variantAttributes": {
                "farbe": "blau"
              }
            },
            {
              "articleId": "auto73",
              "variantAttributes": {
                "farbe": "grün"
              }
            }
          ],
          "createdAt": "2026-10-06T08:02:42.000Z",
          "updatedAt": "2026-10-06T08:02:45.000Z"
        }
      }
    },
    {
      "event": "variant_group.updated",
      "body": {
        "id": "evt_x3IKfltELZrP4BBfQ1GO",
        "type": "variant_group.updated",
        "createdAt": 1791273769000,
        "accountId": "kornblum",
        "data": {
          "id": "auto61",
          "name": "Schürze",
          "attributes": [
            {
              "key": "groesse",
              "label": "Größe",
              "values": [
                "S",
                "M",
                "L",
                "XL"
              ]
            },
            {
              "key": "farbe",
              "label": "Farbe",
              "values": [
                "rot",
                "blau"
              ]
            }
          ],
          "defaults": {
            "unitPriceCents": 2490,
            "vatRate": 20,
            "stockTracked": true
          },
          "active": true,
          "variants": [
            {
              "articleId": "auto62",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "S"
              }
            },
            {
              "articleId": "auto63",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "S"
              }
            },
            {
              "articleId": "auto64",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "M"
              }
            },
            {
              "articleId": "auto65",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "M"
              }
            },
            {
              "articleId": "auto66",
              "variantAttributes": {
                "farbe": "rot",
                "groesse": "L"
              }
            },
            {
              "articleId": "auto67",
              "variantAttributes": {
                "farbe": "blau",
                "groesse": "L"
              }
            }
          ],
          "createdAt": "2026-10-06T08:02:41.000Z",
          "updatedAt": "2026-10-06T08:02:49.000Z"
        }
      }
    },
    {
      "event": "variant_group.updated",
      "body": {
        "id": "evt_a573FtSb4SwirpUo683R",
        "type": "variant_group.updated",
        "createdAt": 1791273770000,
        "accountId": "kornblum",
        "data": {
          "id": "auto69",
          "name": "Geschirrtuch",
          "attributes": [
            {
              "key": "farbe",
              "label": "Farbe",
              "values": [
                "rot",
                "blau",
                "grün"
              ]
            }
          ],
          "defaults": {
            "unitPriceCents": 590,
            "vatRate": 20,
            "stockTracked": true
          },
          "active": false,
          "variants": [
            {
              "articleId": "auto70",
              "variantAttributes": {
                "farbe": "rot"
              }
            },
            {
              "articleId": "auto71",
              "variantAttributes": {
                "farbe": "blau"
              }
            },
            {
              "articleId": "auto73",
              "variantAttributes": {
                "farbe": "grün"
              }
            }
          ],
          "createdAt": "2026-10-06T08:02:42.000Z",
          "updatedAt": "2026-10-06T08:02:50.000Z"
        }
      }
    },
    {
      "event": "stock.changed",
      "body": {
        "id": "evt_jZnZoygxYWe7NEyLxhmn",
        "type": "stock.changed",
        "createdAt": 1791273982000,
        "accountId": "kornblum",
        "data": {
          "articleId": "kipferl",
          "locationId": "lieferwagen",
          "onHand": 21000,
          "reserved": 0,
          "available": 21000,
          "defective": 0,
          "sequence": 5,
          "updatedAt": "2026-10-06T08:03:42.000Z",
          "cause": "stocktake",
          "movementId": "inventur_auto78_1_0"
        }
      }
    }
  ]
}
