{
  "openapi": "3.1.0",
  "info": {
    "description": "# Überblick\n\n* **Version:** 2.0.0\n* **Server**: `https://store.xsolla.com/api`\n* **[Kontaktieren Sie uns per E-Mail](mailto:integration@xsolla.com)**\n* **Kontakt-URL:** https://xsolla.com/\n* **Erforderliche TLS-Version:** 1.2\n\nLiveOps ist ein Toolkit, mit dem sich die Spielerbindung durch Werbeaktionen und personalisierte Angebote steigern lässt.\n\nMit der API lassen sich die folgenden Funktionen steuern:\n\n* **Werbeaktionen** – Erstellen und Verwalten von Gutscheinen, Promocodes, Rabatten und Bonuskampagnen.\n* **Personalisierung** – Festlegen von Bedingungen für die Anzeige des Artikelkatalogs und die Inanspruchnahme von Werbeaktionen für bestimmte autorisierte Nutzer.\n* **Werbeaktionslimits** – Festlegen, wie oft eine Werbeaktion von einem Nutzer in Anspruch genommen werden darf und wann diese Limits zurückgesetzt werden.\n* **Belohnungsketten und Wertpunkte** — Konfigurieren von Belohnungsketten, wobei das Durchlaufen dieser Ketten an das Sammeln von Wertpunkten gekoppelt ist.\n* **Tägliche Ketten** – Einrichten von wiederkehrenden täglichen Belohnungen, um Nutzer zu motivieren, sich regelmäßig anzumelden.\n* **Angebotsketten** – Erstellen von aufeinanderfolgenden Kaufangeboten mit gestaffelten Preisen und kostenlosen Belohnungen.\n* **Upselling** – Verkaufsmethode, bei der dem Nutzer ein Artikel mit zusätzlichem Mehrwert zum Kauf angeboten wird.\n\n## API-Aufrufe\n\nDie API ist in die **folgenden Gruppen** unterteilt:\n\n* **<nt>Admin</nt>** – Aufrufe zum Erstellen, Aktualisieren, Aktivieren und Löschen von Kampagnen und Kettenkonfigurationen. Die Authentifizierung erfolgt über [Basisauthentifizierung](https://developers.xsolla.com/de/payment-ui-and-flow/payment-ui/how-to-get-payment-token/#payments_solution_get_user_auth_token_basic_auth) mit Ihren Händler- oder Projektanmeldedaten.\n* **<nt>Client</nt>** – Aufrufe zum Abrufen verfügbarer Werbeaktionen, zum Abrufen aktiver Ketten, zum Einlösen von Codes und zum Beanspruchen von Belohnungen im Namen authentifizierter Endnutzer. Die Authentifizierung erfolgt über den Benutzer-JWT.\n\n# Authentifizierung\n\nAPI-Aufrufe erfordern eine Authentifizierung entweder im Namen eines Nutzers oder im Namen eines Projekts. Das verwendete Authentifizierungsschema ist im Abschnitt **Sicherheit** – in der Beschreibung des jeweiligen Aufrufs – angegeben.\n\n## Authentifizierung mit Benutzer-JWT\n\nDie Authentifizierung mit Benutzer-JWT kommt zum Einsatz, wenn eine Anfrage von einem Browser, einer App oder einem Spiel gesendet wird. Standardmäßig wird das Schema `XsollaLoginUserJWT` angewendet. Weitere Informationen zum Erstellen eines Tokens finden Sie in der [Dokumentation zur Xsolla-Login-API](/de/api/login/authentication-schemes#getting-user-token).\n\nDer Token wird im `Authorization`-Header im folgenden Format übermittelt: `Authorization: Bearer <user_JWT>`, wobei `<user_JWT>` der Benutzertoken ist. Der Token dient dazu, den Nutzer zu identifizieren und ihm Zugriff auf personalisierte Daten zu ermöglichen.\n\nAlternativ können Sie einen [Token zum Öffnen des Zahlungsportals verwenden](/de/api/pay-station/token/create-token).\n\n## HTTP-Basisauthentifizierung\n\nDie HTTP-Basisauthentifizierung wird für Server-zu-Server-Interaktionen verwendet, wenn ein API-Aufruf direkt von Ihrem Server und nicht von einem Browser oder einer App gesendet wird. Typischerweise wird die HTTP-Basisauthentifizierung gemeinsam mit einem [API-Schlüssel](/de/api/getting-started/#api_keys_overview) verwendet.\n\n<div class=\"note\"><b>Hinweis</b><br><br>Der API-Schlüssel ist vertraulich und darf nicht in Client-Anwendungen gespeichert oder verwendet werden.</div>\n\nBei der serverseitigen Basisauthentifizierung müssen alle API-Anfragen den folgenden Header enthalten:\n\n- für `basicAuth` – `Authorization: Basic <your_authorization_basic_key>`, wobei `your_authorization_basic_key` das gemäß Base64-Verfahren kodierte `project_id:api_key`-Paar ist\n- für `basicMerchantAuth` – `Authorization: Basic <your_authorization_basic_key>`, wobei `your_authorization_basic_key` das gemäß Base64-Verfahren kodierte `merchant_id:api_key` Paar ist\n\nDie Parameterwerte finden Sie im [Kundenportal](https://publisher.xsolla.com/) an folgenden Orten:\n\n- `merchant_id` wird angezeigt:\n  - unter **Firmeneinstellungen > Firma**.\n  - in der URL in der Adressleiste des Browsers auf einer beliebigen Seite im Kundenportal. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>`.\n- `project_id` wird angezeigt:\n  - neben dem Projektnamen im Kundenportal.\n  - in der URL in der Adressleiste des Browsers, wenn Sie im Kundenportal ein Projekt geöffnet haben. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n- `api_key` wird im Kundenportal nur einmal angezeigt, nämlich dann, wenn er erstellt wird. Sie sind selbst dafür verantwortlich, den Schlüssel in Ihrem System zu speichern. Einen API-Schlüssel können Sie an den folgenden Orten erstellen:\n  - unter [Firmeneinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/settings/api_key)\n  - unter [Projekteinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n<div class=\"notice\"><b>Hinweis</b><br><br>Falls bei einem erforderlichen API-Aufruf der Pfadparameter <code>project_id</code> fehlt, müssen Sie einen API-Schlüssel verwenden, der für alle Projekte der Firma gültig ist.</div>\n\nWeitere Informationen zur Arbeit mit API-Schlüsseln finden Sie in den [API-Referenzen](/de/api/getting-started/#api_keys_overview).\n\n## Authentifizierung mit Unterstützung für Gastzugang\n\nDas Authentifizierungsschema `AuthForCart` wird für Warenkorbkäufe verwendet und unterstützt zwei Modi:\n\n1. **Authentifizierung mit einem Benutzer-JWT.** Der Token wird im `Authorization`-Header im folgenden Format übermittelt: `Authorization: Bearer <user_JWT>`, wobei `<user_JWT>` der Benutzertoken ist. Der Token dient dazu, den Nutzer zu identifizieren und ihm Zugriff auf personalisierte Daten zu ermöglichen.\nAlternativ können Sie einen [Token zum Öffnen des Zahlungsportals](/de/api/pay-station/token/create-token) verwenden.\n\n2. **Vereinfachter Modus ohne Autorisierungs-Header.** Dieser Modus ist nur für nicht autorisierte Nutzer vorgesehen und kann lediglich für den [Verkauf von Spielschlüsseln](/de/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users) genutzt werden. Anstelle eines Tokens muss die Anfrage die folgenden Header enthalten:\n   - `x-unauthorized-id` samt Anfrage-ID\n   - `x-user` samt der E-Mail-Adresse des Nutzers, kodiert in Base64\n\n## Nützliche Links\n\n- [API-Aufrufe nach Interaktionsmodell](https://developers.xsolla.com/de/api/catalog/)\n- [Endpunkttypen](https://developers.xsolla.com/de/api/catalog/)\n- [Fehlerbehandlung](https://developers.xsolla.com/de/api/catalog/)\n- [API-Schlüssel](https://developers.xsolla.com/de/api/catalog/)\n\n# Grundstruktur der Entität\n\nAlle Artikeltypen (virtuelle Gegenstände, Bundles, virtuelle Währung und Schlüssel) haben eine ähnliche Datenstruktur. Kenntnisse über die Grundstruktur vereinfachen die Arbeit mit der API und erleichtern das Navigieren in der Dokumentation.\n\n<div class=\"note\"><b>Hinweis</b><br><br>Einige Aufrufe können zusätzliche Felder enthalten, doch diese ändern nichts an der Grundstruktur.</div>\n\n**Identifikation**\n\n- `merchant_id` – Firmen-ID im [Kundenportal](https://publisher.xsolla.com/)\n- `project_id` – Projekt-ID im Kundenportal\n- `sku` – Artikel-SKU, einzigartig innerhalb des Projekts\n\n**Shop-Anzeige**\n\n- `name` – Artikelname\n- `description` – Artikelbeschreibung\n- `image_url` – Bild-URL\n- `is_enabled` – Artikelverfügbarkeit\n- `is_show_in_store` – ob der Artikel im Katalog angezeigt wird\n\nWeitere Informationen zur Verwaltung der Artikelverfügbarkeit im Katalog finden Sie in der [Dokumentation](/de/items-catalog/catalog-features/items-availability/).\n\n**Organisation**\n\n- `type` – Artikeltyp, zum Beispiel ein virtueller Gegenstand (`virtual_item`) oder Bundle (`bundle`)\n- `groups` – Gruppen, zu denen der Artikel gehört\n- `order` – Anzeigereihenfolge im Katalog\n\n**Verkaufsbedingungen**\n\n- `prices` – Preise in echter oder virtueller Währung\n- `limits` – Kauflimits\n- `periods` – Verfügbarkeitszeiträume\n- `regions` – regionale Beschränkungen\n\n**Grundstruktur einer Entität (Beispiel):**\n\n```json\n{\n  \"attributes\": [],\n  \"bundle_type\": \"virtual_currency_package\",\n  \"content\": [\n    {\n      \"description\": {\n        \"en\": \"Main in-game currency\"\n      },\n      \"image_url\": \"https://.../image.png\",\n      \"name\": {\n        \"en\": \"Crystals\",\n        \"de\": \"Kristalle\"\n      },\n      \"quantity\": 500,\n      \"sku\": \"com.xsolla.crystal_2\",\n      \"type\": \"virtual_currency\"\n    }\n  ],\n  \"description\": {\n    \"en\": \"Crystals x500\"\n  },\n  \"groups\": [],\n  \"image_url\": \"https://.../image.png\",\n  \"is_enabled\": true,\n  \"is_free\": false,\n  \"is_show_in_store\": true,\n  \"limits\": {\n    \"per_item\": null,\n    \"per_user\": null,\n    \"recurrent_schedule\": null\n  },\n  \"long_description\": null,\n  \"media_list\": [],\n  \"name\": {\n    \"en\": \"Medium crystal pack\"\n  },\n  \"order\": 1,\n  \"periods\": [\n    {\n      \"date_from\": null,\n      \"date_until\": \"2020-08-11T20:00:00+03:00\"\n    }\n  ],\n  \"prices\": [\n    {\n      \"amount\": 20,\n      \"country_iso\": \"US\",\n      \"currency\": \"USD\",\n      \"is_default\": true,\n      \"is_enabled\": true\n    }\n  ],\n  \"regions\": [],\n  \"sku\": \"com.xsolla.crystal_pack_2\",\n  \"type\": \"bundle\",\n  \"vc_prices\": []\n}\n```\n\n# Grundlegender Kaufablauf\n\nÜber die Xsolla-API lässt sich die Logik für einen Ingame-Shop implementieren, darunter das Abrufen des Artikelkatalogs, die Verwaltung des Warenkorbs, das Anlegen von Bestellungen und die Verfolgung des Bestellstatus. Je nach Integrationsszenario sind die API-Aufrufe in die Unterbereiche **Verwaltung** und **Katalog** unterteilt, die unterschiedliche [Authentifizierungsschemen](/de/api/catalog/section/authentication) verwenden.\n\nDas folgende Beispiel zeigt den grundlegenden Ablauf für die Einrichtung und den Betrieb eines Shops, von der Artikelerstellung bis zum Kauf.\n\n## Artikel und Gruppen erstellen (Verwaltung)\n\nErstellen Sie für Ihren Shop einen Katalog mit Artikeln wie etwa virtuellen Gegenständen, Bundles oder virtueller Währung.\n\nAPI-Aufrufe (Beispiele):\n- [Virtuellen Gegenstand erstellen](/de/api/catalog/virtual-items-currency-admin/admin-create-virtual-item)\n- [Bundle erstellen](/de/api/catalog/bundles-admin/admin-create-bundle)\n- [Virtuelle Währung erstellen](/de/api/catalog/virtual-items-currency-admin/admin-create-virtual-currency)\n\n## Werbeaktionen, Ketten und Limits einrichten (Verwaltung)\n\nKonfigurieren Sie Tools für die Nutzergewinnung und Monetarisierung, wie etwa Rabatte, Boni, tägliche Belohnungen oder Angebotsketten.\n\nAPI-Aufrufe (Beispiele):\n- [Bonusaktion erstellen](/de/api/liveops/promotions-bonuses/create-bonus-promotion)\n- [Tägliche Belohnung erstellen](/de/api/liveops/daily-chain-admin/admin-create-daily-chain)\n- [Katalogsonderangebot erstellen](/de/api/liveops/promotions-unique-catalog-offers/admin-create-unique-catalog-offer)\n\n## Artikelinformationen abrufen (Client)\n\nKonfigurieren Sie, wie Artikel in Ihrer Anwendung angezeigt werden sollen.\n\n<div class=\"notice\">\n  <b>Hinweis</b><br><br>\n    Verwenden Sie keine API-Aufrufe aus dem Unterabschnitt \"Verwaltung\", um einen Nutzerkatalog zu erstellen. Diese API-Aufrufe unterliegen <a href=\"https://developers.xsolla.com/de/api/getting-started/#api_rate_limits\" target=\"_blank\">Ratenbegrenzungen</a> und sind nicht für Nutzer-Traffic vorgesehen.\n</div>\n\n<br>\n\nAPI-Aufrufe (Beispiele):\n- [Liste virtueller Gegenstände abrufen](/de/api/catalog/virtual-items-currency-catalog/get-virtual-items)\n- [Liste der Artikelgruppen abrufen](/de/api/catalog/virtual-items-currency-catalog/get-item-groups)\n- [Liste der Bundles abrufen](/de/api/catalog/bundles-catalog/get-bundle-list)\n- [Liste der verkäuflichen Artikel abrufen](/de/api/catalog/common-catalog/get-sellable-items)\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n    Standardmäßig geben katalogbezogene API-Aufrufe Artikel zurück, die zum Zeitpunkt der Anfrage im Shop verfügbar sind. Um Artikel abzurufen, die noch nicht verfügbar oder nicht mehr verfügbar sind, müssen Sie den Parameter <code>\"show_inactive_time_limited_items\": 1</code> in der Kataloganfrage ergänzen.\n</div>\n\n## Artikel verkaufen\n\nArtikel können Sie mit den folgenden Methoden verkaufen:\n- Schnellkauf – Verkauf einer einzelnen SKU in beliebiger Menge.\n- Warenkorbkauf – der Nutzer kann im Rahmen einer Bestellung Artikel in den Warenkorb legen, Artikel aus dem Warenkorb entfernen und die Menge jedes einzelnen Artikels ändern.\n\nWird ein Artikel mit virtueller Währung anstelle von echtem Geld gekauft, müssen Sie den API-Aufruf [Bestellung mit einem angegebenen, in virtueller Währung gekauften Artikel anlegen](/de/api/catalog/virtual-payment/create-order-with-item-for-virtual-currency) verwenden. Das Zahlungsportal muss nicht aufgerufen werden, da die Zahlungsabwicklung bei Ausführung des API-Aufrufs erfolgt.\n\nBeim Kauf eines kostenlosen Artikels müssen Sie den API-Aufruf [Bestellung mit angegebenem kostenlosen Artikel anlegen](/de/api/catalog/free-item/create-free-order-with-item) oder den API-Aufruf [Bestellung mit einem kostenlosen Warenkorb anlegen](/de/api/catalog/free-item/create-free-order) verwenden. as Zahlungsportal muss nicht aufgerufen werden – der Bestellung wird sofort der Status <code>done</code> zugewiesen.\n\n### Schnellkauf\n\nVerwenden Sie den clientseitigen API-Aufruf, um [eine Bestellung mit einem angegebenen Artikel anzulegen](/de/api/catalog/payment-client-side/create-order-with-item). Der Aufruf gibt einen Token zurück, mit dem sich das Zahlungsportal öffnen lässt.\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n    Rabattinformationen sind für den Nutzer nur im Zahlungsportal verfügbar. Promocodes werden nicht unterstützt.\n</div>\n\n### Warenkorbkauf\n\nDie Einrichtung des Warenkorbs und der Kaufvorgang können sowohl client- als auch serverseitg erfolgen.\n\n**Warenkorb clientseitig einrichten und Artikel kaufen**\n\nImplementieren Sie die Logik für das Hinzufügen und Entfernen von Artikeln selbst. Bevor Sie die API zum Einrichten eines Warenkorbs aufrufen, liegen Ihnen keine Informationen darüber vor, welche Werbeaktionen auf den Kauf angewendet werden. Die Gesamtkosten und die Details der hinzugefügten Bonusartikel sind Ihnen also unbekannt.\n\nImplementieren Sie die folgende Warenkorblogik:\n1. Verwenden Sie den API-Aufruf [Artikel in den Warenkorb legen](/de/api/shop-builder/operation/cart-fill/), nachdem der Spieler einen Warenkorb zusammengestellt hat. Der Aufruf gibt die aktuellen Informationen zu den ausgewählten Artikeln zurück (Preise mit und ohne Rabatt, Bonusartikel).\n2. Aktualisieren Sie den Warenkorbinhalt basierend auf den Aktionen des Nutzers:\n   - Verwenden Sie den API-Aufruf [Warenkorbartikel anhand von Warenkorb-ID aktualisieren](/de/api/shop-builder/operation/put-item-by-cart-id/), um einen Artikel in den Warenkorb zu legen oder die Artikelmenge zu ändern.\n   - Verwenden Sie den API-Aufruf [Warenkorbartikel anhand von Warenkorb-ID löschen](/de/api/shop-builder/operation/delete-item-by-cart-id/), um einen Artikel zu entfernen.\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n    Mit dem API-Aufruf \"Warenkorb des aktuellen Benutzers abrufen\" können Sie den aktuellen Status des Warenkorbs abrufen.\n</div>\n\n3. Verwenden Sie den API-Aufruf [Bestellung mit allen Artikeln aus dem aktuellen Warenkorb anlegen](/de/api/shop-builder/operation/create-order/). Der Aufruf gibt die Bestell-ID und den Zahlungstoken zurück. Der neu angelegten Bestellung wird standardmäßig der Status <code>new</code> zugewiesen.\n\n**Warenkorb serverseitig einrichten und Artikel kaufen**\n\nDiese Einrichtungsoption kann länger dauern, da jede Änderung am Warenkorb durch API-Aufrufe vorgenommen werden muss.\n\nImplementieren Sie die folgende Warenkorblogik:\n1. Verwenden Sie den API-Aufruf [Artikel in den Warenkorb legen](/de/api/catalog/cart-server-side), nachdem der Spieler einen Warenkorb zusammengestellt hat. Der Aufruf gibt die aktuellen Informationen zu den ausgewählten Artikeln zurück (Preise mit und ohne Rabatt, Bonusartikel).\n2. Verwenden Sie den API-Aufruf [Bestellung mit allen Artikeln aus dem aktuellen Warenkorb anlegen](/de/api/shop-builder/operation/create-order/). Der Aufruf gibt die Bestell-ID und den Zahlungstoken zurück. Der neu angelegten Bestellung wird standardmäßig der Status <code>new</code> zugewiesen.\n\n## Zahlungsportal öffnen\n\nVerwenden Sie den zurückgegebenen Token, um das Zahlungsportal in einem neuen Fenster zu öffnen. Weitere Möglichkeiten, das Zahlungsportal zu öffnen, sind in der [Dokumentation](/de/payment-ui-and-flow/payment-ui/how-to-open-payment-ui/#open_payment_ui) beschrieben.\n\n| Aktion                          | Endpunkt                                                                  |\n|:--------------------------------|:--------------------------------------------------------------------------|\n| In der Produktionsumgebung öffnen. | <code>https://secure.xsolla.com/paystation4/?token={token}</code>         |\n| In der Testumgebung öffnen.           | <code>https://sandbox-secure.xsolla.com/paystation4/?token={token}</code> |\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n    Nutzen Sie die Testumgebung während der Entwicklung und zum Testen. Es stehenn <a href=\"https://developers.xsolla.com/de/dev-resources/testing/test-cards/\">Test-Bankkarten</a> bereit.  Bei Testkäufen wird kein Geld von echten Konten abgebucht.\n\n    Sobald die erste tatsächliche Zahlung erfolgt ist, tritt eine strenge Zahlungsrichtlinie für die Testumgebung in Kraft: Ab dann dürfen nur noch die unter [Kundenportal > Firmeneinstellungen > Nutzer](https://publisher.xsolla.com/0/settings/users) angegebenen Nutzer ein Zahlung in der Testumgebung tätigen .\n\n    Der Kauf von virtueller Währung und Gegenständen gegen echtes Geld ist erst nach Unterzeichnung einer Lizenzvereinbarung möglich. Navigieren Sie dazu im [Kundenportal](https://publisher.xsolla.com/) zu **Vereinbarungen und Steuern > Vereinbarungen**, füllen Sie das Formular aus, und warten Sie auf die Bestätigung. Die Prüfung kann bis zu drei Werktage dauern.\n</div>\n\nDie Testumgebung können Sie aktivieren oder deaktivieren. Ändern Sie dazu einfach den Wert des Parameters `sandbox` in der Schnellkauf- bzw. Warenkorbkauf-Anfrage. Die Testumgebung ist standardmäßig deaktiviert.\n\nMögliche Bestellstatus:\n- `new` – Bestellung angelegt\n- `paid` – Zahlung erhalten\n- `done` – Artikel geliefert\n- `canceled` – Bestellung storniert\n- `expired` – Bestellung abgelaufen\n\nTracken Sie den Bestellstatus mit einer der folgenden Methoden:\n- [mit auf Ihrem Server konfigurierten Webhooks](/de/virtual-goods/own-ui/server-side-token-generation/set-up-order-tracking/#payments_integration_order_tracking)\n- [per Short-polling](/de/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_short_polling)\n- [per WebSocket API](/de/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/#guides_shop_builder_integrate_store_get_order_status_via_websocket_api)\n\n## Nützliche Links\n\n- Authentifizierung\n- [API-Aufrufe nach Interaktionsmodell](/de/api/catalog/section/authentication)\n- [Zahlungstests](/de/dev-resources/testing/general-info/#general_overview)\n- [Bestellstatus-Tracking einrichten](/de/virtual-goods/own-ui/client-side-token-generation/set-up-order-tracking/?link=200-api#payments_integration_order_tracking)\n- [Webhooks](/de/webhooks/overview)\n- [Ratenlimits](/de/api/login/rate-limits)\n- [Fehlerbehandlung](/de/api/getting-started/#api_errors_handling)\n- [API-Schlüssel](/de/api/getting-started/#api_keys_overview)\n\n# Paginierung\n\nAPI-Aufrufe, die umfangreiche Datensätze zurückgeben (beispielsweise beim Erstellen eines Katalogs), liefern Daten seitenweise. Die Paginierung ist ein Mechanismus, der die Anzahl der in einer einzelnen API-Antwort zurückgegebenen Elemente begrenzt und es ermöglicht, aufeinanderfolgende Seiten der Reihe nach abzurufen.\n\nMithilfe der folgenden Parameter können Sie die Anzahl der zurückgegebenen Elemente steuern:\n\n- `limit` – Anzahl der Elemente pro Seite\n- `offset` – Index des ersten Elements auf der Seite (Nummerierung beginnt bei 0)\n- `has_more` – gibt an, ob eine weitere Seite verfügbar ist\n- `total_items_count` – Gesamtanzahl der Elemente\n\nBeispielanfrage:\n\n```\nGET /items?limit=20&offset=40\n```\n\nBeispielantwort:\n\n```json\n{\n  \"items\": [...],\n  \"has_more\": true,\n  \"total_items_count\": 135\n}\n```\n\nEs wird empfohlen, nachfolgende Anfragen zu senden, bis die Antwort `has_more = false` zurückgibt.\n\n# Datums- und Zeitformat\n\nDatums- und Zeitwerte werden im [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)-Format übermittelt.\n\nFolgende Formate werden unterstützt:\n\n- UTC-Offset\n- `null`-Wert, wenn keine zeitliche Einschränkung für die Anzeige eines Artikels besteht\n- [Unix-Zeitstempel](https://www.unixtimestamp.com/) (in Sekunden), der in einigen Feldern verwendet wird\n\nFormat: `YYYY-MM-DDTHH:MM:SS±HH:MM`\n\nBeispiel: `2026-03-16T10:00:00+03:00`\n\n# Lokalisierung\n\nXsolla unterstützt die Lokalisierung von benutzerseitigen Feldern wie Artikelname und Beschreibung. Lokalisierte Werte werden als Objekt übermittelt, wobei der Sprachcode als Schlüssel verwendet wird. Die vollständige Liste der unterstützten Sprachen ist in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/) verfügbar.\n\n**Unterstützte Felder**\n\nFür die folgenden Parameter kann eine Lokalisierung festgelegt werden:\n\n- `name`\n- `description`\n- `long_description`\n\n**Gebietsschemaformat**\n\nDer Gebietsschemaschlüssel kann in einem der folgenden Formate angegeben werden:\n\n- Sprachencode bestehend aus zwei Buchstaben: `en`, `ru`\n- Sprachencode bestehend aus fünf Buchstaben: `en-US`, `ru-RU`, `de-DE`\n\n**Beispiele**\n\nZweistelliger Sprachencode (Beispiel):\n\n```json\n{\n  \"name\": {\n    \"en\": \"Starter Pack\",\n    \"ru\": \"Стартовый набор\"\n  }\n}\n```\n\nFünfstelliger Sprachencode (Beispiel):\n\n```json\n{\n  \"description\": {\n    \"en-US\": \"Premium bundle\",\n    \"de-DE\": \"Premium-Paket\"\n  }\n}\n```\n\n# Fehlerantwortformat\n\nWenn ein Fehler auftritt, gibt die API einen HTTP-Statuscode und einen JSON-Antwortrumpf zurück. Die vollständige Liste der shopbezogenen Fehler ist in der [Dokumentation](/de/dev-resources/references/errors/store-errors/) verfügbar.\n\n**Antwort (Beispiel):**\n\n```json\n{\n  \"errorCode\": 1102,\n  \"errorMessage\": \"Validation error\",\n  \"statusCode\": 422,\n  \"transactionId\": \"c9e1a...\"\n}\n```\n\n- `errorCode` – Fehlercode.\n- `errorMessage` – kurze Fehlerbeschreibung.\n- `statusCode` – HTTP-Antwortstatus.\n- `transactionId` – Anfrage-ID. Wird nur in einigen Fällen zurückgegeben.\n- `errorMessageExtended` – zusätzliche Fehlerdetails, wie z. B. Anfrageparameter. Wird nur in einigen Fällen zurückgegeben.\n\n**Erweiterte Antwort (Beispiel):**\n\n```json\n{\n  \"errorCode\": 7001,\n  \"errorMessage\": \"Chain not found\",\n  \"errorMessageExtended\": {\n    \"chain_id\": \"test_chain_id\",\n    \"project_id\": \"test_project_id\",\n    \"step_number\": 2\n  },\n  \"statusCode\": 404\n}\n```\n\n**Gängige HTTP-Statuscodes**\n\n- `400` – ungültige Anfrage\n- `401` – Authentifizierungsfehler\n- `403` – mangelnde Berechtigungen\n- `404` – Ressource nicht gefunden\n- `422` – Validierungsfehler\n- `429` – Ratenlimit überschritten\n\n**Empfehlungen**\n\n- Verarbeiten Sie den HTTP-Statuscode und den Antwortrumpf gemeinsam.\n- Verwenden Sie `errorCode`, um Fehler im Zusammenhang mit der Anwendungslogik zu verarbeiten.\n- Verwenden Sie `transactionId`, um Anfragen bei der Fehleranalyse schneller zu identifizieren.",
    "version": "2.0.0",
    "title": "LiveOps-API"
  },
  "servers": [
    {
      "url": "https://store.xsolla.com/api"
    }
  ],
  "tags": [
    {
      "name": "promotion-limits-overview",
      "x-displayName": "Übersicht",
      "description": "Mit Werbeaktionslimits können Sie begrenzen, wie oft ein bestimmter Nutzer eine Werbeaktion in Anspruch nehmen darf. Zudem können Sie festlegen, wann das Limit zurückgesetzt wird.\n\nLimits werden aufseiten von Xsolla gespeichert und in den Werbeaktionseinstellungen im [Kundenportal](https://publisher.xsolla.com/0/projects/0/storefront/promotions) oder über das `limits`-Objekt in den folgenden API-Aufrufen konfiguriert:\n* [Rabattaktion für Artikel erstellen](/de/api/liveops/promotions-discounts/create-item-promotion/) oder [Rabattaktion aktualisieren](/de/api/liveops/promotions-discounts/update-item-promotion)\n* [Bonusaktion erstellen](/de/api/liveops/promotions-bonuses/create-bonus-promotion/) oder [Bonusaktion aktualisieren](/de/api/liveops/promotions-bonuses/update-bonus-promotion)\n\nInformationen zu den Limits werden in den folgenden API-Aufrufen zum Abrufen des Artikelkatalogs im Objekt `items.promotions.limits` zurückgegeben:\n* [Liste virtueller Gegenstände abrufen](/de/api/catalog/virtual-items-currency-catalog/get-virtual-items/)\n* [Liste virtueller Währungen abrufen](/de/api/catalog/virtual-items-currency-catalog/get-virtual-currency/)\n* [Liste virtueller Währungspakete abrufen](/de/api/catalog/virtual-items-currency-catalog/get-virtual-currency-package/)\n* [Liste der Bundles abrufen](/de/api/catalog/bundles-catalog/get-bundle-list/)\n* [Spieleliste abrufen](/de/api/catalog/game-keys-catalog/get-games-list/)\n\nMit den API-Aufrufen im Unterabschnitt **Verwaltung** der Gruppe **Limits** können Sie den aktuellen Status der Limits abrufen und diese für einen bestimmten Nutzer aktualisieren – beispielsweise den Zähler nach Abschluss einer Quest zurücksetzen oder die verbleibende Menge manuell anpassen.\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n  Ausführliche Informationen zur Konfiguration von Limits im Katalog finden Sie im Abschnitt <a href=\"/de/liveops/promotion-tools/liveops-number-limits/\">Werbeaktionslimits</a>.\n</div>\n\nSie können [limits.per_user](/de/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits) konfigurieren, d. h., wie häufig ein Nutzer eine Werbeaktion in Anspruch nehmen darf.\n\nNicht authentifizierten Nutzern wird stets die Höchstzahl angezeigt, also wie oft man die Werbeaktion maximal in Anspruch nehmen darf.\n\nUm anzuzeigen, wie oft der Nutzer die Werbeaktion unter Berücksichtigung des geltenden Limits noch in Anspruch nehmen darf, müssen Sie bei der Abfrage des Artikelkatalogs die Autorisierungsdaten des Nutzers übermitteln.\n\nUm zu konfigurieren, wie häufig das Limit zurückgesetzt werden soll (täglich, wöchentlich oder monatlich), müssen Sie das `limits.recurrent_schedule`-Objekt beim [Erstellen](/de/api/liveops/promotions-discounts/create-item-promotion#promotions-discounts/create-item-promotion/t=request&path=limits/recurrent_schedule) oder [Aktualisieren](/de/api/liveops/promotions-discounts/update-item-promotion#promotions-discounts/update-item-promotion/t=request&path=limits/recurrent_schedule) der Werbeaktion übermitteln.\n\n**Konfiguration und Durchsetzung von Limits (Anwendungsszenario)**\n\n1. Sie erstellen eine Werbeaktion mit dem API-Aufruf [Rabattaktion für Artikel erstellen](/de/api/liveops/promotions-discounts/create-item-promotion/) oder [Bonusaktion erstellen](/de/api/liveops/promotions-bonuses/create-bonus-promotion/) und übermitteln das `limits`-Objekt.\n2. Sie rufen den Katalog für einen nicht authentifizierten Nutzer ab – in der Antwort ist das `items.promotions.limits`-Objekt enthalten, darin ist angegeben, wie oft die Werbeaktion maximal in Anspruch genommen werden darf.\n3. Der Nutzer meldet sich an.\n4. Sie rufen den Katalog mit dem Autorisierungstoken des Nutzers ab – in der Antwort ist angegeben, wie oft der Nutzer die Werbeaktion unter Berücksichtigung des aktiven Limits noch in Anspruch nehmen darf.\n5. Der Nutzer wählt einen Aktionsartikel aus und kauft ihn.\n6. Nach erfolgreicher Bezahlung aktualisiert Xsolla den Wert des Parameters `items.promotions.limits.per_user`. Wenn der Parameter den Wert `0` erreicht, wird der Artikel in den Katalog-API-Aufrufen ohne Rabatt oder Bonus zurückgegeben.\n7. Sie können das Limit mit den API-Aufrufen aus dem Unterabschnitt **Verwaltung** aktualisieren:\n   * [Alle Werbeaktionslimits für den angegebenen Benutzer aktualisieren](/de/api/liveops/user-limits-admin/reset-all-user-promotions-limit/) oder [Limits für eine bestimmte Werbeaktion aktualisieren](/de/api/liveops/user-limits-admin/reset-user-promotion-limit/)\n   * [Spezifischen Limitwert festlegen](/de/api/liveops/user-limits-admin/set-user-promotion-limit/)\n   * [Werbeaktionslimit für angegebenen Benutzer erhöhen](/de/api/liveops/user-limits-admin/add-user-promotion-limit/) oder [herabsetzen](/de/api/liveops/user-limits-admin/remove-user-promotion-limit/)\n8. Sie rufen den aktualisierten Limitwert (`items.promotions.limits`) bei der nächsten Katalogabfrage mit dem Autorisierungstoken des Nutzers ab und zeigen ihn dem Nutzer an.\n\n![Werbeaktionslimits](https://cdn.xsolla.net/developers/current/images/api_docs/promotion-limit.svg)"
    },
    {
      "name": "promotions-overview",
      "x-displayName": "Übersicht",
      "description": "Werbeaktionen sind Marketinginstrumente, die darauf abzielen, neue Nutzer zu gewinnen und den Umsatz zu steigern. Mithilfe der Xsolla-API können Sie folgende Werbeaktionen einrichten:\n\n* Rabatte – reduzierte Preise auf ausgewählte Artikel.\n* Boni – Artikel, die Nutzer bei einem Kauf als Dreingabe erhalten.\n* Gutscheine – Codes, mit denen Nutzer einen oder mehrere Bonusartikel beim Einlösen erhalten.\n* Promocodes – Codes, mit denen Nutzer Bonusartikel, einen Rabatt auf einen bestimmten Artikel oder einen Rabatt auf den gesamten Warenkorb erhalten können. Im Gegensatz zu Gutscheinen, die erst nach Eingabe durch den Nutzer eingelöst werden, werden Promocodes während des Kaufvorgangs (an der Kasse) eingelöst.\n* Sonderangebote – versteckte Artikel, die den Nutzern erst nach Eingabe eines exklusiven Angebotscode im Katalog angezeigt werden. Wird der Code nicht eingegeben, bleiben die Artikel ausgeblendet.\n\nKonfiguration einer Rabattaktion (Beispielhafter Ablauf):\n1. Erstellen Sie Artikel mit den Aufrufen aus dem Unterabschnitt **Verwaltung** der Gruppen [Virtuelle Gegenstände und Währung](/de/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/de/api/catalog/bundles-admin/admin-create-bundle) oder [Spielschlüssel](/de/api/catalog/game-keys-admin).\n2. Erstellen Sie eine Werbeaktion mit dem Aufruf [Rabattaktion für Artikel erstellen](/de/api/liveops/promotions-discounts/create-item-promotion/). Übermitteln Sie im `items`-Array die erforderlichen Artikel-SKUs.\n3. Legen Sie die Gültigkeitszeiträume der Werbeaktion fest. Rufen Sie dazu die Methoden [Rabattaktion für Artikel erstellen](/de/api/liveops/promotions-discounts/create-item-promotion/) oder [Artikelaktion aktualisieren](/de/api/liveops/promotions-discounts/update-item-promotion/) auf, und übermitteln Sie das `promotion_periods`-Feld als Objekt-Array, wobei `date_from` das Startdatum und `date_until` das Enddatum des Gültigkeitszeitraums definiert.\n4. Aktivieren Sie eine Werbeaktion mit dem Aufruf [Artikelaktion aktualisieren](/de/api/liveops/promotions-discounts/update-item-promotion/). Übermitteln Sie den Parameter `\"is_enabled\": true`.\n5. Um Informationen über Artikelpreise (einschließlich ermäßigter Preise) zu erhalten, müssen Sie die clientseitigen API-Methoden für den Abruf eines Artikelkatalogs aus den Unterabschnitten [Allgemeines > Katalog](/de/api/catalog/tag/common-catalog/), [Virtuelle Gegenstände und Währung > Katalog](/de/api/catalog/virtual-items-currency-catalog/get-virtual-items/) und [Bundles > Katalog](/de/api/catalog/bundles-catalog/get-bundle-list/) aufrufen.\n\n![Konfiguration einer Werbeaktion (Beispiel)](https://cdn.xsolla.net/developers/current/images/api_docs/promo-overview.svg)\n\nWeitere Informationen zur Konfiguration von Werbeaktionen finden Sie in unserer Dokumentation:\n* [Rabatte](https://developers.xsolla.com/de/liveops/promotion-tools/discounts/)\n* [Boni](https://developers.xsolla.com/de/liveops/promotion-tools/bonuses/)\n* [Gutscheine](https://developers.xsolla.com/de/liveops/promotion-tools/coupons/)\n* [Promocodes](https://developers.xsolla.com/de/liveops/promotion-tools/promo-codes/)\n* [Katalogsonderangebot](https://developers.xsolla.com/de/liveops/promotion-tools/unique-offer/)"
    },
    {
      "name": "promotions-common",
      "x-displayName": "Allgemeine API-Aufrufe",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie verschiedene Arten von Werbeaktionen verwalten."
    },
    {
      "name": "promotions-coupons",
      "x-displayName": "Gutscheine",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie Gutscheinaktionen konfigurieren und verwalten.\n\n<div class=\"note\">\n  <p><b>Hinweis</b></p>\n  <p>Weitere Informationen zu Gutscheinen finden Sie in unserer <a href=\"https://developers.xsolla.com/de/liveops/promotion-tools/coupons/\">Dokumentation</a>.</p>\n</div>"
    },
    {
      "name": "promotions-promo-codes",
      "x-displayName": "Promocodes",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie Promocode-Aktionen konfigurieren und verwalten.\n\n<div class=\"note\">\n  <p><b>Hinweis</b></p>\n  <p>Weitere Informationen zu Promocodes finden Sie in unserer <a href=\"https://developers.xsolla.com/de/liveops/promotion-tools/promo-codes/\">Dokumentation</a>.</p>\n</div>"
    },
    {
      "name": "promotions-unique-catalog-offers",
      "x-displayName": "Katalogsonderangebote",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie Katalogsonderangebote konfigurieren und verwalten.\n\n<div class=\"note\">\n  <p><b>Hinweis</b></p>\n  <p>Weitere Informationen zu Sonderangeboten finden Sie in unserer <a href=\"https://developers.xsolla.com/de/liveops/promotion-tools/unique-offer/\">Dokumentation</a>.</p>\n</div>"
    },
    {
      "name": "promotions-discounts",
      "x-displayName": "Rabatte",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie Rabattaktionen konfigurieren und verwalten.\n\n<div class=\"note\">\n  <p><b>Hinweis</b></p>\n  <p>Weitere Informationen zu Rabatten finden Sie in unserer <a href=\"https://developers.xsolla.com/de/liveops/promotion-tools/discounts/\">Dokumentation</a>.</p>\n</div>"
    },
    {
      "name": "promotions-bonuses",
      "x-displayName": "Boni",
      "description": "Mit den API-Methoden aus diesem Unterabschnitt können Sie Bonusaktionen konfigurieren und verwalten.\n\n<div class=\"note\">\n  <p><b>Hinweis</b></p>\n  <p>Weitere Informationen zu Boni finden Sie in unserer <a href=\"https://developers.xsolla.com/de/liveops/promotion-tools/bonuses/\">Dokumentation</a>.</p>\n</div>"
    },
    {
      "name": "personalized-catalog",
      "x-displayName": "Personalisierter Katalog",
      "description": "Mithilfe der Personalisierung können Sie die Bedingungen festlegen, unter denen der Artikelkatalog und Werbeaktionen bestimmten autorisierten Nutzern angezeigt werden. Die Bedingungen werden auf der Grundlage von Nutzerattributen definiert und ermöglichen es Ihnen, Artikeln und Werbeaktionen anzubieten, die für bestimmte Nutzer am relevantesten sind.\n\nDie folgenden Personalisierungstypen sind verfügbar:\n\n* [Personalisierung aufseiten von Xsolla](/de/liveops/promotion-tools/personalization/#guides_personalization_on_xsolla_side). Personalisierungsregeln und ‑logik werden aufseiten von Xsolla konfiguriert und gespeichert. Sie übermitteln die Nutzerattribute, und basierend darauf erstellt Xsolla einen personalisierten Katalog.\n* [Personalisierung aufseiten des Partners](/de/liveops/promotion-tools/personalization/#guides_personalization_on_partner_side). Sie konfigurieren die Personalisierungsregeln und ‑logik in Ihrem System und senden eine endgültige Katalog-Payload für einen bestimmten Nutzer an Xsolla.\n\n<div class=\"note\">\n  <b>Hinweis</b><br><br>\n  Sie können nur einen Personalisierungstyp verwenden. Wie Sie den Personalisierungstyp ändern, erfahren Sie in der\n  <a href=\"/de/liveops/promotion-tools/personalization/#guides_personalization_change\">Anleitung</a>.\n</div>\n\nSo konfigurieren Sie die Personalisierung aufseiten von Xsolla mithilfe der Xsolla-API:\n\n1. Erstellen Sie Artikel mit den API-Aufrufen aus dem Unterabschnitt **Verwaltung** der Gruppen [Virtuelle Gegenstände und Währung](/de/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/de/api/catalog/bundles-admin/admin-create-bundle) oder [Spielschlüssel](/de/api/catalog/game-keys-admin).\n2. [Richten Sie Nutzerattribute mit der Xsolla-Login-API ein](/de/liveops/promotion-tools/personalization/#web_shop_guide_personalization_setting_attributes), und halten Sie diese synchron, indem Sie die Daten in Xsolla aktualisieren, sobald sich in Ihrem Spiel Änderungen ergeben.\n3. Konfigurieren Sie die Personalisierung für Artikel oder Werbeaktionen:\n    * Um den Artikelkatalog zu personalisieren, müssen Sie Kataloganzeigeregeln mit dem API-Aufruf [Katalogfilterregel erstellen](/de/api/liveops/personalized-catalog/create-filter-rule) definieren:\n        * Legen Sie im Array [attribute_conditions](/de/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=attribute_conditions) die Bedingungen (auf Basis von Nutzerattributen) fest, unter denen die Artikel verfügbar sind.\n        * Geben Sie im Array [items](/de/api/liveops/personalized-catalog/create-filter-rule#personalized-catalog/create-filter-rule/t=request&path=items) die Liste der Artikel an, die dem Nutzer angezeigt werden sollen, wenn dessen Attribute den festgelegten Bedingungen entsprechen\n    * Verwenden Sie die [API-Aufrufe zum Erstellen und Aktualisieren des gewünschten Werbeaktionstyp](/de/api/liveops/promotions-discounts/create-item-promotion), um personalisierte Werbeaktionen zu konfigurieren. Legen Sie im Array [attribute_conditions](/de/api/liveops/promotions-discounts/create-item-promotion) die Bedingungen (auf Basis von Nutzerattributen) fest, unter denen die Werbeaktion verfügbar ist.\n\n4. Übermitteln Sie den [Benutzer-JWT](/de/api/login/getting-user-token?#getting-user-token) mitsamt der Nutzerattribute an die [API-Aufrufe zur Katalogabfrage](https://developers.xsolla.com/de/api/catalog/virtual-items-currency-catalog/get-virtual-items), um einen personalisierten Katalog abzurufen.\n\n**Konfiguration und Anwendung der Xsolla-seitigen Personalisierung für den Artikelkatalog (Ablauf):**\n\n![Personalisierung für den Artikelkatalog](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-catalog.png)\n\n**Konfiguration und Anwendung der Xsolla-seitigen Personalisierung für Werbeaktionen (Ablauf):**\n\n![Personalisierung für Werbeaktionen](https://cdn.xsolla.net/developers/current/images/api_docs/personalization-liveops.png)\n\n<div class=\"note\">\n<b>Hinweis</b><br><br>\nDetaillierte Informationen finden Sie:\n<ul>\n  <li>im <a href=\"/de/liveops/promotion-tools/personalization/\">Leitfaden zur Konfiguration der Personalisierung aufseiten von Xsolla und aufseiten des Partners</a></li>\n  <li>im Schritt-für-Schritt-Tutorial zur <a href=\"/de/doc/shop-builder/tutorials/personalization-tutorial/\">Personalisierung des Artikelkatalogs aufseiten von Xsolla</a></li>\n</ul>\n</div>"
    },
    {
      "name": "user-limits-admin",
      "x-displayName": "Verwaltung"
    },
    {
      "name": "reward-chain-value-points-overview",
      "x-displayName": "Übersicht",
      "description": "Belohnungsketten motivieren die Nutzer dazu, im Shop mit echtem Geld einzukaufen. Bei jedem Kauf erhalten die Nutzer Wertpunkte und durchlaufen dabei die einzelnen Schritte einer Belohnungskette. Sind die Nutzer Mitglieder eines Clans, fließen die Wertpunkte aus den Käufen dem gesamten Clan zu. Ausführliche Informationen zur Konfiguration der Belohnungsketten finden Sie im Abschnitt [Belohnungssystem](https://developers.xsolla.com/de/liveops/promotion-tools/reward-system/).\n\nVerwenden Sie zur Konfiguration von Belohnungsketten die API-Aufrufe aus dem Unterabschnitt **Verwaltung**. Zur Anzeige von Ketten und zur Inanspruchnahme von Belohnungen verwenden Sie die API-Aufrufe aus dem Unterabschnitt **Client**. Für die Arbeit mit Clan-Belohnungsketten verwenden Sie die API-Aufrufe aus dem Unterabschnitt **Clans-Client**.\n\n<b>Konfiguration einer Belohnungskette (Beispielhafter Ablauf):</b>\n\n1. Erstellen Sie Artikel mithilfe der API-Aufrufe aus dem Unterabschnitt **Verwaltung** der Gruppen [Virtuelle Gegenstände und Währung](https://developers.xsolla.com/de/api/catalog/virtual-items-currency-overview) oder [Bundles](https://developers.xsolla.com/de/api/catalog/bundles-admin).\n2. Erstellen Sie Wertpunkte mithilfe des API-Aufrufs [Wertpunkt erstellen](https://developers.xsolla.com/de/api/liveops/reward-chain-value-points-admin/admin-create-value-points).\n3. Weisen Sie Artikeln Wertpunkte zu, indem Sie den API-Aufruf [Wertpunkte für Artikel festlegen](https://developers.xsolla.com/de/api/liveops/reward-chain-value-points-admin/admin-set-items-value-point-reward) verwenden. Beim Kauf dieser Artikel erhalten die Nutzer Wertpunkte.\n4. Erstellen Sie eine Belohnungskette mithilfe des API-Aufrufs [Belohnungskette erstellen](https://developers.xsolla.com/de/api/liveops/reward-chain-value-points-admin/admin-create-reward-chain). Übermitteln Sie den Parameter `is_enabled: true`, um die Kette zu aktivieren.\n5. Implementieren Sie die Anzeige der Belohnungsketten. Fordern Sie dazu die Liste der verfügbaren Ketten mithilfe des API-Aufrufs [Belohnungsketten des aktuellen Nutzers abrufen](https://developers.xsolla.com/de/api/liveops/reward-chain-client/get-reward-chains-list) an. In der Antwort sind alle aktiven Ketten und deren Schritte und Statusangaben enthalten.\n6. Implementieren Sie die Anzeige des Wertpunktguthabens. Verwenden Sie dazu den API-Aufruf [Wertpunktestand des aktuellen Nutzers abrufen](https://developers.xsolla.com/de/api/liveops/reward-chain-client/get-user-reward-chain-balance).\n7. Implementieren Sie die Inanspruchnahme von Schrittbelohnungen. Verwenden Sie dazu den API-Aufruf [Schrittbelohnung gewähren](https://developers.xsolla.com/de/api/liveops/reward-chain-client/claim-user-reward-chain-step-reward).\n8. Konfigurieren Sie das Bestellstatus-Tracking, z. B. mithilfe von [Webhooks](https://developers.xsolla.com/de/webhooks/section/overview), um Daten zu in Anspruch genommenen Belohnungen umgehend zu erhalten und diese dem Nutzer zu gewähren.\n\n![Konfiguration einer Belohnungskette (Ablauf)](https://cdn.xsolla.net/developers/current/images/api_docs/reward-chains-and-value-points-overview.svg)"
    },
    {
      "name": "reward-chain-value-points-admin",
      "x-displayName": "Administrator"
    },
    {
      "name": "reward-chain-client",
      "x-displayName": "Client"
    },
    {
      "name": "clan-reward-chain-client",
      "x-displayName": "Clans-Client"
    },
    {
      "name": "daily-chain-overview",
      "x-displayName": "Übersicht",
      "description": "Tägliche Belohnungen motivieren Nutzer dazu, sich jeden Tag beim Shop anzumelden, um kostenlose Artikel zu bekommen. Das Verhalten, wenn ein Tag übersprungen wird, hängt vom [Kettentyp](/de/api/liveops/daily-chain-admin/admin-create-daily-chain#daily-chain-admin/admin-create-daily-chain/t=request&path=&oneof=0/type) ab. Damit die täglichen Belohnungen richtig funktionieren, müssen Sie die [Benutzerauthentifizierung](/de/api/catalog#section/Authentication) konfigurieren. Nicht authentifizierte Nutzer können zwar die vollständigen tägliche Belohnungskette einsehen, jedoch keine Belohnungen einlösen. Weitere Informationen in Bezug auf die Konfiguration von täglichen Belohnungen finden Sie unter [tägliche Belohnungen](/de/liveops/promotion-tools/daily-rewards/).\n\nKetten werden mithilfe von API-Aufrufen aus dem Unterabschnitt **Verwaltung** konfiguriert. Um Belohnungen zu vergeben, verwenden Sie die API-Aufrufe aus dem Unterabschnitt **Client**.\n\nKonfigurationsszenario für tägliche Ketten:\n\n1.Erstellen Sie Artikel mit den API-Aufrufen aus dem Unterabschnitt **Verwaltung** der Gruppen [Virtuelle Gegenstände und Währung](/de/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/) oder [Bundles](/de/api/catalog/bundles-admin/admin-create-bundle).\n2. Erstellen Sie eine Kette mithilfe des API-Aufrufs [Tägliche Belohnung erstellen](/de/api/liveops/daily-chain-admin/admin-create-daily-chain).\n3. Aktivieren Sie die Kette, indem Sie den Parameter `\"is_enabled\": true` an den API-Aufruf [Tägliche Belohnung erstellen](/de/api/liveops/daily-chain-admin/admin-create-daily-chain/) übermitteln.\n4. Fordern Sie die Liste verfügbarer Ketten mithilfe des API-Aufrufs [Tägliche Belohnungen des aktuellen Nutzers abrufen](/de/api/liveops/daily-chain-client/get-daily-chains-list) an, indem Sie den [Nutzer-JWT](/de/api/catalog/section/authentication/authentication-using-user's-jwt) übermitteln. In der Antwort sind alle aktiven Ketten und deren Schritte und Statusangaben enthalten.\n5. Richten Sie die Gewährleistung der Artikel über [webhooks](/de/webhooks/section/osnovnye-polozheniya) ein.\n6. Gewähren Sie den Nutzern ihre täglichen Belohnungen mithilfe des API-Aufrufs [Täglichen Belohnungsschritt beanspruchen](/de/api/liveops/daily-chain-client/claim-user-daily-chain-step-reward) mit der Übermittlung der `daily_chain_id` und `step_number`.\n\n![Tägliche Belohnungen](https://cdn.xsolla.net/developers/current/images/api_docs/daily-rewards.svg)"
    },
    {
      "name": "daily-chain-admin",
      "x-displayName": "Administrator"
    },
    {
      "name": "daily-chain-client",
      "x-displayName": "Client"
    },
    {
      "name": "offer-chains-overview",
      "x-displayName": "Übersicht",
      "description": "Angebotsketten sind eine Abfolge von Schritten mit jeweils einem Artikel, den Nutzer im Rahmen eines aktiven Angebots kaufen oder kostenlos erhalten können. Angebotsketten können exklusive Artikel umfassen, die nur im Rahmen der Kette erhältlich sind, sowie Artikel zu vergünstigten Preisen (verglichen mit den Preisen im Shop). Ausführliche Informationen zur Konfiguration dieses Marketingtools finden Sie im Abschnitt [Angebotsketten](https://developers.xsolla.com/de/liveops/promotion-tools/offer-chains/).\n\nVerwenden Sie zur Konfiguration von Angebotsketten die API-Aufrufe aus dem Unterabschnitt **Verwaltung**. Mit den API-Aufrufen aus dem Unterabschnitt **Client** können Sie die Ketten anzeigen und die Logik für die Arbeit mit den Artikeln implementieren.\n\n<b>Konfiguration einer Angebotskette (Beispielhafter Ablauf):</b>\n\n1. Erstellen Sie Artikel mithilfe der API-Aufrufe aus dem Unterabschnitt **Verwaltung** der Gruppe [Virtuelle Gegenstände und Währung](https://developers.xsolla.com/de/api/catalog/virtual-items-currency-overview) oder [Bundles](https://developers.xsolla.com/de/api/catalog/bundles-admin).\n\n2. Erstellen Sie eine Kette mithilfe des API-Aufrufs [Angebotskette erstellen](https://developers.xsolla.com/de/api/liveops/offer-chain-admin/admin-create-offer-chain). Übermitteln Sie den Parameter `is_enabled: true`, um die Kette zu aktivieren.\n\n3. Implementieren Sie die Anzeige der Angebotskette. Fordern Sie dazu die Liste der verfügbaren Ketten mithilfe des API-Aufrufs [Angebotsketten des aktuellen Nutzers abrufen](https://developers.xsolla.com/de/api/liveops/offer-chain-client/get-offer-chains-list) an. In der Antwort sind alle aktiven Ketten und deren Schritte und Statusangaben enthalten.\n\n4. Implementieren Sie die Logik für den Umgang mit Artikeln, die Nutzer erhalten:\n\n    - Wenn es sich um einen kostenlosen Artikel handelt, verwenden Sie den API-Aufruf [Kostenlosen Angebotskettenschritt sichern](https://developers.xsolla.com/de/api/liveops/offer-chain-client/claim-user-offer-chain-step-reward). Übermitteln Sie `offer_chain_id` und `step_number` in der Anfrage.\n\n    - Wenn es sich um einen kostenpflichtigen Artikel handelt, verwenden Sie den API-Aufruf [Bestellung für kostenpflichtigen Angebotskettenschritt anlegen](https://developers.xsolla.com/de/api/liveops/offer-chain-client/order-user-offer-chain-step-reward). Übermitteln Sie `offer_chain_id` und `step_number` in der Anfrage. In der Antwort ist die `order_id` und der Token zum Öffnen des Zahlungsportals enthalten.\n\n5. Konfigurieren Sie das Bestellstatus-Tracking, z. B. mithilfe von [Webhooks](https://developers.xsolla.com/de/webhooks/section/overview), um Daten zu in Anspruch genommenen oder gekauften Artikeln umgehend zu erhalten und diese dem Nutzer zu gewähren.\n\n![Konfiguration einer Belohnungskette (Ablauf)](https://cdn.xsolla.net/developers/current/images/api_docs/offer-chains-overview.svg)"
    },
    {
      "name": "offer-chain-admin",
      "x-displayName": "Administrator"
    },
    {
      "name": "offer-chain-client",
      "x-displayName": "Client"
    },
    {
      "name": "upsell-overview",
      "x-displayName": "Übersicht",
      "description": "Upselling ist eine Verkaufsmethode, bei der dem Nutzer ein Artikel mit zusätzlichem Mehrwert zum Kauf angeboten wird. Das könnte beispielsweise der Artikel sein, der bei anderen Nutzern am meisten gefragt ist. Sie können für Upselling-Artikel auch regionale Einschränkungen festlegen. Weitere Informationen dazu finden Sie unter [Upsell](/de/liveops/promotion-tools/upsell/).\n\nDie Liste, die für Upselling konfiguriert wurde, und der Upselling Status (aktiviert oder deaktiviert) werden von der API-Methode [Informationen zum Upselling im Projekt abrufen](/de/api/liveops/upsell-admin/get-upsell-configurations-for-project-admin) zurückgegeben. Clientseitig wird die Liste der Artikel von der API-Methode [Liste der Upselling-Artikel im Projekt abrufen](/de/api/liveops/upsell-client/get-upsell-for-project-client) zurückgegeben und dem Nutzer an der entsprechenden Stelle im Kaufprozess angezeigt.\n\nKonfigurationsszenario für Upselling:\n\n1. Erstellen Sie Artikel mit den API-Aufrufen aus dem Unterabschnitt **Verwaltung** der Gruppen [Virtuelle Gegenstände und Währung](/de/api/catalog/virtual-items-currency-admin/admin-get-virtual-items-list/), [Bundles](/de/api/catalog/bundles-admin/admin-create-bundle) oder [Spielschlüssel](/de/api/catalog/game-keys-admin).\n2. Richten Sie das Upselling mithilfe des API-Aufrufs [Upselling erstellen](/de/api/liveops/upsell-admin/post-upsell). Übermitteln Sie die SKU der erforderlichen Artikel im Array `items`.\n3. Aktivieren Sie Upselling für das Projekt mithilfe des API-Aufrufs [Upselling-Artikel des Projekts aktivieren/deaktivieren](/de/api/liveops/upsell-admin/put-upsell-toggle-active-inactive).\n4. Zeigen Sie dem Nutzer die Upselling-Angebote im geeigneten Zeitpunkt im Kaufablauf mithilfe des API-Aufrufs [Liste der Upselling-Artikel im Projekt abrufen](/de/api/liveops/upsell-client/get-upsell-for-project-client).\n5. Implementieren Sie das Öffnen des Zahlungsportals, um die Bestellung zu bezahlen. Sie können beispielsweise den API-Aufruf [Bestellung mit allen Artikeln aus einem angegebenen Warenkorb anlegen](/de/api/catalog/payment-client-side/create-order-by-cart-id). Die Antwort gibt einen Token für die Öffnung des Zahlungsportals zurück.\n6. Konfigurieren Sie das Bestellstatus-Tracking (z. B. mittels [Webhooks](/de/webhooks/overview),  um zeitnah Daten über erfolgreich bezahlte Artikel zu erhalten und diese dem Nutzer zu gewähren.\n\n![Upselling-Szenario](https://cdn.xsolla.net/developers/current/images/api_docs/Upsell.svg)"
    },
    {
      "name": "upsell-admin",
      "x-displayName": "Administrator"
    },
    {
      "name": "upsell-client",
      "x-displayName": "Client"
    }
  ],
  "paths": {
    "/v3/project/{project_id}/admin/promotion": {
      "get": {
        "summary": "Liste aller Werbeaktionen abrufen",
        "description": "Ruft die Liste der Werbeaktionen eines Projekts ab.",
        "operationId": "get-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        },
        "security": [
          {
            "basicAuth": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/activate": {
      "put": {
        "summary": "Werbeaktion aktivieren",
        "description": "Aktiviert eine Werbeaktion.",
        "operationId": "activate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich aktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promotion/{promotion_id}/deactivate": {
      "put": {
        "summary": "Werbeaktion deaktivieren",
        "description": "Deaktiviert eine Werbeaktion.",
        "operationId": "deactivate-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich deaktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-activate-deactivate-promotion"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/redeemable/code/{code}": {
      "get": {
        "summary": "Werbeaktion anhand von einlösbarem Code abrufen",
        "description": "Ruft die Werbeaktion anhand eines Promocodes oder Gutscheincodes ab.",
        "operationId": "get-redeemable-promotion-by-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-redeemable-by-code"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-code-not-found"
          },
          "405": {
            "$ref": "#/components/responses/405-method-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/coupon/redeem": {
      "post": {
        "summary": "Gutscheincode einlösen",
        "description": "Löst einen Gutscheincode ein. Der Nutzer erhält nach dem Einlösen eines Gutscheins einen Bonus.<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "operationId": "redeem-coupon",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_redeem-coupon-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-redeemed"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-redeem-coupon"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/coupon/code/{coupon_code}/rewards": {
      "get": {
        "summary": "Gutscheinbelohnung abrufen",
        "description": "Ruft Gutscheinbelohnungen anhand des Codes ab.\nDadurch können Nutzer aus mehreren Bonusartikeln wählen.\nIn der Regel wird ein DRM-System ausgewählt, wenn der Gutschein ein Spiel als Bonus gewährt (`type=unit`). <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "operationId": "get-coupon-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/coupon_code-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-rewards"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-rewards"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/coupon": {
      "post": {
        "summary": "Gutscheinaktionen erstellen",
        "description": "Erstellt eine Gutscheinaktion.",
        "operationId": "admin-create-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_coupon-create"
        },
        "responses": {
          "201": {
            "description": "Gutschein wurde erfolgreich erstellt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupons",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Liste der Gutscheinaktionen abrufen",
        "description": "Ruft die Liste der Gutscheinaktionen eines Projekts ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-coupons"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/coupon/{external_id}": {
      "put": {
        "summary": "Gutscheinaktion aktualisieren",
        "description": "Aktualisiert eine Gutscheinaktion.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_coupon-update"
        },
        "responses": {
          "204": {
            "description": "Gutschein wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Gutscheinaktion abrufen",
        "description": "Ruft eine angegebene Gutscheinaktion ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Gutschein wurde erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "summary": "Gutscheinaktion löschen",
        "description": "Löscht eine [Gutscheinaktion](https://developers.xsolla.com/de/doc/shop-builder/features/coupons/). Die gelöschte Werbeaktion:\n * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.\n * wird nicht mehr auf den Artikelkatalog angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten.\n\nNach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.\n Gutscheincodes aus der gelöschten Werbeaktion können bestehenden Aktionen [hinzugefügt](https://developers.xsolla.com/de/api/shop-builder/operation/create-coupon-code/) werden.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-coupon-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "204": {
            "description": "Gutscheinaktion wurde erfolgreich gelöscht."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/activate": {
      "put": {
        "summary": "Gutscheinaktion aktivieren",
        "description": "Aktiviert eine Gutscheinaktion.\nDie erstellte Gutscheinaktion ist standardmäßig deaktiviert.\nGutscheine lassen sich erst einlösen, wenn Sie die zugehörige Werbeaktion aktivieren.\nVerwenden Sie diesen Endpunkt, um eine Gutscheinaktion zu aktivieren.",
        "operationId": "activate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Gutschein wurde erfolgreich aktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/deactivate": {
      "put": {
        "summary": "Gutscheinaktion deaktivieren",
        "description": "Deaktiviert eine Gutscheinaktion.\nDie erstellte Gutscheinaktion ist standardmäßig deaktiviert.\nGutscheine lassen sich erst einlösen, wenn Sie die zugehörige Werbeaktion aktivieren.\nVerwenden Sie diesen Endpunkt, um eine Gutscheinaktion zu deaktivieren.",
        "operationId": "deactivate-coupon",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Gutschein wurde erfolgreich deaktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code": {
      "post": {
        "operationId": "create-coupon-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Gutscheincode erstellen",
        "description": "Erstellt einen Gutscheincode.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Gutscheincodes abrufen",
        "description": "Ruft Gutscheincodes ab.\n\nIn der Antwort sind die Gesamtzahl der Codes in der Werbeaktion (`total_count`) sowie die Codes für die aktuelle Seite (`codes`) enthalten. Um die nächste Seite abzurufen, erhöhen Sie `offset` um den `limit`-Wert (z. B. `“offset”: 100`, dann `“offset”: 200`), bis Sie alle Codes abgerufen haben.\n\nIn den meisten Fällen ist `“limit”: 100` oder `“limit”: 1000` ausreichend. Größere Werte wie `“limit”: 10000` sind einmaligen Massenexporten vorbehalten. Vermeiden Sie es, `“limit”: 50000` anzugeben, sofern dies nicht unbedingt erforderlich ist.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-coupon-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/coupon/{external_id}/code/generate": {
      "put": {
        "summary": "Gutscheincodes generieren",
        "description": "Generiert Gutscheincodes.\n\nRichtlinien zur Codegenerierung:\n\n* Es gibt keine Höchstzahl an Codes pro Werbeaktion, jedoch ist jede Anfrage auf 50.000 Codes begrenzt. Anfragen mit einer höheren Anzahl führen zur Fehlermeldung `422 Unprocessable Entity`. Wenn Sie mehr als 50.000 Codes benötigen, senden Sie bitte mehrere Anfragen.\n\n* Aus Gründen der Zuverlässigkeit empfehlen wir, Codes in kleineren Stapeln zu generieren, d. h. bis zu 10.000 pro Anfrage. Wenn Sie beispielsweise 100.000 Codes erstellen möchten, sollten Sie zehn Anfragen mit `\"count\": 10000` senden anstelle von zwei Anfragen mit `\"count\": 50000`. Warten Sie bei jeder Anfrage, bis Sie eine erfolgreiche Antwort erhalten haben, bevor Sie die nächste Anfrage senden.\n\n* Beachten Sie die Ratenbegrenzung von 15 Anfragen pro Sekunde. Wenn Sie große Datenmengen generieren, sollten Sie die Anfragen nacheinander senden, um eine Überschreitung der Ratenbegrenzung und damit einen `429`-Fehler zu vermeiden.\n\n* Die Liste der Codes können Sie mit der Methode [Gutscheincode abrufen](/de/api/liveops/promotions-coupons/get-coupon-codes) abrufen.\n\n| Parameter | Wert |\n|---|---|\n| Mindestzahl an Codes pro Anfrage. | 1 |\n| Höchstzahl an Codes pro Anfrage. Nur verwenden, wenn Sie die größtmögliche Anzahl auf einmal abrufen müssen. | 50.000 |\n| Empfohlene Anzahl von Codes pro Anfrage. | Bis zu 10.000. Sollten Sie mehr Codes erstellen müssen, senden Sie mehrere aufeinanderfolgende Anfragen. |",
        "operationId": "generate-coupon-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Codes wurden erfolgreich generiert.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/promocode/redeem": {
      "post": {
        "summary": "Promocode einlösen",
        "description": "Löst einen Promocode aus einer Werbeaktion ein.\nNach dem Einlösen eines Promocodes erhält der Nutzer kostenlose Artikel und/oder der Preis des Warenkorbs und/oder bestimmter Artikel wird reduziert.",
        "operationId": "redeem-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_redeem-promo-code-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promo-code-redeemed"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-redeem-coupon"
          }
        },
        "security": [
          {
            "AuthForCart": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/remove": {
      "put": {
        "summary": "Promocode aus Warenkorb entfernen",
        "description": "Entfernt einen Promocode aus einem Warenkorb.\nNachdem der Promocode entfernt wurde, wird der Gesamtpreis aller Artikel im Warenkorb neu berechnet, ohne die durch einen Promocode sich ergebenden Boni und Rabatte.",
        "operationId": "remove-cart-promo-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_cancel-promo-code-model"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promo-code-canceled"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-cancel-promo-code"
          }
        },
        "security": [
          {
            "AuthForCart": []
          }
        ]
      }
    },
    "/v2/project/{project_id}/promocode/code/{promocode_code}/rewards": {
      "get": {
        "summary": "Promocode-Belohnungen abrufen",
        "description": "Ruft Promocode-Belohnungen anhand des Codes ab.\nDadurch können Nutzer aus mehreren Bonusartikeln wählen.\nIn der Regel wird ein DRM-System ausgewählt, wenn der Promocode ein Spiel als Bonus gewährt (`type=unit`). <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "operationId": "get-promo-code-rewards-by-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promocode_code-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promocode-rewards"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-rewards"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ]
      }
    },
    "/v3/project/{project_id}/admin/promocode": {
      "post": {
        "operationId": "create-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Promocode-Aktion erstellen",
        "description": "Erstellt eine Promocode-Aktion.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_promocode-create"
        },
        "responses": {
          "201": {
            "description": "Promocode wurde erfolgreich erstellt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Liste der Promocode-Aktionen abrufen",
        "description": "Ruft die Liste der Promocodes eines Projekts ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-promocodes"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promocode/{external_id}": {
      "put": {
        "summary": "Promocode-Aktion aktualisieren",
        "description": "Aktualisiert eine Promocode-Aktion.",
        "operationId": "update-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_promocode-update"
        },
        "responses": {
          "204": {
            "description": "Promocode wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Promocode-Aktion abrufen",
        "description": "Ruft eine angegebene Promocode-Aktion ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Promocode wurde erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                },
                "examples": {
                  "simple": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  },
                  "with price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_2",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ]
                    }
                  },
                  "with item price conditions": {
                    "value": {
                      "external_id": "summer20221",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Coupon name",
                        "ru-RU": "Название купона"
                      },
                      "is_enabled": true,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_3",
                          "quantity": 100
                        }
                      ],
                      "redeem_user_limit": null,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "discount": {
                        "percent": "10.99"
                      },
                      "discounted_items": null,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      },
                      "item_price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      },
      "delete": {
        "summary": "Promocode löschen",
        "description": "Löscht eine [Promocode-Aktion](https://developers.xsolla.com/de/doc/shop-builder/features/promo-codes/). Die gelöschte Werbeaktion:\n * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.\n * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten oder Artikel kaufen.\n\nNach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.\n Promocodes aus der gelöschten Aktion können bestehenden Aktionen [hinzugefügt](https://developers.xsolla.com/de/api/shop-builder/operation/create-promo-code-code/) werden.",
        "operationId": "delete-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Promocode-Aktion wurde erfolgreich gelöscht."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/activate": {
      "put": {
        "summary": "Promocode-Aktion aktivieren",
        "description": "Aktiviert eine Promocode-Aktion.\n\nDie erstellte Promocode-Aktion ist standardmäßig deaktiviert.\nPromocodes lassen sich erst einlösen, wenn Sie die zugehörige Werbeaktion aktivieren.\nVerwenden Sie diesen Endpunkt, um eine Promocode-Aktion zu aktivieren.",
        "operationId": "activate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Promocode wurde erfolgreich aktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/deactivate": {
      "put": {
        "summary": "Promocode-Aktion deaktivieren",
        "description": "Deaktiviert eine Promocode-Aktion.\n\nDie erstellte Promocode-Aktion ist standardmäßig deaktiviert.\nPromocodes lassen sich erst einlösen, wenn Sie die zugehörige Werbeaktion aktivieren.\nVerwenden Sie diesen Endpunkt, um eine Promocode-Aktion zu deaktivieren.",
        "operationId": "deactivate-promo-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Gutschein wurde erfolgreich deaktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code": {
      "post": {
        "operationId": "create-promo-code-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Code für Promocode-Aktion erstellen",
        "description": "Erstellt Code für eine Promocode-Aktion.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-promocode-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Codes von Promocode-Aktion abrufen",
        "description": "Ruft Codes einer Promocode-Aktion ab.\n\nIn der Antwort sind die Gesamtzahl der Codes in der Werbeaktion (`total_count`) sowie die Codes für die aktuelle Seite (`codes`) enthalten. Um die nächste Seite abzurufen, erhöhen Sie `offset` um den `limit`-Wert (z. B. `“offset”: 100`, dann `“offset”: 200`), bis Sie alle Codes abgerufen haben.\n\nIn den meisten Fällen ist `“limit”: 100` oder `“limit”: 1000` ausreichend. Größere Werte wie `“limit”: 10000` sind einmaligen Massenexporten vorbehalten. Vermeiden Sie es, `“limit”: 50000` anzugeben, sofern dies nicht unbedingt erforderlich ist.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-promocode-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/promocode/{external_id}/code/generate": {
      "put": {
        "summary": "Codes für eine Promocode-Aktion generieren",
        "description": "Generiert Codes für eine Promocode-Aktion.\n\nRichtlinien zur Codegenerierung:\n\n* Es gibt keine Höchstzahl an Codes pro Werbeaktion, jedoch ist jede Anfrage auf 50.000 Codes begrenzt. Anfragen mit einer höheren Anzahl führen zur Fehlermeldung `422 Unprocessable Entity`. Wenn Sie mehr als 50.000 Codes benötigen, senden Sie bitte mehrere Anfragen.\n\n* Aus Gründen der Zuverlässigkeit empfehlen wir, Codes in kleineren Stapeln zu generieren, d. h. bis zu 10.000 pro Anfrage. Wenn Sie beispielsweise 100.000 Codes erstellen möchten, sollten Sie zehn Anfragen mit `\"count\": 10000` senden anstelle von zwei Anfragen mit `\"count\": 50000`. Warten Sie bei jeder Anfrage, bis Sie eine erfolgreiche Antwort erhalten haben, bevor Sie die nächste Anfrage senden.\n\n* Beachten Sie die Ratenbegrenzung von 15 Anfragen pro Sekunde. Wenn Sie große Datenmengen generieren, sollten Sie die Anfragen nacheinander senden, um eine Überschreitung der Ratenbegrenzung und damit einen `429`-Fehler zu vermeiden.\n\n* Die Liste der Codes können Sie mit der Methode [Codes von Promocode-Aktion abrufen](/de/api/liveops/promotions-promo-codes/get-promocode-codes) abrufen.\n\n| Parameter | Wert |\n|---|---|\n| Mindestzahl an Codes pro Anfrage. | 1 |\n| Höchstzahl an Codes pro Anfrage. Nur verwenden, wenn Sie die größtmögliche Anzahl auf einmal abrufen müssen. | 50.000 |\n| Empfohlene Anzahl von Codes pro Anfrage. | Bis zu 10.000. Sollten Sie mehr Codes erstellen müssen, senden Sie mehrere aufeinanderfolgende Anfragen. |",
        "operationId": "generate-promo-code-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Codes wurden erfolgreich generiert.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/item": {
      "post": {
        "summary": "Rabattaktion für Artikel erstellen",
        "description": "Erstellt eine Rabattaktion für einen Artikel.\n\nWerbeaktionen gewähren einen Rabatt (in %) auf Artikel.\nDer Rabatt wird auf alle Preise der angegebenen Artikel angewendet.",
        "operationId": "create-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-item-promotion"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-create-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-items-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Liste der Artikelaktionen abrufen",
        "description": "Ruft die Liste der Artikelaktionen eines Projekts ab.\n\nWerbeaktionen gewähren einen Rabatt (in %) auf Artikel.\nDer Rabatt wird auf alle Preise der angegebenen Artikel angewendet.",
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "Projekt-ID.",
            "schema": {
              "type": "integer",
              "default": 59080
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Begrenzung der Elementanzahl auf der Seite.",
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "required": false,
            "description": "Elementnummer, aus der die Liste generiert wird (die Zählung beginnt bei 0).",
            "schema": {
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-item-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/item": {
      "put": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Artikelaktion aktualisieren",
        "description": "Aktualisiert die Werbeaktion.\n\n<div class='note'><b>Hinweis</b><br><br>Neue Daten ersetzen alte Daten. Auch wenn Sie nur einen Teil einer Werbeaktion aktualisieren möchten, sollten Sie alle erforderlichen Daten in der Anfrage übermitteln.</div>\n\nWerbeaktionen gewähren einen Rabatt (in %) auf Artikel.\nDer Rabatt wird auf alle Preise der angegebenen Artikel angewendet.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-items-property"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-item-promotion"
        }
      },
      "get": {
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Artikelaktion abrufen",
        "description": "Ruft die für einen bestimmten Artikel geltende Werbeaktion ab.\n\nWerbeaktionen gewähren einen Rabatt (in %) auf Artikel.\nDer Rabatt wird auf alle Preise der angegebenen Artikel angewendet.",
        "responses": {
          "200": {
            "description": "Artikelaktion wurde erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer",
                      "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                    },
                    "promotion_periods": {
                      "$ref": "#/components/schemas/promotion_periods"
                    },
                    "is_enabled": {
                      "$ref": "#/components/schemas/Promotions_is_enabled"
                    },
                    "name": {
                      "type": "object",
                      "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
                      "additionalProperties": {
                        "type": "string",
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      }
                    },
                    "discount": {
                      "type": "object",
                      "properties": {
                        "percent": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "description": "Prozentualer Rabatt.\nDer Preis des Artikels wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet wird.",
                          "default": "10.00"
                        }
                      }
                    },
                    "items": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "description": "Die Liste der Artikel, bei denen der Rabatt greift.",
                        "type": "object",
                        "properties": {
                          "sku": {
                            "type": "string",
                            "description": "Artikel-SKU.",
                            "default": "elven_sword"
                          }
                        }
                      }
                    },
                    "attribute_conditions": {
                      "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                    },
                    "limits": {
                      "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                    },
                    "price_conditions": {
                      "$ref": "#/components/schemas/price_conditions_discount"
                    },
                    "excluded_promotions": {
                      "$ref": "#/components/schemas/excluded_promotions"
                    }
                  },
                  "example": {
                    "id": 1,
                    "promotion_periods": [
                      {
                        "date_from": "2020-04-15T18:16:00+05:00",
                        "date_until": "2020-04-25T18:16:00+05:00"
                      }
                    ],
                    "is_enabled": true,
                    "discount": {
                      "percent": "15.00"
                    },
                    "items": [
                      {
                        "sku": "com.xsolla.elven_sword_1"
                      },
                      {
                        "sku": "com.xsolla.elven_helmet_1"
                      },
                      {
                        "sku": "com.xsolla.elven_armor_1"
                      }
                    ],
                    "name": {
                      "en-US": "Promotion",
                      "ru-RU": "Акция"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "day_of_week": null,
                            "day_of_month": null,
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "ge",
                          "value": "10.0000"
                        },
                        {
                          "operator": "le",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        23,
                        45
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "description": "Werbeaktion nicht gefunden. Prüfen Sie, ob die `promotion_id` korrekt ist.",
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "statusCode": {
                      "type": "integer",
                      "example": 404
                    },
                    "errorCode": {
                      "type": "integer",
                      "example": 9502
                    },
                    "errorMessage": {
                      "type": "string",
                      "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  },
                  "type": "object"
                },
                "examples": {
                  "response": {
                    "value": {
                      "statusCode": 404,
                      "errorCode": 9502,
                      "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "delete": {
        "summary": "Artikelaktion löschen",
        "tags": [
          "promotions-discounts"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-item-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "description": "Löscht eine [Rabattaktion](https://developers.xsolla.com/de/doc/shop-builder/features/discounts/). Die gelöschte Aktion:\n * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.\n * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Artikel kaufen.\n\nNach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich gelöscht."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/bonus": {
      "post": {
        "summary": "Bonusaktion erstellen",
        "description": "Erstellt die Bonusaktion.\n\nDie Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose Bonusartikel.\nDie Werbeaktion kann bei jedem Kauf innerhalb eines Projekts oder bei einem Kauf, der bestimmte Artikel umfasst, gelten.",
        "operationId": "create-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-bonus-promotion"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-create-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-bonus-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Liste der Bonusaktionen abrufen",
        "description": "Ruft die Liste der Bonusaktionen eines Projekts ab.\n\nDie Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose Bonusartikel.\nDie Werbeaktion kann bei jedem Kauf innerhalb eines Projekts oder bei einem Kauf, der bestimmte Artikel umfasst, gelten.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-bonus-promotions"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/promotion/{promotion_id}/bonus": {
      "put": {
        "summary": "Bonusaktion aktualisieren",
        "description": "Aktualisiert die Werbeaktion.\n\n<div class='note'><b>Hinweis</b><br><br>Neue Daten ersetzen alte Daten. Auch wenn Sie nur einen Teil einer Werbeaktion aktualisieren möchten, sollten Sie alle erforderlichen Daten in der Anfrage übermitteln.</div>\n\nDie Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose Bonusartikel.\nDie Werbeaktion kann bei jedem Kauf innerhalb eines Projekts oder bei einem Kauf, der bestimmte Artikel umfasst, gelten.",
        "operationId": "update-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-update-bonus-promotion"
        },
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-missed-bonus-property"
          }
        }
      },
      "get": {
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Bonusaktion abrufen",
        "description": "Ruft die Bonusaktion ab.\n\nDie Werbeaktion gewährt dem Nutzer beim Kauf zusätzlich kostenlose Bonusartikel.\nDie Werbeaktion kann bei jedem Kauf innerhalb eines Projekts oder bei einem Kauf, der bestimmte Artikel umfasst, gelten.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-admin-get-bonus-promotion"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      },
      "delete": {
        "summary": "Bonusaktion löschen",
        "tags": [
          "promotions-bonuses"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-bonus-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "description": "Löscht [Bonusaktion](https://developers.xsolla.com/de/doc/shop-builder/features/bonuses/). Die gelöschte Werbeaktion:\n * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.\n * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Nutzer können im Rahmen dieser Werbeaktion keine Bonusartikel erhalten.\n\nNach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Werbeaktion wurde erfolgreich gelöscht."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promotion"
          }
        }
      }
    },
    "/v2/project/{project_id}/promotion/code/{code}/verify": {
      "get": {
        "summary": "Aktionscode überprüfen",
        "description": "Prüft, ob es sich bei dem Code um einen Promocode oder einen Gutscheincode handelt und ob der Nutzer ihn anwenden kann.<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "operationId": "verify-promotion-code",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/code-path-param"
          }
        ],
        "tags": [
          "promotions-common"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-verify-promo-code"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "403": {
            "$ref": "#/components/responses/Promotions_403-auth-header"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-verify-promo-code"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-verify-promo-code"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer": {
      "post": {
        "operationId": "admin-create-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Katalogsonderangebot erstellen",
        "description": "Erstellt ein Katalogsonderangebot.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_unique_catalog_offer-create"
        },
        "responses": {
          "201": {
            "description": "Katalogsonderangebot wurde erfolgreich erstellt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "external_id": {
                      "$ref": "#/components/schemas/Promotions_coupon-external_id"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "coupon_external_id"
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offers",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Liste von Katalogsonderangeboten abrufen",
        "description": "Ruft die Liste der Katalogsonderangebote eines Projekts ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-get-unique-catalog-offers"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/unique_catalog_offer/{external_id}": {
      "put": {
        "operationId": "update-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Katalogsonderangebot aktualisieren",
        "description": "Aktualisiert das Katalogsonderangebot.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_unique_catalog_offer-update"
        },
        "responses": {
          "204": {
            "description": "Katalogsonderangebot wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-invalid-coupon"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "summary": "Katalogsonderangebot abrufen",
        "description": "Ruft das angegebene Katalogsonderangebot ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Katalogsonderangebot wurde erfolgreich abgerufen.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                },
                "examples": {
                  "response": {
                    "value": {
                      "external_id": "secret_shop",
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Secret shop",
                        "ru-RU": "Секретный магазин"
                      },
                      "items": [
                        "helmet",
                        "sword",
                        "shield"
                      ],
                      "is_enabled": true,
                      "redeem_user_limit": 1,
                      "redeem_total_limit": 100,
                      "redeem_code_limit": 1,
                      "total_limit_state": {
                        "available": 50,
                        "reserved": 10,
                        "used": 40
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      },
      "delete": {
        "operationId": "delete-unique-catalog-offer-promotion",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Katalogsonderangebotsaktion löschen",
        "description": "Löscht eine [einmalige Katalogsonderangebotsaktion](https://developers.xsolla.com/de/doc/shop-builder/features/unique-offer/). Die gelöschte Werbeaktion:\n * verschwindet aus der Liste der in Ihrem Projekt eingerichteten Werbeaktionen.\n * wird nicht mehr auf den Artikelkatalog und den Warenkorb angewendet. Der Nutzer können im Rahmen dieser Werbeaktion keine Artikel kaufen.\n\nNach der Löschung kann die Werbeaktion nicht wiederhergestellt werden.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Katalogsonderangebot wurde erfolgreich gelöscht."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/activate": {
      "put": {
        "operationId": "activate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Katalogsonderangebot aktivieren",
        "description": "Aktiviert ein Katalogsonderangebot.\n Das erstellte Katalogsonderangebot ist standardmäßig deaktiviert.\nDas Angebot kann erst eingelöst werden, nachdem Sie es aktiviert haben.\nVerwenden Sie diesen Endpunkt, um eine Gutscheinaktion freizuschalten und zu aktivieren.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Katalogsonderangebot wurde erfolgreich aktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/deactivate": {
      "put": {
        "operationId": "deactivate-unique-catalog-offer",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Katalogsonderangebot deaktivieren",
        "description": "Deaktiviert ein Katalogsonderangebot.\n Das erstellte Katalogsonderangebot ist standardmäßig deaktiviert.\nDas Angebot kann erst eingelöst werden, nachdem Sie es aktiviert haben.\nVerwenden Sie diesen Endpunkt, um eine Gutscheinaktion zu deaktivieren.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "204": {
            "description": "Katalogsonderangebot wurde erfolgreich deaktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-admin-promotion-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code": {
      "post": {
        "operationId": "create-unique-catalog-offer-code",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Code für Katalogsonderangebote erstellen",
        "description": "Erstellt einen Code für Katalogsonderangebote.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Promotions_create-coupon-promocode-code"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/Promotions_201-coupon-promocode-code-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          },
          "422": {
            "$ref": "#/components/responses/Promotions_422-coupon-promocode-same-code-exists"
          }
        }
      },
      "get": {
        "operationId": "get-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Codes für Katalogsonderangebote abrufen",
        "description": "Ruft Codes für Katalogsonderangebote ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Promotions_200-unique-catalog-offer-code-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-coupon"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/unique_catalog_offer/{external_id}/code/generate": {
      "put": {
        "operationId": "generate-unique-catalog-offer-codes",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "summary": "Codes für Katalogsonderangebote generieren",
        "description": "Generiert Codes für Katalogsonderangebote.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          }
        ],
        "tags": [
          "promotions-unique-catalog-offers"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "count": {
                    "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                  }
                },
                "required": [
                  "count"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Codes wurden erfolgreich generiert.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "count": {
                      "$ref": "#/components/schemas/Promotions_coupon-generate-count"
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "count": 10
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/Promotions_404-admin-promocode"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Promo-Code-Limit für den angegebenen Benutzer abrufen",
        "description": "Ruft ab, wie oft der angegebene Nutzer den Promocode in Anspruch nehmen kann.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer einen Promocode in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\":\n* [Promocodes](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-user-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Gutschein-Limit für den angegebenen Benutzer abrufen",
        "description": "Ruft ab, wie oft der angegebene Nutzer den Gutschein noch in Anspruch nehmen kann.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer einen Gutschein in Anspruch nehmen kann. Das Nutzerlimit können Sie im Abschnitt \"Verwaltung\" festlegen:\n* [Gutscheine](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/Promotions_422-invalid-coupon"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/promocode/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-promo-codes"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-promo-code-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/codes-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "summary": "Promocode-Limit für Codes abrufen",
        "description": "Ruft ab, wie oft die Codes noch eingelöst werden dürfen. Verwenden Sie zum Filtern der Codes den Abfrageparameter `codes`.\n\nIm Abschnitt \"Verwaltung\" können Sie das Code-Limit selbst festlegen:\n* [Promocodes](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-promo-codes/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-promo-code-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Promo code not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/code/limit/coupon/external_id/{external_id}": {
      "get": {
        "tags": [
          "promotions-coupons"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-coupon-code-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/external_id-promotion-path-param"
          },
          {
            "$ref": "#/components/parameters/codes-query-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "summary": "Limits eindeutiger Gutscheincodes abrufen",
        "description": "Ruft ab, wie oft die Codes noch eingelöst werden dürfen. Verwenden Sie zum Filtern der Codes den Abfrageparameter `codes`.\n\nIm Abschnitt \"Verwaltung\" können Sie das Code-Limit selbst festlegen:\n* [Gutscheine](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-coupons/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-code-coupon-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Coupon not found": {
                    "$ref": "#/components/examples/404-coupon-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/is_enabled-query-param"
          }
        ],
        "summary": "Liste der Katalogfilterregeln abrufen",
        "description": "Ruft alle Regeln ab, die für Benutzerattribute gelten.",
        "responses": {
          "200": {
            "description": "Regeln wurden erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                      }
                    },
                    "total_items_count": {
                      "type": "number",
                      "description": "Total number of rules."
                    },
                    "has_more": {
                      "type": "boolean",
                      "description": "If another page with rules exists."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false,
                          "attribute_conditions": [
                            {
                              "attribute": "race",
                              "operator": "eq",
                              "value": "ork",
                              "type": "string",
                              "can_be_missing": false
                            }
                          ],
                          "items": [
                            {
                              "item_id": 1,
                              "sku": "com.xsolla.ork_armor_1",
                              "name": "Ork Armor",
                              "type": "virtual_good"
                            },
                            {
                              "item_id": 2,
                              "sku": "com.xsolla.potion_pack_1",
                              "name": "Potion pack",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "total_items_count": 20,
                      "has_more": true
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      },
      "post": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "create-filter-rule",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Katalogfilterregel erstellen",
        "description": "Erstellt Regeln für Benutzerattribute.",
        "responses": {
          "201": {
            "description": "Regel wurde erfolgreich erstellt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rule_id": {
                      "type": "number",
                      "description": "Regel-ID."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/all": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-all-filter-rules",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Alle Katalogregeln zum clientseitigen Durchsuchen abrufen",
        "description": "Ruft eine Liste aller Katalogregeln zum clientseitigen Durchsuchen ab.\n\n<div class=\"notice\"><strong>Achtung</strong><br><br>Gibt nur Regel-ID, Name und is_enabled zurück</div>",
        "responses": {
          "200": {
            "description": "Regeln wurden erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/user-attribute_personalized-catalog_all"
                      }
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "items": [
                        {
                          "rule_id": 1,
                          "name": "Ork race armor rule",
                          "is_enabled": true,
                          "is_satisfied_for_unauth": false
                        },
                        {
                          "rule_id": 2,
                          "name": "Age",
                          "is_enabled": false,
                          "is_satisfied_for_unauth": false
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "403": {
            "$ref": "#/components/responses/403-auth-header-not-sent"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/attribute/rule/{rule_id}": {
      "get": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Katalogfilterregel abrufen",
        "description": "Bestimmte für Benutzerattribute geltende Regel abrufen",
        "responses": {
          "200": {
            "description": "Die Regel wurde erfolgreich empfangen.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/user-attribute_personalized-catalog"
                },
                "examples": {
                  "response": {
                    "value": {
                      "rule_id": 1,
                      "name": "Ork race armor rule",
                      "is_enabled": true,
                      "is_satisfied_for_unauth": true,
                      "attribute_conditions": [
                        {
                          "attribute": "race",
                          "operator": "eq",
                          "value": "ork",
                          "type": "string",
                          "can_be_missing": false
                        }
                      ],
                      "items": [
                        {
                          "item_id": 1,
                          "sku": "com.xsolla.ork_armor_1",
                          "name": "Ork Armor"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      },
      "put": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "update-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Katalogfilterregel aktualisieren",
        "description": "Aktualisiert eine bestimmte Regel, die für Benutzerattribute gilt. Bei einer unbestimmten Eigenschaft wird der Standardwert verwendet (wenn die Eigenschaft nicht erforderlich ist).",
        "responses": {
          "204": {
            "description": "Erfolgreiche Aktualisierung."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/personalized-catalog_create-update-body"
        }
      },
      "patch": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "patch-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Katalogfilterregel patchen",
        "description": "Aktualisiert eine bestimmte Regel, die für Benutzerattribute gilt. Bei einer unbestimmten Eigenschaft wird der aktuelle Wert verwendet.",
        "responses": {
          "204": {
            "description": "Aktualisierung war erfolgreich."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          },
          "422": {
            "$ref": "#/components/responses/Common_422-body-validation"
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-attribute_personalized-catalog-body"
              },
              "example": {
                "is_enabled": false
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "personalized-catalog"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "delete-filter-rule-by-id",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/personalized-catalog-rule_id-path-param"
          }
        ],
        "summary": "Katalogfilterregel löschen",
        "description": "Löscht eine bestimmte Regel.",
        "responses": {
          "204": {
            "description": "Löschen war erfolgreich."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-complex"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-all-user-promotions-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Alle Werbeaktionslimits für den angegebenen Benutzer aktualisieren",
        "description": "Aktualisiert alle für den angegebenen Nutzer geltenden Werbeaktionslimits, sodass er diese Werbeaktionen wieder in Anspruch nehmen kann.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "Das Werbeaktionslimit wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}/all": {
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "reset-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Werbeaktionslimit für Benutzer aktualisieren",
        "description": "Aktualisiert das Werbaaktionslimit, damit ein Nutzer diese Aktion erneut in Anspruch nehmen kann. Ist dem Parameter *user* der Wert `null` zugewiesen, wird das Limit für alle Nutzer aktualisiert.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "description": "Das Werbeaktionslimit wurde erfolgreich aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/reset-user-limits-flexible"
        }
      }
    },
    "/v2/project/{project_id}/admin/user/limit/promotion/id/{promotion_id}": {
      "get": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "get-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          },
          {
            "$ref": "#/components/parameters/user_external_id-query-param"
          }
        ],
        "summary": "Werbeaktionslimit für angegebenen Benutzer abrufen",
        "description": "Ruft ab, wie oft die der angegebene Nutzer die Werbeaktion innerhalb des geltenden Limits noch in Anspruch nehmen darf.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "add-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Werbeaktionslimit für angegebenen Benutzer erhöhen",
        "description": "Erhöht die Anzahl der verbleibenden Male, die der angegebene Nutzer die Werbeaktion innerhalb des geltenden Limits in Anspruch nehmen darf.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      },
      "put": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "set-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Werbeaktionslimit für angegebenen Benutzer festlegen",
        "description": "Legt fest, wie oft der angegebene Nutzer eine Werbeaktion innerhalb des geltenden Limits in Anspruch nehmen darf, nachdem das Limit erhöht oder herabgesetzt wurde.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-flexible"
        }
      },
      "delete": {
        "tags": [
          "user-limits-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "remove-user-promotion-limit",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/promotion_id-path-param"
          }
        ],
        "summary": "Werbeaktionslimit für angegebenen Benutzer herabsetzen",
        "description": "Verringert die Anzahl der verbleibenden Male, die der angegebene Nutzer die Werbeaktion innerhalb des geltenden Limits in Anspruch nehmen darf.\n\nMit der entsprechenden API (User limit API) können Sie begrenzen, wie oft ein Nutzer eine Werbeaktion in Anspruch nehmen kann. Um das Nutzerlimit zu konfigurieren, wechseln Sie zum Abschnitt \"Verwaltung\" der gewünschten Werbeaktionsart:\n* [Rabattaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-discounts/)\n* [Bonusaktionen](https://developers.xsolla.com/de/api/shop-builder/tag/promotions-bonuses/)",
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-user-promotion-limits"
          },
          "401": {
            "$ref": "#/components/responses/Common_401-invalid-basic-auth"
          },
          "404": {
            "description": "Artikel nicht gefunden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Item not found": {
                    "$ref": "#/components/examples/404-promotion-by-id-not-found"
                  },
                  "User not found": {
                    "$ref": "#/components/examples/404-user-not-found"
                  }
                }
              }
            }
          },
          "422": {
            "description": "Ungültige Anfrage.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "statusCode": {
                      "type": "integer"
                    },
                    "errorCode": {
                      "type": "integer"
                    },
                    "errorMessage": {
                      "type": "string"
                    },
                    "errorMessageExtended": {
                      "type": "array"
                    },
                    "transactionId": {
                      "type": "string"
                    }
                  }
                },
                "examples": {
                  "Invalid user_external_id": {
                    "$ref": "#/components/examples/422-user_external_id_invalid"
                  },
                  "Promotion does not have configured user limits": {
                    "$ref": "#/components/examples/422-promotion-without-user-limit"
                  },
                  "Available promotion limit is out of range": {
                    "$ref": "#/components/examples/422-promotion-out-of-range-available-user-limit"
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "$ref": "#/components/requestBodies/update-user-limits-strict"
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points": {
      "get": {
        "summary": "Liste der Wertpunkte abrufen",
        "description": "Ruft die Liste der Wertpunkte innerhalb eines Projekts zu Verwaltungszwecken ab.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-get-value-points-list",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-points"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Wertpunkt erstellen",
        "description": "Erstellt einen Wertpunkt.",
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "operationId": "admin-create-value-points",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-value-point"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/value_points/sku/{item_sku}": {
      "get": {
        "summary": "Wertpunkt abrufen",
        "description": "Ruft einen durch Angabe der SKU festgelegten Wertpunkt innerhalb eines Projekts zu Verwaltungszwecken ab.",
        "operationId": "admin-get-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-value-point"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "Wertpunkt aktualisieren",
        "description": "Aktualisiert einen durch Angabe der SKU festgelegten Wertpunkt.",
        "operationId": "admin-update-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-value-point"
        },
        "responses": {
          "204": {
            "description": "Wertpunkt wurde erfolgreich aktualisiert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      },
      "delete": {
        "summary": "Wertpunkte löschen",
        "description": "Löscht einen durch Angabe der SKU festgelegten Wertpunkt.",
        "operationId": "admin-delete-value-point",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/item_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "Wertpunkt wurde erfolgreich gelöscht.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/{value_point_sku}/value_points/rewards": {
      "get": {
        "summary": "Liste der Artikel mit Wertpunkten abrufen",
        "description": "Ruft eine Liste aller Artikel mit Wertpunkten innerhalb eines Projekts zu Verwaltungszwecken ab.",
        "operationId": "admin-get-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-value-point-rewards"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "put": {
        "summary": "Wertpunkte für Artikel festlegen",
        "description": "Weist einem oder mehreren Artikeln durch Angabe der entsprechenden SKU Wertpunkte zu. Nutzer erhalten Wertpunkte, nachdem sie diese Artikel gekauft haben.\n\nBeachten Sie, dass diese PUT-Anfrage alle zuvor festgelegten Wertpunkte für Artikel im Projekt überschreibt.\n\nUm ein unbeabsichtigtes Löschen von Wertpunkten zu vermeiden, müssen alle Artikel und ihre jeweiligen Wertpunkte in jeder PUT-Anfrage angegeben sein.\n\nWenn Sie nur die Wertpunkte für einen bestimmten Artikel aktualisieren und die Wertpunkte anderer Artikel unverändert lassen möchten, sollten Sie den aktuellen Satz Wertpunkte mithilfe einer GET-Anfrage abrufen, die Wertpunkte des gewünschten Artikels ändern und dann den geänderten Satz mit den aktualisierten Wertpunkten für den entsprechenden Artikel zurücksenden.",
        "operationId": "admin-set-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward"
        },
        "responses": {
          "204": {
            "description": "Wertpunktbelohnungen für Artikel wurden erfolgreich aktualisiert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "patch": {
        "summary": "Wertpunkte für Artikel teilweise aktualisieren",
        "description": "Aktualisiert die Anzahl der Wertpunkte für einen oder mehrere Artikel teilweise anhand der SKU des Artikels. Nutzer erhalten Wertpunkte nach dem Kauf der angegebenen Artikel.\n\nGrundregeln für die Aktualisierung von Wertpunkten:\n  * Wenn einem Artikel noch keine Wertpunkte zugewiesen sind, werden diese durch das Senden eines Wertes ungleich Null in das Feld `amount` eingetragen.\n  * Wenn einem Artikel bereits Wertpunkte zugewiesen sind, werden die im Feld `amount` angegebenen Wertpunkte durch das Senden eines Wertes ungleich Null überschrieben.\n  * Wenn`amount` auf 0 festgelgt wird, werden die vorhandenen Wertpunkte für diesen Artikel gelöscht.\n\nIm Gegensatz zur `PUT`-Methode ([Wertpunkte für Artikel festlegen](https://developers.xsolla.com/de/api/shop-builder/operation/admin-set-items-value-point-reward/)), werden bei dieser `PATCH`-Methode nicht alle vorhandenen Artikel-Wertpunkte im Projekt überschrieben, sondern nur die Wertpunkte der angegebenen Artikel aktualisiert.\n\nMit einer einzelnen Anfrage können bis zu 100 Artikel aktualisiert werden. Doppelt vorhandene Artikel-SKUs dürfen nicht in derselben Anfrage enthalten sein.",
        "operationId": "admin-patch-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/set-item-value-point-reward-for-patch"
        },
        "responses": {
          "204": {
            "description": "Wertpunktbelohnungen für Artikel wurden erfolgreich aktualisiert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/sellable-item-by-sku_404"
          }
        }
      },
      "delete": {
        "summary": "Wertpunkte von Artikeln löschen",
        "description": "Entfernt Wertpunktbelohnungen von ALLEN Artikeln.",
        "operationId": "admin-delete-items-value-point-reward",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/value_point_sku-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "description": "Wertpunktbelohnungen für Artikel wurden erfolgreich gelöscht.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-reward-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Belohnungsketten des aktuellen Nutzers abrufen",
        "description": "Client-Endpunkt. Ruft die Belohnungsketten des aktuellen Nutzers ab.\n\n<div class=\"notice\">\n<strong>Achtung</strong><br><br>\nBei allen Projekten ist die Anzahl der Artikel begrenzt, die Sie in der Antwort erhalten können. Der Standard- und Höchstwert beträgt <strong>50 Artikel pro Antwort.</strong> Um pro Seite mehr Daten zu erhalten, verwenden Sie die Felder <b>limit</b> und <b>offset</b>.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-reward-chains-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/balance": {
      "get": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "get-user-reward-chain-balance",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Wertpunktestand des aktuellen Nutzers abrufen",
        "description": "Client-Endpunkt. Ruft das Wertpunkte-Guthaben des aktuellen Nutzers ab. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-user-reward-chain-balance"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/reward_chain/{reward_chain_id}/step/{step_id}/claim": {
      "post": {
        "tags": [
          "reward-chain-client"
        ],
        "operationId": "claim-user-reward-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Schrittbelohnung gewähren",
        "description": "Client-Endpunkt. Gewährt dem aktuellen Nutzer die Schrittbelohnung aus einer Belohnungskette. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_step_id-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Dem aktuellen Nutzer wurde die Schrittbelohnung aus einer Belohnungskette erfolgreich gewährt."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-reward-chain-step-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-reward-chain-step-reward-can-not-claimed"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/clan/contributors/{reward_chain_id}/top": {
      "get": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "get-user-clan-top-contributors",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "description": "Die Top-10-Liste der Personen, die am meisten zur Clan-Belohnungskette beigetragen haben.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string",
                        "example": "Rocket",
                        "description": "User ID. This is the ID sending to Xsolla during authorization and links the user to your Xsolla Login project."
                      },
                      "contributed_amount": {
                        "type": "integer",
                        "example": 100,
                        "description": "The amount of value points contributed by the user."
                      }
                    }
                  }
                },
                "examples": {
                  "clan": {
                    "summary": "User has a clan",
                    "value": [
                      {
                        "name": "winner",
                        "contributed_amount": 555
                      },
                      {
                        "name": "Rocket",
                        "contributed_amount": 398
                      },
                      {
                        "name": "MrJoe",
                        "contributed_amount": 201
                      },
                      {
                        "name": "beginner",
                        "contributed_amount": 1
                      }
                    ]
                  },
                  "without-clan": {
                    "summary": "User doesn't belong to a clan",
                    "value": []
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "Projekt-ID.",
            "schema": {
              "type": "integer",
              "example": 44056
            }
          },
          {
            "name": "reward_chain_id",
            "in": "path",
            "required": true,
            "description": "Belohnungsketten-ID.",
            "schema": {
              "type": "integer",
              "example": 101
            }
          }
        ],
        "summary": "Top-10-Liste der Personen abrufen, die am meisten zur Clan-Belohnungskette beigetragen haben",
        "description": "Ruft die Top-10-Liste der Personen ab, die am meisten zur angegebenen Belohnungskette des Clans des aktuellen Nutzers beigetragen haben. Wenn ein Nutzer keinem Clan angehört, gibt der Aufruf ein leeres Array zurück. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>"
      }
    },
    "/v2/project/{project_id}/user/clan/update": {
      "put": {
        "tags": [
          "clan-reward-chain-client"
        ],
        "operationId": "user-clan-update",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-update-user-clan"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "name": "project_id",
            "in": "path",
            "required": true,
            "description": "Projekt-ID.",
            "schema": {
              "type": "integer",
              "default": 44056
            }
          }
        ],
        "summary": "Den Clan des aktuellen Nutzers aktualisieren",
        "description": "Aktualisiert den Clan eines aktuellen Nutzers über Benutzerattribute. Sichert alle Belohnungen aus Belohnungsketten, solange diese nicht für einen vorherigen Clan gesichert wurden, und gibt sie in der Antwort zurück. Wenn der Nutzer früher einem Clan angehörte und jetzt nicht mehr, wird seine Zugehörigkeit zu diesem Clan widerrufen. Wenn der Nutzer den Clan gewechselt hat, wird der Clan geändert. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>"
      }
    },
    "/v3/project/{project_id}/admin/reward_chain": {
      "get": {
        "summary": "Liste der Belohnungsketten abrufen",
        "description": "Ruft die Liste der Belohnungsketten ab.\n\n<div class=\"notice\"><strong>Achtung</strong><br><br>Bei allen Projekten ist die Anzahl der Artikel begrenzt, die Sie in der Antwort erhalten können. Der Standard- und Höchstwert beträgt <strong>10 Artikel pro Antwort.</strong> Um pro Seite mehr Daten zu erhalten, verwenden Sie die Felder <b>limit</b> und <b>offset</b>.</div>",
        "operationId": "admin-get-reward-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-reward-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Belohnungskette erstellen",
        "description": "Erstellt eine Belohnungskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-reward-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}": {
      "get": {
        "summary": "Belohnungskette abrufen",
        "description": "Ruft eine bestimmte Belohnungskette ab.",
        "operationId": "admin-get-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-admin-reward-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Belohnungskette aktualisieren",
        "description": "Aktualisiert eine bestimmte Belohnungskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-reward-chain"
        },
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-update-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-admin-reward-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-update-rc-vp-invalid-request"
          }
        }
      },
      "delete": {
        "summary": "Belohnungskette löschen",
        "description": "Löscht eine bestimmte Belohnungskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-delete-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/toggle": {
      "put": {
        "summary": "Belohnungskette aktivieren/deaktivieren",
        "description": "Aktiviert/deaktiviert die Belohnungskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-toggle-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v3/project/{project_id}/admin/reward_chain/id/{reward_chain_id}/reset": {
      "post": {
        "summary": "Belohnungskette zurücksetzen",
        "description": "Setzt das Wertpunkte-Guthaben und den Fortschritt aller Nutzer in der Belohnungskette zurück.<br>Das Guthaben ist an den Wertpunkttyp gebunden, nicht an eine bestimmte Belohnungskette. Werden die Wertpunkte auch in anderen Ketten verwendet, wird das Guthaben in allen Ketten zurückgesetzt, in denen diese Wertpunkte zum Einsatz kommen.<br> Nach dem Zurücksetzen können Sie die Gültigkeitsdauer der Belohnungskette aktualisieren, und die Nutzer können diese erneut durchlaufen.<br> Das Clan-Guthaben berechnet sich aus der Summe der Guthaben der einzelnen Clan-Mitglieder. Daher ist nach dem Zurücksetzen auch das Clan-Guthaben zurückgesetzt.<br> Diese Anfrage ist irreversibel und gilt für alle Nutzer des Projekts.\n\n<div class=\"notice\"><strong>Hinweis</strong>\n<br><br>\n Sie sollten die Belohnungskette während ihrer Gültigkeitsdauer nicht zurücksetzen, weil die Nutzer ansonsten verdiente Wertpunkte möglicherweise verlieren, bevor sie ihre Belohnung in Anspruch nehmen können.\n</div>",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-reward-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/reward_chain_id-path-param"
          }
        ],
        "tags": [
          "reward-chain-value-points-admin"
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/204-admin-reset-reward-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain": {
      "get": {
        "summary": "Liste der täglichen Belohnungen abrufen",
        "description": "Ruft eine Liste der täglichen Belohnungen zur Verwaltung ab.\n\n<div class=\"notice\"><strong>Hinweis</strong><br><br>Die Methode gibt eine paginierte Artikelliste zurück. Der Maximal- und Standardwert beträgt <strong>50 Artikel pro Antwort</strong>. Verwenden Sie die Parameter `limit` und `offset`, um weitere Seiten bzw. Artikel aus der Liste abzurufen. Wenn Sie beispielsweise die Methode mit den Parameterwerten \"limit = 25\" und \"offset = 100\" aufrufen, sind in der Antwort 25 Artikel aufgeführt, beginnend mit dem 101. Artikel in der Gesamtliste.</div>",
        "operationId": "admin-get-daily-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          },
          {
            "$ref": "#/components/parameters/is_expired-daily-chain-query-param"
          },
          {
            "$ref": "#/components/parameters/type-daily-chain-query-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-daily-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Tägliche Belohnung erstellen",
        "description": "Erstellt eine tägliche Belohnung",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-daily-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-daily-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-create-error-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}": {
      "get": {
        "summary": "Tägliche Belohnung abrufen",
        "description": "Ruft eine bestimmte tägliche Belohnung zur Verwaltung ab.",
        "operationId": "admin-get-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-daily-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Tägliche Belohnung aktualisieren",
        "description": "Aktualisiert eine bestimmte tägliche Belohnung.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-daily-chain"
        },
        "responses": {
          "204": {
            "description": "Tägliche Belohnung wurde erfolgreich aktualisiert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-admin-update-error-list"
          }
        }
      },
      "delete": {
        "summary": "Tägliche Belohnung löschen",
        "description": "Löscht eine bestimmte tägliche Belohnung.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Tägliche Belohnung wurde erfolgreich gelöscht.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/toggle": {
      "put": {
        "summary": "Tägliche Belohnung aktivieren/deaktivieren",
        "description": "Aktiviert oder deaktiviert eine tägliche Belohnung.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Die tägliche Belohnung wurde deaktiviert oder aktiviert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/daily_chain/id/{daily_chain_id}/reset": {
      "post": {
        "summary": "Tägliche Belohnung zurücksetzen",
        "description": "Setzt den Fortschritt aller Nutzer bei der täglichen Belohnung zurück. Gilt nur für tägliche Belohnungen vom Typ `rolling`.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-reset-daily-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "tags": [
          "daily-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Die tägliche Belohnung wurde zurückgesetzt.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-daily-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Tägliche Belohnungen des aktuellen Nutzers abrufen",
        "description": "Client-Endpunkt. Ruft die täglichen Belohnungen des aktuellen Nutzers ab.\n\n<div class=\"notice\"><strong>Hinweis</strong><br><br>Die Methode gibt eine paginierte Artikelliste zurück. Der Maximal- und Standardwert beträgt <strong>50 Artikel pro Antwort</strong>. Verwenden Sie die Parameter <code>limit</code> und <code>offset</code>, um weitere Seiten bzw. Artikel aus der Liste abzurufen. Wenn Sie beispielsweise die Methode mit den Parameterwerten <code>limit = 25</code> und <code>offset = 100</code> aufrufen, sind in der Antwort 25 Artikel aufgeführt, beginnend mit dem 101. Artikel in der Gesamtliste.</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-daily-chains-list"
          },
          "401": {
            "$ref": "#/components/responses/401-client-auth-error"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}": {
      "get": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "get-user-daily-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Tägliche Belohnung des aktuellen Nutzers anhand der Belohnungs-ID abrufen",
        "description": "Client-Endpunkt. Ruft die tägliche Belohnung des aktuellen Nutzers anhand der Belohnungs-ID ab.<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Die tägliche Belohnung des Nutzers wurde erfolgreich abgerufen.",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-daily-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-daily-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/daily_chain/{daily_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "daily-chain-client"
        ],
        "operationId": "claim-user-daily-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Täglichen Belohnungsschritt beanspruchen",
        "description": "Client-Endpunkt. Beansprucht die Schrittbelohnung aus einer täglichen Belohnung für den aktuellen Nutzer. Alle Schritte können nur in fortlaufender Reihenfolge beansprucht werden. Die Belohnung für einen verpassten Schritt kann nicht gegen virtuelle oder reale Währung oder durch das Ansehen einer Werbeanzeige erlangt werden. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/daily_chain_step_number-path-param"
          }
        ],
        "responses": {
          "204": {
            "description": "Dem aktuellen Nutzer wurde die Schrittbelohnung einer täglichen Belohnung erfolgreich gewährt."
          },
          "401": {
            "$ref": "#/components/responses/401-client-auth-error"
          },
          "404": {
            "$ref": "#/components/responses/404-daily-chain-step-not-found"
          },
          "422": {
            "description": "Schritt kann nicht beansprucht werden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/daily-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-daily-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-offer-chains-list",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Angebotsketten des aktuellen Nutzers abrufen",
        "description": "Ruft die aktuellen Angebotsketten des Nutzers ab.\n\n<div class=\"notice\"><strong>Hinweis</strong><br><br>In allen Projekten ist die Anzahl der Artikel, die in einer einzigen Antwort zurückgegeben werden können, begrenzt. Der Standard- und Maximalwert beträgt <strong>30 Artikel pro Antwort</strong>. Verwenden Sie die Abfrageparameter <code>limit</code> und <code>offset</code> für die Paginierung, um weitere Daten abzurufen.</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-client-get-offer-chains-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}": {
      "get": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "get-user-offer-chain-by-id",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Angebotskette des aktuellen Nutzers anhand der ID abrufen",
        "description": "Ruft die Angebotskette des aktuellen Nutzers anhand der Angebotsketten-ID ab. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Die Angebotskette des Nutzers wurde erfolgreich abgerufen.",
            "content": {
              "application/json": {
                "examples": {
                  "response": {
                    "$ref": "#/components/examples/200-client-offer-chain"
                  }
                },
                "schema": {
                  "$ref": "#/components/schemas/client-offer-chain-model"
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/claim": {
      "post": {
        "tags": [
          "offer-chain-client"
        ],
        "operationId": "claim-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Kostenlosen Angebotskettenschritt sichern",
        "description": "Schließt den aktuellen Fortschritt des Nutzers in der Angebotskette ab und gewährt die zugehörige Belohnung.\n\n<div class=\"notice\">\n  <strong>Hinweis</strong><br><br>\n    Verwenden Sie diesen Aufruf nur bei kostenlosen Schritten in der Angebotskette.\n    Bei Schritten, die eine Zahlung in echter Währung erfordern, müssen Sie stattdessen den Aufruf <a href=\"/de/api/shop-builder/operation/order-user-offer-chain-step-reward\">Bestellung für kostenpflichtigen Angebotskettenschritt anlegen</a> verwenden.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_step_number-path-param"
          }
        ],
        "responses": {
          "200": {
            "description": "Der kostenlose Schritt wurde erfolgreich in Anspruch genommen und die Belohnung gewährt.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order_id": {
                      "type": "integer",
                      "description": "Bestell-ID."
                    }
                  }
                },
                "examples": {
                  "response": {
                    "value": {
                      "order_id": 641
                    }
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "description": "Der Schritt kann nicht in Anspruch genommen werden. Stellen Sie sicher, dass alle vorherigen Schritte abgeschlossen sind und der Schritt als kostenlos gekennzeichnet ist.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/user/offer_chain/{offer_chain_id}/step/number/{step_number}/order": {
      "post": {
        "tags": [
          "offer-chain-client",
          "payment-client-side"
        ],
        "operationId": "order-user-offer-chain-step-reward",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "summary": "Bestellung für kostenpflichtigen Angebotskettenschritt anlegen",
        "description": "Legt eine Bestellung für den Artikel an, der mit dem angegebenen kostenpflichtigen Angebotskettenschritt verknüpft ist. Der angelegten Bestellung wird der Status `new` zugewiesen.\n\nNutzen Sie den folgenden Link, um das Zahlungsportal in einem neuen Fenster aufzurufen: `https://secure.xsolla.com/paystation4/?token={token}`, wobei `{token}` der erhaltene Token ist.\n\nFür Testzwecke steht Ihnen die folgende URL zur Verfügung: `https://sandbox-secure.xsolla.com/paystation4/?token={token}`.\n\n<div class=\"notice\">\n  <strong>Hinweis</strong> <br><br>\n    Diese Methode muss clientseitig verwendet werden. Anhand der IP-Adresse des Nutzers wird das Land ermittelt und davon wiederum die Währung und die verfügbaren Zahlungsmethoden abgeleitet. Wird diese Methode serverseitig verwendet, wird mögliccherweise eine falsche Währung ermittelt, was sich wiederum auf die Zahlungsmethoden in <a href=\"https://developers.xsolla.com/de/doc/pay-station/\">Pay Station</a> auswirkt.\n</div>\n\n<br>\n\n<div class=\"notice\">\n  <strong>Hinweis</strong><br><br>\nVerwenden Sie diesen Aufruf nur bei kostenpflichtigen Schritten in der Angebotskette.\n Bei kostenlosen Schritten müssen Sie stattdessen den Aufruf <a href=\"/de/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Kostenlosen Angebotskettenschritt sichern</a> verwenden.\n</div>\n\n<br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_step_number-path-param"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Cart-Payment_200-order-created"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-step-not-found"
          },
          "422": {
            "description": "Der Schritt kann nicht erworben werden.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/offer-chain-error-model"
                },
                "examples": {
                  "invalid-step": {
                    "$ref": "#/components/examples/422-offer-chain-claim-error-invalid-step"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain": {
      "get": {
        "summary": "Liste der Angebotsketten abrufen",
        "description": "Ruft eine Liste der Angebotsketten zur Verwaltung ab.\n\n<div class=\"notice\"><strong>Hinweis</strong><br><br>In allen Projekten ist die Anzahl der Artikel, die in einer einzigen Antwort zurückgegeben werden können, begrenzt. Der Standard- und Maximalwert beträgt <strong>10 Artikel pro Antwort</strong>. Verwenden Sie die Abfrageparameter <code>limit</code> und <code>offset</code> für die Paginierung, um weitere Daten abzurufen.</div>",
        "operationId": "admin-get-offer-chains",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/limit-query-param"
          },
          {
            "$ref": "#/components/parameters/offset-query-param"
          },
          {
            "$ref": "#/components/parameters/enabled-query-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-list-offer-chains"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          }
        }
      },
      "post": {
        "summary": "Angebotskette erstellen",
        "description": "Erstellt eine Angebotskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-create-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-offer-chain"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/201-admin-create-offer-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "422": {
            "$ref": "#/components/responses/422-create-error-list"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}": {
      "get": {
        "summary": "Angebotskette abrufen",
        "description": "Ruft eine bestimmte Angebotskette zur Verwaltung ab.",
        "operationId": "admin-get-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "security": [
          {
            "basicAuth": []
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/200-admin-get-offer-chain"
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      },
      "put": {
        "summary": "Angebotskette aktualisieren",
        "description": "Aktualisiert eine bestimmte Angebotskette.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-update-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-offer-chain"
        },
        "responses": {
          "204": {
            "description": "Angebotskette wurde erfolgreich aktualisiert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          },
          "422": {
            "$ref": "#/components/responses/422-update-error-list"
          }
        }
      },
      "delete": {
        "summary": "Angebotskette löschen",
        "description": "Löscht eine bestimmte Angebotskette.\n\nNach dem Löschen:<ul><li> verbleiben alle bereits von den Nutzern erhaltenen Belohnungen in deren Besitz.</li><li>sind unvollendete Schritte nicht mehr verfügbar und zugehörige Belohnungen können nicht mehr erhalten werden.</li></ul>\n\nIm Gegensatz zur Deaktivierung der Angebotskette über den Aufruf <a href=\"/de/api/shop-builder/operation/admin-toggle-offer-chain\"> Angebotskette aktivieren/deaktivieren</a>, ist die Löschung ist unumkehrbar und der Nutzerfortschritt wird nicht gespeichert.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-delete-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Angebotskette wurde erfolgreich gelöscht.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/offer_chain/id/{offer_chain_id}/toggle": {
      "put": {
        "summary": "Angebotskette aktivieren/deaktivieren",
        "description": "Aktiviert oder deaktiviert eine Angebotskette.\n\nWenn die Angebotskette deaktiviert ist, verlieren Nutzer vorübergehend den Zugriff darauf, ihr Fortschritt bleibt jedoch erhalten.\n\nNachdem die Angebotskette erneut aktiviert wurde, können Nutzer an der Stelle fortfahren, an der sie aufgehört haben.",
        "security": [
          {
            "basicAuth": []
          }
        ],
        "operationId": "admin-toggle-offer-chain",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "$ref": "#/components/parameters/offer_chain_id-path-param"
          }
        ],
        "tags": [
          "offer-chain-admin"
        ],
        "responses": {
          "204": {
            "description": "Die Angebotskette wurde deaktiviert/aktiviert.",
            "content": {}
          },
          "401": {
            "$ref": "#/components/responses/401-invalid-basic-auth"
          },
          "404": {
            "$ref": "#/components/responses/404-offer-chain-not-found"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell": {
      "get": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "get-upsell-configurations-for-project-admin",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "200": {
            "description": "Die Liste der Konfigurationsdetails und Artikel, die im Projekt als Upselling-Angebot verwendet werden.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "is_enabled": {
                        "type": "boolean",
                        "example": true,
                        "description": "Whether upsell is enabled for the project."
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "fixed_list",
                          "most_sellable",
                          "only_promotions"
                        ],
                        "example": "fixed_list",
                        "description": "The type of upsell."
                      },
                      "items": {
                        "type": "array",
                        "example": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          }
                        ],
                        "description": "The list of items SKU that are a part of the upsell in the project.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "item_id": {
                              "$ref": "#/components/schemas/item_id"
                            },
                            "sku": {
                              "$ref": "#/components/schemas/sku"
                            },
                            "type": {
                              "$ref": "#/components/schemas/item_type"
                            },
                            "name": {
                              "$ref": "#/components/schemas/name-localization-object"
                            },
                            "bundle_type": {
                              "$ref": "#/components/schemas/bundle_type"
                            },
                            "unit_type": {
                              "$ref": "#/components/schemas/unit_type"
                            },
                            "unit_items": {
                              "type": "array",
                              "description": "Game keys for different DRMs.",
                              "items": {
                                "type": "object",
                                "description": "Game key item. It represents game on a certain platform (steam, gog, etc.).",
                                "properties": {
                                  "item_id": {
                                    "$ref": "#/components/schemas/item_id"
                                  },
                                  "sku": {
                                    "$ref": "#/components/schemas/sku"
                                  },
                                  "type": {
                                    "$ref": "#/components/schemas/item_type"
                                  },
                                  "name": {
                                    "$ref": "#/components/schemas/name-localization-object"
                                  },
                                  "drm_name": {
                                    "$ref": "#/components/schemas/drm_name"
                                  },
                                  "drm_sku": {
                                    "$ref": "#/components/schemas/drm_sku"
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "upsell": {
                    "summary": "Project has upsell",
                    "value": [
                      {
                        "is_enabled": true,
                        "type": "fixed_list",
                        "items": [
                          {
                            "item_id": 1,
                            "sku": "com.xsolla.booster_mega_1",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "virtual_good"
                          },
                          {
                            "item_id": 2,
                            "sku": "com.xsolla.booster_mega_2",
                            "name": {
                              "en": "Item's name",
                              "de": "Name des Artikels"
                            },
                            "type": "bundle",
                            "bundle_type": "standard"
                          },
                          {
                            "item_id": 3,
                            "sku": "com.xsolla.mega_game_1",
                            "name": {
                              "en": "Mega game"
                            },
                            "type": "unit",
                            "unit_type": "game",
                            "unit_items": [
                              {
                                "item_id": 4,
                                "sku": "com.xsolla.mega_game_steam_1",
                                "name": {
                                  "en": "Mega game steam"
                                },
                                "drm_name": "Steam",
                                "drm_sku": "steam_key_1"
                              }
                            ]
                          }
                        ]
                      }
                    ]
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Informationen zum Upselling im Projekt abrufen",
        "description": "Ruft die Informationen zum Upselling im Projekt ab: ob es aktiviert ist, die Art des Upsellings und die SKU-Liste der Artikel, die Teil dieses Upsellings sind."
      },
      "post": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "post-upsell",
        "summary": "Upselling erstellen",
        "description": "Erstellt einen Upselling-Artikel für ein Projekt. <br>\n\n<div class=\"notice\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/create-upsell"
        },
        "responses": {
          "202": {
            "description": "Für das Projekt wurde ein Upselling-Angebot erstellt."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/Upsell-404-item-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Upsell-422-invalid-request"
          }
        }
      },
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell",
        "summary": "Upselling aktualisieren",
        "description": "Aktualisiert einen Upselling-Artikel für ein Projekt. <br>\n\n<div class=\"notice\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>",
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/update-upsell"
        },
        "responses": {
          "202": {
            "description": "Upselling-Angebot wurde für das Projekt aktualisiert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          },
          "404": {
            "$ref": "#/components/responses/Upsell-404-item-not-found"
          },
          "422": {
            "$ref": "#/components/responses/Upsell-422-invalid-request"
          }
        }
      }
    },
    "/v2/project/{project_id}/admin/items/upsell/{toggle}": {
      "put": {
        "tags": [
          "upsell-admin"
        ],
        "operationId": "put-upsell-toggle-active-inactive",
        "x-badges": [
          {
            "name": "Server-side",
            "color": "#95ff80"
          },
          {
            "name": "Administrator",
            "color": "#d7dee0"
          }
        ],
        "responses": {
          "202": {
            "description": "Ein Upselling-Angebot in einem Projekt wurde aktiviert oder deaktiviert."
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          },
          {
            "name": "toggle",
            "in": "path",
            "required": true,
            "description": "Aktivierungsstatus.",
            "schema": {
              "type": "string",
              "example": "activate"
            }
          }
        ],
        "summary": "Upselling-Artikel des Projekts aktivieren/deaktivieren",
        "description": "Ändert den Status von Upselling-Artikeln in einem Projekt auf \"aktiv\" oder \"inaktiv\". <br>\n\n<div class=\"notice\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>"
      }
    },
    "/v2/project/{project_id}/items/upsell": {
      "get": {
        "tags": [
          "upsell-client"
        ],
        "operationId": "get-upsell-for-project-client",
        "x-badges": [
          {
            "name": "Client-side",
            "color": "#80eaff"
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/Upsell-200-get-client-list"
          },
          "401": {
            "$ref": "#/components/responses/Promotions_401-invalid-client-auth"
          }
        },
        "security": [
          {
            "XsollaLoginUserJWT": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/project_id-path-param"
          }
        ],
        "summary": "Liste der Upselling-Artikel im Projekt abrufen",
        "description": "Ruft eine Liste der Upselling-Artikel in einem Projekt ab, sofern diese bereits eingerichtet wurden. <br>\n\n<div class=\"note\">\n  <strong>Hinweis</strong><br><br>\n    Dieser API-Aufruf verwendet einen Benutzer-JWT zur Autorisierung.<br><br>\n    Fügen Sie den Token im <code>Authorization</code>-Header im folgenden Format ein: <code>Bearer &lt;user_JWT&gt;</code>. Weitere Informationen zum Benutzer-JWT finden Sie im Block <strong>Sicherheit</strong> dieses Aufrufs.\n</div>"
      }
    }
  },
  "components": {
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "description": "Serverseitige Aufrufe verwenden das Authentifizierungsschema `basicAuth`. Alle Anfragen an die API müssen den Header `Authorization: Basic <your_authorization_basic_key>` enthalten, wobei `your_authorization_basic_key` das gemäß dem Base64-Standard kodierte `project_id:api_key`-Paar ist.\n\nSie können bei Bedarf `merchant_id` anstelle von `project_id` verwenden. Dies hat keine Auswirkungen auf die Funktionalität.\n\nWechseln Sie ins [Kundenportal](https://publisher.xsolla.com/), um die Werte der Parameter zu erhalten:\n\n* `merchant_id` wird angezeigt:\n  * unter **Firmeneinstellungen > Firma**.\n  * in der URL in der Adressleiste des Browsers auf einer beliebigen Seite im Kundenportal. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>`.\n* `api_key` wird im Kundenportal nur einmal angezeigt, nämlich dann, wenn er erstellt wird. Sie sind selbst dafür verantwortlich, den Schlüssel in Ihrem System zu speichern. Einen API-Schlüssel können Sie an den folgenden Orten erstellen:\n  * unter [Firmeneinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/settings/api_key)\n  * unter [Projekteinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/projects/0/edit/api_key)\n\n{% html name=\"div\" attrs={\"class\": \"notice\"} %}\n**Hinweis**\n\nFalls bei einem erforderlichen API-Aufruf der Pfadparameter `project_id` fehlt, müssen Sie einen API-Schlüssel verwenden, der für alle Projekte der Firma gültig ist.\n\n* `project_id` wird angezeigt:\n  * neben dem Projektnamen im Kundenportal.\n  * in der URL in der Adressleiste des Browsers, wenn Sie im Kundenportal ein Projekt geöffnet haben. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.\n\nWeitere Informationen zur Handhabung von API-Schlüsseln finden Sie in der [API-Referenz](https://developers.xsolla.com/de/api/getting-started/#api_keys_overview).",
        "scheme": "basic"
      },
      "XsollaLoginUserJWT": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT",
        "description": "Clientseitige Aufrufe verwenden das Authentifizierungsschema `XsollaLoginUserJWT`. In der Anfrage muss der JWT des Nutzers im `Authorization`-Header im folgenden Format enthalten sein: Bearer `<user_JWT>`. Der Token identifiziert den Nutzer und gewährt Zugriff auf personalisierte Daten. Weitere Informationen zur Erstellung eines Tokens finden Sie in der [Dokumentation zur Xsolla-Login-API](/de/api/login/authentication-schemes#getting-user-token).\n\nAlternativ können Sie einen [Token zum Öffnen des Zahlungsportals verwenden](/de/api/pay-station/token/create-token)."
      },
      "AuthForCart": {
        "type": "http",
        "scheme": "bearer",
        "description": "Das Authentifizierungsschema `AuthForCart` wird für Warenkorbkäufe verwendet und unterstützt zwei Modi:\n\n1. Authentifizierung mit einem Benutzer-JWT. Der Token wird im Authorization-Header im folgenden Format übermittelt: `Authorization: Bearer <user_JWT>`, wobei `<user_JWT>` der Benutzertoken ist. Der Token dient dazu, den Nutzer zu identifizieren und ihm Zugriff auf personalisierte Daten zu ermöglichen.\n\nAlternativ können Sie einen [Token zum Öffnen des Zahlungsportals verwenden](/de/api/pay-station/token/create-token).\n\n2. Vereinfachter Modus ohne `Authorization`-Header. Dieser Modus kommt nur bei nicht authentifizierten Nutzern zum Einsatz und kann nur für den [Verkauf von Spielschlüsseln](/de/doc/buy-button/how-to/set-up-authentication/#guides_buy_button_selling_items_not_authenticated_users) verwendet werden. Anstelle eines Tokens muss die Anfrage die folgenden Header enthalten:\n* `x-unauthorized-id` samt Anfrage-ID\n* `x-user` samt Base64-kodierter E-Mail-Adresse des Nutzers."
      },
      "basicMerchantAuth": {
        "type": "http",
        "description": "Serverseitige Aufrufe verwenden das Authentifizierungsschema `basicMerchantAuth`. Alle Anfragen an die API müssen den Header `Authorization: Basic <your_authorization_basic_key>` enthalten, wobei `your_authorization_basic_key` das gemäß dem Base64-Standard kodierte `merchant_id:api_key`-Paar ist.\n\nWechseln Sie ins [Kundenportal](https://publisher.xsolla.com/), um die Werte der Parameter zu erhalten:\n\n* `merchant_id` wird angezeigt:\n  * unter **Firmeneinstellungen > Firma**\n  * in der URL in der Adressleiste des Browsers auf einer beliebigen Seite im Kundenportal. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>`\n* `api_key` wird im Kundenportal nur einmal angezeigt, nämlich dann, wenn er erstellt wird. Sie sind selbst dafür verantwortlich, den Schlüssel in Ihrem System zu speichern. Einen neuen Schlüssel können Sie unter [Firmeneinstellungen > API-Schlüssel](https://publisher.xsolla.com/0/settings/api_key) erstellen.\n\nWeitere Informationen zur Handhabung von API-Schlüsseln finden Sie in der [API-Referenz](https://developers.xsolla.com/de/api/getting-started/#api_keys_overview).",
        "scheme": "basic"
      }
    },
    "parameters": {
      "project_id-path-param": {
        "name": "project_id",
        "in": "path",
        "required": true,
        "description": "Projekt-ID. Dieser Parameter wird im [Kundenportal](https://publisher.xsolla.com/0/projects/0/) neben dem Projektnamen angezeigt sowie in der Adressleiste des Browsers, wenn Sie im Kundenportal ein Projekt geöffnet haben. Die URL hat das folgende Format: `https://publisher.xsolla.com/<merchant_id>/projects/<project_id>`.",
        "schema": {
          "type": "integer",
          "example": 44056
        }
      },
      "limit-query-param": {
        "name": "limit",
        "in": "query",
        "example": 50,
        "required": false,
        "description": "Begrenzung der Elementanzahl auf der Seite.",
        "schema": {
          "type": "integer",
          "example": 50,
          "minimum": 1
        }
      },
      "offset-query-param": {
        "name": "offset",
        "in": "query",
        "required": false,
        "example": 0,
        "description": "Elementnummer, aus der die Liste generiert wird (die Zählung beginnt bei 0).",
        "schema": {
          "type": "integer",
          "example": 0,
          "minimum": 0
        }
      },
      "enabled-query-param": {
        "name": "enabled",
        "in": "query",
        "required": false,
        "description": "Elemente nach `is_enabled`-Flag filtern.",
        "schema": {
          "type": "integer"
        }
      },
      "promotion_id-path-param": {
        "name": "promotion_id",
        "in": "path",
        "required": true,
        "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts.",
        "schema": {
          "type": "integer",
          "example": 111425
        }
      },
      "code-path-param": {
        "name": "code",
        "in": "path",
        "required": true,
        "description": "Eindeutiger Code, bei dem die Groß-/Kleinschreibung beachtet wird. Enthält Buchstaben und Zahlen.",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "coupon_code-path-param": {
        "name": "coupon_code",
        "in": "path",
        "required": true,
        "description": "Eindeutiger Code, es wird zwischen Groß- und Kleinschreibung unterschieden. Enthält Buchstaben und Ziffern.",
        "schema": {
          "type": "string",
          "example": "WINTER2021",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "external_id-promotion-path-param": {
        "name": "external_id",
        "in": "path",
        "required": true,
        "description": "Externe ID der Werbeaktion. Eindeutige Werbeaktionskennung innerhalb des Projekts.",
        "schema": {
          "type": "integer",
          "example": "coupon_44056_1"
        }
      },
      "promocode_code-path-param": {
        "name": "promocode_code",
        "in": "path",
        "required": true,
        "description": "Eindeutiger Code, es wird zwischen Groß- und Kleinschreibung unterschieden. Enthält Buchstaben und Ziffern.",
        "schema": {
          "type": "string",
          "example": "SO6rew99j9",
          "minLength": 1,
          "maxLength": 128
        }
      },
      "user_external_id-query-param": {
        "name": "user_external_id",
        "in": "query",
        "required": true,
        "description": "Externe Benutzer-ID",
        "schema": {
          "type": "string",
          "example": "d342dad2-9d59-11e9-a384-42010aa8003f"
        }
      },
      "codes-query-param": {
        "name": "codes[]",
        "in": "query",
        "description": "Eindeutige Codes, bei denen zwischen Groß-/Kleinschreibung unterschieden wird. Enthält nur Buchstaben und Ziffern.",
        "schema": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "is_enabled-query-param": {
        "name": "is_enabled",
        "in": "query",
        "required": false,
        "description": "Elemente nach `is_enabled`-Flag filtern.",
        "schema": {
          "type": "integer"
        }
      },
      "personalized-catalog-rule_id-path-param": {
        "name": "rule_id",
        "in": "path",
        "required": true,
        "description": "Regel-ID.",
        "schema": {
          "type": "number",
          "example": 1
        }
      },
      "item_sku-path-param": {
        "name": "item_sku",
        "in": "path",
        "required": true,
        "description": "Artikel-SKU.",
        "schema": {
          "type": "string",
          "example": "booster_mega_1"
        }
      },
      "value_point_sku-path-param": {
        "name": "value_point_sku",
        "in": "path",
        "required": true,
        "description": "Wertepunkt-SKU.",
        "schema": {
          "type": "string",
          "example": "value_point_3"
        }
      },
      "reward_chain_id-path-param": {
        "name": "reward_chain_id",
        "in": "path",
        "required": true,
        "description": "Belohnungsketten-ID.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "reward_chain_step_id-path-param": {
        "name": "step_id",
        "in": "path",
        "required": true,
        "description": "ID des Belohnungskettenschritts.",
        "schema": {
          "type": "integer",
          "example": 120
        }
      },
      "is_expired-daily-chain-query-param": {
        "name": "is_expired",
        "in": "query",
        "required": false,
        "description": "Nur nach abgelaufenen täglichen Belohnungen filtern.",
        "schema": {
          "type": "integer"
        }
      },
      "type-daily-chain-query-param": {
        "name": "type",
        "in": "query",
        "required": false,
        "description": "Filtert nach täglichen Belohnungen, sodass nur der angegebene Typ zurückgegeben wird.",
        "schema": {
          "type": "string",
          "enum": [
            "calendar_hard",
            "rolling_skippable",
            "rolling_unskippable"
          ]
        }
      },
      "daily_chain_id-path-param": {
        "name": "daily_chain_id",
        "in": "path",
        "required": true,
        "description": "ID der täglichen Belohnung.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "daily_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "Belohnungsschrittzahl.",
        "schema": {
          "type": "integer",
          "example": 1
        }
      },
      "offer_chain_id-path-param": {
        "name": "offer_chain_id",
        "in": "path",
        "required": true,
        "description": "Angebotsketten-ID.",
        "schema": {
          "type": "integer",
          "example": 101
        }
      },
      "offer_chain_step_number-path-param": {
        "name": "step_number",
        "in": "path",
        "required": true,
        "description": "Nummer des Angebotskettenschritts.",
        "schema": {
          "type": "integer",
          "example": 1
        }
      }
    },
    "schemas": {
      "Promotions_promotion_id": {
        "type": "integer",
        "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts.",
        "example": 1
      },
      "promotion_periods": {
        "type": "array",
        "nullable": false,
        "description": "Gültigkeitszeitraum der Werbeaktion. Wenn mehrere Zeiträume angegeben sind, sind sowohl `date_from` als auch `date_until` erforderlich.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Startdatum für die angegebene Werbeaktion."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Enddatum für die angegebene Werbeaktion. Wenn `null` festgelegt ist, läuft die Werbeaktion unbefristet. Kann nur `null` sein, wenn ein einzelner Gültigkeitszeitraum angegeben ist."
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "Promotions_coupon_name": {
        "type": "object",
        "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        },
        "default": {
          "en-US": "Coupon title",
          "de-DE": "Gutscheintitel"
        }
      },
      "unit_items": {
        "type": "array",
        "description": "Ein Array plattformspezifischer Spielschlüssel. Wird nur beim Artikeltyp `unit` (`bonus.item.type = 'unit'`) genutzt. Wenn das Spielschlüsselpaket plattformspezifische Schlüssel enthält, kann der Nutzer eine davon als Bonus auswählen.",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "cool_game_steam",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "description": "Eindeutige plattformspezifische Spielschlüsselpaket-ID. Zulässige Zeichen: a–z, A–Z, 0–9, Punkt (`.`), Bindestrich (`-`), Unterstrich (`_`). Setzt sich aus den beiden Werten `bonus.item.​sku` und `bonus.item.unit_items.drm_sku` zusammen. Wenn beispielsweise`bonus.item.​sku = 'cool_game'` und `bonus.item.unit_items.drm_sku = 'steam'` festgelegt sind, lautet der Wert `cool_game_steam`."
            },
            "is_free": {
              "type": "boolean"
            },
            "type": {
              "type": "string",
              "enum": [
                "game_key"
              ],
              "description": "Gibt an, dass es sich bei dem Artikel um einen Spielschlüssel handelt."
            },
            "name": {
              "type": "string",
              "example": "Awesome Game",
              "description": "Spieltitel."
            },
            "drm_name": {
              "type": "string",
              "example": "Steam",
              "description": "DRM-Name."
            },
            "drm_sku": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_\\-.]*$",
              "example": "steam",
              "description": "Eindeutige DRM-ID, die als Suffix verwendet wird, um einen plattformspezifischen Spielschlüssel zu kennzeichnen. Zulässige Zeichen: a–z, A–Z, 0–9, Punkt (`.`), Bindestrich (`-`), Unterstrich (`_`)."
            }
          }
        }
      },
      "Promotions_200-coupon-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
              },
              "name": {
                "type": "object",
                "example": {
                  "en": "Game name"
                },
                "description": "Artikelname."
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "Artikeltyp. Mögliche Werte:<ul><li><code>virtual_good</code> – virtuelle Gegenstände</li><li><code>virtual_currency</code> – virtuelle Währung</li><li><code>bundle</code> – Bundle</li><li><code>unit</code> – Spielschlüsselpaket</li></ul>"
              },
              "bundle_type": {
                "type": "string",
                "description": "Bundle-Typ. Wird zurückgegeben, wenn der Artikeltyp ein Bundle ist.",
                "enum": [
                  "standard",
                  "virtual_currency_package"
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Game description",
                "description": "Item description."
              },
              "image_url": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "Bild-URL."
              },
              "content": {
                "type": "array"
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "Artikelmenge.",
            "default": 1
          }
        }
      },
      "Promotions_sku": {
        "type": "string",
        "example": "booster_mega_1",
        "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
      },
      "Promotions_name": {
        "type": "object",
        "description": "Name des Artikels. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        },
        "default": {
          "en-US": "Item title",
          "de-DE": "Artikeltitel"
        }
      },
      "Promotions_type": {
        "type": "string",
        "description": "Artikeltyp: `virtual_good`/`virtual_currency`/`bundle`/`physical_good`/`unit`."
      },
      "Promotions_redeem_code_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Anzahl der Einlösungen pro Code.",
        "example": 10,
        "default": 10
      },
      "Promotions_promotion_condition": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "Die Liste der Artikel, für die der Nutzer einen Bonus erhalten hat.",
          "type": "object",
          "properties": {
            "item": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/Promotions_sku"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_name"
                },
                "type": {
                  "$ref": "#/components/schemas/Promotions_type"
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "Game description",
                  "description": "Item description."
                },
                "image_url": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                  "description": "Bild-URL."
                },
                "external_id": {
                  "type": "string",
                  "description": "Externe ID der Werbeaktion. Eindeutige Werbeaktionskennung innerhalb des Projekts.",
                  "minLength": 1,
                  "maxLength": 255,
                  "pattern": "^[-_.\\d\\w]+$"
                },
                "is_enabled": {
                  "type": "boolean"
                },
                "redeem_total_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_user_limit": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-is_enabled": {
        "type": "boolean",
        "default": true
      },
      "Promotions_promotion_type": {
        "type": "string",
        "description": "Werbeaktionstyp.",
        "example": "item_discount"
      },
      "Promotions_promotion_discount_percent": {
        "type": [
          "string",
          "null"
        ],
        "description": "Prozentualer Rabatt.\nDer Preis des Warenkorbs wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet und dann auf zwei Dezimalstellen gerundet wird.",
        "default": "10.00",
        "example": "10.00"
      },
      "promotion_recurrent_schedule_response": {
        "type": [
          "object",
          "null"
        ],
        "description": "Aktualisierungszeitraum begrenzen.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Aktualisierungszeitraum für das Nutzerlimit.",
            "oneOf": [
              {
                "type": "object",
                "title": "interval_type = daily",
                "description": "Tägliche Aktualisierung der Nutzerlimits.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                    "enum": [
                      "daily"
                    ]
                  },
                  "time": {
                    "type": "string",
                    "description": "Zeitpunkt der Limitaktualisierung in der gewünschten Zeitzone (auf Stunden gerundet).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Datum und Uhrzeit der Limitaktualisierung (Unix-Zeitstempel).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Datum und Uhrzeit der ersten Limitaktualisierung (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Datum und Uhrzeit, zu der die Limits zurückgesetzt werden sollen (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = weekly",
                "description": "Wöchentliche Aktualisierung der Nutzerlimits.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                    "enum": [
                      "weekly"
                    ]
                  },
                  "day_of_week": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Wochentag, an dem die Limits aktualisiert werden. 1 seht für Montag, und 7 steht für Sonntag. `null` ist bei Limitaktualisierungszeiträumen vom Typ `weekly` unzulässig.",
                    "minimum": 1,
                    "maximum": 7
                  },
                  "time": {
                    "type": "string",
                    "description": "Zeitpunkt der Limitaktualisierung in der gewünschten Zeitzone (auf Stunden gerundet).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Datum und Uhrzeit der Limitaktualisierung (Unix-Zeitstempel).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Datum und Uhrzeit der ersten Limitaktualisierung (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Datum und Uhrzeit, zu der die Limits zurückgesetzt werden sollen (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              },
              {
                "type": "object",
                "title": "interval_type = monthly",
                "description": "Monatliche Aktualisierung der Nutzerlimits.",
                "properties": {
                  "interval_type": {
                    "type": "string",
                    "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                    "enum": [
                      "monthly"
                    ]
                  },
                  "day_of_month": {
                    "type": [
                      "integer",
                      "null"
                    ],
                    "description": "Tag im Monat, an dem die Limits aktualisiert werden. Hat der Monat weniger Tage als der ausgewählte Tag, erfolgt die Aktualisierung am letzten Tag des Monats. `null` ist bei Limitaktualisierungszeiträumen vom Typ `monthly` unzulässig.",
                    "minimum": 1,
                    "maximum": 31
                  },
                  "time": {
                    "type": "string",
                    "description": "Zeitpunkt der Limitaktualisierung in der gewünschten Zeitzone (auf Stunden gerundet).",
                    "format": "full-time",
                    "example": "11:00:00+03:00"
                  },
                  "reset_next_date": {
                    "type": "integer",
                    "description": "Datum und Uhrzeit der Limitaktualisierung (Unix-Zeitstempel).",
                    "example": 1677553200
                  },
                  "displayable_reset_start_date": {
                    "description": "Datum und Uhrzeit der ersten Limitaktualisierung (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  },
                  "displayable_reset_next_date": {
                    "description": "Datum und Uhrzeit, zu der die Limits zurückgesetzt werden sollen (ISO 8601).",
                    "type": "string",
                    "format": "date-time",
                    "example": "2023-02-28T11:00:00+08:00"
                  }
                }
              }
            ]
          }
        }
      },
      "Promotions_promotion_limits_response": {
        "type": "object",
        "description": "Werbebeschränkungen.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Werbebeschränkungen für einen separaten Nutzer.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Gesamtzahl der pro Nutzer erhältlichen Artikel. Sie können diese Nummer im Kundenportal festlegen oder Admin-Endpunkte für Store-Entitäten (Beschränkungsobjekt) verwenden.",
                "example": 5
              }
            }
          },
          "per_item": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Globale Artikelbeschränkung.",
            "example": 10
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "Promotions_200-get-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/Promotions_promotion_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "condition": {
            "$ref": "#/components/schemas/Promotions_promotion_condition"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "type": {
            "$ref": "#/components/schemas/Promotions_promotion_type"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          }
        }
      },
      "total_promotions_count": {
        "type": "integer",
        "description": "Gesamtzahl der Werbeaktionen."
      },
      "active_promotions_count": {
        "type": "integer",
        "description": "Anzahl der aktiven Werbeaktionen."
      },
      "inactive_promotions_count": {
        "type": "integer",
        "description": "Anzahl der deaktivierten Werbeaktionen."
      },
      "Promotions_coupon-external_id": {
        "type": "string",
        "example": "coupon_external_id",
        "default": "coupon_external_id",
        "description": "Eindeutige Werbeaktions-ID. Die `external_id` darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
      },
      "Promotions_coupon_bonus": {
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "Die Liste der Artikel, die einem Nutzer beim Kauf als Bonus gewährt werden.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "Artikel-SKU.",
              "default": "elven_shield"
            },
            "quantity": {
              "type": "number",
              "description": "Artikelmenge.",
              "default": 1
            }
          }
        }
      },
      "Promotions_coupon-redeem_total_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Begrenzt die Gesamtzahl der Gutscheine.",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon-redeem_user_limit": {
        "type": [
          "integer",
          "null"
        ],
        "description": "Begrenzt, wie oft ein einzelner Nutzer Gutscheine einlösen darf.",
        "example": 10,
        "default": 10
      },
      "Promotions_coupon_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "Limits für jeden eindeutigen Gutscheincode.",
        "properties": {
          "available": {
            "type": "integer",
            "description": "Wie oft ein Gutschein noch eingelöst werden kann.",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "Wie oft ein Gutschein reserviert wurde.",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "Wie oft ein Gutschein eingelöst wurde.",
            "example": 5
          }
        }
      },
      "Promotions_cart_item_discount": {
        "type": "string",
        "nullable": false,
        "description": "Prozentualer Rabatt.\n\nDer Preis des Artikels im Warenkorb wird um einen Wert verringert,\nder anhand dieses Prozentsatzes berechnet und dann\nauf zwei Dezimalstellen gerundet wird.",
        "default": "10.00",
        "example": "10.00"
      },
      "admin-promotions_200-get-redeemable-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "description": "Nur für Promocodes.",
            "properties": {
              "percent": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "Prozentualer Rabatt.\nDer Preis des Warenkorbs wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet und dann auf zwei Dezimalstellen gerundet wird.",
                "default": "10.00",
                "example": "10.00"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "type": [
              "array",
              "null"
            ],
            "description": "Liste der Artikel, die durch einen Promocode rabattiert sind. Nur für Promocodes.",
            "items": {
              "description": "Rabatt für bestimmte Artikel im Warenkorb.",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "Artikel-SKU.",
                  "default": "elven_shield"
                },
                "discount": {
                  "type": "object",
                  "nullable": false,
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_cart_item_discount"
                    }
                  },
                  "required": [
                    "percent"
                  ]
                }
              },
              "required": [
                "sku",
                "discount"
              ],
              "minItems": 1
            }
          }
        }
      },
      "Promotions_selected_unit_items": {
        "type": "object",
        "description": "Vom Nutzer als Bonus ausgewählter plattformspezifischer Spielschlüssel. Übermitteln Sie die [erhaltene](/de/api/liveops/promotions-coupons/get-coupon-rewards-by-code#promotions-coupons/get-coupon-rewards-by-code/t=response&c=200&path=bonus/item) `bonus.item.sku` als Schlüssel und die ausgewählte `bonus.item.unit_items.sku` als Schlüsselwert.",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "game_1": "game_1_steam",
          "game_2": "game_2_playstation"
        }
      },
      "Promotions_200-coupon-discount-reward": {
        "type": [
          "object",
          "null"
        ],
        "description": "Prozentualer Rabatt.\nDer Preis des Warenkorbs wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet und dann auf zwei Dezimalstellen gerundet wird.",
        "properties": {
          "percent": {
            "type": "string",
            "example": "10.00"
          }
        }
      },
      "Promotions_422_limit_error": {
        "description": "Das Einlöselimit ist erreicht.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9804
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9804]: You have reached the coupon redemption limit."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "Promotions_422_reglock_error": {
        "description": "Gutschein ist in der Region des Nutzers nicht verfügbar.",
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 9808
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-9808]: Coupon is not available in your region."
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        },
        "example": {
          "statusCode": 422,
          "errorCode": 9804,
          "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
        }
      },
      "user-attribute_conditions_properties_attribute": {
        "type": "string",
        "description": "Benutzerattributcode.",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$"
      },
      "user-attribute_conditions_properties_type-string": {
        "type": "string",
        "enum": [
          "string"
        ],
        "description": "Benutzerattributtyp."
      },
      "user-attribute_conditions_properties_operator_string": {
        "type": "string",
        "enum": [
          "eq",
          "ne"
        ],
        "description": "Art der durchgeführten Operation nach Bedingung. Für den Attributtyp <code>string</code>.\n\nMögliche Werte:\n- `eq` – ist gleich\n- `ne` – ist ungleich"
      },
      "user-attribute_conditions_properties_value": {
        "type": "string",
        "description": "Bedingungswert, mit dem der Benutzerattributwert verglichen wird. Der Typ hängt vom Attributtyp ab.",
        "maxLength": 255
      },
      "user-attribute_conditions_properties_can_be_missing": {
        "type": "boolean",
        "description": "Gibt an, dass die Bedingung erfüllt ist, auch wenn das Attribut in den Benutzerattributen fehlt. Übermitteln Sie `true`, um den Artikel den Nutzern anzuzeigen, die dieses Attribut nicht haben. Nutzer, die das Attribut haben, dessen Wert jedoch nicht mit dem in der Bedingung angegebenen Wert übereinstimmt, sehen den Artikel nicht. `false` – Nutzer, die das Attribut haben, dessen Wert jedoch nicht mit dem in der Bedingung angegebenen Wert übereinstimmt oder bei denen das Attribut fehlt, sehen den Artikel nicht."
      },
      "user-attribute_condition_string_model-get": {
        "type": "object",
        "title": "type = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-number": {
        "type": "string",
        "enum": [
          "number"
        ],
        "description": "Benutzerattributtyp."
      },
      "user-attribute_conditions_properties_operator_number": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "gt",
          "ge",
          "lt",
          "le"
        ],
        "description": "Art der durchgeführten Operation nach Bedingung. Für den Attributtyp <code>number</code>.\n\nMögliche Werte:\n- `eq` – ist gleich\n- `ne` – ist nicht gleich\n- `gt` – ist größer\n- `ge` – ist größer oder gleich\n- `lt` – ist kleiner\n- `le` – ist kleiner oder gleich"
      },
      "user-attribute_condition_number_model-get": {
        "type": "object",
        "title": "type = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_properties_type-date": {
        "type": "string",
        "enum": [
          "date"
        ],
        "description": "Benutzerattributtyp."
      },
      "user-attribute_conditions_properties_operator_date": {
        "type": "string",
        "enum": [
          "eq",
          "ne",
          "lt",
          "gt",
          "le",
          "ge"
        ],
        "description": "Art der durchgeführten Operation nach Bedingung. Für den Attributtyp <code>date</code>.\n\nMögliche Werte:\n- `eq` – ist gleich\n- `ne` – ist nicht gleich\n- `lt` – früher\n- `gt` – später\n- `le` – früher oder gleich\n- `ge` –später oder gleich"
      },
      "user-attribute_condition_date_model-get": {
        "type": "object",
        "title": "type = date",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        }
      },
      "user-attribute_conditions_model-get": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-get"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-get"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit der Werbeaktion basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "admin-promotions_200-get-coupon-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          }
        }
      },
      "user-attribute_condition_string_model-post": {
        "type": "object",
        "title": "type = string",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-string"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_string"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_number_model-post": {
        "type": "object",
        "title": "type = number",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-number"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_number"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_condition_date_model-post": {
        "type": "object",
        "title": "type = date",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_attribute"
          },
          "type": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_type-date"
          },
          "operator": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_operator_date"
          },
          "value": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_value"
          },
          "can_be_missing": {
            "$ref": "#/components/schemas/user-attribute_conditions_properties_can_be_missing"
          }
        },
        "required": [
          "attribute",
          "operator",
          "value",
          "type"
        ]
      },
      "user-attribute_conditions_model-post": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "items": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/user-attribute_condition_string_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_number_model-post"
            },
            {
              "$ref": "#/components/schemas/user-attribute_condition_date_model-post"
            }
          ]
        }
      },
      "promotion_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit der Werbeaktion basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "Promotions_coupon_code": {
        "type": "string",
        "description": "Eindeutiger Code, es wird zwischen Groß- und Kleinschreibung unterschieden. Enthält Buchstaben und Ziffern.",
        "minLength": 1,
        "maxLength": 128,
        "example": "WINTER2021",
        "default": "WINTER2021",
        "pattern": "^[a-zA-Z0-9]+$"
      },
      "Promotions_coupon-generate-count": {
        "type": "integer",
        "minimum": 1,
        "maximum": 50000,
        "example": 10
      },
      "value-is_free": {
        "type": "boolean",
        "example": false,
        "default": false,
        "description": "Ob der Artikel kostenlos ist."
      },
      "Catalog_item_promotions": {
        "type": "array",
        "description": "Auf bestimmte Artikel im Warenkorb angewandte Werbeaktionen. Das array wird in den folgenden Fällen zurückgegeben:\n\n* Für einen bestimmten Artikel ist eine Rabattaktion konfiguriert.\n\n* Ein Promocode mit der Einstellung **Rabatt auf ausgewählte Artikel** ist angewandt.\n\nWerden keine Werbeaktionen auf Artikelebene angewandt, wird ein leeres Array zurückgegeben.",
        "items": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "date_start": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "date_end": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "discount": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "percent": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "value": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              }
            },
            "bonus": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "sku": {
                    "type": "string"
                  },
                  "quantity": {
                    "type": "integer"
                  },
                  "type": {
                    "type": "string",
                    "description": "Typ des Bonusartikels.",
                    "enum": [
                      "virtual_good",
                      "virtual_currency",
                      "bundle",
                      "physical_good",
                      "game_key",
                      "nft"
                    ]
                  },
                  "name": {
                    "type": "string",
                    "description": "Name des Bonusartikels. Nicht verfügbar für Bonusartikel vom Typ `physical_good`."
                  },
                  "image_url": {
                    "type": "string",
                    "description": "Bild-URL des Bonusartikels. Nicht verfügbar für Bonusartikel vom Typ `physical_good`."
                  },
                  "bundle_type": {
                    "type": "string",
                    "description": "Typ des im Bundle enthaltenen Bonusartikels. Nur verfügbar für Bonusartikel vom Typ `bundle`.",
                    "enum": [
                      "standard",
                      "virtual_currency_package"
                    ]
                  }
                }
              }
            },
            "limits": {
              "type": "object",
              "properties": {
                "per_user": {
                  "type": "object",
                  "properties": {
                    "available": {
                      "type": "integer"
                    },
                    "total": {
                      "type": "integer"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "Can_be_bought": {
        "type": "boolean",
        "example": true,
        "description": "Sofern `true`, kann der Nutzer einen Artikel kaufen."
      },
      "item_id": {
        "type": "integer",
        "example": 1,
        "description": "Interne eindeutige Artikel-ID."
      },
      "value-point-sku": {
        "type": "string",
        "description": "Eindeutige ID des Wertpunkts."
      },
      "value-point-amount": {
        "type": "integer",
        "description": "Anzahl der Wertpunkte."
      },
      "value-point-name": {
        "type": "string",
        "description": "Wertpunktname."
      },
      "Common_admin-image_url": {
        "type": "string",
        "example": "https://image.example.com",
        "description": "Bild-URL."
      },
      "is_clan": {
        "type": "boolean",
        "description": "Ob der Wertpunkt in Clan-Belohnungsketten verwendet wird.",
        "example": true
      },
      "client-item-value-point-reward": {
        "type": "array",
        "description": "Liste Wertpunktbelohnungen für den Artikel.",
        "items": {
          "type": "object",
          "properties": {
            "item_id": {
              "$ref": "#/components/schemas/item_id"
            },
            "sku": {
              "$ref": "#/components/schemas/value-point-sku"
            },
            "amount": {
              "$ref": "#/components/schemas/value-point-amount"
            },
            "name": {
              "$ref": "#/components/schemas/value-point-name"
            },
            "image_url": {
              "$ref": "#/components/schemas/Common_admin-image_url"
            },
            "is_clan": {
              "$ref": "#/components/schemas/is_clan"
            }
          }
        }
      },
      "catalog_recurrent_schedule_client_response": {
        "type": [
          "object",
          "null"
        ],
        "description": "Wiederkehrender Artikellimit-Aktualisierungszeitraums für einen Nutzer.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = daily",
            "description": "Tägliche Aktualisierung der Nutzerlimits.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                "enum": [
                  "daily"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Datum und Uhrzeit, zu dem die Limits zurückgesetzt werden (Unix-Zeitstempel).",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = weekly",
            "description": "Wöchentliche Aktualisierung der Nutzerlimits.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                "enum": [
                  "weekly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Datum und Uhrzeit, zu dem die Limits zurückgesetzt werden (Unix-Zeitstempel).",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = monthly",
            "description": "Monatliche Aktualisierung der Nutzerlimits.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                "enum": [
                  "monthly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Datum und Uhrzeit, zu dem die Limits zurückgesetzt werden (Unix-Zeitstempel).",
                "example": 1677553200
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = hourly",
            "description": "Die Nutzerlimits werden gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.",
            "properties": {
              "interval_type": {
                "type": "string",
                "description": "Typ des wiederkehrenden Aktualisierungszeitraums.",
                "enum": [
                  "hourly"
                ]
              },
              "reset_next_date": {
                "type": "integer",
                "description": "Datum und Uhrzeit, zu dem die Limits zurückgesetzt werden (Unix-Zeitstempel).",
                "example": 1677553200
              }
            }
          }
        ]
      },
      "limit_exceeded_visibility": {
        "type": "string",
        "example": "show",
        "enum": [
          "show",
          "hide"
        ],
        "description": "Steuert die Sichtbarkeit des Artikels im Katalog nach Erreichen des Kauflimits, und zwar bis das Limit das nächste Mal zurückgesetzt wird.\n\nGilt für Artikel, bei denen im Array `recurrent_schedule` Limits konfiguriert sind, die regelmäßig zurückgesetzt werden.\n\nWenn festgelegt ist, dass das Kauflimit nicht zurückgesetzt wird, wird der Artikel nach Erreichen des Kauflimits nicht mehr im Katalog angezeigt, unabhängig davon, welcher Wert für `limit_exceeded_visibility` festgelegt ist.\n\nMögliche Wert:\n- `show` – Der Artikel wird in API-Aufrufen zur Katalogabfrage zurückgegeben, auch wenn das Kauflimit bereits erreicht wurde.\nBei clientseitigen API-Aufrufen zur Katalogabfrage wird der Artikel nach Erreichen des Limits mit dem Flag `can_be_bought: false` zurückgegeben.\nDas Datum, an dem das Limit das nächste Mal zurückgesetzt wird, wird im Parameter `reset_next_date` zurückgegeben.\n- `hide` – nachdem das Kauflimit erreicht wurde, wird der Artikel bei API-Aufrufen zur Katalogabfrage nicht mehr zurückgegeben, bis das Limit zurückgesetzt wird.",
        "default": "show"
      },
      "Catalog_item_limits": {
        "description": "Artikelbeschränkungen.",
        "properties": {
          "per_user": {
            "type": [
              "object",
              "null"
            ],
            "description": "Artikelbeschränkungen für einen Nutzer.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Höchstzahl von Artikeln, die ein einzelner Nutzer kaufen kann.",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "Verbleibende Anzahl von Artikeln, die der aktuelle Nutzer kaufen kann.",
                "example": 3
              },
              "recurrent_schedule": {
                "$ref": "#/components/schemas/catalog_recurrent_schedule_client_response"
              },
              "limit_exceeded_visibility": {
                "$ref": "#/components/schemas/limit_exceeded_visibility"
              }
            }
          },
          "per_item": {
            "type": [
              "object",
              "null"
            ],
            "description": "Artikelbeschränkungen für einen Artikel.",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Höchstzahl von Artikeln, die alle Nutzer kaufen können.",
                "example": 5
              },
              "available": {
                "type": "integer",
                "description": "Verbleibende Anzahl von Artikeln, die alle Nutzer kaufen können.",
                "example": 3
              }
            }
          }
        },
        "type": [
          "object",
          "null"
        ]
      },
      "item-periods": {
        "type": [
          "array",
          "null"
        ],
        "description": "Artikelangebotszeitraum.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Datum, an dem der angegebene Artikel zum Verkauf angeboten wird."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Datum, an dem der angegebene Artikel nicht mehr zum Verkauf angeboten wird. Möglich ist: `null`."
            }
          }
        }
      },
      "Promotions_200-promo-code-bonus-reward": {
        "type": "object",
        "properties": {
          "item": {
            "type": "object",
            "properties": {
              "sku": {
                "type": "string",
                "example": "game_01",
                "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
              },
              "name": {
                "type": "string",
                "example": "Game name",
                "description": "Artikelname."
              },
              "type": {
                "type": "string",
                "example": "unit",
                "description": "Artikeltyp. Mögliche Werte:<ul><li><code>virtual_good</code> – virtuelle Gegenstände</li><li><code>virtual_currency</code> – virtuelle Währung</li><li><code>bundle</code> – Bundle</li><li><code>unit</code> – Spielschlüsselpaket</li></ul>"
              },
              "description": {
                "type": "string",
                "example": "Game description",
                "description": "Item description."
              },
              "image_url": {
                "type": "string",
                "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "description": "Bild-URL."
              },
              "unit_items": {
                "$ref": "#/components/schemas/unit_items"
              }
            }
          },
          "quantity": {
            "type": "number",
            "description": "Artikelmenge.",
            "default": 1
          }
        }
      },
      "Promotions_discounted_items": {
        "type": [
          "array",
          "null"
        ],
        "description": "Liste der Artikel, die durch einen Promocode rabattiert werden.",
        "items": {
          "description": "Rabatt für bestimmte Artikel im Warenkorb.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "description": "Artikel-SKU.",
              "default": "elven_shield"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              },
              "required": [
                "percent"
              ]
            }
          },
          "required": [
            "sku",
            "discount"
          ],
          "minItems": 1
        }
      },
      "Promo_code_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Ist `true` eingestellt, sollte der Nutzer vor dem Einlösen eines Promocodes den Bonus auswählen."
          }
        }
      },
      "admin-attribute-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9-_]+$",
        "example": "attribute_1",
        "description": "Eindeutige Attribut-ID. Die `external_id` darf nur lateinische Klein- und Großbuchstaben, Ziffern, Bindestriche und Unterstriche enthalten."
      },
      "value-external_id": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[-_.\\d\\w]+$",
        "example": "attribute_value",
        "description": "Eindeutige Wert-ID für ein Attribut. Die `external_id` darf nur lateinische Kleinbuchstaben, alphanumerische Zeichen, Binde- und Unterstriche enthalten."
      },
      "client-attributes": {
        "type": "array",
        "description": "Liste der Attribute und ihrer Werte, die dem Artikel zugeordnet sind. Kann für die Katalogfilterung verwendet werden.",
        "example": {
          "value": {
            "external_id": "genre",
            "name": "Жанр",
            "values": [
              {
                "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
                "value": "Casual"
              },
              {
                "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
                "value": "Strategy"
              },
              {
                "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
                "value": "Mobile"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "string",
              "description": "Name des Attributs.",
              "example": "Genre"
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "Wert des Attributs.",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_promocode_total_limit_state": {
        "type": [
          "object",
          "null"
        ],
        "description": "Limits für jeden einzelnen Promocode.",
        "properties": {
          "available": {
            "type": "integer",
            "description": "Wie oft ein Promocode noch eingelöst werden kann.",
            "example": 3
          },
          "reserved": {
            "type": "integer",
            "description": "Die reservierte Nummer eines Promocodes.",
            "example": 3
          },
          "used": {
            "type": "integer",
            "description": "Wie oft ein Promocode eingelöst wurde.",
            "example": 5
          }
        }
      },
      "price_conditions_items": {
        "description": "Jedes Objekt beschreibt eine Regel, nach der der Preis festzulegen ist.",
        "type": "object",
        "properties": {
          "operator": {
            "type": "string",
            "description": "Vergleichsoperator zum Festlegen der Preisspanne für die Anwendung der Werbeaktion.\n\nMögliche Werte:\n- `ge` – ist größer oder gleich\n- `gt` – ist größer als\n- `le` – ist kleiner oder gleich\n- `lt` – ist kleiner als\n- `eq` – ist gleich\n- `ne` – ist nicht gleich",
            "enum": [
              "ge",
              "gt",
              "le",
              "lt",
              "eq",
              "ne"
            ]
          },
          "value": {
            "type": "string",
            "description": "Wert zur Bestimmung der Preisspanne für die Anwendung der Werbeaktion.",
            "pattern": "^\\d+(\\.\\d{1,4})?$"
          }
        },
        "required": [
          "operator",
          "value"
        ]
      },
      "price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "Objekt-Array mit Bedingungen für die Preisspanne, innerhalb der die Werbeaktion auf den gesamten Warenkorb angewandt wird.<br>\nDer Gesamtpreis aller Artikel im Warenkorb des Nutzers wird mit der in der Bedingung angegebenen Preisspanne verglichen. [Boni](/de/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) und [Rabatte](/de/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) werden auf alle Artikel im Warenkorb angewandt, wenn die Warenkorbsumme die festgelegte Bedingung erfüllt.<br>\nWenn Sie dieses Array übermitteln, müssen Sie den Wert des Arrays [discounted_items](/de/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) auf `null` setzen.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "item_price_conditions_promocode": {
        "type": [
          "array",
          "null"
        ],
        "description": "Objekt-Array mit Bedingungen für die Preisspanne, innerhalb der die Werbeaktion auf bestimmte Artikel im Warenkorb angewandt wird.<br>\nDer Preis der einzelnen Artikel im Warenkorb des Nutzers wird mit der in der Bedingung angegebenen Preisspanne verglichen. [Boni](/de/api/shop-builder/operation/create-promo-code/#!path=bonus&t=request) und [Rabatte](/de/api/shop-builder/operation/create-promo-code/#!path=discount&t=request) werden nur auf die Artikel im Warenkorb angewendet, deren Preis die Bedingung erfüllt.<br>\nWenn Sie dieses Array übermitteln, müssen Sie den Wert des Arrays [discounted_items](/de/api/shop-builder/operation/create-promo-code/#!path=discounted_items&t=request) auf `null` setzen.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "excluded_promotions": {
        "type": "array",
        "items": {
          "type": "integer"
        },
        "example": [
          12,
          789
        ],
        "description": "Liste der IDs der Werbeaktionen, die bei der Anwendung dieser Werbeaktion ausgeschlossen werden sollen.<br> Example: `[12, 789]`"
      },
      "Promotions_200-get-promocode-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "bonus": {
            "$ref": "#/components/schemas/Promotions_coupon_bonus"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "discount": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "percent": {
                "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
              }
            },
            "example": {
              "discount": {
                "percent": "10.99"
              }
            }
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_promocode_total_limit_state"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_promocode"
          },
          "item_price_conditions": {
            "$ref": "#/components/schemas/item_price_conditions_promocode"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          }
        }
      },
      "Promotions_is_enabled": {
        "type": "boolean",
        "example": true,
        "description": "Ob die Werbeaktion aktiviert ist oder nicht."
      },
      "price_conditions_discount": {
        "type": [
          "array",
          "null"
        ],
        "description": "Objekt-Array mit Bedingungen für die Preisspanne, innerhalb der die Werbeaktion angewandt wird.<br> Die Aktion wird nur auf Artikel angewandt, deren Preis alle in dem Array aufgelisteten Bedingungen erfüllt. Wenn Sie dieses Array übermitteln, müssen Sie den Wert des Objekts [items](/de/api/shop-builder/operation/create-item-promotion/#!path=items&t=request) auf `null` setzen.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_promotion_limits": {
        "type": "object",
        "description": "Werbebeschränkungen.",
        "properties": {
          "per_user": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Werbebeschränkungen für einen separaten Nutzer."
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/promotion_recurrent_schedule_response"
          }
        }
      },
      "price_conditions_bonus": {
        "type": [
          "array",
          "null"
        ],
        "description": "Objekt-Array mit Bedingungen für die Preisspanne, innerhalb der die Werbeaktion angewandt wird.<br> Die Aktion wird nur auf Artikel angewandt, deren Preis alle in dem Array aufgelisteten Bedingungen erfüllt. Wenn Sie dieses Array übermitteln, müssen Sie den Wert des Objekts [condition](/de/api/shop-builder/operation/create-bonus-promotion/#!path=condition&t=request) auf `null` setzen.",
        "items": {
          "$ref": "#/components/schemas/price_conditions_items"
        }
      },
      "Promotions_200-get-bonus-promotion-model": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "type": "object",
            "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
            "additionalProperties": {
              "type": "string"
            },
            "example": {
              "en-US": "Summer season bonus",
              "de-DE": "Sommersaison Bonus"
            }
          },
          "is_enabled": {
            "type": "boolean",
            "default": true
          },
          "condition": {
            "type": [
              "array",
              "null"
            ],
            "description": "Die zu kaufenden Artikel, damit eine Werbeaktion greifen kann. Ist dieser Parameter auf `null` gestellt, greift die Werbeaktion bei allen Käufen innerhalb eines Projekts.",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "Artikel-SKU.",
                  "default": "elven_sword"
                }
              }
            }
          },
          "bonus": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "description": "Die Liste der Artikel, die einem Nutzer beim Kauf als Bonus gewährt werden.",
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "description": "Artikel-SKU.",
                  "default": "elven_shield"
                },
                "quantity": {
                  "type": "number",
                  "description": "Artikelmenge.",
                  "default": 1
                }
              }
            }
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
          },
          "limits": {
            "$ref": "#/components/schemas/Promotions_promotion_limits_response"
          },
          "excluded_promotions": {
            "$ref": "#/components/schemas/excluded_promotions"
          },
          "price_conditions": {
            "$ref": "#/components/schemas/price_conditions_bonus"
          }
        }
      },
      "Coupon_rewards": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
            }
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Ist `true` eingestellt, sollte der Nutzer vor dem Einlösen eines Gutscheins einen Bonus auswählen."
          }
        }
      },
      "Promotions_discounted_items_verify": {
        "type": [
          "array",
          "null"
        ],
        "description": "Liste der Artikel, die durch einen Promocode rabattiert werden.",
        "items": {
          "description": "Rabatt für bestimmte Artikel.",
          "type": "object",
          "properties": {
            "sku": {
              "type": "string",
              "example": "game_01",
              "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
            },
            "name": {
              "type": "string",
              "example": "Game name",
              "description": "Artikelname."
            },
            "type": {
              "type": "string",
              "example": "unit",
              "description": "Artikeltyp. Mögliche Werte:<ul><li><code>virtual_good</code> – virtuelle Gegenstände</li><li><code>virtual_currency</code> – virtuelle Währung</li><li><code>bundle</code> – Bundle</li><li><code>unit</code> – Spielschlüsselpaket</li></ul>"
            },
            "description": {
              "type": "string",
              "example": "Game description",
              "description": "Item description."
            },
            "image_url": {
              "type": "string",
              "example": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
              "description": "Bild-URL."
            },
            "unit_items": {
              "$ref": "#/components/schemas/unit_items"
            },
            "discount": {
              "type": "object",
              "nullable": false,
              "properties": {
                "percent": {
                  "$ref": "#/components/schemas/Promotions_cart_item_discount"
                }
              }
            }
          }
        }
      },
      "Promo_code_rewards_verify": {
        "type": "object",
        "properties": {
          "bonus": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Promotions_200-promo-code-bonus-reward"
            }
          },
          "discount": {
            "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
          },
          "discounted_items": {
            "$ref": "#/components/schemas/Promotions_discounted_items_verify"
          },
          "is_selectable": {
            "type": "boolean",
            "description": "Ist `true` eingestellt, sollte der Nutzer vor dem Einlösen eines Promocodes den Bonus auswählen."
          }
        }
      },
      "sku": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255,
        "pattern": "^[a-zA-Z0-9_\\-–.]*$",
        "example": "booster_mega_1",
        "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
      },
      "Promotions_unique_catalog_offer_items": {
        "type": "array",
        "description": "Eine Liste der Artikel-SKU, die nach Inanspruchnahme des Katalogsonderangebots verfügbar sind.",
        "items": {
          "$ref": "#/components/schemas/sku"
        }
      },
      "Promotions_200-get-unique-catalog-offer-promotion-model": {
        "type": "object",
        "properties": {
          "external_id": {
            "$ref": "#/components/schemas/Promotions_coupon-external_id"
          },
          "promotion_periods": {
            "$ref": "#/components/schemas/promotion_periods"
          },
          "name": {
            "$ref": "#/components/schemas/Promotions_coupon_name"
          },
          "items": {
            "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/Promotions_coupon-is_enabled"
          },
          "redeem_total_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
          },
          "redeem_user_limit": {
            "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
          },
          "redeem_code_limit": {
            "$ref": "#/components/schemas/Promotions_redeem_code_limit"
          },
          "total_limit_state": {
            "$ref": "#/components/schemas/Promotions_coupon_total_limit_state"
          }
        }
      },
      "Promotions_coupon_date_start": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem Ihre Werbeaktion beginnt."
      },
      "Promotions_coupon_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "default": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem Ihre Werbeaktion endet. Möglich ist `null`. Wenn für `date_end` der Wert `null` festgelegt ist, läuft die Werbeaktion zeitlich unbegrenzt."
      },
      "User-limit-promo-code": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "Wie oft ein Nutzer einen Promocode maximal in Anspruch nehmen kann."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "Wie oft ein Nutzer einen Promocode noch in Anspruch nehmen kann."
              }
            }
          }
        }
      },
      "User-limit-coupon": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "Wie oft ein Nutzer einen Gutschein maximal in Anspruch nehmen kann."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "Wie oft ein Nutzer einen Gutschein noch in Anspruch nehmen kann."
              }
            }
          }
        }
      },
      "Code-limit-promo-code": {
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/Promotions_coupon_code"
          },
          "per_code": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "description": "Wie oft ein Promocode maximal eingelöst werden darf."
              },
              "available": {
                "type": "integer",
                "description": "Wie oft ein Promocode noch eingelöst werden kann."
              },
              "used": {
                "type": "integer",
                "description": "Wie oft ein Promocode eingelöst wurde."
              },
              "reserved": {
                "type": "integer",
                "description": "Wie oft ein Promocode reserviert ist."
              }
            }
          }
        }
      },
      "personalized-catalog_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Artikelverfügbarkeit im Katalog basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "user-attribute_personalized-catalog": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "Regel-ID."
          },
          "name": {
            "type": "string",
            "description": "Verständlicher Name einer Regel. Dient dazu, eine Regel im Kundenportal anzuzeigen."
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Wenn die Regel aktiviert ist."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Ob der Artikel nicht autorisierten Nutzern angezeigt wird. Ist `true` festgelgt, wird der Artikel dem nicht autorisierten Nutzer unabhängig von den Kataloganzeigeregeln angezeigt. Standardmäßig ist `false` festgelgt."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-get"
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Artikel, die dem Nutzer angezeigt werden, sofern seine Attributwerte die Bedingungen erfüllen.",
              "properties": {
                "item_id": {
                  "type": "number",
                  "description": "Artikel-ID."
                },
                "sku": {
                  "type": "string",
                  "description": "Artikel-SKU."
                },
                "name": {
                  "type": "string",
                  "description": "Artikelname."
                },
                "type": {
                  "type": "string",
                  "description": "Artikeltyp.",
                  "enum": [
                    "virtual_good",
                    "virtual_currency",
                    "bundle",
                    "physical_good",
                    "unit"
                  ]
                },
                "bundle_type": {
                  "type": "string",
                  "description": "Bundle-Typ. Wird zurückgegeben, wenn der Artikeltyp ein Bundle ist.",
                  "enum": [
                    "standard",
                    "virtual_currency_package"
                  ]
                }
              }
            }
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "personalized-catalog_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Artikelverfügbarkeit im Katalog basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "user-attribute_personalized-catalog-body-required": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Verständlicher Name einer Regel. Dient dazu, eine Regel im Kundenportal anzuzeigen.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Wenn die Regel aktiviert ist."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Ob der Artikel nicht autorisierten Nutzern angezeigt wird. Ist `true` festgelgt, wird der Artikel dem nicht autorisierten Nutzer unabhängig von den Kataloganzeigeregeln angezeigt. Standardmäßig ist `false` festgelgt."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "Artikel, die einem Nutzer angezeigt werden, sofern ihre Attributwerte die Bedingungen erfüllen.",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "Artikel-ID."
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "Artikel, die einem Nutzer angezeigt werden, sofern ihre Attributwerte die Bedingungen erfüllen.",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "Artikel-SKU."
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        },
        "required": [
          "name",
          "is_enabled",
          "attribute_conditions",
          "items"
        ]
      },
      "422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "number",
            "description": "Antwortstatuscode.",
            "example": 422
          },
          "errorCode": {
            "type": "number",
            "description": "Fehlercode.",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "description": "Verständliche Fehlermeldung.",
            "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
          },
          "transactionId": {
            "type": "string",
            "description": "Eindeutige ID der Anfrage.",
            "example": "da145238620011eb8e24fe6913ff226a"
          }
        }
      },
      "user-attribute_personalized-catalog_all": {
        "type": "object",
        "properties": {
          "rule_id": {
            "type": "number",
            "description": "Regel-ID."
          },
          "name": {
            "type": "string",
            "description": "Verständlicher Name einer Regel. Dient dazu, eine Regel im Kundenportal anzuzeigen."
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Wenn die Regel aktiviert ist."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Ob der Artikel nicht autorisierten Nutzern angezeigt wird. Ist `true` festgelgt, wird der Artikel dem nicht autorisierten Nutzer unabhängig von den Kataloganzeigeregeln angezeigt. Standardmäßig ist `false` festgelgt."
          }
        },
        "required": [
          "rule_id",
          "name",
          "is_enabled"
        ]
      },
      "user-attribute_personalized-catalog-body": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Verständlicher Name einer Regel. Dient dazu, eine Regel im Kundenportal anzuzeigen.",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^\\S"
          },
          "is_enabled": {
            "type": "boolean",
            "description": "Wenn die Regel aktiviert ist."
          },
          "is_satisfied_for_unauth": {
            "type": "boolean",
            "description": "Ob der Artikel nicht autorisierten Nutzern angezeigt wird. Ist `true` festgelgt, wird der Artikel dem nicht autorisierten Nutzer unabhängig von den Kataloganzeigeregeln angezeigt. Standardmäßig ist `false` festgelgt."
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/personalized-catalog_user-attribute_conditions_model-post"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "maxItems": 100,
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "description": "Artikel, die einem Nutzer angezeigt werden, sofern ihre Attributwerte die Bedingungen erfüllen.",
                  "properties": {
                    "item_id": {
                      "type": "number",
                      "description": "Artikel-ID."
                    }
                  },
                  "required": [
                    "item_id"
                  ]
                },
                {
                  "type": "object",
                  "description": "Artikel, die einem Nutzer angezeigt werden, sofern ihre Attributwerte die Bedingungen erfüllen.",
                  "properties": {
                    "sku": {
                      "type": "string",
                      "description": "Artikel-SKU."
                    }
                  },
                  "required": [
                    "sku"
                  ]
                }
              ]
            }
          }
        }
      },
      "User-limit_user-external-id": {
        "description": "Externe Benutzer-ID.",
        "type": "string",
        "minLength": 1,
        "pattern": "^\\S+$"
      },
      "User-limit_user": {
        "type": "object",
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        },
        "required": [
          "user_external_id"
        ]
      },
      "User-limit_user_flexible": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "user_external_id": {
            "$ref": "#/components/schemas/User-limit_user-external-id"
          }
        }
      },
      "User-limit-promotion": {
        "type": "object",
        "properties": {
          "per_user": {
            "type": "object",
            "properties": {
              "total": {
                "type": "integer",
                "example": 10,
                "description": "Wie oft ein Nutzer eine Werbeaktion maximal in Anspruch nehmen darf."
              },
              "available": {
                "type": "integer",
                "example": 9,
                "description": "Wie oft ein Nutzer eine Werbeaktion noch in Anspruch nehmen darf."
              }
            }
          }
        }
      },
      "User-limit_available_flexible": {
        "type": "integer",
        "minimum": 0,
        "description": "Wie viele Artikel der Nutzer noch erhalten kann bzw. wie oft der Nutzer Werbeaktionen innerhalb des geltenden Limits noch in Anspruch nehmen darf."
      },
      "User-limit_available": {
        "type": "integer",
        "minimum": 1,
        "description": "Wie viele Artikel der Nutzer noch erhalten kann bzw. wie oft der Nutzer Werbeaktionen innerhalb des geltenden Limits noch in Anspruch nehmen darf."
      },
      "two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Sprachencodes bestehend aus zwei Kleinbuchstaben.",
        "title": "zweistellig",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "description": "Englisch"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "description": "Arabisch"
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bulgarisch"
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinesisch (vereinfacht)"
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tschechisch"
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "description": "Deutsch"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "description": "Spanisch (Spanien)"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "description": "Französisch"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hebräisch"
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "description": "Italienisch"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "description": "Japanisch"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "description": "Koreanisch"
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "description": "Polnisch"
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "description": "Portugiesisch"
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "description": "Rumänisch"
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "description": "Russisch"
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "description": "Thai"
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "description": "Türkisch"
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinesisch (traditionell)"
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vietnamesisch"
          },
          "km": {
            "type": [
              "string",
              "null"
            ],
            "description": "Khmer"
          },
          "id": {
            "type": [
              "string",
              "null"
            ],
            "description": "Indonesisch"
          },
          "lo": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laotisch"
          },
          "my": {
            "type": [
              "string",
              "null"
            ],
            "description": "Birmanisch"
          },
          "ph": {
            "type": [
              "string",
              "null"
            ],
            "description": "Filipino"
          },
          "ne": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nepalesisch"
          }
        }
      },
      "five-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Fünfstellige Gebietsschemacodes.",
        "title": "fünfstellig",
        "properties": {
          "en-US": {
            "type": [
              "string",
              "null"
            ],
            "description": "Englisch"
          },
          "ar-AE": {
            "type": [
              "string",
              "null"
            ],
            "description": "Arabisch"
          },
          "bg-BG": {
            "type": [
              "string",
              "null"
            ],
            "description": "Bulgarisch"
          },
          "zh-CN": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinesisch (vereinfacht)"
          },
          "cs-CZ": {
            "type": [
              "string",
              "null"
            ],
            "description": "Tschechisch"
          },
          "de-DE": {
            "type": [
              "string",
              "null"
            ],
            "description": "Deutsch"
          },
          "es-ES": {
            "type": [
              "string",
              "null"
            ],
            "description": "Spanisch (Spanien)"
          },
          "fr-FR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Französisch"
          },
          "he-IL": {
            "type": [
              "string",
              "null"
            ],
            "description": "Hebräisch"
          },
          "it-IT": {
            "type": [
              "string",
              "null"
            ],
            "description": "Italienisch"
          },
          "ja-JP": {
            "type": [
              "string",
              "null"
            ],
            "description": "Japanisch"
          },
          "ko-KR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Koreanisch"
          },
          "pl-PL": {
            "type": [
              "string",
              "null"
            ],
            "description": "Polnisch"
          },
          "pt-BR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Portugiesisch (Brasilien)"
          },
          "ro-RO": {
            "type": [
              "string",
              "null"
            ],
            "description": "Rumänisch"
          },
          "ru-RU": {
            "type": [
              "string",
              "null"
            ],
            "description": "Russisch"
          },
          "th-TH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Thai"
          },
          "tr-TR": {
            "type": [
              "string",
              "null"
            ],
            "description": "Türkisch"
          },
          "zh-TW": {
            "type": [
              "string",
              "null"
            ],
            "description": "Chinesisch (traditionell)"
          },
          "vi-VN": {
            "type": [
              "string",
              "null"
            ],
            "description": "Vietnamesisch"
          },
          "km-KH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Khmer"
          },
          "id-ID": {
            "type": [
              "string",
              "null"
            ],
            "description": "Indonesisch"
          },
          "lo-LA": {
            "type": [
              "string",
              "null"
            ],
            "description": "Laotisch"
          },
          "my-MM": {
            "type": [
              "string",
              "null"
            ],
            "description": "Birmanisch"
          },
          "ph-PH": {
            "type": [
              "string",
              "null"
            ],
            "description": "Filipino"
          },
          "ne-NP": {
            "type": [
              "string",
              "null"
            ],
            "description": "Nepalesisch"
          }
        }
      },
      "name-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objekt mit Lokalisierungen für Artikelnamen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. `en`) oder fünfstelliger Gebietsschemacode (z. B. `en-US`). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Optionen angegeben sind (z. B. `en` und `en-US`), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objekt mit Lokalisierungen für Artikelbeschreibungen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. `en`) oder fünfstelliger Gebietsschemacode (z. B. `en-US`). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Optionen angegeben sind (z. B. `en` und `en-US`), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "long-description-localization-object": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objekt mit Lokalisierungen für lange Artikelbeschreibungen. Werte können in zwei Formaten angegeben werden: Sprachencode bestehend aus zwei Kleinbuchstaben (z. B. `en`) oder fünfstelliger Gebietsschemacode (z. B. `en-US`). Beide Formate werden als Eingabe akzeptiert, als Antwort werden jedoch stets zweistellige Sprachencodes in Kleinbuchstaben zurückgegeben. Wenn für dieselbe Sprache beide Varianten angegeben sind (z. B. `en` und `en-US`), wird der zuletzt angegebene Wert gespeichert. Die vollständige Liste der unterstützten Sprachen finden Sie in der [Dokumentation](/de/doc/shop-builder/references/supported-languages/).",
        "anyOf": [
          {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          {
            "$ref": "#/components/schemas/five-letter-locale"
          }
        ]
      },
      "Value-points-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "Zusätzliche Medieninhalte des Artikels wie Screenshots, Gameplay-Videos usw.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "Medieninhaltstyp: `image`/`video`."
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "Ressourcendatei."
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Artikeltyp."
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "Definiert die Anordnungsreihenfolge."
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "is_enabled": {
        "type": "boolean",
        "example": true
      },
      "media_list": {
        "type": "array",
        "example": [
          {
            "type": "image",
            "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
          }
        ],
        "description": "Zusätzliche Medieninhalte des Artikels wie Screenshots, Gameplay-Videos usw.",
        "items": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "image",
                "video"
              ],
              "example": "image",
              "description": "Medieninhaltstyp: `image`/`video`."
            },
            "url": {
              "type": "string",
              "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
              "description": "Ressourcendatei."
            }
          }
        }
      },
      "order": {
        "type": "integer",
        "example": 1,
        "description": "Definiert die Anordnungsreihenfolge."
      },
      "admin_value_points-create": {
        "properties": {
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "$ref": "#/components/schemas/media_list"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        },
        "type": "object",
        "required": [
          "sku",
          "name"
        ]
      },
      "422-rc-vp-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Value-point-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "pattern": "^[a-zA-Z0-9_\\-–.]*$",
            "example": "booster_mega_1",
            "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "media_list": {
            "type": "array",
            "example": [
              {
                "type": "image",
                "url": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"
              }
            ],
            "description": "Zusätzliche Medieninhalte des Artikels wie Screenshots, Gameplay-Videos usw.",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "image",
                    "video"
                  ],
                  "example": "image",
                  "description": "Medieninhaltstyp: `image`/`video`."
                },
                "url": {
                  "type": "string",
                  "example": "https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg",
                  "description": "Ressourcendatei."
                }
              }
            }
          },
          "type": {
            "type": "string",
            "description": "Artikeltyp."
          },
          "image_url": {
            "type": "string"
          },
          "is_enabled": {
            "type": "boolean"
          },
          "order": {
            "type": "integer",
            "example": 1,
            "description": "Definiert die Anordnungsreihenfolge."
          },
          "can_delete": {
            "type": "boolean",
            "description": "Ob ein Wertpunkt gelöscht werden kann. Wenn `false` festgelegt ist, können Sie den Wertpunkt nicht löschen, da er in einer oder mehreren Belohnungsketten verwendet wird. Um den Wertpunkt zu löschen, müssen Sie zunächst alle Belohnungsketten [löschen](https://developers.xsolla.com/de/api/shop-builder/operation/admin-delete-reward-chain/), in denen der Wertpunkt enthalten ist.\n\nWenn `true` festgelegt ist, wird der Wertpunkt in keiner Belohnungskette verwendet und kann [gelöscht](https://developers.xsolla.com/de/api/shop-builder/operation/admin-delete-value-point/) werden."
          },
          "is_clan": {
            "$ref": "#/components/schemas/is_clan"
          }
        }
      },
      "admin-item-value-point-reward": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "amount": {
            "type": "integer",
            "description": "Anzahl der Wertpunkte."
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/Common_admin-image_url"
          }
        }
      },
      "item-value-point-reward-set": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "Anzahl der Wertpunkte."
            }
          },
          "required": [
            "sku",
            "amount"
          ]
        }
      },
      "item-value-point-reward-set-for-patch": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "sku": {
              "$ref": "#/components/schemas/sku"
            },
            "amount": {
              "type": "integer",
              "description": "Anzahl der Wertpunkte.",
              "minimum": 0
            }
          },
          "required": [
            "sku",
            "amount"
          ],
          "maxItems": 100
        }
      },
      "image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "Bild-URL."
      },
      "date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem Ihre Belohnungskette beginnt."
      },
      "date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem Ihre Belohungsketten-Aktion endet. Darf `null` sein. Ist für `date_end` der Wert `null` festgelegt, ist die Belohnungskette zeitlich unbegrenzt."
      },
      "clan_type": {
        "type": [
          "string",
          "null"
        ],
        "description": "Clan-Typ.",
        "enum": [
          "clan",
          "guild",
          "faction",
          "community",
          "team",
          "squad",
          "alliance",
          "association",
          "coalition",
          "union",
          "group",
          "civilizations",
          "dynasty",
          "order",
          "league",
          "brotherhood",
          "kingdom",
          "organization",
          "house",
          "empire",
          "tribe",
          "cartel",
          null
        ]
      },
      "top_contributors": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "type": "string",
            "example": "Rocket",
            "description": "Benutzer-ID, die während des Autorisierungsvorgangs an Xsolla gesendet wird. Die Benutzer-ID wird als Nickname angezeigt und dient dazu, den Nutzer mit Ihrem Xsolla-Login-Projekt zu verknüpfen. Wenn Sie die Nutzer per [Benutzer-ID](https://developers.xsolla.com/de/solutions/web-shop/create-web-shop/set-up-authentication/?tabs=100-UserIDAuth&link=100-UserIDAuth) autorisieren, empfehlen wir, den <code>name</code> Parameter in [der Webhook-Antwort](https://developers.xsolla.com/de/webhooks/operation/user-validation-in-webshop/) zu übermitteln. Dieser Parameter enthält den Nutzernamen, der als Nickname verwendet wird."
          },
          "contributed_amount": {
            "type": "integer",
            "example": 100,
            "description": "Anzahl der vom Nutzer gesammelten Wertpunkte."
          }
        }
      },
      "value-point-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "Beschreibung des Wertpunktes."
      },
      "value-point-long-description": {
        "type": [
          "string",
          "null"
        ],
        "description": "Lange Beschreibung des Wertpunkts."
      },
      "interval_type_weekly": {
        "type": "string",
        "description": "Wie oft die Belohnungskette zurückgesetzt wird.",
        "enum": [
          "weekly"
        ]
      },
      "interval_type_monthly": {
        "type": "string",
        "description": "Wie oft die Belohnungskette zurückgesetzt wird.",
        "enum": [
          "monthly"
        ]
      },
      "interval_type_hourly_rc": {
        "type": "string",
        "description": "Wie oft die Belohnungskette zurückgesetzt wird.",
        "enum": [
          "hourly"
        ]
      },
      "reset_next_date": {
        "type": "integer",
        "description": "Berechnetes Datum samt Uhrzeit, an dem die Belohnungskette das nächste Mal zurückgesetzt wird <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">(Unix-Zeitstempel)</a>.<br><br> Beispiel: Die Belohnungskette wird monatlich zurückgesetzt, beginnend ab dem 1. März 2024 um 01:00 Uhr Kuala-Lumpur-Zeit (GMT+8). Das Datum samt Uhrzeit, an dem die Belohnungskette das nächste Mal zurückgesetzt wird, ist der 1. April 2024 um 01:00 Uhr Kuala-Lumpur-Zeit (GMT+8), was dem 31. März 2024 um 17:00 Uhr (GMT+0) bzw. „1711904400000“ im Unix-Zeitstempelformat entspricht.<br><br> Beispiel: „1711904400000“"
      },
      "recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "Wiederkehrender Reset-Zeitraum der Belohnungskette.",
        "properties": {
          "interval_type": {
            "oneOf": [
              {
                "title": "interval_type = weekly",
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              {
                "title": "interval_type = monthly",
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              {
                "title": "interval_type = hourly",
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              }
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/reset_next_date"
          }
        }
      },
      "popup_header-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objekt mit lokalisierten Überschriften für das Tooltipp-Pop-up-Fenster einer Clan-Belohnungskette. [Sprachencode](https://developers.xsolla.com/de/doc/pay-station/features/localization/) bestehend aus zwei Kleinbuchstaben.",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "example": "How to unlock rewards"
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "example": "Wie man Belohnungen freischaltet"
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "example": "Cómo desbloquear recompensas"
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "example": "Comment débloquer des récompenses"
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "example": "Come sbloccare ricompense"
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "報酬をアンロックする方法"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_instruction-two-letter-locale": {
        "type": [
          "object",
          "null"
        ],
        "description": "Objekt mit lokalisierten Anweisungen für das Tooltipp-Pop-up-Fenster einer Clan-Belohnungskette. [Sprachencode](https://developers.xsolla.com/de/doc/pay-station/features/localization/) bestehend aus zwei Kleinbuchstaben.",
        "properties": {
          "en": {
            "type": [
              "string",
              "null"
            ],
            "example": "You must be a clan member to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
          },
          "ar": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "bg": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cn": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "cs": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "de": {
            "type": [
              "string",
              "null"
            ],
            "example": "Du musst ein Clanmitglied sein, um Clananreize zu erhalten. Du trittst einem Clan bei, wenn ein Clanmitglied dich einlädt, und du die Einladung annimmst. Du kannst auch deinen eigenen Clan erstellen."
          },
          "es": {
            "type": [
              "string",
              "null"
            ],
            "example": "Debes ser miembro de un clan para obtener las recompensas del clan. Te unes a un clan cuando un miembro del clan te invita al clan y aceptas la invitación. También puedes crear tu propio clan."
          },
          "fr": {
            "type": [
              "string",
              "null"
            ],
            "example": "Vous devez être membre d'un clan pour obtenir les récompenses du clan. Vous rejoignez un clan lorsque qu'un membre du clan vous invite au clan et que vous acceptez l'invitation. Vous pouvez également créer votre propre clan."
          },
          "he": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "it": {
            "type": [
              "string",
              "null"
            ],
            "example": "Devi essere un membro del clan per ottenere le ricompense del clan. Ti unisci a un clan quando un membro del clan ti invita al clan e accetti l'invito. Puoi anche creare il tuo clan."
          },
          "ja": {
            "type": [
              "string",
              "null"
            ],
            "example": "クランリワードを受け取るには、クランメンバーでなければなりません。 クランメンバーがあなたをクランに招待し、招待を受け入れると、クランに参加できます。 あなた自身のクランを作成することもできます。"
          },
          "ko": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pl": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "pt": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ro": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "ru": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "th": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tr": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "tw": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          },
          "vi": {
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        }
      },
      "popup_image_url": {
        "type": [
          "string",
          "null"
        ],
        "example": "https://image.example.com",
        "description": "Bild für das Tooltipp-Pop-up-Fenster einer Clan-Belohnungskette.",
        "format": "uri"
      },
      "client-reward-chain-item-model": {
        "type": "object",
        "properties": {
          "reward_chain_id": {
            "type": "integer",
            "example": 9,
            "description": "Belohnungsketten-ID."
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "Name der Belohnungskette."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "Reward chain description."
          },
          "long_description": {
            "type": [
              "string",
              "null"
            ],
            "example": "You can get a lot of additional items just by shopping during the week",
            "description": "Lange Beschreibung der Belohnungskette."
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/date_end"
          },
          "clan_type": {
            "$ref": "#/components/schemas/clan_type"
          },
          "top_contributors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/top_contributors"
            }
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "object",
              "description": "Belohnungskettenschritt.",
              "properties": {
                "step_id": {
                  "type": "integer",
                  "example": 10,
                  "description": "Schritt-ID."
                },
                "name": {
                  "type": "string",
                  "example": "Level 1",
                  "description": "Schrittname."
                },
                "is_claimed": {
                  "type": "boolean",
                  "example": false,
                  "description": "Ob die Schrittbelohnung in Anspruch genommen wurden ist."
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "price": {
                  "type": "object",
                  "properties": {
                    "amount": {
                      "type": "integer",
                      "example": 100,
                      "description": "Wie viele Wertpunkte ein Nutzer benötigt, um den Schritt abzuschließen."
                    }
                  }
                },
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "Artikelname."
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "Artikeltyp."
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "Item description."
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "Artikelmenge."
                      }
                    }
                  }
                }
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_client_side"
          },
          "popup_header": {
            "$ref": "#/components/schemas/popup_header-two-letter-locale"
          },
          "popup_instruction": {
            "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
          },
          "popup_image_url": {
            "$ref": "#/components/schemas/popup_image_url"
          }
        }
      },
      "Pagination_has-more": {
        "type": "boolean",
        "example": true,
        "description": "Dient als Indikator dafür, dass weitere Seiten vorhanden sind."
      },
      "reward_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "Eindeutige ID der Belohnungskette."
      },
      "periods": {
        "type": "array",
        "nullable": false,
        "description": "Gültigkeitszeitraum der Belohnungskette. Wenn mehrere Zeiträume angegeben sind, sind sowohl `date_from` als auch `date_until` erforderlich.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": "string",
              "format": "date-time",
              "nullable": false,
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Startdatum für die angegebene Belohnungskette."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Enddatum für die angegebene Belohnungskette. Kann nur dann `null` sein, wenn eine einziger Gültigkeitszeitraum angegeben ist."
            }
          },
          "required": [
            "date_from"
          ]
        }
      },
      "day_of_week": {
        "type": "integer",
        "description": "Wochentag, an dem die Belohnungskette zurückgesetzt wird, wobei \"1\" für Montag und \"7\" für Sonntag steht.",
        "minimum": 1,
        "maximum": 7
      },
      "time": {
        "type": "string",
        "description": "Zu welcher Uhrzeit die Belohnungskette in der gewünschten Zeitzone zurückgesetzt wird (auf volle Stunden gerundet). <br><br>Beispiel: Es ist festgelegt, dass in der Zeitzone Kuala Lumpur (GMT+8) die Belohungskette um 01:00 Uhr zurückgesetzt wird. In diesem Fall lautet der Wert des Parameters `time`: \"01:00:00+08:00\".",
        "pattern": "((0[0-9]|1[0-9]|2[0-3]):00:00)(\\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])",
        "example": "01:00:00+08:00"
      },
      "displayable_reset_start_date": {
        "description": "Datum samt Uhrzeit, an dem die Belohnungskette zurückgesetzt wird.<br><br> Beispiel: Die Belohnungskette wird erstmalig am 1. März 2024 um 01:00 Uhr Kuala-Lumpur-Zeit bzw. „2024-03-01T01:00:00+08:00“ gemäß <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> zurückgesetzt.<br><br> Beispiel: \"2024-03-01T01:00:00+08:00\"",
        "type": "string",
        "format": "date-time"
      },
      "displayable_reset_next_date": {
        "description": "Berechnetes Datum samt Uhrzeit, an dem die Belohnungskette das nächste Mal zurückgesetzt wird <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">(ISO 8601)</a>.<br><br> Beispiel: Die Belohnungskette wird monatlich zurückgesetzt, beginnend ab dem 1. März 2024 um 01:00 Uhr Kuala-Lumpur-Zeit. Das Datum samt Uhrzeit, an dem die Belohnungskette das nächste Mal zurückgesetzt wird, ist der 1. April 2024 um 01:00 Uhr Kuala-Lumpur-Zeit bzw. „2024-04-01T01:00:00+08:00“ gemäß <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>.<br><br> Beispiel: „2024-04-01T01:00:00+08:00“",
        "type": "string",
        "format": "date-time"
      },
      "day_of_month": {
        "type": "integer",
        "description": "Tag im Monat, an dem die Belohnungskette zurückgesetzt wird. Hat ein Monat weniger Tage als die angegebene Ordinalzahl, wird die Belohnungskette am letzten Tag des Monats zurückgesetzt.",
        "minimum": 1,
        "maximum": 31
      },
      "reward_chain_hours_interval": {
        "type": "integer",
        "description": "Intervall in Stunden, nach dem die Belohnungskette zurückgesetzt wird. <br><br> Der Countdown beginnt gemäß dem Parameter <a href=\"https://developers.xsolla.com/de/api/shop-builder/operation/admin-create-reward-chain/#!path=0/date_start&t=request\">date_start</a>. <br><br> Sind beispielsweise `date_start = \"2025-11-15T18:15:00+05:00\"` und `hours_interval = 2`angegeben, wird die Belohnungskette alle alle zwei Stunden ab dem `\"2025-11-15T20:15:00+05:00\"` zurückgesetzt.",
        "minimum": 1,
        "maximum": 10000
      },
      "admin_recurrent_schedule": {
        "type": [
          "object",
          "null"
        ],
        "description": "Wiederkehrender Reset-Zeitraum der Belohnungskette.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = weekly",
            "description": "Belohnungskette wird wöchentlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = monthly",
            "description": "Belohnungskette wird monatlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = hourly",
            "description": "Die Belohnungskette wird gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/displayable_reset_next_date"
              }
            }
          }
        ]
      },
      "chain_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit der Kette basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "chain_is_always_visible": {
        "description": "Ob die Kette für alle Nutzer sichtbar ist. Wenn `true` festgelegt ist, wird die Kette stets angezeigt, unabhängig vom Authentifizierungsstatus oder den Attributen des Nutzers.\n\nUm die Personalisierung konfigurieren zu können, müssen Sie `false` übermitteln. Die Logik der Kettenanzeige ist wie folgt:\n   * Wenn `false` übermittelt wird und die Sichtbarkeitsbedingungen im Array `attribute_conditions` angegeben sind, gilt die Kette als personalisiert und wird nur autorisierten Nutzern angezeigt, die die angegebenen Bedingungen erfüllen.\n  * Wenn `false` übermittelt wird und das Array `attribute_conditions` nicht übermittelt wird oder leer ist, wird die Kette auch nicht autorisierten Nutzern angezeigt. Das Gleiche gilt für Fälle, in denen für den autorisierten Nutzer keine passende Kette gefunden wird.",
        "type": "boolean",
        "default": true,
        "example": true
      },
      "is_reset_after_end": {
        "description": "Ob die Belohnungskette (Wertpunkte und Fortschritt aller Nutzer) nach dem Enddatum zurückgesetzt wird:\n* Wenn `true` festgelegt ist, wird die Belohnungskette nach dem Enddatum zurückgesetzt.\n* Wenn `false` festgelegt ist, wird die Belohnungskette nach dem Enddatum nicht zurückgesetzt.\n\n<br>\n\n<div class=\"notice\"><strong>Hinweis</strong><br><br>\n<code>true</code> ist nicht möglich, wenn: <br>\n<ul>\n  <li>in <code>recurrent_schedule</code> ein Zeitraum für das Zurücksetzen angegeben ist.</li>\n  <li>der Wert <code>null</code> im Parameter <code>periods.date_until</code> übermittelt wird.</li>\n</ul>\n</div>",
        "type": "boolean",
        "default": false,
        "example": false
      },
      "admin-get-reward-chain-item-basic-model": {
        "type": "object",
        "description": "Eine Belohnungskette.",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/value-point-sku"
              },
              "name": {
                "$ref": "#/components/schemas/value-point-name"
              },
              "type": {
                "type": "string",
                "example": "value_point"
              },
              "image_url": {
                "$ref": "#/components/schemas/Common_admin-image_url"
              },
              "description": {
                "$ref": "#/components/schemas/value-point-description"
              },
              "long_description": {
                "$ref": "#/components/schemas/value-point-long-description"
              },
              "amount": {
                "$ref": "#/components/schemas/value-point-amount"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              }
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-basic-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
          },
          {
            "type": "object",
            "description": "Clan-Belohnungskette.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Ein für eine Clan-Belohnungskette konfigurierter Wertpunkt.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/value-point-sku"
                  },
                  "name": {
                    "$ref": "#/components/schemas/value-point-name"
                  },
                  "type": {
                    "type": "string",
                    "example": "value_point"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/Common_admin-image_url"
                  },
                  "description": {
                    "$ref": "#/components/schemas/value-point-description"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/value-point-long-description"
                  },
                  "amount": {
                    "$ref": "#/components/schemas/value-point-amount"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            }
          }
        ]
      },
      "step_price_amount": {
        "type": "integer",
        "example": 100,
        "description": "Stufenpreis in Wertpunkten."
      },
      "reward_step_price": {
        "type": "object",
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/step_price_amount"
          }
        },
        "required": [
          "amount"
        ]
      },
      "reward_item_quantity": {
        "type": "integer",
        "example": 2,
        "description": "Artikelmenge."
      },
      "reward-chain-step-reward_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit von Belohnungskettenschritten basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "create_reward_step": {
        "type": "object",
        "description": "Belohnungskettenschritt.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward"
        ]
      },
      "recurrent_schedule_create_update": {
        "type": [
          "object",
          "null"
        ],
        "description": "Wiederkehrender Reset-Zeitraum der Belohnungskette.",
        "oneOf": [
          {
            "type": "object",
            "title": "interval_type = weekly",
            "description": "Belohnungskette wird wöchentlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = monthly",
            "description": "Belohnungskette wird monatlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = hourly",
            "description": "Die Belohnungskette wird gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/interval_type_hourly_rc"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/reward_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          }
        ]
      },
      "chain_user-attribute_conditions_model-post": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-post"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit der Kette basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "create-reward-chain-model": {
        "type": "object",
        "description": "Eine Belohnungskette.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              }
            },
            "required": [
              "sku"
            ]
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "value_point",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "create-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "Clan-Belohnungskette.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Ein für eine Clan-Belohnungskette konfigurierter Wertpunkt.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "value_point",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "ID des eindeutigen Schritts."
      },
      "reward-chain-step-reward_user-attribute_conditions_model-get": {
        "allOf": [
          {
            "$ref": "#/components/schemas/user-attribute_conditions_model-get"
          },
          {
            "description": "Bedingungen für die Validierung von Nutzerattributen.\nSteuert die Verfügbarkeit von Belohnungskettenschritten basierend darauf, ob die Nutzerattribute alle angegebenen Bedingungen erfüllen."
          }
        ]
      },
      "reward_step_short": {
        "type": "object",
        "description": "Belohnungskettenschritt.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-get"
                }
              }
            }
          }
        }
      },
      "admin-get-reward-chain-item-full-model": {
        "type": "object",
        "description": "Eine Belohnungskette.",
        "properties": {
          "reward_chain_id": {
            "$ref": "#/components/schemas/reward_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "value_point": {
            "type": "object",
            "properties": {
              "sku": {
                "$ref": "#/components/schemas/sku"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "long_description": {
                "$ref": "#/components/schemas/long-description-localization-object"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "type": {
                "type": "string"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "image_url": {
                "$ref": "#/components/schemas/image_url"
              },
              "media_list": {
                "$ref": "#/components/schemas/media_list"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "is_clan": {
                "$ref": "#/components/schemas/is_clan"
              }
            }
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reward_step_short"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/admin_recurrent_schedule"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        }
      },
      "admin-get-reward-chain-item-clan-full-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/admin-get-reward-chain-item-full-model"
          },
          {
            "type": "object",
            "description": "Clan-Belohnungskette.",
            "properties": {
              "value_point": {
                "type": "object",
                "description": "Ein für eine Clan-Belohnungskette konfigurierter Wertpunkt.",
                "properties": {
                  "sku": {
                    "$ref": "#/components/schemas/sku"
                  },
                  "description": {
                    "$ref": "#/components/schemas/description-localization-object"
                  },
                  "long_description": {
                    "$ref": "#/components/schemas/long-description-localization-object"
                  },
                  "name": {
                    "$ref": "#/components/schemas/name-localization-object"
                  },
                  "type": {
                    "type": "string"
                  },
                  "is_enabled": {
                    "$ref": "#/components/schemas/is_enabled"
                  },
                  "image_url": {
                    "$ref": "#/components/schemas/image_url"
                  },
                  "media_list": {
                    "$ref": "#/components/schemas/media_list"
                  },
                  "order": {
                    "$ref": "#/components/schemas/order"
                  },
                  "is_clan": {
                    "$ref": "#/components/schemas/is_clan"
                  }
                },
                "required": [
                  "sku"
                ]
              },
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              },
              "top_contributors": {
                "$ref": "#/components/schemas/top_contributors"
              }
            }
          }
        ]
      },
      "modify_reward_step": {
        "type": "object",
        "description": "Belohnungskettenschritt.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/step_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "price": {
            "$ref": "#/components/schemas/reward_step_price"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "reward": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/sku"
                },
                "quantity": {
                  "$ref": "#/components/schemas/reward_item_quantity"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/reward-chain-step-reward_user-attribute_conditions_model-post"
                }
              },
              "required": [
                "sku",
                "quantity"
              ]
            }
          }
        },
        "required": [
          "name",
          "price",
          "reward",
          "step_id"
        ]
      },
      "update-reward-chain-model": {
        "type": "object",
        "description": "Eine Belohnungskette.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "long_description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "periods": {
            "$ref": "#/components/schemas/periods"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify_reward_step"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/recurrent_schedule_create_update"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "is_reset_after_end": {
            "$ref": "#/components/schemas/is_reset_after_end"
          }
        },
        "required": [
          "name",
          "periods",
          "steps",
          "is_enabled"
        ]
      },
      "update-clan-reward-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/create-reward-chain-model"
          },
          {
            "type": "object",
            "description": "Clan-Belohnungskette.",
            "properties": {
              "popup_header": {
                "$ref": "#/components/schemas/popup_header-two-letter-locale"
              },
              "popup_instruction": {
                "$ref": "#/components/schemas/popup_instruction-two-letter-locale"
              },
              "popup_image_url": {
                "$ref": "#/components/schemas/popup_image_url"
              },
              "clan_type": {
                "$ref": "#/components/schemas/clan_type"
              }
            },
            "required": [
              "name",
              "periods",
              "steps",
              "is_enabled",
              "popup_header",
              "popup_instruction"
            ]
          }
        ]
      },
      "daily_chain_type": {
        "type": "string",
        "enum": [
          "calendar_hard",
          "rolling_skippable",
          "rolling_unskippable"
        ],
        "description": "Belohnungstyp, der festlegt, wann Nutzer Belohnungen beanspruchen können.\n\nMögliche Werte:\n- `calendar_hard` – schaltet alle 24 Stunden die nächste Schrittbelohnung frei. Nicht in Anspruch genommene Schrittbelohnungen verfallen endgültig, sobald die nächste Schrittbelohnung verfügbar ist.\n- `rolling_skippable` – schaltet alle 24 Stunden die nächste Schrittbelohnung frei, beginnend ab `date_start`. Der Fortschritt erfolgt schrittweise:\nEine neue Belohnung wird erst freigeschaltet, nachdem die vorherige in Anspruch genommen wurde. Wenn ein Nutzer einen oder mehrere Tage auslässt, macht er dort weiter, wo er aufgehört hat; für versäumte Tage werden keine Belohnungen gewährt.\n- `rolling_unskippable` – schaltet alle 24 Stunden die nächste Schrittbelohnung frei, beginnend ab `date_start`. Der Fortschritt erfolgt schrittweise:\nEine neue Belohnung wird erst freigeschaltet, nachdem die vorherige in Anspruch genommen wurde. Wenn ein Nutzer jedoch einen Tag auslässt, wird sein Fortschritt zurückgesetzt, und er muss wieder beim ersten Schritt beginnen."
      },
      "calendar_hard_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem die tägliche Belohnung beginnt."
      },
      "calendar_hard_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "Ob die tägliche Belohnung wiederkehrend ist. Ist `true` festgelegt, wird die tägliche Belohnung nach dem Enddatum automatisch zurückgesetzt. Das nächste `start_date` und `end_date` basiert auf der Anzahl der Belohnungsschritte und dem eingestellten Anfangszeitpunkt (`start_date`)."
      },
      "calendar-hard-daily-chain-base": {
        "type": "object",
        "description": "Grundlegende Eigenschaften für tägliche Belohnungen vom Typ `calendar_hard`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "calendar_hard"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/calendar_hard_date_start"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/calendar_hard_is_recurrent"
          }
        }
      },
      "daily_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "Eindeutige ID der täglichen Belohnung."
      },
      "daily_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem die tägliche Belohnung endet. Möglich ist `null`. Ist der Typ `calendar_hard` festgelegt, wird das Datum automatisch anhand der hinzugefügten Schritte ermittelt, sodass Sie dieses Feld auf `null` belassen können."
      },
      "daily_chain_number_of_step": {
        "type": "integer",
        "example": 3,
        "description": "Die im Rahmen der Belohnungskette festgelegte Anzahl der Schritte. Jeder Schritt steht hier für einen Tag."
      },
      "admin-calendar-hard-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ `calendar_hard` (Kurzversion).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "daily_rolling_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum samt Uhrzeit, an dem die tägliche Belohnung beginnt. Dieser Zeitpunkt bestimmt auch den täglichen Reset-Zeitpunkt, zu dem Nutzer ihre Belohnung beanspruchen können."
      },
      "rolling_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem die tägliche Belohnung endet."
      },
      "rolling_is_recurrent": {
        "type": "boolean",
        "example": true,
        "default": false,
        "description": "Ob die tägliche Belohnung wiederkehrend ist. Ist `true` festgelegt, wird die tägliche Belohnung zurückgesetzt, sobald der Nutzer alle Schritte abgeschlossen hat, sodass er wieder bei Schritt 1 beginnen kann. Die Zurücksetzung erfolgt nur innerhalb des aktiven Belohnungszeitraums, festgelegt durch die beiden Parameter `date_start` und `date_end`."
      },
      "rolling-skippable-daily-chain-base": {
        "type": "object",
        "description": "Grundlegende Eigenschaften für tägliche Belohnungen vom Typ `rolling_skippable`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_skippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-skippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ `rolling_skippable` (Kurzversion).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "rolling-unskippable-daily-chain-base": {
        "type": "object",
        "description": "Grundlegende Eigenschaften für tägliche Belohnungen vom Typ `rolling_unskippable`.",
        "properties": {
          "type": {
            "allOf": [
              {
                "$ref": "#/components/schemas/daily_chain_type"
              },
              {
                "enum": [
                  "rolling_unskippable"
                ]
              }
            ]
          },
          "date_start": {
            "$ref": "#/components/schemas/daily_rolling_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/rolling_date_end"
          },
          "is_recurrent": {
            "$ref": "#/components/schemas/rolling_is_recurrent"
          }
        }
      },
      "admin-rolling-unskippable-daily-chain-short-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ `rolling_unskippable` (Kurzversion).",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              }
            }
          }
        ]
      },
      "admin-daily-chain-short-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/admin-calendar-hard-daily-chain-short-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-skippable-daily-chain-short-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-unskippable-daily-chain-short-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/admin-calendar-hard-daily-chain-short-model",
            "rolling_skippable": "#/components/schemas/admin-rolling-skippable-daily-chain-short-model",
            "rolling_unskippable": "#/components/schemas/admin-rolling-unskippable-daily-chain-short-model"
          }
        }
      },
      "daily_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "Schrittnummer.",
        "nullable": false,
        "minimum": 1
      },
      "modify-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "Menge der täglichen Belohnung für diese SKU",
            "minimum": 1
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "create-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `calendar_hard`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `rolling_skippable`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "create-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `rolling_unskippable`.",
            "properties": {
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/create-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "daily-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "daily_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Eindeutige Kennung für den Belohnungsschritt",
        "minimum": 1
      },
      "item_type": {
        "type": "string",
        "description": "Artikeltyp: `virtual_good`/`virtual_currency`/`bundle`/`unit`."
      },
      "admin-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/two-letter-locale"
          },
          "description": {
            "$ref": "#/components/schemas/long-description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "quantity": {
            "type": "integer",
            "description": "Anzahl der Artikel.",
            "minimum": 1,
            "example": 1
          }
        }
      },
      "admin-daily-chain-step-model": {
        "type": "object",
        "description": "Ein Belohnungsschritt.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-daily-chain-item-model"
            }
          }
        }
      },
      "admin-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ calendar_hard für verwaltungstechnische Antworten.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ rolling_skippable für verwaltungstechnische Antworten.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ `rolling_unskippable` für verwaltungstechnische Antworten.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "number_of_steps": {
                "$ref": "#/components/schemas/daily_chain_number_of_step"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/admin-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "admin-daily-chain-long-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/admin-calendar-hard-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-skippable-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/admin-rolling-unskippable-daily-chain-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/admin-calendar-hard-daily-chain-model",
            "rolling_skippable": "#/components/schemas/admin-rolling-skippable-daily-chain-model",
            "rolling_unskippable": "#/components/schemas/admin-rolling-unskippable-daily-chain-model"
          }
        }
      },
      "daily_chain_update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Eindeutige Kennung des Belohnungsschritts. Geben Sie die ID während der Aktualisierung an, damit der Nutzerfortschritt für diesen Schritt nicht verloren geht.",
        "minimum": 1
      },
      "modify-daily-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/daily_chain_update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-daily-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "items"
        ]
      },
      "update-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `calendar_hard`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `rolling_skippable`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "update-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung für den Typ `rolling_unskippable`.",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/daily_chain_id"
              },
              "name": {
                "$ref": "#/components/schemas/name-localization-object"
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "description": {
                "$ref": "#/components/schemas/description-localization-object"
              },
              "is_enabled": {
                "$ref": "#/components/schemas/is_enabled"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/modify-daily-chain-step-model"
                }
              }
            },
            "required": [
              "name",
              "date_start",
              "steps",
              "is_enabled",
              "type"
            ]
          }
        ]
      },
      "client-daily-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "Artikelname."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Item description."
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Anzahl der Artikel.",
            "minimum": 1,
            "example": 1
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-daily-chain-step-model": {
        "type": "object",
        "description": "Belohnungsschritt.",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/daily_chain_step_number"
          },
          "status": {
            "type": "string",
            "example": "claimed",
            "enum": [
              "claimed",
              "claimable",
              "blocked",
              "claim_in_future"
            ],
            "description": "Definiert den aktuellen Anspruchsstatus des Schritts.\n\nMögliche Werte:\n- `claimed` – Der Schritt wurde bereits in Anspruch genommen.\n- `claimable` – Der Schritt kann in Anspruch genommen werden.\n- `blocked` – Der Schritt kann nicht in Anspruch genommen werden:\n  - Bei autorisierten Nutzern: Alle Schritte sind gesperrt.\n  - Bei `calendar_hard`: Der Schritt wurde nicht in Anspruch genommen und liegt nun in der Vergangenheit.\n  - For `rolling_skippable`: Der Schritt ist gesperrt, bis der vorherige Schritt in Anspruch genommen wird.\n- `claim_in_future` – Der Schritt wurde nicht in Anspruch genommen und liegt in der Zukunft."
          },
          "unlocked_date": {
            "type": "integer",
            "format": "int64",
            "description": "Unix-Zeitstempel (in Sekunden), an dem der Schritt entsperrt wird."
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-daily-chain-item-model"
            }
          }
        }
      },
      "client-calendar-hard-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/calendar-hard-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ calendar_hard für Client-Antworten.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID der täglichen Belohnung."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Name der täglichen Belohnung."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Daily reward description."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "date_end": {
                "$ref": "#/components/schemas/daily_chain_date_end"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-skippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-skippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ rolling_skippable für Client-Antworten.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID der täglichen Belohnung."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Name der täglichen Belohnung."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Daily reward description."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-rolling-unskippable-daily-chain-model": {
        "allOf": [
          {
            "$ref": "#/components/schemas/rolling-unskippable-daily-chain-base"
          },
          {
            "type": "object",
            "description": "Eine tägliche Belohnung vom Typ `rolling_unskippable` für Client-Antworten.",
            "properties": {
              "id": {
                "type": "integer",
                "example": 9,
                "description": "ID der täglichen Belohnung."
              },
              "name": {
                "type": "string",
                "example": "Weekly quest",
                "description": "Name der täglichen Belohnung."
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ],
                "example": "Major weekly quest",
                "description": "Daily reward description."
              },
              "order": {
                "$ref": "#/components/schemas/order"
              },
              "steps": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/client-daily-chain-step-model"
                }
              }
            }
          }
        ]
      },
      "client-daily-chain-model": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/client-calendar-hard-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/client-rolling-skippable-daily-chain-model"
          },
          {
            "$ref": "#/components/schemas/client-rolling-unskippable-daily-chain-model"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "calendar_hard": "#/components/schemas/client-calendar-hard-daily-chain-model",
            "rolling_skippable": "#/components/schemas/client-rolling-skippable-daily-chain-model",
            "rolling_unskippable": "#/components/schemas/client-rolling-unskippable-daily-chain-model"
          }
        }
      },
      "offer_chain_date_start": {
        "type": "string",
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem die Angebotskette beginnt."
      },
      "offer_chain_date_end": {
        "type": [
          "string",
          "null"
        ],
        "format": "date-time",
        "example": "2020-04-15T18:16:00+05:00",
        "description": "Datum, an dem die Angebotskette endet. Kann `null` sein. Wenn für `date_end` der Wert `null` festgelegt ist, ist die Angebotskette zeitlich unbegrenzt."
      },
      "offer_chain_step_number": {
        "type": "integer",
        "example": 2,
        "description": "Schrittnummer.",
        "nullable": false,
        "minimum": 1
      },
      "offer_chain_is_free": {
        "type": "boolean",
        "description": "Gibt an, ob der Angebotskettenschritt kostenlos ist:<ul><li> Wenn<code>true</code> festgelegt ist, muss der Schritt mit dem Aufruf <a href=\"/de/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Kostenlosen Angebotskettenschritt sichern</a> in Anspruch genommen werden.</li><li> Wenn <code>false</code> festgelegt ist, muss er über den Aufruf <a href=\"/de/api/shop-builder/operation/order-user-offer-chain-step-reward\">Bestellung für kostenpflichtigen Angebotskettenschritt anlegen</a> erworben werden.</li></ul>"
      },
      "offer_chain_step_price_amount": {
        "type": "number",
        "example": 99.99,
        "description": "Schrittpreis in echter Währung."
      },
      "offer_chain_step_price_currency": {
        "type": "string",
        "example": "USD",
        "description": "Währung des Artikelpreises. Dreistelliger Code pro [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
      },
      "offer_chain_step_price": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "amount": {
            "$ref": "#/components/schemas/offer_chain_step_price_amount"
          },
          "currency": {
            "$ref": "#/components/schemas/offer_chain_step_price_currency"
          }
        },
        "required": [
          "amount",
          "currency"
        ]
      },
      "client-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "type": "string",
            "description": "Artikelname."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "description": "Item description."
          },
          "bundle_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "standard",
              "virtual_currency_package"
            ]
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Anzahl der Artikel.",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "content": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          }
        }
      },
      "client-offer-chain-step-model": {
        "type": "object",
        "description": "Angebotskettenschritt.",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "is_claimed": {
            "type": "boolean",
            "example": false,
            "description": "Gibt an, ob die Schrittbelohnung beansprucht oder gekauft wurde."
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-item-model"
            }
          },
          "step_vp_rewards": {
            "type": [
              "array",
              "null"
            ],
            "description": "Eine Array von Wertpunkten aus dem Belohnungssystem, die als Belohnung gewährt werden.",
            "items": {
              "type": "object",
              "properties": {
                "item_id": {
                  "$ref": "#/components/schemas/item_id"
                },
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "amount": {
                  "$ref": "#/components/schemas/value-point-amount"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          },
          "step_loyalty_rewards": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "First Loyalty Point",
                  "description": "Treuepunktname."
                },
                "sku": {
                  "type": "string",
                  "example": "0c745ef0-4243-46e1-aa90-54dee07da622",
                  "description": "Treuepunkt-SKU."
                },
                "description": {
                  "type": "string",
                  "example": "First Loyalty Point Desc",
                  "description": "Loyalty point description."
                },
                "image_url": {
                  "$ref": "#/components/schemas/image_url"
                },
                "amount": {
                  "type": "integer",
                  "example": 1,
                  "description": "Anzahl der Treuepunkte."
                }
              }
            }
          }
        }
      },
      "offer_chain_reset_next_date": {
        "type": "integer",
        "description": "Berechnetes Datum samt Uhrzeit (als <a href=\"https://en.wikipedia.org/wiki/Unix_time\" target=\"_blank\">Unix-Zeitstempel</a>), an dem die Angebotskette das nächste Mal zurückgesetzt wird. <br><br> Beispielsweise beginnt die Angebotskette am 1. März 2024 um 01:00 Uhr malaysischer Zeit (GMT+8) und wird monatlich zurückgesetzt. Die erste Zurücksetzung erfolgt am 1. April 2024 um 01:00 Uhr malaysischer Zeit (GMT+8), was dem 31. März 2024 um 17:00 Uhr (GMT+0) bzw. `1711904400000` (Unix-Zeitstempel) entspricht. <br><br> Beispiel: `1711904400000`"
      },
      "offer_chain_recurrent_schedule_client_side": {
        "type": [
          "object",
          "null"
        ],
        "description": "Reset-Zeitraum der Angebotskette.",
        "properties": {
          "interval_type": {
            "type": "string",
            "description": "Wie oft die Angebotskette zurückgesetzt wird.",
            "enum": [
              "weekly",
              "monthly",
              "hourly"
            ]
          },
          "reset_next_date": {
            "$ref": "#/components/schemas/offer_chain_reset_next_date"
          }
        }
      },
      "client-offer-chain-model": {
        "type": "object",
        "description": "Eine Angebotskette.",
        "properties": {
          "id": {
            "type": "integer",
            "example": 9,
            "description": "Angebotsketten-ID."
          },
          "name": {
            "type": "string",
            "example": "Weekly quest",
            "description": "Angebotskettenname."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "example": "Major weekly quest",
            "description": "Offer chain description."
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/client-offer-chain-step-model"
            }
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_client_side"
          },
          "next_step_number": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Nächste Angebotskettenschritt-Nummer. `null`, wenn die Angebotskette abgeschlossen ist.",
            "example": 1
          }
        }
      },
      "offer-chain-error-model": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable Entity. The property `property_name` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          },
          "errorMessageExtended": {
            "type": [
              "object",
              "null"
            ]
          }
        }
      },
      "offer_chain_id": {
        "type": "integer",
        "example": 9,
        "description": "Eindeutige Angebotsketten-ID."
      },
      "offer_chain_interval_type_weekly": {
        "type": "string",
        "description": "Wie oft die Angebotskette zurückgesetzt wird.",
        "enum": [
          "weekly"
        ]
      },
      "offer_chain_day_of_week": {
        "type": "integer",
        "description": "Wochentag, an dem die Angebotskette zurückgesetzt wird, wobei `1` für Montag und `7` für Sonntag steht.",
        "minimum": 1,
        "maximum": 7
      },
      "offer_chain_time": {
        "type": "string",
        "description": "Der Zeitpunkt, zu dem die Angebotskette in der angegebenen Zeitzone zurückgesetzt wird (auf Stunden gerundet). <br><br> Beispielsweise erfolgt die Zurücksetzung um 01:00 Uhr malaysischer Zeit (GMT+8); der Wert des Parameters `time` lautet in diesem Fall: `01:00:00+08:00`.",
        "pattern": "((0[0-9]|1[0-9]|2[0-3]):00:00)(\\+|-)(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])",
        "example": "01:00:00+08:00"
      },
      "offer_chain_displayable_reset_start_date": {
        "description": "Datum samt Uhrzeit, an dem die Angebotskette erstmalig zurückgesetzt wird. <br><br> Beispielsweise entspricht die erste für den 1. März 2024 um 01:00 Uhr malaysischer Zeit (Kuala Lumpur) geplante Zurücksetzung dem Wert `2024-03-01T01:00:00+08:00` im Format <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a>. <br><br> Beispiel: `2024-03-01T01:00:00+08:00`",
        "type": "string",
        "format": "date-time"
      },
      "offer_chain_displayable_reset_next_date": {
        "description": "Berechnetes Datum samt Uhrzeit (<a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">gemäß ISO 8601</a>), an dem die Angebotskette das nächste Mal zurückgesetzt wird. <br><br> Beispielsweise beginnt die Angebotskette am 1. März 2024 um 01:00 Uhr malaysischer Zeit (Kuala Lumpur) und wird monatlich zurückgesetzt. Die erste Zurücksetzung erfolgt am 1. April 2024 um 01:00 Uhr malaysischer Zeit (Kuala Lumpur), was`2024-04-01T01:00:00+08:00` im Format <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> entspricht. <br><br> Beispiel: `2024-04-01T01:00:00+08:00`",
        "type": "string",
        "format": "date-time"
      },
      "offer_chain_interval_type_monthly": {
        "type": "string",
        "description": "Wie oft die Angebotskette zurückgesetzt wird.",
        "enum": [
          "monthly"
        ]
      },
      "offer_chain_day_of_month": {
        "type": "integer",
        "description": "Der Tag des Monats, an dem die Angebotskette zurückgesetzt wird. Wenn ein Monat weniger Tage als der angegebene Tag hat, erfolgt die Zurücksetzung am letzten Tag des Monats.",
        "minimum": 1,
        "maximum": 31
      },
      "offer_chain_interval_type_hourly": {
        "type": "string",
        "description": "Wie oft die Angebotskette zurückgesetzt wird.",
        "enum": [
          "hourly"
        ]
      },
      "offer_chain_hours_interval": {
        "type": "integer",
        "description": "Intervall in Stunden, nach dem die Angebotskette zurückgesetzt wird. <br><br> Der Countdown beginnt gemäß dem Parameter <a href=\"https://developers.xsolla.com/de/api/shop-builder/operation/admin-create-offer-chain/#!path=date_start&t=request\">date_start</a>. <br><br> Sind beispielsweise `date_start = \"2025-11-15T18:15:00+05:00\"` und `hours_interval = 2`angegeben, wird die Angebotskette alle alle zwei Stunden ab dem `\"2025-11-15T20:15:00+05:00\"` zurückgesetzt.",
        "minimum": 1,
        "maximum": 10000
      },
      "offer_chain_recurrent_schedule": {
        "type": [
          "object",
          "null"
        ],
        "description": "Wiederkehrender Reset-Zeitraum der Angebotskette.",
        "oneOf": [
          {
            "type": [
              "object",
              "null"
            ],
            "title": "interval_type = weekly",
            "description": "Angebotskette wird wöchentlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = monthly",
            "description": "Angebotskette wird monatlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              },
              "reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_reset_next_date"
              },
              "displayable_reset_start_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_start_date"
              },
              "displayable_reset_next_date": {
                "$ref": "#/components/schemas/offer_chain_displayable_reset_next_date"
              }
            }
          },
          {
            "type": "object",
            "title": "interval_type = hourly",
            "description": "Die Angebotskette wird gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            }
          }
        ]
      },
      "admin-offer-chain-short-model": {
        "type": "object",
        "description": "Eine Angebotskette.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "offer_chain_recurrent_schedule_create_update": {
        "type": [
          "object",
          "null"
        ],
        "description": "Reset-Zeitraum der Angebotskette.",
        "oneOf": [
          {
            "type": [
              "object",
              "null"
            ],
            "title": "interval_type = weekly",
            "description": "Angebotskette wird wöchentlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_weekly"
              },
              "day_of_week": {
                "$ref": "#/components/schemas/offer_chain_day_of_week"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_week"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = monthly",
            "description": "Angebotskette wird monatlich zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_monthly"
              },
              "day_of_month": {
                "$ref": "#/components/schemas/offer_chain_day_of_month"
              },
              "time": {
                "$ref": "#/components/schemas/offer_chain_time"
              }
            },
            "required": [
              "interval_type",
              "time",
              "day_of_month"
            ]
          },
          {
            "type": "object",
            "title": "interval_type = hourly",
            "description": "Die Angebotskette wird gemäß dem in Stunden angegebenen Zeitintervall zurückgesetzt.",
            "properties": {
              "interval_type": {
                "$ref": "#/components/schemas/offer_chain_interval_type_hourly"
              },
              "hours_interval": {
                "$ref": "#/components/schemas/offer_chain_hours_interval"
              }
            },
            "required": [
              "interval_type",
              "hours_interval"
            ]
          }
        ]
      },
      "modify-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "quantity": {
            "type": "integer",
            "description": "Menge der Belohnungsartikel für diesen Kettenschritt.",
            "minimum": 1
          },
          "order": {
            "description": "Belohnungsreihenfolge für den Angebotskettenschritt.",
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          }
        },
        "required": [
          "sku",
          "quantity"
        ]
      },
      "create-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "create-offer-chain-model": {
        "type": "object",
        "description": "Eine Angebotskette.",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "offer_chain_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Eindeutige ID des Kettenschritts.",
        "minimum": 1
      },
      "admin-offer-chain-item-model": {
        "type": "object",
        "properties": {
          "item_id": {
            "$ref": "#/components/schemas/item_id"
          },
          "sku": {
            "$ref": "#/components/schemas/sku"
          },
          "type": {
            "$ref": "#/components/schemas/item_type"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "image_url": {
            "$ref": "#/components/schemas/image_url"
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "quantity": {
            "type": "integer",
            "description": "Anzahl der Artikel.",
            "minimum": 1,
            "example": 1
          },
          "order": {
            "$ref": "#/components/schemas/order"
          }
        }
      },
      "admin-offer-chain-step-model": {
        "type": "object",
        "description": "Angebotskettenschritt.",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/offer_chain_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "step_price": {
            "$ref": "#/components/schemas/offer_chain_step_price"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-item-model"
            }
          }
        }
      },
      "admin-offer-chain-long-model": {
        "type": "object",
        "description": "Eine Angebotskette.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/admin-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-get"
          }
        }
      },
      "update_step_id": {
        "type": [
          "integer",
          "null"
        ],
        "example": 10,
        "description": "Eindeutige Kettenschritt-ID. Geben Sie die ID während der Aktualisierung an, damit der Nutzerfortschritt für diesen Schritt nicht verloren geht.",
        "minimum": 1
      },
      "modify-offer-chain-step-model": {
        "type": "object",
        "properties": {
          "step_id": {
            "$ref": "#/components/schemas/update_step_id"
          },
          "step_number": {
            "$ref": "#/components/schemas/offer_chain_step_number"
          },
          "is_free": {
            "$ref": "#/components/schemas/offer_chain_is_free"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-item-model"
            }
          }
        },
        "required": [
          "step_number",
          "is_free",
          "items"
        ]
      },
      "modify-offer-chain-model": {
        "type": "object",
        "description": "Eine Angebotskette.",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/offer_chain_id"
          },
          "name": {
            "$ref": "#/components/schemas/name-localization-object"
          },
          "order": {
            "$ref": "#/components/schemas/order"
          },
          "description": {
            "$ref": "#/components/schemas/description-localization-object"
          },
          "date_start": {
            "$ref": "#/components/schemas/offer_chain_date_start"
          },
          "date_end": {
            "$ref": "#/components/schemas/offer_chain_date_end"
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "recurrent_schedule": {
            "$ref": "#/components/schemas/offer_chain_recurrent_schedule_create_update"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/modify-offer-chain-step-model"
            }
          },
          "is_always_visible": {
            "$ref": "#/components/schemas/chain_is_always_visible"
          },
          "attribute_conditions": {
            "$ref": "#/components/schemas/chain_user-attribute_conditions_model-post"
          }
        },
        "required": [
          "name",
          "date_start",
          "steps",
          "is_enabled"
        ]
      },
      "bundle_type": {
        "type": "string",
        "description": "Bundle-Typ. Wird zurückgegeben, wenn der Artikeltyp ein Bundle ist.",
        "enum": [
          "standard",
          "virtual_currency_package",
          "partner_side_content"
        ]
      },
      "unit_type": {
        "type": "string",
        "example": "game",
        "description": "Einheitstyp: `game`."
      },
      "drm_name": {
        "type": "string",
        "example": "Steam",
        "description": "DRM-Name des Spielschlüssels."
      },
      "drm_sku": {
        "type": "string",
        "example": "steam",
        "description": "Eindeutige DRM-ID."
      },
      "Upsell-model": {
        "type": "object",
        "description": "Upselling-Typ.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "fixed_list"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              "game_sku"
            ],
            "default": null,
            "description": "Array mit Artikel-SKUs.",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type",
          "items"
        ]
      },
      "Upsell-model-not-fixed-list": {
        "type": "object",
        "description": "Upselling-Typ.",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "most_sellable",
              "only_promotions"
            ],
            "example": true
          },
          "is_enabled": {
            "$ref": "#/components/schemas/is_enabled"
          },
          "items": {
            "type": "array",
            "example": [
              null
            ],
            "default": null,
            "description": "Leeres Array mit Artikel-SKUs.",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "is_enabled",
          "type"
        ]
      },
      "Upsell-422-invalid-request": {
        "type": "object",
        "properties": {
          "statusCode": {
            "type": "integer",
            "example": 422
          },
          "errorCode": {
            "type": "integer",
            "example": 1102
          },
          "errorMessage": {
            "type": "string",
            "example": "[0401-1102]: Unprocessable entity. The property `is_enabled` is required"
          },
          "transactionId": {
            "type": "string",
            "example": "x-x-x-x-transactionId-mock-x-x-x"
          }
        }
      },
      "Virtual-Items-Currency_admin-groups-response": {
        "type": "array",
        "example": [
          {
            "external_id": "horror",
            "name": {
              "en": "Horror"
            }
          }
        ],
        "default": [],
        "description": "Gruppen, zu denen der Artikel gehört.",
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "type": "string",
              "example": "horror"
            },
            "name": {
              "type": "object",
              "description": "Name des Artikels. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}\" und der Wert ein String ist.",
              "example": {
                "en": "Horror",
                "de": "Horror"
              },
              "default": {
                "en": "Horror"
              },
              "additionalProperties": {
                "type": "string"
              }
            }
          }
        }
      },
      "Virtual-Items-Currency_client-attributes": {
        "type": "array",
        "description": "Liste der Attribute und ihrer Werte, die dem Artikel zugeordnet sind. Kann für die Katalogfilterung verwendet werden.",
        "example": {
          "value": {
            "external_id": "genre",
            "name": "Жанр",
            "values": [
              {
                "external_id": "genre_e3364991f92e751689a68b96598a5a5a84010b85",
                "value": "Casual"
              },
              {
                "external_id": "genre_eba07bfd0f982940773cba3744d97264dd58acd7",
                "value": "Strategy"
              },
              {
                "external_id": "genre_b8d0c6d8f0524c2b2d79ebb93aa3cd0e8b5199a8",
                "value": "Mobile"
              }
            ]
          }
        },
        "default": [],
        "items": {
          "type": "object",
          "properties": {
            "external_id": {
              "$ref": "#/components/schemas/admin-attribute-external_id"
            },
            "name": {
              "type": "object",
              "description": "Name des Attributs.",
              "example": "Genre",
              "additionalProperties": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "values": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "external_id": {
                    "$ref": "#/components/schemas/value-external_id"
                  },
                  "value": {
                    "type": "string",
                    "description": "Wert des Attributs.",
                    "example": "Strategy"
                  }
                }
              }
            }
          }
        }
      },
      "client_virtual_prices_response": {
        "type": "array",
        "description": "Virtuelle Preise.",
        "items": {
          "type": "object",
          "description": "Virtueller Preis.",
          "properties": {
            "amount": {
              "type": "integer",
              "example": 100,
              "description": "Artikelpreis in virtueller Währung."
            },
            "amount_without_discount": {
              "type": "integer",
              "example": 200,
              "description": "Der Artikelpreis in virtueller Währung ohne Rabatt. Immer gleich `amount`, da Rabatte nicht auf Preise in virtueller Währung angewendet werden."
            },
            "sku": {
              "type": "string",
              "example": "vc_gold",
              "description": "SKU der virtuellen Währung."
            },
            "is_default": {
              "type": "boolean",
              "example": true,
              "description": "Ob es sich um den Standardpreis in virtueller Währung handelt."
            },
            "image_url": {
              "type": [
                "string",
                "null"
              ],
              "example": "http://image.png",
              "description": "Bild-URL der virtuellen Währung."
            },
            "name": {
              "type": "string",
              "example": "Gold",
              "description": "Name der virtuellen Währung."
            },
            "type": {
              "type": "string",
              "example": "virtual_currency",
              "description": "Artikeltyp. Für die virtuelle Währung ist es `virtual_currency`."
            },
            "description": {
              "type": [
                "string",
                "null"
              ],
              "example": "In-game currency used to purchase weapons and upgrades",
              "description": "Virtual currency description."
            }
          }
        }
      },
      "item-periods-response": {
        "type": "array",
        "description": "Artikelangebotszeitraum.",
        "items": {
          "type": "object",
          "properties": {
            "date_from": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T10:00:00+03:00",
              "description": "Datum, an dem der angegebene Artikel zum Verkauf angeboten wird."
            },
            "date_until": {
              "type": [
                "string",
                "null"
              ],
              "format": "date-time",
              "example": "2020-08-11T20:00:00+03:00",
              "description": "Datum, an dem der angegebene Artikel nicht mehr zum Verkauf angeboten wird. Möglich ist: `null`."
            }
          }
        }
      },
      "item-custom-attributes-response": {
        "type": "object",
        "description": "Ein JSON-Objekt mit Artikelattributen und ‑werten.",
        "format": "json"
      },
      "Upsell_item": {
        "type": "object",
        "properties": {
          "sku": {
            "type": "string",
            "example": "big_rocket",
            "description": "Eindeutige Artikel-ID. Die SKU darf nur lateinische Klein- und Großbuchstaben, Ziffern, Punkte, Bindestriche und Unterstriche enthalten."
          },
          "name": {
            "type": "string",
            "example": "Big Rocket",
            "description": "Artikelname."
          },
          "groups": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_admin-groups-response"
          },
          "attributes": {
            "$ref": "#/components/schemas/Virtual-Items-Currency_client-attributes"
          },
          "type": {
            "type": "string",
            "example": "virtual_good",
            "description": "Artikeltyp: `virtual_good`/`virtual_currency`/`bundle`."
          },
          "description": {
            "type": "string",
            "example": "Big Rocket - description",
            "description": "Item description."
          },
          "image_url": {
            "type": "string",
            "example": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
            "description": "Bild-URL."
          },
          "is_free": {
            "$ref": "#/components/schemas/value-is_free"
          },
          "price": {
            "type": [
              "object",
              "null"
            ],
            "description": "Artikelpreise.",
            "properties": {
              "amount": {
                "type": "string",
                "example": "100.99",
                "description": "Reduzierter Artikelpreis."
              },
              "amount_without_discount": {
                "type": "string",
                "example": "100.99",
                "description": "Artikelpreis."
              },
              "currency": {
                "type": "string",
                "example": "USD",
                "description": "Währung des Artikelpreises. Dreistelliger Code pro [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
              }
            }
          },
          "virtual_prices": {
            "$ref": "#/components/schemas/client_virtual_prices_response"
          },
          "can_be_bought": {
            "$ref": "#/components/schemas/Can_be_bought"
          },
          "virtual_item_type": {
            "type": "string",
            "example": "non-consumable",
            "description": "Art des virtuellen Gegenstands.\n\nMögliche Werte:\n- `consumable` – ein Gegenstand, der nach dem Gebrauch aus dem Inventar verschwindet (z. B. Munition).\n- `non_consumable` – ein Gegenstand, der unbegrenzt lange im Inventar verbleibt.\n- `non_renewing_subscription` – ein zeitlich begrenzter Artikel, der den Zugang zu Services oder Inhalten für einen begrenzten Zeitraum gewährt.",
            "enum": [
              "consumable",
              "non_consumable",
              "non_renewing_subscription"
            ]
          },
          "promotions": {
            "$ref": "#/components/schemas/Catalog_item_promotions"
          },
          "limits": {
            "$ref": "#/components/schemas/Catalog_item_limits"
          },
          "periods": {
            "$ref": "#/components/schemas/item-periods-response"
          },
          "custom_attributes": {
            "$ref": "#/components/schemas/item-custom-attributes-response"
          },
          "vp_rewards": {
            "$ref": "#/components/schemas/client-item-value-point-reward"
          }
        }
      },
      "Upsell_item-list": {
        "type": "object",
        "properties": {
          "has_more": {
            "$ref": "#/components/schemas/Pagination_has-more"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Upsell_item"
            }
          }
        }
      }
    },
    "examples": {
      "Promotions_200-admin-promotions": {
        "value": {
          "promotions": [
            {
              "id": 1,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_1"
              },
              "type": "item_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.diamonds_pack_1",
                    "name": {
                      "en": "Diamonds pack",
                      "ru": "Пак кристаллов"
                    },
                    "type": "bundle",
                    "bundle_type": "virtual_currency_package",
                    "content": []
                  },
                  "quantity": 1
                }
              ],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 2,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_2"
              },
              "type": "item_discount",
              "is_enabled": false,
              "bonus": [],
              "condition": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  }
                }
              ],
              "discount": {
                "percent": "10.99"
              }
            },
            {
              "id": 3,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": "2030-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_3"
              },
              "type": "coupon_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_2",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": null
            },
            {
              "id": 4,
              "promotion_periods": [
                {
                  "date_from": "2018-01-01T00:00:00+03:00",
                  "date_until": "2031-01-01T00:00:00+03:00"
                }
              ],
              "name": {
                "en": "promotion_4"
              },
              "type": "promocode_bonus_discount",
              "is_enabled": false,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_2",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 2
                }
              ],
              "condition": [
                {
                  "item": {
                    "external_id": "coupon_3",
                    "name": {
                      "en": "Coupon name",
                      "ru": "Название купона"
                    },
                    "is_enabled": true,
                    "redeem_total_limit": null,
                    "redeem_user_limit": null,
                    "redeem_code_limit": 1
                  }
                }
              ],
              "discount": {
                "percent": "12.99"
              }
            },
            {
              "id": 5,
              "promotion_periods": [
                {
                  "date_from": "2020-01-01T00:00:00+03:00",
                  "date_until": null
                }
              ],
              "name": {
                "en": "promotion_5"
              },
              "type": "cart_bonus",
              "is_enabled": true,
              "bonus": [
                {
                  "item": {
                    "description": null,
                    "image_url": null,
                    "sku": "com.xsolla.virtual_good_bonus_4",
                    "name": {
                      "en": "VG name",
                      "ru": "Название VG"
                    },
                    "type": "virtual_good"
                  },
                  "quantity": 1
                }
              ],
              "condition": null,
              "discount": null
            }
          ],
          "total_promotions_count": 5,
          "active_promotions_count": 3,
          "inactive_promotions_count": 2
        }
      },
      "422-activate-deactivate-promotion": {
        "value": {
          "statusCode": 422,
          "errorCode": 9505,
          "errorMessage": "[0401-9505]: Error was occurred while promotion was being updated",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "Promotions_200-get-coupon-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": {
                  "en": "Game name"
                },
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true
        }
      },
      "Promotions_200-admin-coupons": {
        "value": {
          "items": [
            {
              "external_id": "coupon_44056_1",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                },
                {
                  "date_from": "2020-05-15T18:16:00+05:00",
                  "date_until": "2020-05-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-coupon-code-list": {
        "value": {
          "codes": [
            {
              "code": "CODE001"
            },
            {
              "code": "CODE002"
            },
            {
              "code": "CODE003"
            },
            {
              "code": "CODE004"
            },
            {
              "code": "CODE005"
            }
          ],
          "total_count": 5
        }
      },
      "Promotions_200-get-promocode-rewards": {
        "value": {
          "bonus": [
            {
              "item": {
                "sku": "com.xsolla.game_1",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "name": "Game name",
                    "type": "game_key",
                    "is_free": false,
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  },
                  {
                    "sku": "com.xsolla.game_key_02",
                    "name": "Game name",
                    "type": "game_key",
                    "drm_name": "Origin",
                    "drm_sku": "origin_key_02"
                  }
                ]
              },
              "quantity": 1
            },
            {
              "item": {
                "sku": "com.xsolla.game_2",
                "name": "Game name",
                "type": "unit",
                "description": "Game description",
                "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                "unit_items": [
                  {
                    "sku": "com.xsolla.game_key_01",
                    "type": "game_key",
                    "name": "Game name",
                    "drm_name": "Steam",
                    "drm_sku": "steam_key_01"
                  }
                ]
              },
              "quantity": 2
            }
          ],
          "discount": {
            "percent": "10.00"
          },
          "is_selectable": true,
          "discounted_items": [
            {
              "sku": "com.xsolla.elven_sword_1",
              "discount": {
                "percent": "10.00"
              }
            }
          ]
        }
      },
      "Promotions_200-admin-promocodes": {
        "value": {
          "items": [
            {
              "external_id": "promocode_100_crystals",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "quantity": 1
                },
                {
                  "sku": "com.xsolla.elven_shield_1",
                  "quantity": 2
                },
                {
                  "sku": "com.xsolla.elven_gloves_1",
                  "quantity": 2
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null,
              "discount": null,
              "discounted_items": null
            },
            {
              "external_id": "summer2021",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "Coupon name",
                "de-DE": "Gutscheintitel"
              },
              "is_enabled": true,
              "bonus": [
                {
                  "sku": "com.xsolla.diamonds_1",
                  "quantity": 100
                }
              ],
              "redeem_user_limit": null,
              "redeem_total_limit": 100,
              "redeem_code_limit": null,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              },
              "discount": {
                "percent": "10.99"
              },
              "discounted_items": [
                {
                  "sku": "com.xsolla.elven_sword_1",
                  "discount": {
                    "percent": "10.00"
                  }
                }
              ],
              "price_conditions": [
                {
                  "operator": "ge",
                  "value": "10.0000"
                },
                {
                  "operator": "le",
                  "value": "50.0000"
                }
              ],
              "excluded_promotions": [
                23,
                45
              ]
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "Promotions_200-admin-unique-catalog-offers": {
        "value": {
          "items": [
            {
              "external_id": "new_year_bonus",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": "2020-04-25T18:16:00+05:00"
                },
                {
                  "date_from": "2020-05-15T18:16:00+05:00",
                  "date_until": "2020-05-25T18:16:00+05:00"
                }
              ],
              "name": {
                "en-US": "New Year Bonus",
                "de-DE": "Neujahrsbonus"
              },
              "items": [
                "booster",
                "booster_mega"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": null,
              "redeem_code_limit": 1,
              "total_limit_state": null
            },
            {
              "external_id": "secret_store",
              "promotion_periods": [
                {
                  "date_from": "2020-04-15T18:16:00+05:00",
                  "date_until": null
                }
              ],
              "name": {
                "en-US": "Secret store",
                "ru-RU": "Тайный магазин"
              },
              "items": [
                "helmet",
                "armor",
                "sword"
              ],
              "is_enabled": true,
              "redeem_user_limit": 1,
              "redeem_total_limit": 100,
              "redeem_code_limit": 1,
              "total_limit_state": {
                "available": 50,
                "reserved": 10,
                "used": 40
              }
            }
          ],
          "total_promotions_count": 2,
          "active_promotions_count": 2,
          "inactive_promotions_count": 0
        }
      },
      "404-coupon-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 9802,
          "errorMessage": "[0401-9802]: Coupon not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "404-user-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 5008,
          "errorMessage": "[0401-5008]: Could not find User",
          "transactionId": "transaction id"
        }
      },
      "Promotions_422-invalid-coupon": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
        }
      },
      "code-limit": {
        "value": {
          "promotion_id": 1,
          "items": [
            {
              "code": "WINTER2023",
              "per_code": {
                "total": 10,
                "available": 7,
                "used": 2,
                "reserved": 1
              }
            },
            {
              "code": "SUMMER2023",
              "per_code": {
                "total": 5,
                "available": 0,
                "used": 3,
                "reserved": 2
              }
            }
          ],
          "total_items_count": 2,
          "has_more": false
        }
      },
      "401-complex-auth-header-not-found": {
        "value": {
          "statusCode": 401,
          "errorCode": 1501,
          "errorMessage": "[0401-1501]: Authorization failed: Authorization header not sent",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "401-complex-auth-incorrect-credentials": {
        "value": {
          "statusCode": 401,
          "errorCode": 1013,
          "errorMessage": "[0401-1013]: Token not found.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
        }
      },
      "422-user_external_id_invalid": {
        "value": {
          "statusCode": 404,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity",
          "transactionId": "transaction id",
          "errorMessageExtended": [
            {
              "property": "user_external_id",
              "message": "Must be at least 1 characters long"
            },
            {
              "property": "user_external_id",
              "message": "Does not match the regex pattern ^\\S+$"
            }
          ]
        }
      },
      "404-promotion-by-id-not-found": {
        "value": {
          "statusCode": 404,
          "errorCode": 1101,
          "errorMessage": "[0401-1101]: Promotion not found",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-without-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4509,
          "errorMessage": "[0401-4509]: Promotion does not have configured user limits.",
          "transactionId": "transaction id"
        }
      },
      "422-promotion-out-of-range-available-user-limit": {
        "value": {
          "statusCode": 422,
          "errorCode": 4511,
          "errorMessage": "[0401-4511]: Available promotion limit is out of range.",
          "transactionId": "transaction id"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point-list": {
        "value": {
          "items": [
            {
              "sku": "com.xsolla.reward_vp_1",
              "name": {
                "en": "Reward VP 1"
              },
              "type": "value_point",
              "is_enabled": true,
              "description": {
                "en": "Points for reward system"
              },
              "long_description": {
                "en": "Points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 1,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.reward_vp_2",
              "name": {
                "en": "Reward VP 2"
              },
              "type": "value_point",
              "is_enabled": false,
              "description": {
                "en": "Value points for reward system."
              },
              "long_description": {
                "en": "Value points given to users to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 2,
              "is_clan": false
            },
            {
              "sku": "com.xsolla.clan_value_point_1",
              "name": {
                "en": "Clan Reward VP 1"
              },
              "is_enabled": true,
              "description": {
                "en": "Value points for clan reward system."
              },
              "long_description": {
                "en": "Value points given to clans to get new rewards in a reward chain."
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "media_list": [],
              "order": 3,
              "is_clan": true
            }
          ]
        }
      },
      "422-property-sku-is-required": {
        "value": {
          "statusCode": 422,
          "errorCode": 1102,
          "errorMessage": "[0401-1102]: Unprocessable Entity. The property `sku` is required",
          "transactionId": "da145238620011eb8e24fe6913ff226a"
        }
      },
      "200-value-points-reward-chain_admin_get-value-point": {
        "value": {
          "sku": "com.xsolla.reward_vp_1",
          "name": {
            "en": "Reward VP 1"
          },
          "type": "value_point",
          "is_enabled": true,
          "description": {
            "en": "Points for reward system"
          },
          "long_description": {
            "en": "Points given to users to get new rewards in a reward chain."
          },
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "media_list": [],
          "order": 1,
          "is_clan": false,
          "can_delete": false
        }
      },
      "200-value-points-rewards-list": {
        "value": {
          "items": [
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_1",
              "name": {
                "en": "Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 100
            },
            {
              "item_id": 14232,
              "sku": "com.xsolla.booster_mega",
              "name": {
                "en": "Mega Booster"
              },
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "amount": 200
            }
          ]
        }
      },
      "200-client-get-reward-chains-list": {
        "value": {
          "has_more": false,
          "total_items_count": 1,
          "items": [
            {
              "reward_chain_id": 10,
              "name": "Weekly quest",
              "description": "Big weekly quest",
              "long_description": "You can get a lot of additional items just by shopping during the week",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-04-25T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.value_point_1",
                "name": "Value point",
                "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                "description": null,
                "long_description": null,
                "amount": 130
              },
              "clan_type": null,
              "top_contributors": [],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "weekly",
                "reset_next_date": 1746057600
              },
              "popup_header": null,
              "popup_instruction": null,
              "popup_image_url": null
            },
            {
              "reward_chain_id": 12,
              "name": "Weekly clan quest",
              "description": "Major weekly clan quest.",
              "long_description": "You and your clan members can get additional items for shopping during a certain month.",
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2023-10-15T18:16:00+05:00",
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": "Clan Reward VP 1",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "amount": 80
              },
              "clan_type": "guild",
              "top_contributors": [
                {
                  "name": "Rabbit",
                  "contributed_amount": 100
                },
                {
                  "name": "Rocket",
                  "contributed_amount": 80
                },
                {
                  "name": "Rain",
                  "contributed_amount": 40
                }
              ],
              "steps": [
                {
                  "step_id": 1,
                  "name": "Level 1",
                  "is_claimed": true,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 100
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 1
                    }
                  ]
                },
                {
                  "step_id": 2,
                  "name": "Level 2",
                  "is_claimed": false,
                  "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                  "price": {
                    "amount": 200
                  },
                  "reward": [
                    {
                      "sku": "com.xsolla.box_1",
                      "name": "Super box",
                      "type": "bundle",
                      "description": "Super box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.box_2",
                      "name": "Mega box",
                      "type": "bundle",
                      "description": "Mega box with items",
                      "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                      "quantity": 2
                    }
                  ]
                }
              ],
              "recurrent_schedule": {
                "interval_type": "monthly",
                "reset_next_date": 1746057600
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "popup_instruction": {
                "en": "You should be a clan member to get clan rewards. You join a clan when a clan member invited you to the clan, and you accepted the invite. You can create your own clan."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png"
            }
          ]
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "summary": "Reward chain example",
        "value": {
          "sku": "com.xsolla.value_point_1",
          "name": "Value point",
          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
          "description": null,
          "long_description": null,
          "amount": 130,
          "is_clan": false
        }
      },
      "200-client-get-user-clan-reward-chain-balance": {
        "summary": "Clan reward chain example",
        "value": {
          "sku": "com.xsolla.clan_value_point_1",
          "name": "Clan Reward VP 1",
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "description": "Value points for clan reward system.",
          "long_description": "Value points given to clans to get new rewards in a reward chain.",
          "amount": 80,
          "is_clan": true
        }
      },
      "200-client-update-user-clan": {
        "value": {
          "reward": [
            {
              "sku": "com.xsolla.box_1",
              "name": "Super box",
              "type": "bundle",
              "description": "Super box with items",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1,
              "bundle_type": "standard"
            },
            {
              "sku": "com.xsolla.potion_1",
              "name": "Mega potion",
              "type": "virtual_good",
              "description": "Mega potion",
              "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
              "quantity": 1
            }
          ]
        }
      },
      "200-reward-chain-list": {
        "value": {
          "has_more": true,
          "items": [
            {
              "name": {
                "en": "Reward chain"
              },
              "reward_chain_id": 1,
              "description": {
                "en": "Reward chain description"
              },
              "long_description": {
                "en": "Reward chain long description"
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 1,
              "periods": [
                {
                  "date_from": "2026-01-01T01:00:00+05:00",
                  "date_until": "2026-01-31T23:59:59+05:00"
                },
                {
                  "date_from": "2026-02-01T01:00:00+05:00",
                  "date_until": "2026-02-28T23:59:59+05:00"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.reward_vp_1",
                "name": {
                  "en": "Reward VP 1"
                },
                "type": "value_point",
                "is_enabled": true,
                "description": "Value points for standard reward system.",
                "long_description": "Value points given to users to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": false
              },
              "recurrent_schedule": null,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "is_always_visible": true,
              "is_reset_after_end": true
            },
            {
              "name": {
                "en": "Clan reward chain"
              },
              "reward_chain_id": 2,
              "description": {
                "en": "Clan reward chain description."
              },
              "long_description": {
                "en": "Clan reward chain long description."
              },
              "is_enabled": true,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "order": 1,
              "periods": [
                {
                  "date_from": "2026-01-01T01:00:00+05:00",
                  "date_until": "2026-01-31T23:59:59+05:00"
                },
                {
                  "date_from": "2026-02-01T01:00:00+05:00",
                  "date_until": "2026-02-28T23:59:59+05:00"
                }
              ],
              "value_point": {
                "sku": "com.xsolla.clan_value_point_1",
                "name": {
                  "en": "Clan Reward VP 1"
                },
                "is_enabled": true,
                "description": "Value points for clan reward system.",
                "long_description": "Value points given to clans to get new rewards in a reward chain.",
                "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                "media_list": [],
                "order": 1,
                "is_clan": true
              },
              "recurrent_schedule": {
                "day_of_month": null,
                "day_of_week": 2,
                "displayable_reset_next_date": "2026-01-06T01:00:00+05:00",
                "displayable_reset_start_date": "2026-01-01T01:00:00+05:00",
                "interval_type": "weekly",
                "reset_next_date": 1767643200,
                "time": "01:00:00+05:00"
              },
              "popup_header": {
                "en": "How to unlock rewards"
              },
              "popup_instruction": {
                "en": "You must be a clan member in order to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
              },
              "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "clan_type": "guild"
            }
          ]
        }
      },
      "200-reward-chain": {
        "summary": "Reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Reward chain"
          },
          "description": {
            "en": "Reward chain description"
          },
          "long_description": {
            "en": "Reward chain long description"
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "order": 1,
          "periods": [
            {
              "date_from": "2026-01-01T01:00:00+05:00",
              "date_until": "2026-01-31T23:59:59+05:00"
            },
            {
              "date_from": "2026-02-01T01:00:00+05:00",
              "date_until": "2026-02-28T23:59:59+05:00"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.reward_vp_1",
            "name": {
              "en": "Reward VP 1"
            },
            "type": "value_point",
            "is_enabled": true,
            "description": {
              "en": "Value points for reward system."
            },
            "long_description": {
              "en": "Value points given to users to get new rewards in a reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": false
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "recurrent_schedule": {
            "day_of_week": 2,
            "displayable_reset_next_date": "2026-01-06T01:00:00+05:00",
            "displayable_reset_start_date": "2026-01-01T01:00:00+05:00",
            "interval_type": "weekly",
            "reset_next_date": 1767643200,
            "time": "01:00:00+05:00"
          },
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "ork",
              "type": "string",
              "can_be_missing": false
            }
          ],
          "is_always_visible": true,
          "is_reset_after_end": true
        }
      },
      "200-clan-reward-chain": {
        "summary": "Clan reward chain example",
        "value": {
          "reward_chain_id": 1,
          "name": {
            "en": "Clan reward chain"
          },
          "description": {
            "en": "Clan reward chain description."
          },
          "long_description": {
            "en": "Clan reward chain long description."
          },
          "is_enabled": true,
          "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "order": 1,
          "periods": [
            {
              "date_from": "2020-04-15T18:16:00+05:00",
              "date_until": "2021-04-15T18:16:00+05:00"
            }
          ],
          "value_point": {
            "sku": "com.xsolla.clan_value_point_1",
            "name": {
              "en": "Clan Reward VP 1"
            },
            "is_enabled": true,
            "description": {
              "en": "Value points for clan reward system."
            },
            "long_description": {
              "en": "Value points given to clans to get new rewards in a certain reward chain."
            },
            "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
            "media_list": [],
            "order": 1,
            "is_clan": true
          },
          "steps": [
            {
              "name": {
                "en": "First step of the reward chain"
              },
              "step_id": 1,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_1",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_2",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 10
              }
            },
            {
              "name": {
                "en": "Second step of the reward chain"
              },
              "step_id": 2,
              "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
              "reward": [
                {
                  "sku": "com.xsolla.item_3",
                  "quantity": 5
                },
                {
                  "sku": "com.xsolla.item_4",
                  "quantity": 1
                }
              ],
              "price": {
                "amount": 15
              }
            }
          ],
          "recurrent_schedule": {
            "day_of_week": 2,
            "displayable_reset_next_date": "2023-03-07T11:00:00+08:00",
            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
            "interval_type": "weekly",
            "reset_next_date": 1677553200,
            "time": "11:00:00+08:00"
          },
          "popup_header": {
            "en": "How to unlock rewards"
          },
          "popup_instruction": {
            "en": "You must be a clan member in order to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
          },
          "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
          "clan_type": "guild"
        }
      },
      "200-admin-daily-chain-list": {
        "summary": "Daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 1,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 2,
              "name": {
                "en": "Monthly daily reward",
                "ru": "Ежедневные награды в цепочке на месяц"
              },
              "description": {
                "en": "Monthly daily reward short description"
              },
              "order": 2,
              "number_of_steps": 13,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-04-28T15:00:00+08:00",
              "is_enabled": false,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 3,
              "name": {
                "en": "Login reward"
              },
              "description": {
                "en": "Login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2023-05-01T18:16:00+05:00",
              "date_end": "2025-05-31T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_skippable"
            },
            {
              "id": 4,
              "name": {
                "en": "Daily reward",
                "ru": "Ежедневная награда"
              },
              "description": {
                "en": "Daily reward short description"
              },
              "order": 4,
              "number_of_steps": 10,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "calendar_hard"
            },
            {
              "id": 5,
              "name": {
                "en": "Unskippable login reward"
              },
              "description": {
                "en": "Unskippable login reward short description"
              },
              "order": 3,
              "number_of_steps": 7,
              "date_start": "2025-11-01T10:00:00+05:00",
              "date_end": "2025-11-30T10:00:00+05:00",
              "is_enabled": true,
              "is_recurrent": true,
              "type": "rolling_unskippable"
            }
          ]
        }
      },
      "422-admin-daily-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "Daily reward steps max amount limit of 30 items is exceeded. Try specifying less steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-steps-order": {
        "summary": "Incorrect steps order",
        "description": "Daily reward steps numbers sequence is incorrect. Correct step numbers should be sequential without any gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-daily-chain-error-item-limit-exceeded": {
        "summary": "Item limit exceeded",
        "description": "Daily reward step item count exceeds the allowed limit for some steps. Currently only 1 item per step is allowed.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-items": {
        "summary": "Incorrect step items",
        "description": "Specified items are not allowed, disabled or not found. Only enabled items of following types are allowed: virtual item, bundle, virtual currency package.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-daily-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "Please, ensure dates format is valid.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-daily-chain-error-incorrect-period": {
        "summary": "Incorrect period of a daily reward",
        "description": "Please ensure start date is earlier than end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-daily-chain": {
        "summary": "Daily reward example",
        "value": {
          "id": 3,
          "name": {
            "en": "Daily reward",
            "ru": "Ежедневная награда"
          },
          "description": {
            "en": "Daily reward short description"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "is_recurrent": false,
          "number_of_steps": 3,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 5
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды"
                  },
                  "image_url": "https://picture.bundle-picture.png",
                  "quantity": 2
                }
              ]
            }
          ],
          "is_enabled": true,
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-not-found": {
        "summary": "Daily reward is not found",
        "description": "Tägliche Belohnung wurde nicht gefunden.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "422-admin-daily-chain-error-invalid-chain-step-ids": {
        "summary": "Daily reward step IDs not found",
        "description": "Some of step IDs was not found. Please, double check if specified daily reward step IDs actually exist.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-daily-chain-error-chain-id-mismatch": {
        "summary": "Daily reward ID mismatch",
        "description": "Daily reward ID specified in the body does not match the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-daily-chain-error-duplicate-step-ids": {
        "summary": "Duplicate daily reward step IDs",
        "description": "Please, ensure that daily reward step IDs are unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-daily-chain-error-activated": {
        "summary": "Active daily reward cannot be updated",
        "description": "Active daily reward have to be deactivated before being updated.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      },
      "200-client-daily-chain-list": {
        "summary": "User's daily reward list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active daily reward",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 102,
              "name": "Active daily reward 2",
              "description": null,
              "date_start": "2025-05-01T18:16:00+05:00",
              "date_end": "2025-05-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1714560960
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1714647360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 103,
              "name": "Active daily reward 3",
              "description": null,
              "date_start": "2025-04-01T18:16:00+05:00",
              "date_end": "2025-04-03T18:16:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1711978560
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3
                    }
                  ],
                  "status": "blocked",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "calendar_hard"
            },
            {
              "id": 104,
              "name": "Active daily rolling reward",
              "description": null,
              "date_start": "2025-04-01T10:00:00+05:00",
              "date_end": "2025-04-28T10:00:00+05:00",
              "order": 1,
              "steps": [
                {
                  "step_number": 1,
                  "items": [
                    {
                      "item_id": 1001,
                      "sku": "item_one",
                      "name": "Item One",
                      "type": "virtual_good",
                      "description": "Item one description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "status": "claimed",
                  "unlocked_date": -1
                },
                {
                  "step_number": 2,
                  "items": [
                    {
                      "item_id": 1002,
                      "sku": "item_two",
                      "name": "Item Two",
                      "type": "virtual_good",
                      "description": "Item two description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claimable",
                  "unlocked_date": 1712064960
                },
                {
                  "step_number": 3,
                  "items": [
                    {
                      "item_id": 1003,
                      "sku": "item_three",
                      "name": "Item Three",
                      "type": "virtual_good",
                      "description": "Item three description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1
                    }
                  ],
                  "status": "claim_in_future",
                  "unlocked_date": 1712151360
                }
              ],
              "type": "rolling_skippable"
            }
          ]
        }
      },
      "200-client-daily-chain": {
        "summary": "User's daily reward example",
        "value": {
          "id": 101,
          "name": "Active daily reward",
          "description": "Active daily reward description",
          "date_start": "2025-04-01T18:16:00+05:00",
          "date_end": "2025-04-03T18:16:00+05:00",
          "order": 1,
          "steps": [
            {
              "step_number": 1,
              "items": [
                {
                  "item_id": 10001,
                  "sku": "bundle_with_items",
                  "name": "Bundle with awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "virtual_good_one",
                      "type": "virtual_good",
                      "description": "Virtual good one",
                      "image_url": "https://picture.virtual-good-picture.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 2,
                      "sku": "coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": false,
                      "quantity": 100
                    }
                  ],
                  "quantity": 1
                }
              ],
              "status": "blocked",
              "unlocked_date": 1711978560
            },
            {
              "step_number": 2,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claimed",
              "unlocked_date": 1712064960
            },
            {
              "step_number": 3,
              "items": [
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": "Healing potion",
                  "type": "virtual_good",
                  "description": "Heal 10% of your health",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 2
                }
              ],
              "status": "claimable",
              "unlocked_date": 1712151360
            },
            {
              "step_number": 4,
              "items": [
                {
                  "item_id": 9011,
                  "sku": "free_item",
                  "name": "Free item",
                  "type": "virtual_good",
                  "description": "store_item_0_lost_telescope_2_short_description",
                  "image_url": "https://picture.bundle-picture.png",
                  "is_free": false,
                  "quantity": 1
                }
              ],
              "status": "claim_in_future",
              "unlocked_date": 1712237760
            }
          ],
          "type": "calendar_hard"
        }
      },
      "404-daily-chain-step-not-found": {
        "summary": "Daily reward step not found",
        "description": "Daily reward step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Daily Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-daily-chain-claim-error-invalid-step": {
        "summary": "Can't claim step reward",
        "description": "Ensure the user has not previously claimed the reward and that the correct step in the daily reward is selected for claiming.",
        "value": {
          "statusCode": 422,
          "errorCode": 6405,
          "errorMessage": "[0401-6405]: This step is not available to be claimed by the user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-client-offer-chain-list": {
        "summary": "User's offer chain list example",
        "value": {
          "has_more": false,
          "total_items_count": 3,
          "items": [
            {
              "id": 101,
              "name": "Active offer chain",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 99.99,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 15,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 2,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 199.98,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 30,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 1,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 102,
              "name": "Active offer chain 2",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            },
            {
              "id": 103,
              "name": "Active offer chain 3",
              "description": null,
              "date_start": "2018-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "order": 1,
              "recurrent_schedule": null,
              "steps": [
                {
                  "step_number": 1,
                  "is_free": true,
                  "items": [
                    {
                      "item_id": 9011,
                      "sku": "free_item",
                      "name": "Free item",
                      "type": "virtual_good",
                      "description": "store_item_0_lost_telescope_2_short_description",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": true,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                },
                {
                  "step_number": 2,
                  "is_free": false,
                  "items": [
                    {
                      "item_id": 9012,
                      "sku": "health_potion",
                      "name": "Healing potion",
                      "type": "virtual_good",
                      "description": "Heal 10% of your health",
                      "image_url": "https://picture.bundle-picture.png",
                      "is_free": false,
                      "quantity": 3,
                      "order": 0
                    }
                  ],
                  "is_claimed": false,
                  "step_price": {
                    "amount": 299.97,
                    "currency": "USD"
                  },
                  "step_vp_rewards": [
                    {
                      "item_id": 6039,
                      "sku": "test_value_point_39",
                      "amount": 45,
                      "name": "store_item_0_test_value_point_name",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_clan": true
                    }
                  ]
                },
                {
                  "step_number": 3,
                  "is_free": true,
                  "items": [],
                  "is_claimed": false,
                  "step_price": null,
                  "step_vp_rewards": null
                }
              ],
              "next_step_number": 1
            }
          ]
        }
      },
      "200-client-offer-chain": {
        "summary": "User's offer chain example",
        "value": {
          "id": 4,
          "name": "Offer chain with bundles",
          "description": null,
          "date_start": "2010-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 7008,
                  "sku": "bundle_with_many_items",
                  "name": "Bundle with many awesome stuff!",
                  "type": "bundle",
                  "description": "Many stuff",
                  "image_url": "https://picture.bundle-with-many-stuff.png",
                  "bundle_type": "standard",
                  "is_free": false,
                  "content": [
                    {
                      "item_id": 1,
                      "sku": "d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "name": "Virtual Good Bundle",
                      "type": "virtual_good",
                      "description": "virtual_good_short_description_d0df11c5-f7c4-4907-9ae1-7dd40cecab05",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/female/accessory/female_crossnecklace_2_silver-01.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 7009,
                      "sku": "vg-in-bundle-big-rocket",
                      "name": "Big Rocket",
                      "type": "virtual_good",
                      "description": "Big Rocket - short description",
                      "image_url": "https://picture.bigrocket.png",
                      "is_free": false,
                      "quantity": 1
                    },
                    {
                      "item_id": 7010,
                      "sku": "vc-in-bundle-gold-coins",
                      "name": "Gold Coins",
                      "type": "virtual_currency",
                      "description": "Gold Coins - short description",
                      "image_url": "https://picture.gold_coins.png",
                      "is_free": true,
                      "quantity": 100
                    },
                    {
                      "item_id": 7011,
                      "sku": "digital-content-drm-in-bundle-awesome-game",
                      "name": "Some Game",
                      "type": "virtual_good",
                      "description": "Some Game - short description",
                      "image_url": "https://picture.some_game.png",
                      "is_free": true,
                      "quantity": 1
                    },
                    {
                      "item_id": 7012,
                      "sku": "bundle-in-bundle-another-bundle",
                      "name": "Some Bundle in Bundle",
                      "type": "bundle",
                      "description": "Bundle - short description",
                      "image_url": "https://picture.bundle-picture.png",
                      "bundle_type": "standard",
                      "is_free": true,
                      "content": [
                        {
                          "item_id": 7010,
                          "sku": "vc-in-bundle-gold-coins",
                          "name": "Gold Coins",
                          "type": "virtual_currency",
                          "description": "Gold Coins - short description",
                          "image_url": "https://picture.gold_coins.png",
                          "is_free": true,
                          "quantity": 1
                        }
                      ],
                      "quantity": 1
                    },
                    {
                      "item_id": 7013,
                      "sku": "lootbox-in-bundle-awesome-game",
                      "name": "Some Lootbox",
                      "type": "lootbox",
                      "description": "Lootbox in bundle - short description",
                      "image_url": "https://picture.lootbox-picture.png",
                      "is_free": true,
                      "quantity": 1
                    }
                  ],
                  "quantity": 5,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": {
                "amount": 499.95,
                "currency": "USD"
              },
              "step_vp_rewards": null
            },
            {
              "step_number": 2,
              "is_free": true,
              "items": [
                {
                  "item_id": 7007,
                  "sku": "bundle-empty",
                  "name": "Empty bundle",
                  "type": "bundle",
                  "description": "No",
                  "image_url": "https://picture.bundle-no-items.png",
                  "bundle_type": "standard",
                  "is_free": true,
                  "content": [],
                  "quantity": 10,
                  "order": 0
                }
              ],
              "is_claimed": false,
              "step_price": null,
              "step_vp_rewards": null
            }
          ],
          "next_step_number": 1
        }
      },
      "404-offer-chain-not-found": {
        "summary": "Chain not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6201,
          "errorMessage": "[0401-6201]: Chain not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 4
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "summary": "Chain step not found",
        "description": "Offer chain step was not found.",
        "value": {
          "statusCode": 404,
          "errorCode": 6304,
          "errorMessage": "[0401-6304]: Offer Chain Step not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 100,
            "step_number": 1
          }
        }
      },
      "422-offer-chain-claim-error-invalid-step": {
        "summary": "Cannot claim step reward",
        "description": "The user must claim all previous steps, and the request must use a valid call – <a href=\"/de/api/shop-builder/operation/order-user-offer-chain-step-reward\">Create order for paid offer chain step</a>, <a href=\"/de/api/shop-builder/operation/claim-user-offer-chain-step-reward\">Claim free offer chain step</a> for free ones.\n\nThis error is returned if one or more of the following conditions are not met:<ul><li>The offer chain exists, is enabled, and not deleted.</li><li>The target step exists, is enabled, and marked as free.</li><li>The step has not already been claimed by the user. In case of a recurring chain, this check is based on the user progress of the current iteration.</li><li>All previous steps in the chain (by step number) have been claimed or purchased. In case of a recurring chain, this check also considers the user progress of the current iteration.</li></ul>",
        "value": {
          "statusCode": 422,
          "errorCode": 6306,
          "errorMessage": "[0401-6306]: This step is not valid to claim by user.",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "chain_id": 1,
            "step_number": 1
          }
        }
      },
      "200-admin-offer-chain-list": {
        "summary": "Offer chain list example",
        "value": {
          "has_more": false,
          "items": [
            {
              "id": 1,
              "name": {
                "en": "New personalized default offer chain",
                "ru": "Новая персонализированная цепочка предложений по умолчанию",
                "de": "Neue personalisierte Standard-Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                "it": "Nuova catena di offerte personalizzata predefinita"
              },
              "description": {
                "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
              },
              "order": 1,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false
            },
            {
              "id": 2,
              "name": {
                "en": "New personalized offer chain",
                "ru": "Новая персонализированная цепочка предложений",
                "de": "Neue personalisierte Angebotskette",
                "fr": "Nouvelle chaîne d'offres personnalisée",
                "it": "Nuova catena di offerte personalizzata"
              },
              "description": {
                "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
              },
              "order": 2,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": true,
              "recurrent_schedule": null,
              "is_always_visible": false,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "elf",
                  "type": "string",
                  "can_be_missing": false
                },
                {
                  "attribute": "level",
                  "operator": "ge",
                  "value": "10",
                  "type": "number",
                  "can_be_missing": false
                },
                {
                  "attribute": "10_level_up_date",
                  "operator": "le",
                  "value": "2026-01-01T00:00:00",
                  "type": "date",
                  "can_be_missing": false
                }
              ]
            },
            {
              "id": 4,
              "name": {
                "en": "Weekly offer chain",
                "ru": "Еженедельная цепочка предложений",
                "de": "Wöchentliche Angebotskette",
                "fr": "Chaîne d'offres hebdomadaire",
                "it": "Catena di offerte settimanale"
              },
              "description": {
                "en": "Offer chain that resets weekly on Wednesdays at 07:00 GMT+3",
                "ru": "Цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 GMT+3",
                "de": "Angebotskette, die sich wöchentlich mittwochs um 07:00 Uhr GMT+3 zurücksetzt",
                "fr": "Chaîne d'offres qui se réinitialise chaque semaine le mercredi à 07h00 GMT+3",
                "it": "Catena di offerte che si resetta settimanalmente il mercoledì alle 07:00 GMT+3"
              },
              "order": 3,
              "date_start": "2023-04-15T18:16:00+05:00",
              "date_end": "2025-04-25T18:16:00+05:00",
              "is_enabled": false,
              "recurrent_schedule": {
                "interval_type": "weekly",
                "day_of_week": 3,
                "time": "07:00:00+03:00",
                "displayable_reset_start_date": "2018-12-05T07:00:00+03:00",
                "displayable_reset_next_date": "2018-12-05T07:00:00+03:00",
                "reset_next_date": 1543982400
              },
              "is_always_visible": true
            },
            {
              "id": 5,
              "name": {
                "en": "Monthly offer chain",
                "ru": "Ежемесячная цепочка предложений",
                "de": "Monatliche Angebotskette",
                "fr": "Chaîne d'offres mensuelle",
                "it": "Catena di offerte mensile"
              },
              "description": {
                "en": "Offer chain that resets monthly on the 28th at 15:00 GMT+8",
                "ru": "Цепочка предложений, которая сбрасывается ежемесячно 28-го числа в 15:00 GMT+8",
                "de": "Angebotskette, die sich monatlich am 28. um 15:00 Uhr GMT+8 zurücksetzt",
                "fr": "Chaîne d'offres qui se réinitialise mensuellement le 28 à 15h00 GMT+8",
                "it": "Catena di offerte che si resetta mensilmente il 28 alle 15:00 GMT+8"
              },
              "order": 4,
              "date_start": "2025-04-15T00:00:00+08:00",
              "date_end": "2025-08-28T15:00:00+08:00",
              "is_enabled": true,
              "recurrent_schedule": {
                "interval_type": "monthly",
                "day_of_month": 28,
                "time": "15:00:00+08:00",
                "displayable_reset_start_date": "2025-05-28T15:00:00+08:00",
                "displayable_reset_next_date": "2025-05-28T15:00:00+08:00",
                "reset_next_date": 1748415600
              },
              "is_always_visible": true
            }
          ]
        }
      },
      "422-admin-offer-chain-error-too-many-steps": {
        "summary": "Too many steps",
        "description": "The number of offer chain steps exceeds the allowed limit of 30. Try specifying fewer steps.",
        "value": {
          "statusCode": 422,
          "errorCode": 6203,
          "errorMessage": "[0401-6203]: Chain step count exceeds the allowed limit",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "step_count": 31,
            "max_steps": 30
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-steps-order": {
        "summary": "Invalid steps order",
        "description": "The sequence of offer chain step numbers is incorrect. Step numbers must be sequential, without gaps or duplicates.",
        "value": {
          "statusCode": 422,
          "errorCode": 6210,
          "errorMessage": "[0401-6210]: Chain step numbers are invalid",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "incorrect_step_numbers": {
              "duplicates": [
                2,
                7
              ],
              "out_of_range": [
                7,
                8
              ],
              "missing": [
                3,
                4,
                5,
                6
              ]
            }
          }
        }
      },
      "422-admin-offer-chain-error-item-limit-exceeded": {
        "summary": "Item limit exceeded",
        "description": "The number of items in one or more offer chain steps exceeds the allowed limit. Currently, only one item per step is allowed.",
        "value": {
          "statusCode": 422,
          "errorCode": 6208,
          "errorMessage": "[0401-6208]: Chain step item count exceeds the allowed limit for some steps",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "max_items": 1,
            "steps_exceeded_limits": [
              {
                "step_number": 1,
                "items_count": 2
              },
              {
                "step_number": 4,
                "items_count": 3
              }
            ]
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-items": {
        "summary": "Invalid step items",
        "description": "Specified items are either unavailable, or not found. Only enabled items of the following types are supported: virtual items, bundles, and virtual currency packages.",
        "value": {
          "statusCode": 422,
          "errorCode": 6211,
          "errorMessage": "[0401-6211]: Chain steps items are not allowed or not found",
          "transactionId": "x-x-xX-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "invalid_items": {
              "not_found": [
                "vg_deleted_item_1",
                "vg_deleted_item_2",
                "not_existing_sku_404_1",
                "not_existing_sku_404_2"
              ],
              "disabled": [
                "vg_disabled_item_1",
                "vg_disabled_item_2",
                "vc_disabled_1"
              ],
              "invalid_item_type": {
                "allowed_item_type_list": [
                  "virtual_good",
                  "bundle"
                ],
                "sku_map": {
                  "vc_enabled_shown_in_store_1": "virtual_currency",
                  "vc_disabled_1": "virtual_currency",
                  "unit_enabled_shown_in_store_1": "unit",
                  "gk_steam_enabled_shown_in_store_1": "game_key"
                }
              }
            }
          }
        }
      },
      "422-admin-offer-chain-error-invalid-dates": {
        "summary": "Invalid date format",
        "description": "The date format must be valid. Use <a href=\"https://en.wikipedia.org/wiki/ISO_8601\" target=\"_blank\">ISO 8601</a> format.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_format_dates": {
              "date_start": "2023-04-15 17:16:00Z",
              "date_end": "2025-04-25 19:16:00Z"
            }
          }
        }
      },
      "422-admin-offer-chain-error-incorrect-period": {
        "summary": "Invalid chain period",
        "description": "The start date must be earlier than the end date.",
        "value": {
          "statusCode": 422,
          "errorCode": 6204,
          "errorMessage": "[0401-6204]: Period of a chain is invalid. Please, check the dates in your request",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "invalid_periods": [
              {
                "start": "2025-04-25T18:16:00+05:00",
                "end": "2023-04-15T18:16:00+05:00"
              }
            ]
          }
        }
      },
      "200-admin-offer-chain": {
        "summary": "Offer chain example",
        "value": {
          "id": 3,
          "name": {
            "en": "Offer chain",
            "ru": "Цепочка",
            "de": "Angebotskette",
            "fr": "Chaîne d'offres",
            "it": "Catena di offerte"
          },
          "description": {
            "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
            "ru": "Персонализированная цепочка предложений - для эльфов 10 уровня и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
            "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
            "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
            "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
          },
          "date_start": "2023-04-15T18:16:00+05:00",
          "date_end": "2025-04-25T18:16:00+05:00",
          "order": 1,
          "recurrent_schedule": null,
          "steps": [
            {
              "step_id": 7,
              "step_number": 1,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture.vg.sku-telescope.png",
                  "quantity": 1,
                  "order": 1
                },
                {
                  "item_id": 9012,
                  "sku": "health_potion",
                  "name": {
                    "en": "Healing potion",
                    "ru": "Зелье лечения",
                    "de": "Heiltrank",
                    "fr": "Potion de soin",
                    "it": "Pozione curativa"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Heal 10% of your health",
                    "ru": "Лечит 10% здоровья",
                    "de": "Heilt 10% deiner Gesundheit",
                    "fr": "Soigne 10% de votre santé",
                    "it": "Cura il 10% della tua salute"
                  },
                  "image_url": "https://cdn.picture/vg-sku-health_potion.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 6,
              "step_number": 2,
              "is_free": false,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 5,
                  "order": 0
                }
              ]
            },
            {
              "step_id": 5,
              "step_number": 3,
              "is_free": true,
              "items": [
                {
                  "item_id": 9010,
                  "sku": "telescope",
                  "name": {
                    "en": "Telescope",
                    "ru": "Телескоп",
                    "de": "Teleskop",
                    "fr": "Télescope",
                    "it": "Telescopio"
                  },
                  "type": "virtual_good",
                  "description": {
                    "en": "Allows to see the stars",
                    "ru": "Позволяет увидеть звезды",
                    "de": "Ermöglicht das Betrachten der Sterne",
                    "fr": "Permet de voir les étoiles",
                    "it": "Permette di vedere le stelle"
                  },
                  "image_url": "https://cdn.picture/vg-sku-telescope.png",
                  "quantity": 2,
                  "order": 0
                }
              ]
            }
          ],
          "is_enabled": true,
          "is_always_visible": false,
          "attribute_conditions": [
            {
              "attribute": "race",
              "operator": "eq",
              "value": "elf",
              "type": "string",
              "can_be_missing": false
            },
            {
              "attribute": "level",
              "operator": "ge",
              "value": "10",
              "type": "number",
              "can_be_missing": false
            },
            {
              "attribute": "10_level_up_date",
              "operator": "le",
              "value": "2026-01-01T00:00:00",
              "type": "date",
              "can_be_missing": false
            }
          ]
        }
      },
      "422-admin-offer-chain-error-invalid-chain-step-ids": {
        "summary": "Chain step IDs not found",
        "description": "Some of the step IDs were not found. Double-check that the specified chain step IDs exist. To do this, use the <a href=\"/de/api/shop-builder/operation/order-user-offer-chain-step-reward#tag/offer-chain-admin/operation/admin-get-offer-chain\">Get offer chain</a> call.",
        "value": {
          "statusCode": 404,
          "errorCode": 6206,
          "errorMessage": "[0401-6206]: Chain step IDs not found",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 1,
            "chain_step_id_list": [
              404000
            ]
          }
        }
      },
      "422-admin-offer-chain-error-chain-id-mismatch": {
        "summary": "Chain ID mismatch",
        "description": "Offer chain ID in the request body does not match the ID in the URL.",
        "value": {
          "statusCode": 422,
          "errorCode": 6205,
          "errorMessage": "[0401-6205]: Chain ID mismatch. Please, check the chain ID in your request body and URL",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "url_chain_id": 1,
            "body_chain_id": 2
          }
        }
      },
      "422-admin-offer-chain-error-duplicate-step-ids": {
        "summary": "Duplicate chain step IDs",
        "description": "Chain step IDs must be unique in the request body.",
        "value": {
          "statusCode": 422,
          "errorCode": 6207,
          "errorMessage": "[0401-6207]: Duplicate chain step IDs detected in the request body",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_step_id_list": [
              8,
              9,
              10
            ],
            "chain_id": 3
          }
        }
      },
      "422-admin-offer-chain-error-activated": {
        "summary": "Active offer chain cannot be updated",
        "description": "Active offer chain has to be deactivated before being updated. To do this, use the <a href=\"/de/api/shop-builder/operation/admin-toggle-offer-chain\">Toggle offer chain</a> call.",
        "value": {
          "statusCode": 422,
          "errorCode": 6209,
          "errorMessage": "[0401-6209]: Active chain cannot be updated. Please deactivate it first",
          "transactionId": "x-x-x-x-transactionId-mock-x-x-x",
          "errorMessageExtended": {
            "project_id": 0,
            "chain_id": 2
          }
        }
      }
    },
    "responses": {
      "Promotions_200-get-promotions": {
        "description": "Die Liste der Werbeaktionen wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promotions"
              }
            }
          }
        }
      },
      "Promotions_401-invalid-basic-auth": {
        "description": "Basisauthentifizierung nicht bestanden oder falsch. Prüfen Sie die Anmeldedaten und vergewissern Sie sich, dass Sie die Basisauthentifizierung verwenden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "Promotions_422-activate-deactivate-promotion": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9505]: Error was occurred while promotion was being updated"
                },
                "transactionId": {
                  "type": "string",
                  "example": "da145238620011eb8e24fe6913ff226a"
                }
              }
            },
            "examples": {
              "Error was occurred": {
                "$ref": "#/components/examples/422-activate-deactivate-promotion"
              }
            }
          }
        }
      },
      "200-admin-get-redeemable-by-code": {
        "description": "Die Werbeaktion wurde erfolgreich angenommen.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin-promotions_200-get-redeemable-coupon-promotion-model"
            },
            "examples": {
              "Promo Code Response": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2023-05-01T01:00:00+05:00",
                      "date_until": "2023-05-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2023-06-01T01:00:00+05:00",
                      "date_until": "2023-06-30T23:59:59+05:00"
                    }
                  ],
                  "bonus": [],
                  "is_enabled": true,
                  "external_id": "falls2023",
                  "name": {
                    "ru": "Скидка по промокоду на Epic Fall Hammer",
                    "en": "Promo Code discount for Epic Fall Hammer"
                  },
                  "redeem_total_limit": 2,
                  "redeem_user_limit": 3,
                  "redeem_code_limit": null,
                  "total_limit_state": {
                    "available": 1,
                    "reserved": 1,
                    "used": 0
                  },
                  "discount": {
                    "percent": null
                  },
                  "discounted_items": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "discount": {
                        "percent": "20.00"
                      }
                    }
                  ]
                }
              },
              "Coupon Response": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2023-04-15T01:00:00+05:00",
                      "date_until": "2023-04-30T23:59:59+05:00"
                    },
                    {
                      "date_from": "2023-05-15T01:00:00+05:00",
                      "date_until": "2023-05-30T23:59:59+05:00"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "epic_fall_hammer_1",
                      "quantity": 3
                    }
                  ],
                  "is_enabled": true,
                  "external_id": "coupon_fall_hammer_2",
                  "name": {
                    "en": "This is a Coupon code for Epic Fall Hammer",
                    "ru": "Eto kod kupona на Epic Fall Hammer"
                  },
                  "redeem_total_limit": 99,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": null
                }
              }
            }
          }
        }
      },
      "401-invalid-basic-auth": {
        "description": "Basisauthentifizierung nicht bestanden oder falsch. Prüfen Sie die Anmeldedaten und vergewissern Sie sich, dass Sie die Basisauthentifizierung verwenden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "404-code-not-found": {
        "description": "Einlösbarer Code nicht gefunden. Stellen Sie sicher, dass der angegebene Codewert korrekt ist.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9811,
                  "errorMessage": "[0401-9811]: Code not found."
                }
              }
            }
          }
        }
      },
      "405-method-not-found": {
        "description": "Falsches Format des einlösbaren Codes. Der Code darf nur Buchstaben und Ziffern enthalten.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 405
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 405,
                  "errorCode": 0,
                  "errorMessage": "Method is not allowed. Method must be one of: OPTIONS"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-redeemed": {
        "description": "Gutschein wurde erfolgreich eingelöst.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Artikelpreise.",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Reduzierter Artikelpreis."
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Artikelpreis."
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "Währung des Artikelpreises. Dreistelliger Code pro [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
                          }
                        }
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "Art des virtuellen Gegenstands.\n\nMögliche Werte:\n- `consumable` – ein Gegenstand, der nach dem Gebrauch aus dem Inventar verschwindet (z. B. Munition).\n- `non_consumable` – ein Gegenstand, der unbegrenzt lange im Inventar verbleibt.\n- `non_renewing_subscription` – ein zeitlich begrenzter Artikel, der den Zugang zu Services oder Inhalten für einen begrenzten Zeitraum gewährt.",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "type": "boolean"
                      },
                      "attributes": {
                        "type": "array"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 1,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": []
                    }
                  ]
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": true,
                      "name": "Xsolla Booster Mega",
                      "price": null,
                      "quantity": 1,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": []
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_401-invalid-client-auth": {
        "description": "Authentifizierung nicht bestanden oder falsch.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "Promotions_403-auth-header": {
        "description": "Autorisierungs-Header nicht gesendet.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Autorisierungs-Header nicht gesendet."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Promotions_404-coupon": {
        "description": "Geben Sie einen gültigen Gutscheincode ein.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid coupon code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_422-redeem-coupon": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `coupon_code` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-coupon-rewards": {
        "description": "Die Liste der Gutscheinprämien wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "bonus": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-coupon-bonus-reward"
                  }
                },
                "is_selectable": {
                  "type": "boolean",
                  "description": "Ist `true` eingestellt, sollte der Nutzer vor dem Einlösen eines Gutscheins den Bonus auswählen."
                },
                "discount": {
                  "$ref": "#/components/schemas/Promotions_200-coupon-discount-reward"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-coupon-rewards"
              }
            }
          }
        }
      },
      "Promotions_422-rewards": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Promotions_422_limit_error"
                },
                {
                  "$ref": "#/components/schemas/Promotions_422_reglock_error"
                }
              ]
            }
          }
        }
      },
      "Promotions_200-get-coupons": {
        "description": "Gutscheinliste wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-promotions_200-get-coupon-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-coupons"
              }
            }
          }
        }
      },
      "Promotions_422-invalid-coupon": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `external_id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-coupon": {
        "description": "Gutschein nicht gefunden. Prüfen Sie, ob die `external_id` korrekt ist.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Coupon not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-error": {
        "description": "Fehler beim Empfangen der Werbeaktion vom Werbeaktionsdienst.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Error occurred while receiving the promotion from the promotion service"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-coupon-code-list": {
        "description": "Die Liste der Codes für einen Gutschein wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Gesamtzahl der Gutscheincodes."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_201-coupon-promocode-code-created": {
        "description": "Code wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "code": "WINTER2021"
                }
              }
            }
          }
        }
      },
      "Promotions_422-coupon-promocode-same-code-exists": {
        "description": "Ungültige Anfrage. Der Code existiert bereits.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9803
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9803]: The code already exists."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9803,
                  "errorMessage": "[0401-9803]: The code already exists.",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promocode": {
        "description": "Promocode nicht gefunden. Stellen Sie sicher, dass die `external_id` korrekt ist.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9802]: Promocode not found"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promo-code-redeemed": {
        "description": "Promocode wurde erfolgreich eingelöst.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "Warenkorb-ID."
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "example": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "example": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "example": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "Warenkorbpreis."
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "description": {
                        "type": "string"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                },
                "rewards": {
                  "$ref": "#/components/schemas/Promo_code_rewards"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": false
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    },
                    {
                      "attributes": [],
                      "description": "Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully Functional, Battle Ready - Black TPR, Steel Guard and Pommel.",
                      "groups": [],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": true,
                      "name": "Sword Xsolla Skin",
                      "price": [],
                      "quantity": 1,
                      "sku": "com.xsolla.swords_1",
                      "type": "virtual_good",
                      "virtual_item_type": "non_consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "12300.0000000000000000",
                    "currency": "USD"
                  },
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "name": "Sword Xsolla Skin",
                          "sku": "com.xsolla.swords_1",
                          "type": "virtual_good",
                          "virtual_item_type": "non_consumable",
                          "description": "Honshu Boshin Wakizashi - Modern Tactical Samurai / Ninja Sword - Hand Forged 1060 Carbon Steel - Full Tang, Fully Functional, Battle Ready - Black TPR, Steel Guard and Pommel.",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png"
                        },
                        "quantity": 1
                      }
                    ],
                    "discount": {
                      "percent": null
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.booster_mega_1",
                        "discount": {
                          "percent": "50.00"
                        }
                      }
                    ],
                    "is_selectable": false
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-promo-code": {
        "description": "Geben Sie einen gültigen Promocode ein.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9807]: Enter valid promo code."
                }
              },
              "type": "object"
            }
          }
        }
      },
      "Promotions_200-promo-code-canceled": {
        "description": "Promocode wurde erfolgreich storniert.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart_id": {
                  "type": "string",
                  "example": "cart_id",
                  "description": "Warenkorb-ID."
                },
                "price": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "amount": {
                      "type": "string",
                      "default": "50.0000000000000000"
                    },
                    "amount_without_discount": {
                      "type": "string",
                      "default": "100.0000000000000000"
                    },
                    "currency": {
                      "type": "string",
                      "default": "USD"
                    }
                  },
                  "example": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  },
                  "description": "Warenkorbpreis."
                },
                "is_free": {
                  "$ref": "#/components/schemas/value-is_free"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string"
                      },
                      "groups": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "external_id": {
                              "type": "string"
                            },
                            "name": {
                              "type": "string"
                            }
                          }
                        }
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "type": {
                        "type": "string"
                      },
                      "virtual_item_type": {
                        "type": "string",
                        "example": "non-consumable",
                        "description": "Art des virtuellen Gegenstands.\n\nMögliche Werte:\n- `consumable` – ein Gegenstand, der nach dem Gebrauch aus dem Inventar verschwindet (z. B. Munition).\n- `non_consumable` – ein Gegenstand, der unbegrenzt lange im Inventar verbleibt.\n- `non_renewing_subscription` – ein zeitlich begrenzter Artikel, der den Zugang zu Services oder Inhalten für einen begrenzten Zeitraum gewährt.",
                        "enum": [
                          "consumable",
                          "non_consumable",
                          "non_renewing_subscription"
                        ]
                      },
                      "virtual_prices": {
                        "type": "array"
                      },
                      "description": {
                        "type": "string"
                      },
                      "attributes": {
                        "$ref": "#/components/schemas/client-attributes"
                      },
                      "image_url": {
                        "type": "string"
                      },
                      "quantity": {
                        "type": "integer"
                      },
                      "is_free": {
                        "$ref": "#/components/schemas/value-is_free"
                      },
                      "price": {
                        "type": [
                          "object",
                          "null"
                        ],
                        "description": "Artikelpreise.",
                        "properties": {
                          "amount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Reduzierter Artikelpreis."
                          },
                          "amount_without_discount": {
                            "type": "string",
                            "example": "2.9900",
                            "description": "Artikelpreis."
                          },
                          "currency": {
                            "type": "string",
                            "example": "USD",
                            "description": "Währung des Artikelpreises. Dreistelliger Code pro [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)."
                          }
                        }
                      },
                      "promotions": {
                        "$ref": "#/components/schemas/Catalog_item_promotions"
                      },
                      "can_be_bought": {
                        "$ref": "#/components/schemas/Can_be_bought"
                      },
                      "vp_rewards": {
                        "$ref": "#/components/schemas/client-item-value-point-reward"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Catalog_item_limits"
                      },
                      "periods": {
                        "$ref": "#/components/schemas/item-periods"
                      }
                    }
                  },
                  "example": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ]
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "cart_id": "cart_id",
                  "is_free": false,
                  "items": [
                    {
                      "attributes": [],
                      "description": "Take it, take it all! All of Xsolla's riches in one Mega Booster.",
                      "groups": [
                        {
                          "external_id": "powerups",
                          "name": "Power Ups"
                        }
                      ],
                      "image_url": "https://cdn.xsolla.net/img/misc/images/e9f2f4a634bc96ea03b5d5ceadd7c55f.png",
                      "is_free": false,
                      "name": "Xsolla Booster Mega",
                      "price": {
                        "amount": "50.0000000000000000",
                        "amount_without_discount": "100.0000000000000000",
                        "currency": "USD"
                      },
                      "quantity": 123,
                      "sku": "com.xsolla.booster_mega_1",
                      "type": "virtual_good",
                      "virtual_item_type": "consumable",
                      "virtual_prices": [],
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": {
                            "percent": "50.00"
                          },
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            }
                          ]
                        }
                      ],
                      "can_be_bought": true,
                      "vp_rewards": [
                        {
                          "item_id": 175232,
                          "sku": "com.xsolla.value_point_1",
                          "amount": 130,
                          "name": "Value point",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg"
                        },
                        {
                          "item_id": 186321,
                          "sku": "com.xsolla.clan_value_point_1",
                          "amount": 50,
                          "name": "Clan Reward VP 1",
                          "image_url": "https://cdn3.xsolla.com/img/misc/images/54c0cf9d345817cdacfdde198db178e0.jpg",
                          "is_clan": true
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "total": 5
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ]
                    }
                  ],
                  "price": {
                    "amount": "6150.0000000000000000",
                    "amount_without_discount": "6150.0000000000000000",
                    "currency": "USD"
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_422-cancel-promo-code": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `id` is required"
                }
              }
            }
          }
        }
      },
      "Promotions_200-promocode-rewards": {
        "description": "Die Liste der Promocode-Prämien wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promo_code_rewards"
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-get-promocode-rewards"
              }
            }
          }
        }
      },
      "Promotions_200-get-promocodes": {
        "description": "Die Liste der Promocodes wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-promocode-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-promocodes"
              }
            }
          }
        }
      },
      "Promotions_200-promocode-code-list": {
        "description": "Die Liste der Codes für einen Promocode wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Gesamtzahl der Codes für einen Promocode."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "Promotions_200-get-item-promotions": {
        "description": "Die Liste der Artikelaktionen wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "integer",
                        "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                      },
                      "promotion_periods": {
                        "$ref": "#/components/schemas/promotion_periods"
                      },
                      "is_enabled": {
                        "$ref": "#/components/schemas/Promotions_is_enabled"
                      },
                      "name": {
                        "type": "object",
                        "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten, wobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
                        "additionalProperties": {
                          "type": "string"
                        },
                        "example": {
                          "en-US": "Promotion",
                          "ru-RU": "Акция"
                        }
                      },
                      "discount": {
                        "type": "object",
                        "properties": {
                          "percent": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "description": "Prozentualer Rabatt.\nDer Preis des Artikels wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet wird.",
                            "default": "10.00"
                          }
                        }
                      },
                      "items": {
                        "type": [
                          "array",
                          "null"
                        ],
                        "items": {
                          "description": "Die Liste der Artikel, bei denen der Rabatt greift.",
                          "type": "object",
                          "properties": {
                            "sku": {
                              "type": [
                                "string",
                                "null"
                              ],
                              "description": "Artikel-SKU.",
                              "default": "elven_sword"
                            }
                          }
                        }
                      },
                      "attribute_conditions": {
                        "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-get"
                      },
                      "limits": {
                        "$ref": "#/components/schemas/Promotions_promotion_limits_response"
                      },
                      "excluded_promotions": {
                        "$ref": "#/components/schemas/excluded_promotions"
                      },
                      "price_conditions": {
                        "$ref": "#/components/schemas/price_conditions_discount"
                      }
                    }
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "20.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_sword_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_1"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_1"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "excluded_promotions": [
                        1,
                        3
                      ]
                    },
                    {
                      "id": 3,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": [
                        {
                          "sku": "com.xsolla.elven_helmet_2"
                        },
                        {
                          "sku": "com.xsolla.elven_armor_2"
                        }
                      ],
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    },
                    {
                      "id": 4,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "is_enabled": true,
                      "discount": {
                        "percent": "10.00"
                      },
                      "items": null,
                      "name": {
                        "en-US": "Promotion",
                        "ru-RU": "Акция"
                      },
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "lt",
                          "value": "20.0000"
                        }
                      ]
                    }
                  ],
                  "total_promotions_count": 4,
                  "active_promotions_count": 4,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_201-create-promotion": {
        "description": "Werbeaktion wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotion_id": 2384756
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-items-property": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `items` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `items` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_404-admin-promotion": {
        "description": "Werbeaktion nicht gefunden. Prüfen Sie, ob die `promotion_id` korrekt ist.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9502
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              },
              "type": "object"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9502,
                  "errorMessage": "[0401-9502]: Can not find promotion with ID = 111425 in project 59080"
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-bonus-promotions": {
        "description": "Die Liste der Bonusaktionen wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotions": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "promotions": [
                    {
                      "id": 1,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        },
                        {
                          "date_from": "2020-05-15T18:16:00+05:00",
                          "date_until": "2020-05-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "New Year Bonus",
                        "de-DE": "Neujahrsbonus"
                      },
                      "is_enabled": true,
                      "condition": [
                        {
                          "sku": "com.xsolla.elven_boots_1"
                        },
                        {
                          "sku": "com.xsolla.elven_knife_1"
                        }
                      ],
                      "bonus": [
                        {
                          "sku": "com.xsolla.elven_sword_1",
                          "quantity": 1
                        },
                        {
                          "sku": "com.xsolla.elven_shield_1",
                          "quantity": 2
                        },
                        {
                          "sku": "com.xsolla.elven_gloves_1",
                          "quantity": 2
                        }
                      ],
                      "limits": {
                        "per_user": null,
                        "per_item": null,
                        "recurrent_schedule": null
                      }
                    },
                    {
                      "id": 2,
                      "promotion_periods": [
                        {
                          "date_from": "2020-04-15T18:16:00+05:00",
                          "date_until": "2020-04-25T18:16:00+05:00"
                        }
                      ],
                      "name": {
                        "en-US": "Summer season bonus",
                        "de-DE": "Sommersaison Bonus"
                      },
                      "is_enabled": true,
                      "condition": null,
                      "bonus": [
                        {
                          "sku": "com.xsolla.diamonds_1",
                          "quantity": 100
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 10
                        },
                        "per_item": null,
                        "recurrent_schedule": {
                          "per_user": {
                            "interval_type": "daily",
                            "time": "11:00:00+08:00",
                            "reset_next_date": 1677553200,
                            "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                            "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                          }
                        }
                      },
                      "price_conditions": [
                        {
                          "operator": "gt",
                          "value": "10.0000"
                        },
                        {
                          "operator": "lt",
                          "value": "50.0000"
                        }
                      ],
                      "excluded_promotions": [
                        1
                      ]
                    }
                  ],
                  "total_promotions_count": 2,
                  "active_promotions_count": 2,
                  "inactive_promotions_count": 0
                }
              }
            }
          }
        }
      },
      "Promotions_422-admin-promotion-missed-bonus-property": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1102
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1102]:  Unprocessable Entity. The property `bonus` is required"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `bonus` is required",
                  "transactionId": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_200-admin-get-bonus-promotion": {
        "description": "Bonusaktion wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Promotions_200-get-bonus-promotion-model"
            },
            "examples": {
              "response": {
                "value": {
                  "id": 1,
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "is_enabled": true,
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ],
                  "limits": {
                    "per_user": {
                      "total": 10
                    },
                    "per_item": null,
                    "recurrent_schedule": {
                      "per_user": {
                        "interval_type": "daily",
                        "time": "11:00:00+08:00",
                        "reset_next_date": 1677553200,
                        "displayable_reset_start_date": "2023-02-28T11:00:00+08:00",
                        "displayable_reset_next_date": "2023-02-28T11:00:00+08:00"
                      }
                    }
                  },
                  "excluded_promotions": [
                    23,
                    45
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_200-verify-promo-code": {
        "description": "Informationen zum Code.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "description": "Art des Codes: `promocode`/`coupon`."
                },
                "code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                },
                "rewards": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/Coupon_rewards"
                    },
                    {
                      "$ref": "#/components/schemas/Promo_code_rewards_verify"
                    }
                  ]
                }
              }
            },
            "examples": {
              "coupon info": {
                "value": {
                  "type": "coupon",
                  "code": "WINTER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_1",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "name": "Game name",
                              "type": "game_key",
                              "is_free": false,
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            },
                            {
                              "sku": "com.xsolla.game_key_02",
                              "name": "Game name",
                              "type": "game_key",
                              "drm_name": "Origin",
                              "drm_sku": "origin_key_1"
                            }
                          ]
                        },
                        "quantity": 1
                      },
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "is_selectable": true
                  }
                }
              },
              "promocode info": {
                "value": {
                  "type": "promocode",
                  "code": "SUMMER2023",
                  "rewards": {
                    "bonus": [
                      {
                        "item": {
                          "sku": "com.xsolla.game_2",
                          "name": "Game name",
                          "type": "unit",
                          "description": "Game description",
                          "image_url": "https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png",
                          "unit_items": [
                            {
                              "sku": "com.xsolla.game_key_01",
                              "type": "game_key",
                              "name": "Game name",
                              "drm_name": "Steam",
                              "drm_sku": "steam_key_1"
                            }
                          ]
                        },
                        "quantity": 2
                      }
                    ],
                    "discount": {
                      "percent": "10.00"
                    },
                    "discounted_items": [
                      {
                        "sku": "com.xsolla.elven_sword_1",
                        "name": "Elven sword",
                        "type": "virtual_good",
                        "description": "sword",
                        "image_url": null,
                        "discount": {
                          "percent": "10.00"
                        }
                      }
                    ],
                    "is_selectable": true
                  }
                }
              }
            }
          }
        }
      },
      "Promotions_404-verify-promo-code": {
        "description": "Code nicht gefunden. Prüfen Sie, ob der `code`-Wert korrekt ist.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9811
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9811]: Code not found."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            }
          }
        }
      },
      "Promotions_422-verify-promo-code": {
        "description": "Ungültige Code-Aktion.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "errorCode": {
                  "type": "integer"
                },
                "statusCode": {
                  "type": "integer"
                },
                "errorMessage": {
                  "type": "string"
                }
              }
            },
            "examples": {
              "code redemption limit": {
                "value": {
                  "errorCode": 9804,
                  "statusCode": 422,
                  "errorMessage": "[0401-9804]: You have reached the coupon redemption limit."
                }
              },
              "regionally restricted": {
                "value": {
                  "errorCode": 9808,
                  "statusCode": 422,
                  "errorMessage": "[0401-9808]: Coupon is not available in your region."
                }
              }
            }
          }
        }
      },
      "Promotions_200-get-unique-catalog-offers": {
        "description": "Die Liste der Gutscheine wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Promotions_200-get-unique-catalog-offer-promotion-model"
                  }
                },
                "total_promotions_count": {
                  "$ref": "#/components/schemas/total_promotions_count"
                },
                "active_promotions_count": {
                  "$ref": "#/components/schemas/active_promotions_count"
                },
                "inactive_promotions_count": {
                  "$ref": "#/components/schemas/inactive_promotions_count"
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-admin-unique-catalog-offers"
              }
            }
          }
        }
      },
      "Promotions_200-unique-catalog-offer-code-list": {
        "description": "Die Liste der Codes für ein Katalogsonderangebot wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "codes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "code": {
                        "$ref": "#/components/schemas/Promotions_coupon_code"
                      }
                    }
                  }
                },
                "total_count": {
                  "type": "number",
                  "description": "Gesamtzahl der Codes für Katalogsonderangebote."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/Promotions_200-coupon-code-list"
              }
            }
          }
        }
      },
      "200-admin-get-user-promo-code-limits": {
        "description": "Promocode-Limits für einen Nutzer erfolgreich erhalten.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promo-code"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "Common_401-invalid-basic-auth": {
        "description": "Basic authentication credentials are not provided or are incorrect. Make sure you use basic authentication and verify that your credentials are correct.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1020
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1020,
                  "errorMessage": "[0401-1020]: Error in Authentication method occurred"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-coupon-limits": {
        "description": "Gutschein-Limits für einen Nutzer erfolgreich erhalten.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-coupon"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-code-promo-code-limits": {
        "description": "Promocode-Limits für einen Code erfolgreich erhalten.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "Gesamtzahl der Codes."
                },
                "has_more": {
                  "type": "boolean",
                  "description": "Wenn eine andere Seite mit Codes existiert."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "200-admin-get-code-coupon-limits": {
        "description": "Gutscheinlimits für einen Code erfolgreich erhalten.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "promotion_id": {
                  "type": "integer",
                  "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Code-limit-promo-code"
                  }
                },
                "total_items_count": {
                  "type": "number",
                  "description": "Gesamtzahl der Codes."
                },
                "has_more": {
                  "type": "boolean",
                  "description": "Wenn eine andere Seite mit Codes existiert."
                }
              }
            },
            "examples": {
              "response": {
                "$ref": "#/components/examples/code-limit"
              }
            }
          }
        }
      },
      "Common_401-complex": {
        "description": "Authentifizierung nicht bestanden oder falsch. Prüfen Sie die Anmeldedaten und vergewissern Sie sich, dass Sie die Authentifizierung verwenden.",
        "content": {
          "application/json": {
            "schema": {
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Authorization header not sent"
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              },
              "type": "object"
            },
            "examples": {
              "Authorization header not sent": {
                "$ref": "#/components/examples/401-complex-auth-header-not-found"
              },
              "Incorrect credentials": {
                "$ref": "#/components/examples/401-complex-auth-incorrect-credentials"
              }
            }
          }
        }
      },
      "403-auth-header-not-sent": {
        "description": "Autorisierungs-Header nicht gesendet.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 403
                },
                "errorCode": {
                  "type": "integer",
                  "example": 0
                },
                "errorMessage": {
                  "type": "string",
                  "example": "Autorisierungs-Header nicht gesendet."
                },
                "transactionId": {
                  "type": "string",
                  "example": "x-x-x-x-transactionId-mock-x-x-x"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 403,
                  "errorCode": 0,
                  "errorMessage": "Authorization header not sent"
                }
              }
            }
          }
        }
      },
      "Common_422-body-validation": {
        "description": "Fehler bei der Anfragevalidierung.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-invalid-request"
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 1102,
                  "errorMessage": "[0401-1102]: Unprocessable Entity. The property `name` is required",
                  "transactionId": "da145238620011eb8e24fe6913ff226a"
                }
              }
            }
          }
        }
      },
      "200-admin-get-user-promotion-limits": {
        "description": "Werbeaktionslimits für einen Nutzer wurden erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/User-limit-promotion"
            },
            "examples": {
              "response": {
                "value": {
                  "per_user": {
                    "total": 10,
                    "available": 9
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-value-points": {
        "description": "Die Liste der Wertpunkte wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-reward-chain_admin_get-value-point-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Value-points-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-value-point": {
        "description": "Der Wertpunkt wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "sku": "com.xsolla.item_new",
                  "item_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "type": "string",
                  "example": "new-sku"
                },
                "item_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-update-rc-vp-invalid-request": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/422-rc-vp-invalid-request"
            },
            "examples": {
              "The property `sku` is required": {
                "$ref": "#/components/examples/422-property-sku-is-required"
              }
            }
          }
        }
      },
      "200-admin-get-value-point": {
        "description": "Der angegebene Wertpunkt wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-reward-chain_admin_get-value-point"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/Value-point-item-model"
            }
          }
        }
      },
      "200-admin-get-list-value-point-rewards": {
        "description": "Die Liste der Artikel mit Wertpunktbelohnungen wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-value-points-rewards-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-item-value-point-reward"
                  }
                }
              }
            }
          }
        }
      },
      "sellable-item-by-sku_404": {
        "description": "Artikel nicht gefunden. Stellen Sie sicher, dass die `project_id` und die `sku` korrekt sind.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Item with sku = 'electric_shiel' not found"
                }
              }
            }
          }
        }
      },
      "200-client-get-reward-chains-list": {
        "description": "Die Belohnungskette des Nutzers wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-get-reward-chains-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Dient als Indikator dafür, dass weitere Seiten vorhanden sind."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "Gesamtzahl der Belohnungsketten im System."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-reward-chain-item-model"
                  }
                }
              }
            }
          }
        }
      },
      "200-client-get-user-reward-chain-balance": {
        "description": "Der Wertpunktestand des Nutzers wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-client-get-user-reward-chain-balance"
              },
              "clan": {
                "$ref": "#/components/examples/200-client-get-user-clan-reward-chain-balance"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "sku": {
                  "$ref": "#/components/schemas/value-point-sku"
                },
                "name": {
                  "$ref": "#/components/schemas/value-point-name"
                },
                "image_url": {
                  "$ref": "#/components/schemas/Common_admin-image_url"
                },
                "description": {
                  "$ref": "#/components/schemas/value-point-description"
                },
                "long_description": {
                  "$ref": "#/components/schemas/value-point-long-description"
                },
                "amount": {
                  "type": "integer",
                  "description": "Wertpunktmenge."
                },
                "is_clan": {
                  "$ref": "#/components/schemas/is_clan"
                }
              }
            }
          }
        }
      },
      "404-reward-chain-step-not-found": {
        "description": "Belohnungskettenschritt nicht gefunden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9911
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9911]: Reward chain step not found."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9911,
                  "errorMessage": "[0401-9911]: Reward chain step not found."
                }
              }
            }
          }
        }
      },
      "422-reward-chain-step-reward-can-not-claimed": {
        "description": "Die Stufenbelohnung kann nicht in Anspruch genommen werden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 422
                },
                "errorCode": {
                  "type": "integer",
                  "example": 9912
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-9912]: Can't claim the step reward."
                }
              }
            },
            "examples": {
              "Reward chain step reward already claimed": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9912,
                  "errorMessage": "[0401-9912]: Reward already claimed."
                }
              },
              "Not enough VP to claim reward chain step reward": {
                "value": {
                  "statusCode": 422,
                  "errorCode": 9913,
                  "errorMessage": "[0401-9913]: Not enough value points to claim step reward."
                }
              }
            }
          }
        }
      },
      "200-client-update-user-clan": {
        "description": "Der Clan des Nutzers wurde erfolgreich aktualisiert.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-update-user-clan"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "$ref": "#/components/schemas/sku"
                      },
                      "name": {
                        "type": "string",
                        "example": "Super box",
                        "description": "Artikelname."
                      },
                      "type": {
                        "type": "string",
                        "example": "bundle",
                        "description": "Artikeltyp."
                      },
                      "description": {
                        "type": "string",
                        "example": "Super box with items",
                        "description": "Item description."
                      },
                      "image_url": {
                        "$ref": "#/components/schemas/Common_admin-image_url"
                      },
                      "quantity": {
                        "type": "integer",
                        "example": 2,
                        "description": "Artikelmenge."
                      },
                      "bundle_type": {
                        "type": "string",
                        "description": "Bundle-Typ. Wird zurückgegeben, wenn der Artikeltyp ein Bundle ist.",
                        "enum": [
                          "standard",
                          "virtual_currency_package"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-reward-chains": {
        "description": "Die Liste der Belohnungsketten wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-reward-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-basic-model"
                      },
                      {
                        "$ref": "#/components/schemas/admin-get-reward-chain-item-clan-basic-model"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-reward-chain": {
        "description": "Die Belohnungskette wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "reward_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "reward_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "200-admin-get-reward-chain": {
        "description": "Die angegebene Belohnungskette wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "examples": {
              "common": {
                "$ref": "#/components/examples/200-reward-chain"
              },
              "clan": {
                "$ref": "#/components/examples/200-clan-reward-chain"
              }
            },
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/admin-get-reward-chain-item-full-model"
                },
                {
                  "$ref": "#/components/schemas/admin-get-reward-chain-item-clan-full-model"
                }
              ]
            }
          }
        }
      },
      "404-admin-reward-chain-not-found": {
        "description": "Belohnungskette nicht gefunden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Reward chain not found"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Reward chain not found"
                }
              }
            }
          }
        }
      },
      "204-admin-update-reward-chain": {
        "description": "Die Belohnungskette wurde erfolgreich aktualisiert.",
        "content": {}
      },
      "204-admin-delete-reward-chain": {
        "description": "Die Belohnungskette wurde erfolgreich gelöscht.",
        "content": {}
      },
      "204-admin-toggle-reward-chain": {
        "description": "Die Belohnungskette wurde deaktiviert/aktiviert.",
        "content": {}
      },
      "204-admin-reset-reward-chain": {
        "description": "Die Belohnungskette wurde zurückgesetzt.",
        "content": {}
      },
      "200-admin-get-list-daily-chains": {
        "description": "Die Liste der täglichen Belohnungen wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "Gesamtzahl der täglichen Belohnungen."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-daily-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-daily-chain": {
        "description": "Tägliche Belohnung wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "daily_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "daily_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-admin-create-error-list": {
        "description": "Fehler bei der Konfiguration der täglichen Belohnung.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-daily-chain": {
        "description": "Belohnungsdaten wurden erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-daily-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-daily-chain-long-model"
            }
          }
        }
      },
      "404-daily-chain-not-found": {
        "description": "Tägliche Belohnung wurde nicht gefunden.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "422-admin-update-error-list": {
        "description": "Fehler bei der Konfiguration der täglichen Belohnung.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-invalid-chain-step-ids"
              },
              "chain-id-mismatch": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-chain-id-mismatch"
              },
              "chain-step-ids-duplication": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-duplicate-step-ids"
              },
              "active-daily-chain": {
                "$ref": "#/components/examples/422-admin-daily-chain-error-activated"
              }
            }
          }
        }
      },
      "200-client-get-daily-chains-list": {
        "description": "Die täglichen Belohnungen des Nutzers wurden erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-daily-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Dient als Indikator dafür, dass weitere Seiten vorhanden sind."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 3,
                  "description": "Gesamtzahl der täglichen Belohnungen."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-daily-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "401-client-auth-error": {
        "description": "Authentifizierung nicht bestanden oder falsch.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 401
                },
                "errorCode": {
                  "type": "integer",
                  "example": 1501
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 401,
                  "errorCode": 1501,
                  "errorMessage": "[0401-1501]: Authorization failed: Provide authorization"
                }
              }
            }
          }
        }
      },
      "404-daily-chain-step-not-found": {
        "description": "Tägliche Belohnung oder Belohnungsschritt wurde nicht gefunden.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-daily-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/daily-chain-error-model"
            }
          }
        }
      },
      "200-client-get-offer-chains-list": {
        "description": "Die Liste der Angebotsketten wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-client-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "type": "boolean",
                  "example": true,
                  "description": "Gibt an, ob weitere Seiten verfügbar sind."
                },
                "total_items_count": {
                  "type": "integer",
                  "example": 10,
                  "description": "Gesamtzahl der verfügbaren Angebotsketten."
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/client-offer-chain-model"
                  }
                }
              }
            }
          }
        }
      },
      "404-offer-chain-not-found": {
        "description": "Die Angebotskette wurde nicht gefunden.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "404-offer-chain-step-not-found": {
        "description": "Die Angebotskette oder der Schritt wurde nicht gefunden.",
        "content": {
          "application/json": {
            "examples": {
              "not-found": {
                "$ref": "#/components/examples/404-offer-chain-step-not-found"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            }
          }
        }
      },
      "Cart-Payment_200-order-created": {
        "description": "Bestellung wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "order_id": {
                  "type": "integer",
                  "description": "Bestell-ID."
                },
                "token": {
                  "type": "string",
                  "description": "Zahlungstoken."
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "order_id": 641,
                  "token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
                }
              }
            }
          }
        }
      },
      "200-admin-get-list-offer-chains": {
        "description": "Die Liste der Angebotsketten wurde erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain-list"
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "has_more": {
                  "$ref": "#/components/schemas/Pagination_has-more"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/admin-offer-chain-short-model"
                  }
                }
              }
            }
          }
        }
      },
      "201-admin-create-offer-chain": {
        "description": "Die Angebotskette wurde erfolgreich erstellt.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "value": {
                  "offer_chain_id": 10
                }
              }
            },
            "schema": {
              "type": "object",
              "properties": {
                "offer_chain_id": {
                  "type": "integer",
                  "example": 10
                }
              }
            }
          }
        }
      },
      "422-create-error-list": {
        "description": "Ungültige Angebotskettenkonfiguration.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              }
            }
          }
        }
      },
      "200-admin-get-offer-chain": {
        "description": "Die Angebotskettendaten wurden erfolgreich abgerufen.",
        "content": {
          "application/json": {
            "examples": {
              "response": {
                "$ref": "#/components/examples/200-admin-offer-chain"
              }
            },
            "schema": {
              "$ref": "#/components/schemas/admin-offer-chain-long-model"
            }
          }
        }
      },
      "422-update-error-list": {
        "description": "Ungültige Angebotskettenkonfiguration.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/offer-chain-error-model"
            },
            "examples": {
              "too-many-steps-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-too-many-steps"
              },
              "incorrect-steps-order-error": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-steps-order"
              },
              "item-limit-exceeded": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-item-limit-exceeded"
              },
              "incorrect-items": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-items"
              },
              "invalid-dates": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-dates"
              },
              "incorrect-period": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-incorrect-period"
              },
              "invalid-chain-step-ids": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-invalid-chain-step-ids"
              },
              "chain-id-mismatch": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-chain-id-mismatch"
              },
              "chain-step-ids-duplication": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-duplicate-step-ids"
              },
              "active-offer-chain": {
                "$ref": "#/components/examples/422-admin-offer-chain-error-activated"
              }
            }
          }
        }
      },
      "Upsell-404-item-not-found": {
        "description": "Artikel nicht gefunden.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "statusCode": {
                  "type": "integer",
                  "example": 404
                },
                "errorCode": {
                  "type": "integer",
                  "example": 4001
                },
                "errorMessage": {
                  "type": "string",
                  "example": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            },
            "examples": {
              "response": {
                "value": {
                  "statusCode": 404,
                  "errorCode": 9901,
                  "errorMessage": "[0401-4001]: Items weren't found: sku1, sku2"
                }
              }
            }
          }
        }
      },
      "Upsell-422-invalid-request": {
        "description": "Ungültige Anfrage.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell-422-invalid-request"
            }
          }
        }
      },
      "Upsell-200-get-client-list": {
        "description": "Die Liste mit den Upselling-Artikeln wurde erfolgreich empfangen.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Upsell_item-list"
            },
            "examples": {
              "response": {
                "value": {
                  "has_more": true,
                  "items": [
                    {
                      "sku": "com.xsolla.big_rocket_1",
                      "name": "Big Rocket",
                      "groups": [
                        {
                          "external_id": "accessory",
                          "name": {
                            "en": "accessory"
                          }
                        }
                      ],
                      "attributes": [
                        {
                          "external_id": "stack_size",
                          "name": {
                            "en": "Quantity of items in the upsell set"
                          },
                          "values": [
                            {
                              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "5"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "Big Rocket - description",
                      "image_url": "https://popmedia.blob.core.windows.net/popyourself/male/outfit/male_armor_white_a-01.png",
                      "is_free": false,
                      "price": {
                        "amount": "100.99",
                        "amount_without_discount": "100.99",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_1",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [
                        {
                          "name": "Bonus promotion",
                          "date_start": "2020-04-15T16:16:00+03:00",
                          "date_end": "2026-04-15T16:16:00+03:00",
                          "discount": null,
                          "bonus": [
                            {
                              "quantity": 1,
                              "name": "Xsolla Minigun",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/2fc5c491a47413a8e8000447889093c2.png",
                              "sku": "com.xsolla.minigun_1",
                              "type": "virtual_good"
                            },
                            {
                              "quantity": 1,
                              "sku": "com.xsolla.phys_good_1",
                              "type": "physical_good"
                            },
                            {
                              "quantity": 1,
                              "name": "Super Lootbox with items",
                              "image_url": "https://cdn.xsolla.net/img/misc/images/9676f06265375087e607cb79c5283688.png",
                              "sku": "com.xsolla.SuperLootboxBundle_1",
                              "type": "bundle",
                              "bundle_type": "standard"
                            }
                          ]
                        }
                      ],
                      "limits": {
                        "per_user": {
                          "total": 5,
                          "available": 3,
                          "recurrent_schedule": {
                            "interval_type": "weekly",
                            "reset_next_date": 1746057600
                          },
                          "limit_exceeded_visibility": "show"
                        }
                      },
                      "periods": [
                        {
                          "date_from": "2020-08-11T10:00:00+03:00",
                          "date_until": "2020-08-11T20:00:00+03:00"
                        }
                      ],
                      "custom_attributes": {
                        "purchased": 0,
                        "attr": "value"
                      },
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_1",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [
                        {
                          "external_id": "weapons",
                          "name": {
                            "en": "Weapons"
                          }
                        }
                      ],
                      "attributes": [
                        {
                          "external_id": "stack_size",
                          "name": {
                            "en": "Quantity of items in the upsell set"
                          },
                          "values": [
                            {
                              "external_id": "size_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "5"
                            }
                          ]
                        },
                        {
                          "external_id": "rating",
                          "name": {
                            "en": "Items rating"
                          },
                          "values": [
                            {
                              "external_id": "rating_e3364991f92e751689a68b96598a5a5a84010b85",
                              "value": "3.9"
                            }
                          ]
                        }
                      ],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": false,
                      "price": {
                        "amount": "101.0",
                        "amount_without_discount": "101.0",
                        "currency": "USD"
                      },
                      "virtual_prices": [
                        {
                          "amount": 100,
                          "sku": "com.xsolla.vc_2",
                          "is_default": true,
                          "amount_without_discount": 100,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        },
                        {
                          "amount": 200,
                          "sku": "com.xsolla.vc_3",
                          "is_default": false,
                          "amount_without_discount": 200,
                          "image_url": "http://image.png",
                          "name": "SHOTGUN FOR TRUE RAIDERS",
                          "type": "virtual_currency",
                          "description": "description"
                        }
                      ],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [
                        {
                          "date_from": "2020-08-11T20:00:00+03:00",
                          "date_until": null
                        }
                      ],
                      "vp_rewards": []
                    },
                    {
                      "sku": "com.xsolla.shotgun_raider_2",
                      "name": "SHOTGUN FOR TRUE RAIDERS",
                      "groups": [],
                      "attributes": [],
                      "type": "virtual_good",
                      "description": "description",
                      "image_url": "http://image.png",
                      "is_free": true,
                      "price": null,
                      "virtual_prices": [],
                      "can_be_bought": true,
                      "virtual_item_type": "non_renewing_subscription",
                      "promotions": [],
                      "limits": null,
                      "periods": [],
                      "vp_rewards": []
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "requestBodies": {
      "Promotions_redeem-coupon-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "Eindeutiger Gutscheincode. Enthält Buchstaben und Ziffern.",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "WINTER2021",
                  "default": "WINTER2021"
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_coupon-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-coupon-promocode-code": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "$ref": "#/components/schemas/Promotions_coupon_code"
                }
              }
            }
          }
        }
      },
      "Promotions_redeem-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "coupon_code": {
                  "type": "string",
                  "description": "Eindeutiger Code des Promocodes. Enthält Buchstaben und Ziffern.",
                  "minLength": 1,
                  "maxLength": 128,
                  "example": "SUMMER2021",
                  "default": "SUMMER2021"
                },
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Warenkorb-ID.",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                },
                "selected_unit_items": {
                  "$ref": "#/components/schemas/Promotions_selected_unit_items"
                }
              }
            }
          }
        }
      },
      "Promotions_cancel-promo-code-model": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "cart": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "description": "Warenkorb-ID.",
                      "default": "current"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "external_id": "promo_code_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "external_id": "coupon_external_id",
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_promocode-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "bonus": {
                  "$ref": "#/components/schemas/Promotions_coupon_bonus"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "discount": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "percent": {
                      "$ref": "#/components/schemas/Promotions_promotion_discount_percent"
                    }
                  },
                  "example": {
                    "percent": "10.10"
                  }
                },
                "discounted_items": {
                  "$ref": "#/components/schemas/Promotions_discounted_items"
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_promocode"
                },
                "item_price_conditions": {
                  "$ref": "#/components/schemas/item_price_conditions_promocode"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                }
              }
            },
            "examples": {
              "simple bonus": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "simple discount": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  }
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with item price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_3",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_3",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_3",
                      "quantity": 2
                    }
                  ],
                  "item_price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "50.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Discount",
                    "de-DE": "Neujahrsrabatt"
                  },
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1,
                  "discount": {
                    "percent": "10.10"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_create-update-item-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "object",
                  "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten,\nwobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Promotion",
                    "ru-RU": "Акция"
                  }
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "discount": {
                  "type": "object",
                  "properties": {
                    "percent": {
                      "type": "string",
                      "description": "Prozentualer Rabatt.\nDer Preis des Artikels wird um einen Wert verringert, der anhand dieses Prozentsatzes berechnet und dann auf zwei Dezimalstellen gerundet wird.",
                      "example": 10
                    }
                  },
                  "required": [
                    "percent"
                  ]
                },
                "items": {
                  "type": "array",
                  "items": {
                    "description": "Die Liste der Artikel, bei denen der Rabatt greift.",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "Artikel-SKU.",
                        "default": "elven_sword"
                      }
                    },
                    "required": [
                      "sku"
                    ]
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_discount"
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              },
              "required": [
                "items",
                "discount",
                "name"
              ]
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-16T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "10.00"
                  },
                  "items": [
                    {
                      "sku": "com.xsolla.elven_sword_1"
                    },
                    {
                      "sku": "com.xsolla.elven_helmet_1"
                    },
                    {
                      "sku": "com.xsolla.elven_armor_1"
                    }
                  ],
                  "name": {
                    "en-US": "Promotion",
                    "ru-RU": "Акция"
                  },
                  "is_enabled": true
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "is_enabled": true,
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "attribute_conditions": [
                    {
                      "type": "string",
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork"
                    },
                    {
                      "type": "number",
                      "attribute": "level",
                      "operator": "eq",
                      "value": "10",
                      "can_be_missing": true
                    }
                  ]
                }
              },
              "with price condition": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "price_conditions": [
                    {
                      "operator": "ge",
                      "value": "10.5000"
                    },
                    {
                      "operator": "lt",
                      "value": "20.5000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "discount": {
                    "percent": "24.00"
                  },
                  "items": [],
                  "name": {
                    "en-US": "Ork set discount",
                    "ru-RU": "Скидка на набор для орка"
                  },
                  "excluded_promotions": [
                    12,
                    789
                  ],
                  "is_enabled": true
                }
              }
            }
          }
        },
        "description": "Objekt mit Werbeaktionsdaten.",
        "required": true
      },
      "Promotions_create-update-bonus-promotion": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "condition",
                "bonus",
                "name"
              ],
              "properties": {
                "id": {
                  "type": "integer",
                  "description": "Werbeaktions-ID. Eindeutige Werbeaktionskennung innerhalb des Projekts."
                },
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "type": "object",
                  "description": "Name der Werbeaktion. Sollte Schlüssel-Wert-Paare enthalten, wobei der Schlüssel ein Gebietsschema im Format \"^[a–z]{2}-[A–Z]{2}$\" und der Wert ein String ist.",
                  "additionalProperties": {
                    "type": "string"
                  },
                  "example": {
                    "en-US": "Summer season bonus",
                    "de-DE": "Sommersaison Bonus"
                  }
                },
                "condition": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "description": "Die zu kaufenden Artikel, damit eine Werbeaktion greifen kann. Ist dieser Parameter auf `null` gestellt, greift die Werbeaktion bei allen Käufen innerhalb eines Projekts.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "Artikel-SKU.",
                        "default": "elven_sword"
                      }
                    }
                  }
                },
                "attribute_conditions": {
                  "$ref": "#/components/schemas/promotion_user-attribute_conditions_model-post"
                },
                "bonus": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "description": "Die Liste der Artikel, die einem Nutzer beim Kauf als Bonus gewährt werden.",
                    "type": "object",
                    "properties": {
                      "sku": {
                        "type": "string",
                        "description": "Artikel-SKU.",
                        "default": "elven_shield"
                      },
                      "quantity": {
                        "type": "number",
                        "description": "Artikelmenge.",
                        "default": 1
                      }
                    }
                  }
                },
                "limits": {
                  "$ref": "#/components/schemas/Promotions_promotion_limits"
                },
                "price_conditions": {
                  "$ref": "#/components/schemas/price_conditions_bonus"
                },
                "excluded_promotions": {
                  "$ref": "#/components/schemas/excluded_promotions"
                },
                "is_enabled": {
                  "$ref": "#/components/schemas/Promotions_is_enabled"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_1"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_1"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_1",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_1",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_1",
                      "quantity": 2
                    }
                  ]
                }
              },
              "personalized": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "attribute_conditions": [
                    {
                      "attribute": "account_status",
                      "type": "string",
                      "operator": "eq",
                      "value": "golden",
                      "can_be_missing": false
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ]
                }
              },
              "with price conditions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.elven_boots_2"
                    },
                    {
                      "sku": "com.xsolla.elven_knife_2"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.elven_sword_2",
                      "quantity": 1
                    },
                    {
                      "sku": "com.xsolla.elven_shield_2",
                      "quantity": 2
                    },
                    {
                      "sku": "com.xsolla.elven_gloves_2",
                      "quantity": 2
                    }
                  ],
                  "price_conditions": [
                    {
                      "operator": "gt",
                      "value": "10.0000"
                    },
                    {
                      "operator": "lt",
                      "value": "20.0000"
                    }
                  ]
                }
              },
              "with excluded promotions": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Bonus",
                    "de-DE": "Neujahrsbonus"
                  },
                  "condition": [
                    {
                      "sku": "com.xsolla.year_1_season_pass"
                    }
                  ],
                  "bonus": [
                    {
                      "sku": "com.xsolla.mp_credits",
                      "quantity": 50000
                    }
                  ],
                  "excluded_promotions": [
                    12,
                    789
                  ]
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-create": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "external_id",
                "name"
              ],
              "properties": {
                "external_id": {
                  "$ref": "#/components/schemas/Promotions_coupon-external_id"
                },
                "date_start": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_start"
                },
                "date_end": {
                  "$ref": "#/components/schemas/Promotions_coupon_date_end"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "type": "array",
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "external_id": "offer_external_id",
                  "date_start": "2020-04-15T18:16:00+05:00",
                  "date_end": "2020-04-25T18:16:00+05:00",
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "Promotions_unique_catalog_offer-update": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "promotion_periods": {
                  "$ref": "#/components/schemas/promotion_periods"
                },
                "name": {
                  "$ref": "#/components/schemas/Promotions_coupon_name"
                },
                "items": {
                  "$ref": "#/components/schemas/Promotions_unique_catalog_offer_items"
                },
                "redeem_total_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_total_limit"
                },
                "redeem_user_limit": {
                  "$ref": "#/components/schemas/Promotions_coupon-redeem_user_limit"
                },
                "redeem_code_limit": {
                  "$ref": "#/components/schemas/Promotions_redeem_code_limit"
                }
              }
            },
            "examples": {
              "simple": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    },
                    {
                      "date_from": "2020-05-15T18:16:00+05:00",
                      "date_until": "2020-05-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ]
                }
              },
              "limited": {
                "value": {
                  "promotion_periods": [
                    {
                      "date_from": "2020-04-15T18:16:00+05:00",
                      "date_until": "2020-04-25T18:16:00+05:00"
                    }
                  ],
                  "name": {
                    "en-US": "New Year Offer",
                    "de-DE": "Neujahrsangebot"
                  },
                  "items": [
                    "elven_sword",
                    "elven_boots"
                  ],
                  "redeem_total_limit": 100,
                  "redeem_user_limit": 1,
                  "redeem_code_limit": 1
                }
              }
            }
          }
        }
      },
      "personalized-catalog_create-update-body": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/user-attribute_personalized-catalog-body-required"
            },
            "example": {
              "name": "Ork race armor rule",
              "is_enabled": true,
              "attribute_conditions": [
                {
                  "attribute": "race",
                  "operator": "eq",
                  "value": "ork",
                  "type": "string",
                  "can_be_missing": false
                }
              ],
              "items": [
                {
                  "item_id": 1
                }
              ],
              "is_satisfied_for_unauth": false
            }
          }
        }
      },
      "reset-user-limits": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "reset-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              }
            }
          }
        }
      },
      "update-user-limits-flexible": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available_flexible"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 0
            }
          }
        }
      },
      "update-user-limits-strict": {
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "required": [
                "user",
                "available"
              ],
              "properties": {
                "user": {
                  "$ref": "#/components/schemas/User-limit_user"
                },
                "available": {
                  "$ref": "#/components/schemas/User-limit_available"
                }
              }
            },
            "example": {
              "user": {
                "user_external_id": "d342dad2-9d59-11e9-a384-42010aa8003f"
              },
              "available": 1
            }
          }
        }
      },
      "create-value-point": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/admin_value_points-create"
            },
            "examples": {
              "default": {
                "summary": "Value point for reward chain",
                "value": {
                  "sku": "com.xsolla.reward_vp_1",
                  "name": {
                    "en": "Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for reward system."
                  },
                  "long_description": {
                    "en": "Value points given to users to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 1
                }
              },
              "clan": {
                "summary": "Value point for clan reward chain",
                "value": {
                  "sku": "com.xsolla.clan_value_point_1",
                  "name": {
                    "en": "Clan Reward VP 1"
                  },
                  "is_enabled": true,
                  "description": {
                    "en": "Value points for clan reward system."
                  },
                  "long_description": {
                    "en": "Value points given to clans to get new rewards in a reward chain."
                  },
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "media_list": [],
                  "order": 3,
                  "is_clan": true
                }
              }
            }
          }
        }
      },
      "set-item-value-point-reward": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set"
            },
            "example": [
              {
                "sku": "com.xsolla.booster_1",
                "amount": 100
              },
              {
                "sku": "com.xsolla.booster_mega",
                "amount": 200
              }
            ]
          }
        }
      },
      "set-item-value-point-reward-for-patch": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/item-value-point-reward-set-for-patch"
            },
            "example": [
              {
                "sku": "booster_1",
                "amount": 100
              },
              {
                "sku": "booster_mega",
                "amount": 0
              }
            ]
          }
        }
      },
      "create-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/create-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Lange Beschreibung der Belohnungskette."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "order": 1,
                  "periods": [
                    {
                      "date_from": "2026-01-01T01:00:00+05:00",
                      "date_until": "2026-01-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2026-02-01T01:00:00+05:00",
                      "date_until": "2026-02-28T23:59:59+05:00"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "order": 1,
                  "periods": [
                    {
                      "date_from": "2026-01-01T01:00:00+05:00",
                      "date_until": "2026-01-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2026-02-01T01:00:00+05:00",
                      "date_until": "2026-02-28T23:59:59+05:00"
                    }
                  ],
                  "value_point": {
                    "sku": "com.xsolla.clan_value_point_1"
                  },
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "popup_instruction": {
                    "en": "You must be a clan member to get clan rewards. You join a clan when a clan member invites you to the clan, and you accept the invite. You can also create your own clan."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "update-reward-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/update-reward-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-clan-reward-chain-model"
                }
              ]
            },
            "examples": {
              "default": {
                "summary": "Reward chain example",
                "value": {
                  "name": {
                    "en": "Reward chain"
                  },
                  "description": {
                    "en": "Reward chain description."
                  },
                  "long_description": {
                    "en": "Lange Beschreibung der Belohnungskette."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "order": 1,
                  "periods": [
                    {
                      "date_from": "2026-01-01T01:00:00+05:00",
                      "date_until": "2026-01-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2026-02-01T01:00:00+05:00",
                      "date_until": "2026-02-28T23:59:59+05:00"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "ork",
                      "type": "string",
                      "can_be_missing": false
                    }
                  ],
                  "is_always_visible": true,
                  "is_reset_after_end": true
                }
              },
              "clan": {
                "summary": "Clan reward chain example",
                "value": {
                  "name": {
                    "en": "Clan reward chain"
                  },
                  "description": {
                    "en": "Clan reward chain description."
                  },
                  "long_description": {
                    "en": "Clan reward chain long description."
                  },
                  "is_enabled": true,
                  "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "order": 1,
                  "periods": [
                    {
                      "date_from": "2026-01-01T01:00:00+05:00",
                      "date_until": "2026-01-31T23:59:59+05:00"
                    },
                    {
                      "date_from": "2026-02-01T01:00:00+05:00",
                      "date_until": "2026-02-28T23:59:59+05:00"
                    }
                  ],
                  "steps": [
                    {
                      "name": {
                        "en": "First step of the reward chain"
                      },
                      "step_id": 1,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_1",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_2",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 10
                      }
                    },
                    {
                      "name": {
                        "en": "Second step of the reward chain"
                      },
                      "step_id": 2,
                      "image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                      "reward": [
                        {
                          "sku": "com.xsolla.item_3",
                          "quantity": 5
                        },
                        {
                          "sku": "com.xsolla.item_4",
                          "quantity": 1
                        }
                      ],
                      "price": {
                        "amount": 15
                      }
                    }
                  ],
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 1,
                    "time": "01:00:00+08:00"
                  },
                  "popup_header": {
                    "en": "How to unlock rewards"
                  },
                  "popup_instruction": {
                    "en": "You should be a clan member to get clan rewards. You join a clan when a clan member invited you to the clan, and you accepted the invite. You can create your own clan."
                  },
                  "popup_image_url": "https://cdn.xsolla.net/img/misc/images/5c3b8b45c5be5fe7803e59fbc8041be4.png",
                  "clan_type": "guild"
                }
              }
            }
          }
        }
      },
      "create-daily-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/create-calendar-hard-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-rolling-skippable-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/create-rolling-unskippable-daily-chain-model"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "New daily reward",
                    "ru": "Новая ежедневная награда"
                  },
                  "description": {
                    "en": "New daily reward short description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "New skippable login reward"
                  },
                  "description": {
                    "en": "New skippable login reward short description"
                  },
                  "order": 1,
                  "date_start": "2023-05-01T10:00:00+05:00",
                  "date_end": "2023-05-31T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "New unskippable login reward"
                  },
                  "description": {
                    "en": "New unskippable login reward short description"
                  },
                  "order": 2,
                  "date_start": "2023-06-01T10:00:00+05:00",
                  "date_end": "2023-06-30T10:00:00+05:00",
                  "is_enabled": true,
                  "is_recurrent": false,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "update-daily-chain": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/update-calendar-hard-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-rolling-skippable-daily-chain-model"
                },
                {
                  "$ref": "#/components/schemas/update-rolling-unskippable-daily-chain-model"
                }
              ]
            },
            "examples": {
              "calendar_hard": {
                "summary": "Daily reward with `calendar_hard` type",
                "value": {
                  "name": {
                    "en": "Updated daily reward",
                    "ru": "Обновленная ежедневная награда"
                  },
                  "description": {
                    "en": "Updated daily reward description"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "vg_enabled_shown_in_store_2",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 10,
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "vg_not_shown_in_store",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "bundle_enabled_shown_in_store_with_2_enabled_shown_in_store_vg",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "vcp_enabled_shown_in_store_1_of_10_vc_enabled_shown_in_store_1",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "calendar_hard"
                }
              },
              "rolling_skippable": {
                "summary": "Daily reward with `rolling_skippable` type",
                "value": {
                  "name": {
                    "en": "Updated login reward"
                  },
                  "description": {
                    "en": "Updated login reward description"
                  },
                  "order": 4,
                  "date_start": "2023-08-01T10:00:00+05:00",
                  "date_end": "2023-08-31T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 6,
                      "items": [
                        {
                          "sku": "saturday_reward_item_six",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 7,
                      "items": [
                        {
                          "sku": "sunday_reward_item_seven",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_skippable"
                }
              },
              "rolling_unskippable": {
                "summary": "Daily reward with `rolling_unskippable` type",
                "value": {
                  "name": {
                    "en": "Updated unskippable login reward"
                  },
                  "description": {
                    "en": "Updated unskippable login reward description"
                  },
                  "order": 2,
                  "date_start": "2023-09-01T10:00:00+05:00",
                  "date_end": "2023-09-30T10:00:00+05:00",
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "items": [
                        {
                          "sku": "monday_reward_item_one",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "items": [
                        {
                          "sku": "tuesday_reward_item_two",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "items": [
                        {
                          "sku": "wednesday_reward_item_three",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "items": [
                        {
                          "sku": "thursday_reward_item_four",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 5,
                      "items": [
                        {
                          "sku": "friday_reward_item_five",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "type": "rolling_unskippable"
                }
              }
            }
          }
        }
      },
      "create-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/create-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Non-personalized offer chain example",
                "value": {
                  "name": {
                    "en": "New offer chain",
                    "ru": "Новая цепочка предложений",
                    "de": "Neue Angebotskette",
                    "fr": "Nouvelle chaîne d'offres",
                    "it": "Nuova catena di offerte"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "name": {
                    "en": "New recurrent offer chain",
                    "ru": "Новая рекуррентная цепочка предложений",
                    "de": "Neue wiederkehrende Angebotskette",
                    "fr": "Nouvelle chaîne d'offres récurrente",
                    "it": "Nuova catena di offerte ricorrente"
                  },
                  "description": {
                    "en": "A recurring offer chain that resets weekly on Wednesdays at 07:00 AM GMT+3",
                    "ru": "Рекуррентная цепочка предложений, которая сбрасывается еженедельно по средам в 07:00 по GMT+3",
                    "de": "Eine wiederkehrende Angebotskette, die wöchentlich mittwochs um 07:00 Uhr GMT+3 zurückgesetzt wird",
                    "fr": "Une chaîne d'offres récurrente qui se réinitialise chaque semaine le mercredi à 07h00 GMT+3",
                    "it": "Una catena di offerte ricorrente che si resetta settimanalmente il mercoledì alle 07:00 GMT+3"
                  },
                  "order": 1,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": "2025-04-25T18:16:00+05:00",
                  "is_enabled": false,
                  "recurrent_schedule": {
                    "interval_type": "weekly",
                    "day_of_week": 3,
                    "time": "07:00:00+03:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 3
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "personalized-default": {
                "summary": "Offer chain displayed when no personalized offer chains are found example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                    "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                    "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                    "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-offer-chain": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/modify-offer-chain-model"
            },
            "examples": {
              "default": {
                "summary": "Default example",
                "value": {
                  "name": {
                    "en": "Updated offer chain",
                    "ru": "Обновляемая цепочка предложений",
                    "de": "Aktualisierte Angebotskette",
                    "fr": "Chaîne d'offres mise à jour",
                    "it": "Catena di offerte aggiornata"
                  },
                  "description": {
                    "en": "A short description of a regular offer chain",
                    "ru": "Краткое описание обычной цепочки предложений",
                    "de": "Eine kurze Beschreibung einer regulären Angebotskette",
                    "fr": "Une brève description d'une chaîne d'offres régulière",
                    "it": "Una breve descrizione di una catena di offerte regolare"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_1_paid_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_2_free_virtual_good_sku",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_step_3_paid_virtual_currency_package_sku",
                          "quantity": 5
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 4,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_step_4_free_bundle_sku",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": true
                }
              },
              "recurrent": {
                "summary": "Recurrent offer chain example",
                "value": {
                  "id": 1,
                  "name": {
                    "en": "Updated recurrent offer chain",
                    "ru": "Обновляемая рекуррентная цепочка предложений",
                    "de": "Aktualisierte wiederkehrende Angebotskette",
                    "fr": "Chaîne d'offres récurrente mise à jour",
                    "it": "Catena di offerte ricorrente aggiornata"
                  },
                  "description": {
                    "en": "Updated offer chain that becomes recurrent and resets monthly on the 2nd day at 03:00 AM GMT+8",
                    "ru": "Обновляемая цепочка предложений, которая становится рекуррентной и сбрасывается ежемесячно во 2-й день в 03:00 по GMT+8",
                    "de": "Aktualisierte Angebotskette, die wiederkehrend wird und monatlich am 2. Tag um 03:00 Uhr GMT+8 zurückgesetzt wird",
                    "fr": "Chaîne d'offres mise à jour qui devient récurrente et se réinitialise mensuellement le 2e jour à 03h00 GMT+8",
                    "it": "Catena di offerte aggiornata che diventa ricorrente e si resetta mensilmente il 2° giorno alle 03:00 GMT+8"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T17:16:00+05:00",
                  "date_end": "2025-04-25T19:16:00+05:00",
                  "is_enabled": true,
                  "recurrent_schedule": {
                    "interval_type": "monthly",
                    "day_of_month": 2,
                    "time": "03:00:00+08:00"
                  },
                  "steps": [
                    {
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 6
                        }
                      ]
                    },
                    {
                      "step_number": 1,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_bundle_sku",
                          "quantity": 2
                        }
                      ]
                    }
                  ]
                }
              },
              "personalized-default": {
                "summary": "Personalized default offer chain example",
                "value": {
                  "name": {
                    "en": "New personalized default offer chain",
                    "ru": "Новая персонализированная цепочка предложений по умолчанию",
                    "de": "Neue personalisierte Standard-Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée par défaut",
                    "it": "Nuova catena di offerte personalizzata predefinita"
                  },
                  "description": {
                    "en": "Default personalized offer chain for users that do not meet the conditions of other personalized chains",
                    "ru": "Персонализированная цепочка по умолчанию для пользователей, не подходящих под условия других персонализированных цепочек",
                    "de": "Standard-personalisierte Angebotskette für Benutzer, die die Bedingungen anderer personalisierter Ketten nicht erfüllen",
                    "fr": "Chaîne d'offres personnalisée par défaut pour les utilisateurs qui ne répondent pas aux conditions des autres chaînes personnalisées",
                    "it": "Catena di offerte personalizzata predefinita per gli utenti che non soddisfano le condizioni di altre catene personalizzate"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_default",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_default",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_id": 9,
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_default",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false
                }
              },
              "personalized-with-conditions": {
                "summary": "Personalized offer chain with user attribute conditions example",
                "value": {
                  "name": {
                    "en": "New personalized offer chain",
                    "ru": "Новая персонализированная цепочка предложений",
                    "de": "Neue personalisierte Angebotskette",
                    "fr": "Nouvelle chaîne d'offres personnalisée",
                    "it": "Nuova catena di offerte personalizzata"
                  },
                  "description": {
                    "en": "Personalized offer chain with user attribute conditions - for level 10 and above elves who reached level 10 no later than 2026-01-01 00:00:00, inclusive",
                    "ru": "Персонализированная цепочка предложений с условиями по атрибутам пользователя - для эльфов уровня 10 и выше, достигших 10 уровня не позднее 2026-01-01 00:00:00 включительно",
                    "de": "Personalisierte Angebotskette mit Benutzerattributbedingungen - für Elfen der Stufe 10 und höher, die Stufe 10 spätestens am 2026-01-01 00:00:00 erreicht haben, einschließlich",
                    "fr": "Chaîne d'offres personnalisée avec des conditions d'attribut utilisateur - pour les elfes de niveau 10 et plus qui ont atteint le niveau 10 au plus tard le 2026-01-01 00:00:00, inclus",
                    "it": "Catena di offerte personalizzata con condizioni di attributo utente - per elfi di livello 10 e superiore che hanno raggiunto il livello 10 non più tardi del 2026-01-01 00:00:00, inclusi"
                  },
                  "order": 4,
                  "date_start": "2023-04-15T18:16:00+05:00",
                  "date_end": null,
                  "recurrent_schedule": null,
                  "is_enabled": true,
                  "steps": [
                    {
                      "step_id": 10,
                      "step_number": 1,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_1_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    },
                    {
                      "step_id": 8,
                      "step_number": 2,
                      "is_free": false,
                      "items": [
                        {
                          "sku": "chain_x_step_2_item_for_elves_level_10_and_above",
                          "quantity": 2
                        }
                      ]
                    },
                    {
                      "step_number": 3,
                      "is_free": true,
                      "items": [
                        {
                          "sku": "chain_x_step_3_free_item_for_elves_level_10_and_above",
                          "quantity": 1
                        }
                      ]
                    }
                  ],
                  "is_always_visible": false,
                  "attribute_conditions": [
                    {
                      "attribute": "race",
                      "operator": "eq",
                      "value": "elf",
                      "type": "string",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "level",
                      "operator": "ge",
                      "value": "10",
                      "type": "number",
                      "can_be_missing": false
                    },
                    {
                      "attribute": "10_level_up_date",
                      "operator": "le",
                      "value": "2026-01-01T00:00:00",
                      "type": "date",
                      "can_be_missing": false
                    }
                  ]
                }
              }
            }
          }
        }
      },
      "update-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      },
      "create-upsell": {
        "content": {
          "application/json": {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Upsell-model"
                },
                {
                  "$ref": "#/components/schemas/Upsell-model-not-fixed-list"
                }
              ]
            },
            "examples": {
              "fixed_list": {
                "summary": "Example of upsell with fixed list of items",
                "value": {
                  "is_enabled": true,
                  "type": "fixed_list",
                  "items": [
                    "game_sku_1",
                    "game_sku_2",
                    "game_sku_3"
                  ]
                }
              },
              "special_type_promotions": {
                "summary": "Example of upsell with promotion items only",
                "value": {
                  "is_enabled": true,
                  "type": "only_promotions",
                  "items": []
                }
              },
              "special_type_most_sellable": {
                "summary": "Example of upsell with most sellable items for last 30 days",
                "value": {
                  "is_enabled": true,
                  "type": "most_sellable",
                  "items": []
                }
              }
            }
          }
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "WERBEAKTIONEN",
      "tags": [
        "promotions-overview",
        "promotions-common",
        "promotions-coupons",
        "promotions-promo-codes",
        "promotions-unique-catalog-offers",
        "promotions-discounts",
        "promotions-bonuses"
      ]
    },
    {
      "name": "PERSONALISIERUNG",
      "tags": [
        "personalized-catalog"
      ]
    },
    {
      "name": "LIMITS",
      "tags": [
        "promotion-limits-overview",
        "user-limits-admin"
      ]
    },
    {
      "name": "BELOHNUNGSKETTEN UND WERTPUNKTE",
      "tags": [
        "reward-chain-value-points-overview",
        "reward-chain-value-points-admin",
        "reward-chain-client",
        "clan-reward-chain-client"
      ]
    },
    {
      "name": "TÄGLICHE KETTEN",
      "tags": [
        "daily-chain-overview",
        "daily-chain-admin",
        "daily-chain-client"
      ]
    },
    {
      "name": "ANGEBOTSKETTEN",
      "tags": [
        "offer-chains-overview",
        "offer-chain-admin",
        "offer-chain-client"
      ]
    },
    {
      "name": "UPSELLING",
      "tags": [
        "upsell-overview",
        "upsell-admin",
        "upsell-client"
      ]
    }
  ]
}